From 54a23403daea965e88a026b301f310d2154ed8b0 Mon Sep 17 00:00:00 2001 From: granny Date: Sun, 3 Mar 2024 10:37:00 -0800 Subject: [PATCH 001/215] check if itemstack is stackable first (#10285) --- LICENSE.md | 1 + ...heck-if-itemstack-is-stackable-first.patch | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 patches/server/1048-check-if-itemstack-is-stackable-first.patch diff --git a/LICENSE.md b/LICENSE.md index ae1df51b88..4cb1460c2e 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -63,4 +63,5 @@ Ollie <69084614+olijeffers0n@users.noreply.github.com> Oliwier Miodun aerulion Lukas Planz +granny ``` diff --git a/patches/server/1048-check-if-itemstack-is-stackable-first.patch b/patches/server/1048-check-if-itemstack-is-stackable-first.patch new file mode 100644 index 0000000000..3655bb3a13 --- /dev/null +++ b/patches/server/1048-check-if-itemstack-is-stackable-first.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: granny +Date: Sat, 24 Feb 2024 19:33:01 -0800 +Subject: [PATCH] check if itemstack is stackable first + + +diff --git a/src/main/java/net/minecraft/world/entity/player/Inventory.java b/src/main/java/net/minecraft/world/entity/player/Inventory.java +index 309acf7bd07e38043aa81e0e686edba1136bd04c..96c898086f35fd83f9b1ce7e3fe53d31b2fa4c31 100644 +--- a/src/main/java/net/minecraft/world/entity/player/Inventory.java ++++ b/src/main/java/net/minecraft/world/entity/player/Inventory.java +@@ -114,7 +114,7 @@ public class Inventory implements Container, Nameable { + } + + private boolean hasRemainingSpaceForItem(ItemStack existingStack, ItemStack stack) { +- return !existingStack.isEmpty() && ItemStack.isSameItemSameTags(existingStack, stack) && existingStack.isStackable() && existingStack.getCount() < existingStack.getMaxStackSize() && existingStack.getCount() < this.getMaxStackSize(); ++ return !existingStack.isEmpty() && existingStack.isStackable() && existingStack.getCount() < existingStack.getMaxStackSize() && existingStack.getCount() < this.getMaxStackSize() && ItemStack.isSameItemSameTags(existingStack, stack); // Paper - check if itemstack is stackable first + } + + // CraftBukkit start - Watch method above! :D From 9c4bb0df0e22f6ec35d2dc7cf455ec715e2ca4a9 Mon Sep 17 00:00:00 2001 From: Yannick Lamprecht <1420893+yannicklamprecht@users.noreply.github.com> Date: Sun, 3 Mar 2024 19:59:22 +0100 Subject: [PATCH 002/215] add rich message component support to configuration (#10225) --- patches/api/0006-Adventure.patch | 108 +++++++++++++++++- ...low-plugins-to-use-SLF4J-for-logging.patch | 4 +- 2 files changed, 108 insertions(+), 4 deletions(-) diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch index 7689102526..6e3f2c5ebd 100644 --- a/patches/api/0006-Adventure.patch +++ b/patches/api/0006-Adventure.patch @@ -5,16 +5,17 @@ Subject: [PATCH] Adventure Co-authored-by: zml Co-authored-by: Jake Potrebic +Co-authored-by: Yannick Lamprecht diff --git a/build.gradle.kts b/build.gradle.kts -index b3df8cf8d32a4cc99a3a3950f146cdab65826e1b..b577114c2b89fe2053123d1a542d37dff7fa8d5a 100644 +index b3df8cf8d32a4cc99a3a3950f146cdab65826e1b..9011451c6a60db08dcc255a84470f8ce92f7b2a4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,12 +11,28 @@ java { val annotationsVersion = "24.0.1" val bungeeCordChatVersion = "1.20-R0.2" -+val adventureVersion = "4.15.0" ++val adventureVersion = "4.16.0" +val apiAndDocs: Configuration by configurations.creating { + attributes { + attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION)) @@ -2054,6 +2055,109 @@ index fcc34b640265f4dccb46b9f09466ab8e1d96043e..5c813ac024f675951159a59d88d8baa0 + } + // Paper end } +diff --git a/src/main/java/org/bukkit/configuration/ConfigurationSection.java b/src/main/java/org/bukkit/configuration/ConfigurationSection.java +index b6b00af08f12f838411845e4f4e29e62826dfc7f..d168b1e58b4b4ad00466fab60232d516551668e0 100644 +--- a/src/main/java/org/bukkit/configuration/ConfigurationSection.java ++++ b/src/main/java/org/bukkit/configuration/ConfigurationSection.java +@@ -1058,4 +1058,98 @@ public interface ConfigurationSection { + * one line. + */ + public void setInlineComments(@NotNull String path, @Nullable List comments); ++ ++ // Paper start - add rich message component support to configuration ++ /** ++ * Gets the requested MiniMessage formatted String as Component by path. ++ *

++ * If the Component does not exist but a default value has been specified, ++ * this will return the default value. If the Component does not exist and no ++ * default value was specified, this will return null. ++ * ++ * @param path Path of the Component to get. ++ * @return Requested Component. ++ */ ++ default net.kyori.adventure.text.@Nullable Component getRichMessage(final @NotNull String path) { ++ return this.getRichMessage(path, null); ++ } ++ ++ /** ++ * Gets the requested MiniMessage formatted String as Component by path. ++ *

++ * If the Component does not exist but a default value has been specified, ++ * this will return the default value. If the Component does not exist and no ++ * default value was specified, this will return null. ++ * ++ * @param path Path of the Component to get. ++ * @param fallback component that will be used as fallback ++ * @return Requested Component. ++ */ ++ @Contract("_, !null -> !null") ++ default net.kyori.adventure.text.@Nullable Component getRichMessage(final @NotNull String path, final net.kyori.adventure.text.@Nullable Component fallback) { ++ return this.getComponent(path, net.kyori.adventure.text.minimessage.MiniMessage.miniMessage(), fallback); ++ } ++ ++ /** ++ * Sets the specified path to the given value. ++ *

++ * If value is null, the entry will be removed. Any existing entry will be ++ * replaced, regardless of what the new value is. ++ * ++ * @param path Path of the object to set. ++ * @param value New value to set the path to. ++ */ ++ default void setRichMessage(final @NotNull String path, final net.kyori.adventure.text.@Nullable Component value) { ++ this.setComponent(path, net.kyori.adventure.text.minimessage.MiniMessage.miniMessage(), value); ++ } ++ ++ /** ++ * Gets the requested formatted String as Component by path deserialized by the ComponentDecoder. ++ *

++ * If the Component does not exist but a default value has been specified, ++ * this will return the default value. If the Component does not exist and no ++ * default value was specified, this will return null. ++ * ++ * @param path Path of the Component to get. ++ * @param decoder ComponentDecoder instance used for deserialization ++ * @return Requested Component. ++ */ ++ default @Nullable C getComponent(final @NotNull String path, final net.kyori.adventure.text.serializer.@NotNull ComponentDecoder decoder) { ++ return this.getComponent(path, decoder, null); ++ } ++ ++ /** ++ * Gets the requested formatted String as Component by path deserialized by the ComponentDecoder. ++ *

++ * If the Component does not exist but a default value has been specified, ++ * this will return the default value. If the Component does not exist and no ++ * default value was specified, this will return null. ++ * ++ * @param path Path of the Component to get. ++ * @param decoder ComponentDecoder instance used for deserialization ++ * @param fallback component that will be used as fallback ++ * @return Requested Component. ++ */ ++ @Contract("_, _, !null -> !null") ++ default @Nullable C getComponent(final @NotNull String path, final net.kyori.adventure.text.serializer.@NotNull ComponentDecoder decoder, final @Nullable C fallback) { ++ java.util.Objects.requireNonNull(decoder, "decoder"); ++ final String value = this.getString(path); ++ return decoder.deserializeOr(value, fallback); ++ } ++ ++ /** ++ * Sets the specified path to the given value. ++ *

++ * If value is null, the entry will be removed. Any existing entry will be ++ * replaced, regardless of what the new value is. ++ * ++ * @param path Path of the object to set. ++ * @param encoder the encoder used to transform the value ++ * @param value New value to set the path to. ++ */ ++ default void setComponent(final @NotNull String path, final net.kyori.adventure.text.serializer.@NotNull ComponentEncoder encoder, final @Nullable C value) { ++ java.util.Objects.requireNonNull(encoder, "encoder"); ++ this.set(path, encoder.serializeOrNull(value)); ++ } ++ // Paper end - add rich message component support to configuration + } diff --git a/src/main/java/org/bukkit/conversations/Conversable.java b/src/main/java/org/bukkit/conversations/Conversable.java index b7d8dd30360a38dbdc7bbce40c8e6ced7261f833..0817f2395c2b18828565435568ce651f5ba99a99 100644 --- a/src/main/java/org/bukkit/conversations/Conversable.java diff --git a/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch b/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch index 89ff44d81e..1cddb59cda 100644 --- a/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch +++ b/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch @@ -14,13 +14,13 @@ it without having to shade it in the plugin and going through several layers of logging abstraction. diff --git a/build.gradle.kts b/build.gradle.kts -index f9ff7e3692d448e2a1e38d0aa26c2d934442e247..50dd795c67557c7d2668068af0bba87a1ec8dc43 100644 +index ddc89dfd6911d85aab7c37fe3ca54eb1b80f99d6..66bcd8f9a8fce8f920a0f1dd7ae0a2937da68e80 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,6 +12,8 @@ java { val annotationsVersion = "24.0.1" val bungeeCordChatVersion = "1.20-R0.2" - val adventureVersion = "4.15.0" + val adventureVersion = "4.16.0" +val slf4jVersion = "2.0.9" +val log4jVersion = "2.17.1" val apiAndDocs: Configuration by configurations.creating { From 8870d22bc76c45fe8cad6040d8e7325dae52568c Mon Sep 17 00:00:00 2001 From: Rodney <36546810+RodneyMKay@users.noreply.github.com> Date: Sun, 3 Mar 2024 20:35:50 +0100 Subject: [PATCH 003/215] Fire EntityDamageByEntityEvent for unowned wither skulls patch (#10244) --- ...eByEntityEvent-for-unowned-wither-sk.patch | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 patches/server/1049-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch diff --git a/patches/server/1049-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch b/patches/server/1049-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch new file mode 100644 index 0000000000..69eea7f52e --- /dev/null +++ b/patches/server/1049-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: RodneyMKay <36546810+RodneyMKay@users.noreply.github.com> +Date: Sun, 11 Feb 2024 20:05:11 +0100 +Subject: [PATCH] Fire EntityDamageByEntityEvent for unowned wither skulls + + +diff --git a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java +index 35e76fc8667d9fde5a8fc426699a617fb0a08e4b..5c7a6fe97b1f0b55b4a5dddbb684e4424688f866 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java +@@ -72,7 +72,7 @@ public class WitherSkull extends AbstractHurtingProjectile { + } + } + } else { +- flag = entity.hurt(this.damageSources().magic(), 5.0F); ++ flag = entity.hurt(this.damageSources().magic().customCausingEntity(this), 5.0F); // Paper - Fire EntityDamageByEntityEvent for unowned wither skulls + } + + if (flag && entity instanceof LivingEntity) { From bbc03d811602c3040658875dfc921ce3724091b0 Mon Sep 17 00:00:00 2001 From: Yannick Lamprecht <1420893+yannicklamprecht@users.noreply.github.com> Date: Sun, 3 Mar 2024 21:36:17 +0100 Subject: [PATCH 004/215] improve BanList types (#10239) --- patches/api/0464-improve-BanList-types.patch | 131 ++++++++++++++++++ .../server/1050-improve-BanList-types.patch | 32 +++++ 2 files changed, 163 insertions(+) create mode 100644 patches/api/0464-improve-BanList-types.patch create mode 100644 patches/server/1050-improve-BanList-types.patch diff --git a/patches/api/0464-improve-BanList-types.patch b/patches/api/0464-improve-BanList-types.patch new file mode 100644 index 0000000000..4fe0de3900 --- /dev/null +++ b/patches/api/0464-improve-BanList-types.patch @@ -0,0 +1,131 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Yannick Lamprecht +Date: Sat, 10 Feb 2024 20:49:47 +0100 +Subject: [PATCH] improve BanList types + + +diff --git a/src/main/java/io/papermc/paper/ban/BanListType.java b/src/main/java/io/papermc/paper/ban/BanListType.java +new file mode 100644 +index 0000000000000000000000000000000000000000..2980abf2f41cb14f0ee5c829c365f8e304130618 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/ban/BanListType.java +@@ -0,0 +1,29 @@ ++package io.papermc.paper.ban; ++ ++import org.bukkit.BanList; ++import org.bukkit.ban.IpBanList; ++import org.bukkit.ban.ProfileBanList; ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Represents a ban-type that a {@link BanList} may track. ++ * It enforces the correct return value at compile time. ++ */ ++public interface BanListType { ++ ++ /** ++ * Banned IP addresses ++ */ ++ BanListType IP = new BanListTypeImpl<>(IpBanList.class); ++ /** ++ * Banned player profiles ++ */ ++ BanListType PROFILE = new BanListTypeImpl<>(ProfileBanList.class); ++ ++ /** ++ * Returns the type class of the ban list used generically ++ * ++ * @return the type class ++ */ ++ @NotNull Class typeClass(); ++} +diff --git a/src/main/java/io/papermc/paper/ban/BanListTypeImpl.java b/src/main/java/io/papermc/paper/ban/BanListTypeImpl.java +new file mode 100644 +index 0000000000000000000000000000000000000000..1159e7cd29fbf11f3fa1448fcf9d0768e1bcb0a3 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/ban/BanListTypeImpl.java +@@ -0,0 +1,8 @@ ++package io.papermc.paper.ban; ++ ++import org.jetbrains.annotations.ApiStatus; ++import org.jetbrains.annotations.NotNull; ++ ++@ApiStatus.Internal ++record BanListTypeImpl(@NotNull Class typeClass) implements BanListType { ++} +diff --git a/src/main/java/org/bukkit/BanList.java b/src/main/java/org/bukkit/BanList.java +index a77c0411a68a9bad33ddfb335b7a996a843e478c..0e0baadde9e34d28db56dc68e66aaf66c60d12df 100644 +--- a/src/main/java/org/bukkit/BanList.java ++++ b/src/main/java/org/bukkit/BanList.java +@@ -16,7 +16,9 @@ public interface BanList { + + /** + * Represents a ban-type that a {@link BanList} may track. ++ * @deprecated use {@link io.papermc.paper.ban.BanListType} to enforce the correct return value at compile time. + */ ++ @Deprecated // Paper - BanList Type Improvements + public enum Type { + /** + * Banned player names +diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java +index ca27559cf4aa1c2e44fdca2022e213b1b1c80f4e..db46e3233edf18bd91a6da8612ccc9f0080d5c17 100644 +--- a/src/main/java/org/bukkit/Bukkit.java ++++ b/src/main/java/org/bukkit/Bukkit.java +@@ -1633,11 +1633,27 @@ public final class Bukkit { + * @param The ban target + * + * @return a ban list of the specified type ++ * @deprecated use {@link #getBanList(io.papermc.paper.ban.BanListType)} to enforce the correct return value at compile time. + */ + @NotNull ++ @Deprecated // Paper - add BanListType (which has a generic) + public static > T getBanList(@NotNull BanList.Type type) { + return server.getBanList(type); + } ++ // Paper start - add BanListType (which has a generic) ++ /** ++ * Gets a ban list for the supplied type. ++ * ++ * @param type the type of list to fetch, cannot be null ++ * @param The ban target ++ * ++ * @return a ban list of the specified type ++ */ ++ @NotNull ++ public static , E> B getBanList(final io.papermc.paper.ban.@NotNull BanListType type) { ++ return server.getBanList(type); ++ } ++ // Paper end - add BanListType (which has a generic) + + /** + * Gets a set containing all player operators. +diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java +index b4f8281d3797ec825a7671f38077cd65d5a1d76e..0eb61b090d6f8fa6d99735ff3680dac774c52c1f 100644 +--- a/src/main/java/org/bukkit/Server.java ++++ b/src/main/java/org/bukkit/Server.java +@@ -1394,10 +1394,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi + * @param The ban target + * + * @return a ban list of the specified type ++ * @deprecated use {@link #getBanList(io.papermc.paper.ban.BanListType)} to enforce the correct return value at compile time. + */ ++ @Deprecated // Paper - add BanListType (which has a generic) + @NotNull + public > T getBanList(@NotNull BanList.Type type); + ++ // Paper start - add BanListType (which has a generic) ++ /** ++ * Gets a ban list for the supplied type. ++ * ++ * @param type the type of list to fetch, cannot be null ++ * @param The ban target ++ * ++ * @return a ban list of the specified type ++ */ ++ @NotNull ++ , E> B getBanList(@NotNull io.papermc.paper.ban.BanListType type); ++ // Paper end - add BanListType (which has a generic) ++ + /** + * Gets a set containing all player operators. + * diff --git a/patches/server/1050-improve-BanList-types.patch b/patches/server/1050-improve-BanList-types.patch new file mode 100644 index 0000000000..ad92622c45 --- /dev/null +++ b/patches/server/1050-improve-BanList-types.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Yannick Lamprecht +Date: Sat, 10 Feb 2024 20:50:01 +0100 +Subject: [PATCH] improve BanList types + + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +index 9f7ed337463cc9bb370a5541d9de5cd8f9c1a78a..c490a29bcf7410bc54959ee71375605964379ed5 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -2215,6 +2215,21 @@ public final class CraftServer implements Server { + }; + } + ++ // Paper start - add BanListType (which has a generic) ++ @SuppressWarnings("unchecked") ++ @Override ++ public , E> B getBanList(final io.papermc.paper.ban.BanListType type) { ++ Preconditions.checkArgument(type != null, "BanList.BanType cannot be null"); ++ if (type == io.papermc.paper.ban.BanListType.IP) { ++ return (B) new CraftIpBanList(this.playerList.getIpBans()); ++ } else if (type == io.papermc.paper.ban.BanListType.PROFILE) { ++ return (B) new CraftProfileBanList(this.playerList.getBans()); ++ } else { ++ throw new IllegalArgumentException("Unknown BanListType: " + type); ++ } ++ } ++ // Paper end - add BanListType (which has a generic) ++ + @Override + public void setWhitelist(boolean value) { + this.playerList.setUsingWhiteList(value); From ce5c8dd379faa1a9bf413481269a6ddf816c049c Mon Sep 17 00:00:00 2001 From: Gero Date: Sun, 3 Mar 2024 21:43:00 +0100 Subject: [PATCH 005/215] Configurable max block/fluid ticks (#10266) --- patches/server/0005-Paper-config-files.patch | 8 ++++--- ...1-Configurable-max-block-fluid-ticks.patch | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 patches/server/1051-Configurable-max-block-fluid-ticks.patch diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index c9327e3fc2..9bc3647637 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -15,7 +15,7 @@ public net.minecraft.server.dedicated.DedicatedServerProperties reload(Lnet/mine public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES diff --git a/build.gradle.kts b/build.gradle.kts -index 2df1cae62cff433a7f3f55f561f70719bb6a745b..65e9d5918d46b123fb4f8122344a7d3863aec758 100644 +index 8d2aa99b4bd0d1c46c66274907a1f11d605a75da..e865c5ce514770f4fde9146b6e7138e88932c33b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,6 +11,7 @@ dependencies { @@ -1390,10 +1390,10 @@ index 0000000000000000000000000000000000000000..351fbbc577556ebbd62222615801a96b +} diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java new file mode 100644 -index 0000000000000000000000000000000000000000..385ca2c1022e0985550a5cc2bbff953f1aa33f5c +index 0000000000000000000000000000000000000000..1a914ab53c24476473edc433d64daca6ec1c51d9 --- /dev/null +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -0,0 +1,548 @@ +@@ -0,0 +1,550 @@ +package io.papermc.paper.configuration; + +import com.google.common.collect.HashBasedTable; @@ -1808,6 +1808,8 @@ index 0000000000000000000000000000000000000000..385ca2c1022e0985550a5cc2bbff953f + public boolean portalSearchVanillaDimensionScaling = true; + public boolean disableTeleportationSuffocationCheck = false; + public IntOr.Disabled netherCeilingVoidDamageHeight = IntOr.Disabled.DISABLED; ++ public int maxFluidTicks = 65536; ++ public int maxBlockTicks = 65536; + } + + public Spawn spawn; diff --git a/patches/server/1051-Configurable-max-block-fluid-ticks.patch b/patches/server/1051-Configurable-max-block-fluid-ticks.patch new file mode 100644 index 0000000000..c1d19d41e3 --- /dev/null +++ b/patches/server/1051-Configurable-max-block-fluid-ticks.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Gero +Date: Mon, 19 Feb 2024 17:39:59 +0100 +Subject: [PATCH] Configurable max block/fluid ticks + + +diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java +index 6907d1be36fbdf0856c0e11983218d2fd1f9cb46..4bca3d20d1a01270a10c1e643a312fe462305b5d 100644 +--- a/src/main/java/net/minecraft/server/level/ServerLevel.java ++++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +@@ -849,9 +849,9 @@ public class ServerLevel extends Level implements WorldGenLevel { + if (!this.isDebug() && flag) { + j = this.getGameTime(); + gameprofilerfiller.push("blockTicks"); +- this.blockTicks.tick(j, 65536, this::tickBlock); ++ this.blockTicks.tick(j, paperConfig().environment.maxBlockTicks, this::tickBlock); // Paper - configurable max block ticks + gameprofilerfiller.popPush("fluidTicks"); +- this.fluidTicks.tick(j, 65536, this::tickFluid); ++ this.fluidTicks.tick(j, paperConfig().environment.maxFluidTicks, this::tickFluid); // Paper - configurable max fluid ticks + gameprofilerfiller.pop(); + } + this.timings.scheduledBlocks.stopTiming(); // Paper From 880fef77ab7a1be609ed747c2dad74261aeea435 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 3 Mar 2024 12:54:52 -0800 Subject: [PATCH 006/215] Deprecate extra ban methods with raw BanEntry (#9580) --- ...96-Add-Ban-Methods-to-Player-Objects.patch | 44 +++++++++++++++++-- ...e-attack-cooldown-methods-for-Player.patch | 4 +- ...-replace-OfflinePlayer-getLastPlayed.patch | 6 +-- .../0173-Fix-Spigot-annotation-mistakes.patch | 4 +- .../0190-Add-Player-Client-Options-API.patch | 4 +- patches/api/0208-Brand-support.patch | 4 +- .../api/0218-Player-elytra-boost-API.patch | 4 +- patches/api/0245-Add-sendOpLevel-API.patch | 4 +- patches/api/0365-More-Teleport-API.patch | 4 +- ...stom-Chat-Completion-Suggestions-API.patch | 4 +- .../0377-Elder-Guardian-appearance-API.patch | 4 +- .../0385-Add-Player-Warden-Warning-API.patch | 4 +- patches/api/0398-Flying-Fall-Damage-API.patch | 4 +- patches/api/0415-Fix-BanList-API.patch | 10 ++--- .../api/0423-Add-Listing-API-for-Player.patch | 4 +- .../0437-Add-player-idle-duration-API.patch | 4 +- .../api/0448-Add-experience-points-API.patch | 4 +- 17 files changed, 76 insertions(+), 40 deletions(-) diff --git a/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch b/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch index 02815e865b..dca2c8b86c 100644 --- a/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch +++ b/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch @@ -11,19 +11,20 @@ diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/buk index abbf3d6f11350ab2dd47a277771d9f46221036bd..d8a3b6cb2d0cb035b2ab09e0327bc4f0be457ff7 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -67,6 +67,61 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -67,6 +67,73 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio * @return true if banned, otherwise false */ public boolean isBanned(); + // Paper start -+ + /** + * Permanently Bans this player from the server + * + * @param reason Reason for Ban + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} + */ + @NotNull ++ @Deprecated + public default BanEntry banPlayer(@Nullable String reason) { + return banPlayer(reason, null, null); + } @@ -33,8 +34,10 @@ index abbf3d6f11350ab2dd47a277771d9f46221036bd..d8a3b6cb2d0cb035b2ab09e0327bc4f0 + * @param reason Reason for Ban + * @param source Source of the ban, or null for default + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} + */ + @NotNull ++ @Deprecated + public default BanEntry banPlayer(@Nullable String reason, @Nullable String source) { + return banPlayer(reason, null, source); + } @@ -44,8 +47,10 @@ index abbf3d6f11350ab2dd47a277771d9f46221036bd..d8a3b6cb2d0cb035b2ab09e0327bc4f0 + * @param reason Reason for Ban + * @param expires When to expire the ban + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} + */ + @NotNull ++ @Deprecated + public default BanEntry banPlayer(@Nullable String reason, @Nullable java.util.Date expires) { + return banPlayer(reason, expires, null); + } @@ -56,12 +61,19 @@ index abbf3d6f11350ab2dd47a277771d9f46221036bd..d8a3b6cb2d0cb035b2ab09e0327bc4f0 + * @param expires When to expire the ban + * @param source Source of the ban or null for default + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} + */ + @NotNull ++ @Deprecated + public default BanEntry banPlayer(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source) { + return banPlayer(reason, expires, source, true); + } ++ ++ /** ++ * @deprecated use {@link #ban(String, Date, String)} ++ */ + @NotNull ++ @Deprecated + public default BanEntry banPlayer(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source, boolean kickIfOnline) { + BanEntry banEntry = Bukkit.getServer().getBanList(BanList.Type.NAME).addBan(getName(), reason, expires, source); + if (kickIfOnline && isOnline()) { @@ -74,10 +86,10 @@ index abbf3d6f11350ab2dd47a277771d9f46221036bd..d8a3b6cb2d0cb035b2ab09e0327bc4f0 /** * 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 d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb4ee4a128 100644 +index b1d93f16c55d3fa9a157cf26286936a799ca8025..0c13a41b442b441cba322e03a6cd4da7efb40902 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1173,6 +1173,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1173,6 +1173,186 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public void sendMap(@NotNull MapView map); // Paper start @@ -86,9 +98,11 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * + * @param reason Reason for ban + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + // For reference, Bukkit defines this as nullable, while they impl isn't, we'll follow API. + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason) { + return banPlayerFull(reason, null, null); + } @@ -99,8 +113,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * @param reason Reason for ban + * @param source Source of ban, or null for default + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason, @Nullable String source) { + return banPlayerFull(reason, null, source); + } @@ -111,8 +127,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * @param reason Reason for Ban + * @param expires When to expire the ban + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason, @Nullable java.util.Date expires) { + return banPlayerFull(reason, expires, null); + } @@ -124,8 +142,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * @param expires When to expire the ban + * @param source Source of the ban, or null for default + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source) { + banPlayer(reason, expires, source); + return banPlayerIP(reason, expires, source, true); @@ -138,8 +158,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * @param reason Reason for ban + * @param kickPlayer Whether or not to kick the player afterwards + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, boolean kickPlayer) { + return banPlayerIP(reason, null, null, kickPlayer); + } @@ -151,8 +173,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * @param source Source of ban, or null for default + * @param kickPlayer Whether or not to kick the player afterwards + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable String source, boolean kickPlayer) { + return banPlayerIP(reason, null, source, kickPlayer); + } @@ -164,8 +188,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * @param expires When to expire the ban + * @param kickPlayer Whether or not to kick the player afterwards + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires, boolean kickPlayer) { + return banPlayerIP(reason, expires, null, kickPlayer); + } @@ -176,8 +202,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * + * @param reason Reason for ban + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason) { + return banPlayerIP(reason, null, null); + } @@ -188,8 +216,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * @param reason Reason for ban + * @param source Source of ban, or null for default + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable String source) { + return banPlayerIP(reason, null, source); + } @@ -200,8 +230,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * @param reason Reason for Ban + * @param expires When to expire the ban + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires) { + return banPlayerIP(reason, expires, null); + } @@ -213,8 +245,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * @param expires When to expire the ban + * @param source Source of the ban or null for default + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source) { + return banPlayerIP(reason, expires, source, true); + } @@ -227,8 +261,10 @@ index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..07dde016220eef654901e3d78e2d37fb + * @param source Source of the ban or null for default + * @param kickPlayer if the targeted player should be kicked + * @return Ban Entry ++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)} + */ + @Nullable ++ @Deprecated + public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source, boolean kickPlayer) { + org.bukkit.BanEntry banEntry = org.bukkit.Bukkit.getServer().getBanList(org.bukkit.BanList.Type.IP).addBan(getAddress().getAddress().getHostAddress(), reason, expires, source); + if (kickPlayer && isOnline()) { diff --git a/patches/api/0145-Expose-attack-cooldown-methods-for-Player.patch b/patches/api/0145-Expose-attack-cooldown-methods-for-Player.patch index 7b7377559d..d91baa6170 100644 --- a/patches/api/0145-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/api/0145-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 07dde016220eef654901e3d78e2d37fb4ee4a128..7fe44fd8a1e93551365ea434e750f7dece9088de 100644 +index 3b80cb874dccf2ed4fde4c621f0f022ba1112bcd..5e17bab05276de4340c5f06866f2efce81a9ab65 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3195,6 +3195,28 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3219,6 +3219,28 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void setPlayerProfile(com.destroystokyo.paper.profile.@NotNull PlayerProfile profile); // Paper end - Player Profile API diff --git a/patches/api/0166-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/api/0166-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch index 1c79ffb48e..dd625f4153 100644 --- a/patches/api/0166-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/api/0166-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 d8a3b6cb2d0cb035b2ab09e0327bc4f0be457ff7..634629d8c591d0477dfa6af91fa99caf17ffa9b0 100644 +index ef85e57f812c501fac7abe7dd27c93702f66646f..f5d3e5c5d79910580b6202e7aee01341d09f6225 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -211,7 +211,9 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -223,7 +223,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 d8a3b6cb2d0cb035b2ab09e0327bc4f0be457ff7..634629d8c591d0477dfa6af91fa99caf public long getLastPlayed(); /** -@@ -234,6 +236,30 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -246,6 +248,30 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio @Nullable @Deprecated public Location getBedSpawnLocation(); diff --git a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch index 837422c19f..314bf2aa32 100644 --- a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch @@ -857,10 +857,10 @@ index 95c79c5fa0c4e30201f887da6467ce5f81c8a255..7f9c4d4b430a3f0276461346ff2621ba /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 7fe44fd8a1e93551365ea434e750f7dece9088de..2778f72af5de5cd339a8648c5631ff94d5ee1352 100644 +index 5e17bab05276de4340c5f06866f2efce81a9ab65..8f2a6f8ac70a7d5c2b8f9c17199b6eb88750a703 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1567,11 +1567,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1591,11 +1591,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Forces an update of the player's entire inventory. diff --git a/patches/api/0190-Add-Player-Client-Options-API.patch b/patches/api/0190-Add-Player-Client-Options-API.patch index f43e607850..988d0832be 100644 --- a/patches/api/0190-Add-Player-Client-Options-API.patch +++ b/patches/api/0190-Add-Player-Client-Options-API.patch @@ -231,10 +231,10 @@ index 0000000000000000000000000000000000000000..1757055d821d9ec7c728aa6c1b52fa6a + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 2778f72af5de5cd339a8648c5631ff94d5ee1352..06872dcef2d7f158ca3f25fb69b56511a0a1a90e 100644 +index 8f2a6f8ac70a7d5c2b8f9c17199b6eb88750a703..962cfd7b81a38e8e0bf4371d7c3aca80f40636af 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3214,6 +3214,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3238,6 +3238,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void resetCooldown(); // Paper end - attack cooldown API diff --git a/patches/api/0208-Brand-support.patch b/patches/api/0208-Brand-support.patch index 393665178f..9b1680d885 100644 --- a/patches/api/0208-Brand-support.patch +++ b/patches/api/0208-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 06872dcef2d7f158ca3f25fb69b56511a0a1a90e..74dd447e74bae93a568acce75a7e3818ab6e5568 100644 +index 962cfd7b81a38e8e0bf4371d7c3aca80f40636af..219a819731ec081fea4fe3ac75e617f8cd6afbbf 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3327,6 +3327,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3351,6 +3351,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM // Paper end } diff --git a/patches/api/0218-Player-elytra-boost-API.patch b/patches/api/0218-Player-elytra-boost-API.patch index 7b432696c4..62287ccf59 100644 --- a/patches/api/0218-Player-elytra-boost-API.patch +++ b/patches/api/0218-Player-elytra-boost-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player elytra boost API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 74dd447e74bae93a568acce75a7e3818ab6e5568..3f9cdf1cfd19e61e3568af536b195f08b26418ab 100644 +index 219a819731ec081fea4fe3ac75e617f8cd6afbbf..f52f35902cc6a8af5ee60cf815caef7a43372158 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3221,6 +3221,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3245,6 +3245,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @NotNull T getClientOption(com.destroystokyo.paper.@NotNull ClientOption option); // Paper end - client option API diff --git a/patches/api/0245-Add-sendOpLevel-API.patch b/patches/api/0245-Add-sendOpLevel-API.patch index 2d47c5e770..3ea062cd8c 100644 --- a/patches/api/0245-Add-sendOpLevel-API.patch +++ b/patches/api/0245-Add-sendOpLevel-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 3f9cdf1cfd19e61e3568af536b195f08b26418ab..59821aba66edbef2644bdd21646f556e773a898b 100644 +index f52f35902cc6a8af5ee60cf815caef7a43372158..d735ed635022d170c6b1080ed87f3c2a799202f6 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3240,6 +3240,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3264,6 +3264,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM } // Paper end - elytra boost API diff --git a/patches/api/0365-More-Teleport-API.patch b/patches/api/0365-More-Teleport-API.patch index 5b2f5bb571..e3595a1947 100644 --- a/patches/api/0365-More-Teleport-API.patch +++ b/patches/api/0365-More-Teleport-API.patch @@ -158,10 +158,10 @@ index e1fe5d93eb7a1f96954d907dbbe0758f25bd1ce7..948d6a08ff459afd5d4d5b151c41d94d * 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 c8a50647d34c70bc927c33c602f938a01bf6e7a9..14b744bd1a0595260c65d3870be5f3985fb95ccb 100644 +index 2501533048e4de25672d9cc0a52fa1150e6d8adb..d598eb27f131a265c163ea96ab5fb56d4cf6ecb9 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3400,6 +3400,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3424,6 +3424,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM String getClientBrandName(); // Paper end diff --git a/patches/api/0367-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0367-Custom-Chat-Completion-Suggestions-API.patch index 1eb0e934e4..90d9c68dee 100644 --- a/patches/api/0367-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/api/0367-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 14b744bd1a0595260c65d3870be5f3985fb95ccb..87d20d238071dabdbebf745d28e87b210b2436ca 100644 +index d598eb27f131a265c163ea96ab5fb56d4cf6ecb9..f7c1b6380389d81ac94005408429ac5bd79f19a6 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3284,6 +3284,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3308,6 +3308,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void sendOpLevel(byte level); // Paper end - sendOpLevel API diff --git a/patches/api/0377-Elder-Guardian-appearance-API.patch b/patches/api/0377-Elder-Guardian-appearance-API.patch index 338c1b65a3..ca5e23620f 100644 --- a/patches/api/0377-Elder-Guardian-appearance-API.patch +++ b/patches/api/0377-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 87d20d238071dabdbebf745d28e87b210b2436ca..ada7cfe2070eae77591b3138b88d389fbaab281a 100644 +index f7c1b6380389d81ac94005408429ac5bd79f19a6..deea445fe7b69d36de61e001f617a837c9a0eb2d 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3464,6 +3464,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3488,6 +3488,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/0385-Add-Player-Warden-Warning-API.patch b/patches/api/0385-Add-Player-Warden-Warning-API.patch index 1bc7d6a95a..fdc917934f 100644 --- a/patches/api/0385-Add-Player-Warden-Warning-API.patch +++ b/patches/api/0385-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 ada7cfe2070eae77591b3138b88d389fbaab281a..8a862dbf093ca0812aa1ce8def1e650380c303d0 100644 +index deea445fe7b69d36de61e001f617a837c9a0eb2d..e855cddf37c453ea3f8f0f4fc21dd2358258e28d 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3480,6 +3480,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3504,6 +3504,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/0398-Flying-Fall-Damage-API.patch b/patches/api/0398-Flying-Fall-Damage-API.patch index 3c619f5b43..69dcbced37 100644 --- a/patches/api/0398-Flying-Fall-Damage-API.patch +++ b/patches/api/0398-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 bfa5a218576c9db147da75ec39cf8a8f6e9f6157..9d81aec1346d07faa47745a3cb79bac4a8a4ffa3 100644 +index 6afced1da637e4162972b0ff1f6c9cf42c256a02..6fc27c35f8533b37d82f0db5605d4d06e70af18b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1835,6 +1835,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1859,6 +1859,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void setAllowFlight(boolean flight); diff --git a/patches/api/0415-Fix-BanList-API.patch b/patches/api/0415-Fix-BanList-API.patch index 351f4dae16..1fb6e9abf8 100644 --- a/patches/api/0415-Fix-BanList-API.patch +++ b/patches/api/0415-Fix-BanList-API.patch @@ -36,10 +36,10 @@ index 548f6d28c28d74bed8b58ee82875909354afe132..a77c0411a68a9bad33ddfb335b7a996a /** * 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 634629d8c591d0477dfa6af91fa99caf17ffa9b0..ef6cb124adc98cb5231dc44e243450a2340f74af 100644 +index f5d3e5c5d79910580b6202e7aee01341d09f6225..6a84c3d0d15251694bb7a05393b9ff7a4d8e0617 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -135,7 +135,7 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -147,7 +147,7 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio * (updated) previous ban */ @Nullable @@ -48,7 +48,7 @@ index 634629d8c591d0477dfa6af91fa99caf17ffa9b0..ef6cb124adc98cb5231dc44e243450a2 /** * 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 +@@ -161,7 +161,7 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio * (updated) previous ban */ @Nullable @@ -57,7 +57,7 @@ index 634629d8c591d0477dfa6af91fa99caf17ffa9b0..ef6cb124adc98cb5231dc44e243450a2 /** * 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 +@@ -175,7 +175,7 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio * (updated) previous ban */ @Nullable @@ -130,7 +130,7 @@ index e805e629cede1c4c0674282c930cb67852718c3e..5248cf08ef83c7304dd76c42a2f646bb + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index b49294027712e8d0b8aaaee1c041bc731b4cb184..8a765921b7e9ed047cfce2577408e420762f16bb 100644 +index 0966eb33f0a1cf74a2f2fc3cbb74c756848e2eeb..cc84581276a793bb8c4851ab55591f8251b6403b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -301,7 +301,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0423-Add-Listing-API-for-Player.patch b/patches/api/0423-Add-Listing-API-for-Player.patch index 609dd75c87..66d1e974c0 100644 --- a/patches/api/0423-Add-Listing-API-for-Player.patch +++ b/patches/api/0423-Add-Listing-API-for-Player.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Listing API for Player diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 8a765921b7e9ed047cfce2577408e420762f16bb..8839ccf9515ebc3d2962e5dd17e948a2a83a5241 100644 +index cc84581276a793bb8c4851ab55591f8251b6403b..0d6401cd26424c971b137c968467e29f47c03d8b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1965,6 +1965,32 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1989,6 +1989,32 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public boolean canSee(@NotNull Entity entity); diff --git a/patches/api/0437-Add-player-idle-duration-API.patch b/patches/api/0437-Add-player-idle-duration-API.patch index 9c44c6b889..d8f5d40c3c 100644 --- a/patches/api/0437-Add-player-idle-duration-API.patch +++ b/patches/api/0437-Add-player-idle-duration-API.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 8839ccf9515ebc3d2962e5dd17e948a2a83a5241..5bad312df63eb6dea705c35e0f7e4dd980f526d7 100644 +index 0d6401cd26424c971b137c968467e29f47c03d8b..0d585390066966f3afd6b88c6d80806292a3cd31 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3621,6 +3621,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3645,6 +3645,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void increaseWardenWarningLevel(); // Paper end diff --git a/patches/api/0448-Add-experience-points-API.patch b/patches/api/0448-Add-experience-points-API.patch index eac15c7249..3dcd7df05d 100644 --- a/patches/api/0448-Add-experience-points-API.patch +++ b/patches/api/0448-Add-experience-points-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 5bad312df63eb6dea705c35e0f7e4dd980f526d7..254a02ddb5dc867c9dd6c2086791f7ab94247fd3 100644 +index 0d585390066966f3afd6b88c6d80806292a3cd31..c6cb4f17469a8f2e60dd3e28d41402851ce5fb21 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1834,6 +1834,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1858,6 +1858,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param exp New total experience points */ public void setTotalExperience(int exp); From 60218cd2072197f7d4981f639551fc866d2d72e4 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 3 Mar 2024 21:10:45 +0000 Subject: [PATCH 007/215] Don't tick empty worlds (#9025) --- patches/server/0005-Paper-config-files.patch | 9 +++++---- ...052-disable-forced-empty-world-ticks.patch | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 patches/server/1052-disable-forced-empty-world-ticks.patch diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 9bc3647637..f8a1046ab5 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -15,7 +15,7 @@ public net.minecraft.server.dedicated.DedicatedServerProperties reload(Lnet/mine public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES diff --git a/build.gradle.kts b/build.gradle.kts -index 8d2aa99b4bd0d1c46c66274907a1f11d605a75da..e865c5ce514770f4fde9146b6e7138e88932c33b 100644 +index 9098a40f944a3c6c0e907013c212eb3f1895e010..f838b058e6cad9061929509047bbe25c65baecf6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,6 +11,7 @@ dependencies { @@ -1390,10 +1390,10 @@ index 0000000000000000000000000000000000000000..351fbbc577556ebbd62222615801a96b +} diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java new file mode 100644 -index 0000000000000000000000000000000000000000..1a914ab53c24476473edc433d64daca6ec1c51d9 +index 0000000000000000000000000000000000000000..15bc01b59bb67f1f5d8590c08d13537fa81ca8e1 --- /dev/null +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -0,0 +1,550 @@ +@@ -0,0 +1,551 @@ +package io.papermc.paper.configuration; + +import com.google.common.collect.HashBasedTable; @@ -1843,6 +1843,7 @@ index 0000000000000000000000000000000000000000..1a914ab53c24476473edc433d64daca6 + + public class UnsupportedSettings extends ConfigurationPart { + public boolean fixInvulnerableEndCrystalExploit = true; ++ public boolean disableWorldTickingWhenEmpty = false; + } + + public Hopper hopper; @@ -4925,7 +4926,7 @@ index 397c978c71f36c8abe1c52e545699fc7928a6917..fc45c2c4ecdf3906df6bceaf3e019c46 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ecc61c7b1b4eb887795ffd39578b70b4e77f5213..674c996af91de91ee6302cc67334b836ea4fa4de 100644 +index 50b79de15571ef30f202bae5952a9f825902e11a..aac9513ff4d3d494860bd06607cf8af5e466fd5b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -236,7 +236,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1052-disable-forced-empty-world-ticks.patch b/patches/server/1052-disable-forced-empty-world-ticks.patch new file mode 100644 index 0000000000..6f3fb1c6f0 --- /dev/null +++ b/patches/server/1052-disable-forced-empty-world-ticks.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Shane Freeder +Date: Tue, 21 Mar 2023 23:51:46 +0000 +Subject: [PATCH] disable forced empty world ticks + + +diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java +index 4bca3d20d1a01270a10c1e643a312fe462305b5d..bf5e47e8c3706590fdc0731bd9a5858b56d06136 100644 +--- a/src/main/java/net/minecraft/server/level/ServerLevel.java ++++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +@@ -876,7 +876,7 @@ public class ServerLevel extends Level implements WorldGenLevel { + + this.handlingTick = false; + gameprofilerfiller.pop(); +- boolean flag1 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players ++ boolean flag1 = !paperConfig().unsupportedSettings.disableWorldTickingWhenEmpty || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players // Paper - restore this + + if (flag1) { + this.resetEmptyTime(); From b21eb4d9a4d0d0bea857675e2186657592df548e Mon Sep 17 00:00:00 2001 From: Yannick Lamprecht <1420893+yannicklamprecht@users.noreply.github.com> Date: Sun, 3 Mar 2024 22:40:18 +0100 Subject: [PATCH 008/215] add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta (#10245) The existing method with PotionEffect suggests that all attributes are used. In fact, only the PotionEffectType and the duration are used. --------- Co-authored-by: Bjarne Koll --- patches/api/0298-Missing-Entity-API.patch | 136 ---------- .../0465-Suspicious-Effect-Entry-API.patch | 215 +++++++++++++++ patches/server/0009-MC-Utils.patch | 30 ++- .../server/0134-Basic-PlayerProfile-API.patch | 8 +- ...xception-in-entity-and-block-entity-.patch | 8 +- patches/server/0587-Missing-Entity-API.patch | 48 ---- .../server/0985-Rewrite-chunk-system.patch | 8 +- .../1053-Suspicious-Effect-Entry-API.patch | 247 ++++++++++++++++++ 8 files changed, 502 insertions(+), 198 deletions(-) create mode 100644 patches/api/0465-Suspicious-Effect-Entry-API.patch create mode 100644 patches/server/1053-Suspicious-Effect-Entry-API.patch diff --git a/patches/api/0298-Missing-Entity-API.patch b/patches/api/0298-Missing-Entity-API.patch index 7dff1ccf46..2e2d58e8f3 100644 --- a/patches/api/0298-Missing-Entity-API.patch +++ b/patches/api/0298-Missing-Entity-API.patch @@ -63,62 +63,6 @@ index 0000000000000000000000000000000000000000..39ad7d283609d7e427a2ab35b6fad839 + SchoolableFish getSchoolLeader(); + +} -diff --git a/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntry.java b/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntry.java -new file mode 100644 -index 0000000000000000000000000000000000000000..c8446678e39e777bd2c9992d5c577f4c7606ce15 ---- /dev/null -+++ b/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntry.java -@@ -0,0 +1,37 @@ -+package io.papermc.paper.potion; -+ -+import org.bukkit.potion.PotionEffectType; -+import org.jetbrains.annotations.Contract; -+import org.jetbrains.annotations.NotNull; -+ -+/** -+ * Represents a {@link PotionEffectType} paired with a duration. -+ */ -+public sealed interface SuspiciousEffectEntry permits SuspiciousEffectEntryImpl { -+ -+ /** -+ * Gets the effect type. -+ * -+ * @return type -+ */ -+ @NotNull PotionEffectType effect(); -+ -+ /** -+ * Gets the duration for this effect instance. -+ * -+ * @return duration (in ticks) -+ */ -+ int duration(); -+ -+ /** -+ * Creates a new instance of SuspiciousEffectEntry. -+ * -+ * @param effectType effect type -+ * @param duration duration (in ticks) -+ * @return new instance of an entry -+ */ -+ @Contract(value = "_, _ -> new", pure = true) -+ static @NotNull SuspiciousEffectEntry create(final @NotNull PotionEffectType effectType, final int duration) { -+ return new SuspiciousEffectEntryImpl(effectType, duration); -+ } -+} -diff --git a/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntryImpl.java b/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntryImpl.java -new file mode 100644 -index 0000000000000000000000000000000000000000..e5002ccaef9ea7a9db94296ad0d66cdae050cdd1 ---- /dev/null -+++ b/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntryImpl.java -@@ -0,0 +1,7 @@ -+package io.papermc.paper.potion; -+ -+import org.bukkit.potion.PotionEffectType; -+import org.jetbrains.annotations.NotNull; -+ -+record SuspiciousEffectEntryImpl(@NotNull PotionEffectType effect, int duration) implements SuspiciousEffectEntry { -+} diff --git a/src/main/java/org/bukkit/entity/AbstractHorse.java b/src/main/java/org/bukkit/entity/AbstractHorse.java index 0d88dce9978243a1f995c5fb448c5d71b01136eb..8b1048c94dffd058eb9fd9144f7f59fc9bd219ad 100644 --- a/src/main/java/org/bukkit/entity/AbstractHorse.java @@ -719,86 +663,6 @@ index 11b6d1aba7d1f6ae1f3c822193486f5a1478e105..709c8fc3dde786f45ff13d6ee6c405ff + * @see #isAggressive() + */ + void setAggressive(boolean aggressive); -+ // Paper end - } -diff --git a/src/main/java/org/bukkit/entity/MushroomCow.java b/src/main/java/org/bukkit/entity/MushroomCow.java -index cef1700834643fe28ed5737578d91ecefbe99e2f..794b7b4a870a0d289476074e3a3f46552604c954 100644 ---- a/src/main/java/org/bukkit/entity/MushroomCow.java -+++ b/src/main/java/org/bukkit/entity/MushroomCow.java -@@ -95,4 +95,75 @@ public interface MushroomCow extends Cow { - */ - BROWN; - } -+ // Paper start -+ /** -+ * Gets how long the effect applied to stew -+ * from this mushroom cow is. -+ * -+ * @return duration of the effect (in ticks) -+ * @deprecated Mushroom cows can now hold multiple effects, use {@link #getStewEffects()} -+ */ -+ @Deprecated(forRemoval = true) -+ @org.jetbrains.annotations.Contract("-> fail") -+ default int getStewEffectDuration() { -+ throw new UnsupportedOperationException("Mushroom cows can now hold multiple effects. Use #getStewEffects"); -+ } -+ -+ /** -+ * Sets how long the effect applied to stew -+ * from this mushroom cow is. -+ * -+ * @param duration duration of the effect (in ticks) -+ * @deprecated Mushroom cows can now hold multiple effects, use {@link #setStewEffects(java.util.List)} -+ */ -+ @Deprecated(forRemoval = true) -+ @org.jetbrains.annotations.Contract("_ -> fail") -+ default void setStewEffectDuration(int duration) { -+ throw new UnsupportedOperationException("Mushroom cows can now hold multiple effects. Use #setStewEffects"); -+ } -+ -+ /** -+ * Gets the type of effect applied to stew -+ * from this mushroom cow is. -+ * -+ * @return effect type, or null if an effect is currently not set -+ * @deprecated Mushroom cows can now hold multiple effects, use {@link #getStewEffects()} -+ * @throws UnsupportedOperationException -+ */ -+ @Deprecated(forRemoval = true) -+ @org.jetbrains.annotations.Contract("-> fail") -+ default org.bukkit.potion.PotionEffectType getStewEffectType() { -+ throw new UnsupportedOperationException("Mushroom cows can now hold multiple effects. Use #getStewEffects"); -+ } -+ -+ /** -+ * Sets the type of effect applied to stew -+ * from this mushroom cow is. -+ * -+ * @param type new effect type -+ * or null if this cow does not give effects -+ * @deprecated Mushroom cows can now hold multiple effects, use {@link #setStewEffects(java.util.List)} -+ * @throws UnsupportedOperationException -+ */ -+ @Deprecated(forRemoval = true) -+ @org.jetbrains.annotations.Contract("_ -> fail") -+ default void setStewEffect(@org.jetbrains.annotations.Nullable org.bukkit.potion.PotionEffectType type) { -+ throw new UnsupportedOperationException("Mushroom cows can now hold multiple effects. Use #setStewEffects"); -+ } -+ -+ /** -+ * Returns an immutable collection of the effects applied to stew -+ * items for this mushroom cow. -+ * -+ * @return immutable effect entry collection -+ */ -+ java.util.@NotNull @org.jetbrains.annotations.Unmodifiable List getStewEffects(); -+ -+ /** -+ * Sets effects applied to stew items for this mushroom cow. -+ * -+ * @param effects effect entry list -+ */ -+ void setStewEffects(java.util.@NotNull List effects); + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Panda.java b/src/main/java/org/bukkit/entity/Panda.java diff --git a/patches/api/0465-Suspicious-Effect-Entry-API.patch b/patches/api/0465-Suspicious-Effect-Entry-API.patch new file mode 100644 index 0000000000..410dfe9df1 --- /dev/null +++ b/patches/api/0465-Suspicious-Effect-Entry-API.patch @@ -0,0 +1,215 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> +Date: Sun, 3 Mar 2024 19:45:52 +0100 +Subject: [PATCH] Suspicious Effect Entry API + +Exposes a new suspicious effect entry type that properly represents +storable effects in the context of suspicious effects as they only +define the potion effect type and duration. + +This differentiates them from the existing PotionEffect API found in +bukkit and hence clarifies that storable values in the parts of the API +in which it replaces PotionEffect. + +Co-authored-by: Yannick Lamprecht + +diff --git a/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntry.java b/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntry.java +new file mode 100644 +index 0000000000000000000000000000000000000000..c8446678e39e777bd2c9992d5c577f4c7606ce15 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntry.java +@@ -0,0 +1,37 @@ ++package io.papermc.paper.potion; ++ ++import org.bukkit.potion.PotionEffectType; ++import org.jetbrains.annotations.Contract; ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Represents a {@link PotionEffectType} paired with a duration. ++ */ ++public sealed interface SuspiciousEffectEntry permits SuspiciousEffectEntryImpl { ++ ++ /** ++ * Gets the effect type. ++ * ++ * @return type ++ */ ++ @NotNull PotionEffectType effect(); ++ ++ /** ++ * Gets the duration for this effect instance. ++ * ++ * @return duration (in ticks) ++ */ ++ int duration(); ++ ++ /** ++ * Creates a new instance of SuspiciousEffectEntry. ++ * ++ * @param effectType effect type ++ * @param duration duration (in ticks) ++ * @return new instance of an entry ++ */ ++ @Contract(value = "_, _ -> new", pure = true) ++ static @NotNull SuspiciousEffectEntry create(final @NotNull PotionEffectType effectType, final int duration) { ++ return new SuspiciousEffectEntryImpl(effectType, duration); ++ } ++} +diff --git a/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntryImpl.java b/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntryImpl.java +new file mode 100644 +index 0000000000000000000000000000000000000000..e5002ccaef9ea7a9db94296ad0d66cdae050cdd1 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntryImpl.java +@@ -0,0 +1,7 @@ ++package io.papermc.paper.potion; ++ ++import org.bukkit.potion.PotionEffectType; ++import org.jetbrains.annotations.NotNull; ++ ++record SuspiciousEffectEntryImpl(@NotNull PotionEffectType effect, int duration) implements SuspiciousEffectEntry { ++} +diff --git a/src/main/java/org/bukkit/entity/MushroomCow.java b/src/main/java/org/bukkit/entity/MushroomCow.java +index 86c0043ef4e1288b6fe2f68a9b6d01c3de2c3454..21503b85e1e309e3e8b90517e98572fa6a29fc6f 100644 +--- a/src/main/java/org/bukkit/entity/MushroomCow.java ++++ b/src/main/java/org/bukkit/entity/MushroomCow.java +@@ -34,14 +34,30 @@ public interface MushroomCow extends Cow, io.papermc.paper.entity.Shearable { // + * Adds a custom potion effect to be applied to the next suspicious stew + * received from milking this {@link MushroomCow}. + * ++ * @deprecated use {@link #addEffectToNextStew(io.papermc.paper.potion.SuspiciousEffectEntry, boolean)} as PotionEffect suggests that all attributes are used. In fact, only the PotionEffectType and the duration are used. + * @param effect the potion effect to add + * @param overwrite true if any existing effect of the same type should be + * overwritten + * @return true if the effects to be applied to the suspicious stew changed + * as a result of this call + */ ++ @Deprecated(forRemoval = true) // Paper - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + boolean addEffectToNextStew(@NotNull PotionEffect effect, boolean overwrite); + ++ // Paper start - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta ++ /** ++ * Adds a suspicious effect entry to be applied to the next suspicious stew ++ * received from milking this {@link MushroomCow}. ++ * ++ * @param suspiciousEffectEntry the suspicious effect entry to add ++ * @param overwrite true if any existing effect of the same type should be ++ * overwritten ++ * @return true if the effects to be applied to the suspicious stew changed ++ * as a result of this call ++ */ ++ boolean addEffectToNextStew(@NotNull io.papermc.paper.potion.SuspiciousEffectEntry suspiciousEffectEntry, boolean overwrite); ++ // Paper end - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta ++ + /** + * Removes a custom potion effect from being applied to the next suspicious + * stew received from milking this {@link MushroomCow}. +@@ -95,4 +111,75 @@ public interface MushroomCow extends Cow, io.papermc.paper.entity.Shearable { // + */ + BROWN; + } ++ // Paper start ++ /** ++ * Gets how long the effect applied to stew ++ * from this mushroom cow is. ++ * ++ * @return duration of the effect (in ticks) ++ * @deprecated Mushroom cows can now hold multiple effects, use {@link #getStewEffects()} ++ */ ++ @Deprecated(forRemoval = true) ++ @org.jetbrains.annotations.Contract("-> fail") ++ default int getStewEffectDuration() { ++ throw new UnsupportedOperationException("Mushroom cows can now hold multiple effects. Use #getStewEffects"); ++ } ++ ++ /** ++ * Sets how long the effect applied to stew ++ * from this mushroom cow is. ++ * ++ * @param duration duration of the effect (in ticks) ++ * @deprecated Mushroom cows can now hold multiple effects, use {@link #setStewEffects(java.util.List)} ++ */ ++ @Deprecated(forRemoval = true) ++ @org.jetbrains.annotations.Contract("_ -> fail") ++ default void setStewEffectDuration(int duration) { ++ throw new UnsupportedOperationException("Mushroom cows can now hold multiple effects. Use #setStewEffects"); ++ } ++ ++ /** ++ * Gets the type of effect applied to stew ++ * from this mushroom cow is. ++ * ++ * @return effect type, or null if an effect is currently not set ++ * @deprecated Mushroom cows can now hold multiple effects, use {@link #getStewEffects()} ++ * @throws UnsupportedOperationException ++ */ ++ @Deprecated(forRemoval = true) ++ @org.jetbrains.annotations.Contract("-> fail") ++ default org.bukkit.potion.PotionEffectType getStewEffectType() { ++ throw new UnsupportedOperationException("Mushroom cows can now hold multiple effects. Use #getStewEffects"); ++ } ++ ++ /** ++ * Sets the type of effect applied to stew ++ * from this mushroom cow is. ++ * ++ * @param type new effect type ++ * or null if this cow does not give effects ++ * @deprecated Mushroom cows can now hold multiple effects, use {@link #setStewEffects(java.util.List)} ++ * @throws UnsupportedOperationException ++ */ ++ @Deprecated(forRemoval = true) ++ @org.jetbrains.annotations.Contract("_ -> fail") ++ default void setStewEffect(@org.jetbrains.annotations.Nullable org.bukkit.potion.PotionEffectType type) { ++ throw new UnsupportedOperationException("Mushroom cows can now hold multiple effects. Use #setStewEffects"); ++ } ++ ++ /** ++ * Returns an immutable collection of the effects applied to stew ++ * items for this mushroom cow. ++ * ++ * @return immutable effect entry collection ++ */ ++ java.util.@NotNull @org.jetbrains.annotations.Unmodifiable List getStewEffects(); ++ ++ /** ++ * Sets effects applied to stew items for this mushroom cow. ++ * ++ * @param effects effect entry list ++ */ ++ void setStewEffects(java.util.@NotNull List effects); ++ // Paper end + } +diff --git a/src/main/java/org/bukkit/inventory/meta/SuspiciousStewMeta.java b/src/main/java/org/bukkit/inventory/meta/SuspiciousStewMeta.java +index c2f4282c188e7d8041459cb3acaad674443ba147..c5bfc062fcca56495f44039d83356fc1fd7568d0 100644 +--- a/src/main/java/org/bukkit/inventory/meta/SuspiciousStewMeta.java ++++ b/src/main/java/org/bukkit/inventory/meta/SuspiciousStewMeta.java +@@ -32,13 +32,28 @@ public interface SuspiciousStewMeta extends ItemMeta { + /** + * Adds a custom potion effect to this suspicious stew. + * ++ * @deprecated use {@link #addCustomEffect(io.papermc.paper.potion.SuspiciousEffectEntry, boolean)} as PotionEffect suggests that all attributes are used. In fact, only the PotionEffectType and the duration are used. + * @param effect the potion effect to add + * @param overwrite true if any existing effect of the same type should be + * overwritten + * @return true if the suspicious stew meta changed as a result of this call + */ ++ @Deprecated // Paper - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + boolean addCustomEffect(@NotNull PotionEffect effect, boolean overwrite); + ++ // Paper start - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta ++ /** ++ * Adds a custom potion effect to this suspicious stew. ++ * ++ * @param suspiciousEffectEntry the suspicious effect entry to add ++ * @param overwrite true if any existing effect of the same type should be ++ * overwritten ++ * @return true if the suspicious stew meta changed as a result of this call ++ * as a result of this call ++ */ ++ boolean addCustomEffect(@NotNull io.papermc.paper.potion.SuspiciousEffectEntry suspiciousEffectEntry, boolean overwrite); ++ // Paper end - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta ++ + /** + * Removes a custom potion effect from this suspicious stew. + * diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index 480ae295af..68ee604566 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -3482,12 +3482,13 @@ index 0000000000000000000000000000000000000000..cea9c098ade00ee87b8efc8164ab72f5 +} diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java new file mode 100644 -index 0000000000000000000000000000000000000000..8ebef203d1e2584aed61bd61a93e231416eda749 +index 0000000000000000000000000000000000000000..722dcae9ab65bcacb9fb89dfaa63715d87816476 --- /dev/null +++ b/src/main/java/io/papermc/paper/util/MCUtil.java -@@ -0,0 +1,528 @@ +@@ -0,0 +1,554 @@ +package io.papermc.paper.util; + ++import com.google.common.collect.ImmutableList; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import io.papermc.paper.math.BlockPosition; +import io.papermc.paper.math.FinePosition; @@ -3509,6 +3510,7 @@ index 0000000000000000000000000000000000000000..8ebef203d1e2584aed61bd61a93e2314 +import org.bukkit.block.BlockFace; +import org.bukkit.craftbukkit.CraftWorld; +import org.bukkit.craftbukkit.util.Waitable; ++import org.jetbrains.annotations.NotNull; +import org.spigotmc.AsyncCatcher; + +import javax.annotation.Nonnull; @@ -3524,6 +3526,7 @@ index 0000000000000000000000000000000000000000..8ebef203d1e2584aed61bd61a93e2314 +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.BiConsumer; +import java.util.function.Consumer; ++import java.util.function.Predicate; +import java.util.function.Supplier; + +public final class MCUtil { @@ -4013,6 +4016,29 @@ index 0000000000000000000000000000000000000000..8ebef203d1e2584aed61bd61a93e2314 + public static int getTicketLevelFor(net.minecraft.world.level.chunk.ChunkStatus status) { + return net.minecraft.server.level.ChunkMap.MAX_VIEW_DISTANCE + net.minecraft.world.level.chunk.ChunkStatus.getDistance(status); + } ++ ++ @NotNull ++ public static List copyListAndAdd(@NotNull final List original, ++ @NotNull final T newElement) { ++ return ImmutableList.builderWithExpectedSize(original.size() + 1) ++ .addAll(original) ++ .add(newElement) ++ .build(); ++ } ++ ++ @NotNull ++ public static List copyListAndRemoveIf(@NotNull final List original, ++ @NotNull final Predicate removalPredicate) { ++ final ImmutableList.Builder builder = ImmutableList.builderWithExpectedSize(original.size()); ++ for (int i = 0; i < original.size(); i++) { ++ final T value = original.get(i); ++ if (removalPredicate.test(value)) continue; ++ ++ builder.add(value); ++ } ++ ++ return builder.build(); ++ } +} diff --git a/src/main/java/io/papermc/paper/util/StackWalkerUtil.java b/src/main/java/io/papermc/paper/util/StackWalkerUtil.java new file mode 100644 diff --git a/patches/server/0134-Basic-PlayerProfile-API.patch b/patches/server/0134-Basic-PlayerProfile-API.patch index 84b49f7cf9..a41c0666bc 100644 --- a/patches/server/0134-Basic-PlayerProfile-API.patch +++ b/patches/server/0134-Basic-PlayerProfile-API.patch @@ -546,7 +546,7 @@ index 0000000000000000000000000000000000000000..7ac27392a8647ef7d0dc78efe78703e9 + @NotNull GameProfile buildGameProfile(); +} diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java -index 8ebef203d1e2584aed61bd61a93e231416eda749..36c0215a1ebc9372e5f355ecbe34fc1aaefd6903 100644 +index 722dcae9ab65bcacb9fb89dfaa63715d87816476..c57e8b6458800fe9bb27050eecc42bd3e5cf5a15 100644 --- a/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/src/main/java/io/papermc/paper/util/MCUtil.java @@ -1,5 +1,7 @@ @@ -554,10 +554,10 @@ index 8ebef203d1e2584aed61bd61a93e231416eda749..36c0215a1ebc9372e5f355ecbe34fc1a +import com.destroystokyo.paper.profile.CraftPlayerProfile; +import com.destroystokyo.paper.profile.PlayerProfile; + import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ThreadFactoryBuilder; import io.papermc.paper.math.BlockPosition; - import io.papermc.paper.math.FinePosition; -@@ -17,6 +19,7 @@ import net.minecraft.world.level.ClipContext; +@@ -18,6 +20,7 @@ import net.minecraft.world.level.ClipContext; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; import org.apache.commons.lang.exception.ExceptionUtils; @@ -565,7 +565,7 @@ index 8ebef203d1e2584aed61bd61a93e231416eda749..36c0215a1ebc9372e5f355ecbe34fc1a import org.bukkit.Location; import org.bukkit.block.BlockFace; import org.bukkit.craftbukkit.CraftWorld; -@@ -360,6 +363,10 @@ public final class MCUtil { +@@ -363,6 +366,10 @@ public final class MCUtil { return run.get(); } diff --git a/patches/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch b/patches/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch index 8439bb0bac..40b73f5045 100644 --- a/patches/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch +++ b/patches/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch @@ -13,12 +13,12 @@ Shulkers) may need to be changed in order for it to re-save properly No more crashing though. diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java -index 36c0215a1ebc9372e5f355ecbe34fc1aaefd6903..0d3ccf3ae219a3b24d17be03de8fd4906cb7235d 100644 +index c57e8b6458800fe9bb27050eecc42bd3e5cf5a15..83c7b47e189a934345f6548df9b101cc8c501910 100644 --- a/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/src/main/java/io/papermc/paper/util/MCUtil.java -@@ -532,4 +532,19 @@ public final class MCUtil { - public static int getTicketLevelFor(net.minecraft.world.level.chunk.ChunkStatus status) { - return net.minecraft.server.level.ChunkMap.MAX_VIEW_DISTANCE + net.minecraft.world.level.chunk.ChunkStatus.getDistance(status); +@@ -558,4 +558,19 @@ public final class MCUtil { + + return builder.build(); } + + @Nullable diff --git a/patches/server/0587-Missing-Entity-API.patch b/patches/server/0587-Missing-Entity-API.patch index 520f0899c0..1d25ac6396 100644 --- a/patches/server/0587-Missing-Entity-API.patch +++ b/patches/server/0587-Missing-Entity-API.patch @@ -848,54 +848,6 @@ index fc83dde12957e575a4f1d4bee73c320bab95606f..ae430c36ed433e337dd92f197f1717fb + } + // Paper end } -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java -index cc69f471c623c65251ccf7015499d8dbdb70ffad..a41a85ad89a177759c97d661a89b8b5dc419db1b 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java -@@ -89,6 +89,43 @@ public class CraftMushroomCow extends CraftCow implements MushroomCow { - this.getHandle().setVariant(net.minecraft.world.entity.animal.MushroomCow.MushroomType.values()[variant.ordinal()]); - } - -+ // Paper start -+ @Override -+ public java.util.List getStewEffects() { -+ if (this.getHandle().stewEffects == null) { -+ return java.util.List.of(); -+ } -+ -+ java.util.List nmsPairs = new java.util.ArrayList<>(this.getHandle().stewEffects.size()); -+ for (final net.minecraft.world.level.block.SuspiciousEffectHolder.EffectEntry effect : this.getHandle().stewEffects) { -+ nmsPairs.add(io.papermc.paper.potion.SuspiciousEffectEntry.create( -+ org.bukkit.craftbukkit.potion.CraftPotionEffectType.minecraftToBukkit(effect.effect()), -+ effect.duration() -+ )); -+ } -+ -+ return java.util.Collections.unmodifiableList(nmsPairs); -+ } -+ -+ @Override -+ public void setStewEffects(final java.util.List effects) { -+ if (effects.isEmpty()) { -+ this.getHandle().stewEffects = null; -+ return; -+ } -+ -+ java.util.List nmsPairs = new java.util.ArrayList<>(effects.size()); -+ for (final io.papermc.paper.potion.SuspiciousEffectEntry effect : effects) { -+ nmsPairs.add(new net.minecraft.world.level.block.SuspiciousEffectHolder.EffectEntry( -+ org.bukkit.craftbukkit.potion.CraftPotionEffectType.bukkitToMinecraft(effect.effect()), -+ effect.duration() -+ )); -+ } -+ -+ this.getHandle().stewEffects = nmsPairs; -+ } -+ // Paper end -+ - @Override - public String toString() { - return "CraftMushroomCow"; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java index 5467e4a74b70ff57b49d9e6bc686c493178f8511..01d104d91de9e1319d27e39d3f474318c7809486 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java diff --git a/patches/server/0985-Rewrite-chunk-system.patch b/patches/server/0985-Rewrite-chunk-system.patch index 9f2ea2a9eb..946ea26ece 100644 --- a/patches/server/0985-Rewrite-chunk-system.patch +++ b/patches/server/0985-Rewrite-chunk-system.patch @@ -14610,10 +14610,10 @@ index cea9c098ade00ee87b8efc8164ab72f5279758f0..197224e31175252d8438a8df585bbb65 + } } diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java -index 0d3ccf3ae219a3b24d17be03de8fd4906cb7235d..850f75172e9efa72cabb8e5bd124b96a0b1a945f 100644 +index 83c7b47e189a934345f6548df9b101cc8c501910..e028353e0261310afc42ca0454b723d9f1ffc131 100644 --- a/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/src/main/java/io/papermc/paper/util/MCUtil.java -@@ -6,17 +6,30 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; +@@ -7,17 +7,30 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; import io.papermc.paper.math.BlockPosition; import io.papermc.paper.math.FinePosition; import io.papermc.paper.math.Position; @@ -14644,7 +14644,7 @@ index 0d3ccf3ae219a3b24d17be03de8fd4906cb7235d..850f75172e9efa72cabb8e5bd124b96a import net.minecraft.world.phys.Vec3; import org.apache.commons.lang.exception.ExceptionUtils; import com.mojang.authlib.GameProfile; -@@ -28,8 +41,11 @@ import org.spigotmc.AsyncCatcher; +@@ -30,8 +43,11 @@ import org.spigotmc.AsyncCatcher; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -14656,7 +14656,7 @@ index 0d3ccf3ae219a3b24d17be03de8fd4906cb7235d..850f75172e9efa72cabb8e5bd124b96a import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.LinkedBlockingQueue; -@@ -529,6 +545,100 @@ public final class MCUtil { +@@ -532,6 +548,100 @@ public final class MCUtil { } } diff --git a/patches/server/1053-Suspicious-Effect-Entry-API.patch b/patches/server/1053-Suspicious-Effect-Entry-API.patch new file mode 100644 index 0000000000..31c7a46ac6 --- /dev/null +++ b/patches/server/1053-Suspicious-Effect-Entry-API.patch @@ -0,0 +1,247 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> +Date: Sun, 3 Mar 2024 19:43:40 +0100 +Subject: [PATCH] Suspicious Effect Entry API + +Exposes a new suspicious effect entry type that properly represents +storable effects in the context of suspicious effects as they only +define the potion effect type and duration. + +This differentiates them from the existing PotionEffect API found in +bukkit and hence clarifies that storable values in the parts of the API +in which it replaces PotionEffect. + +Co-authored-by: Yannick Lamprecht + +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java +index b453a47cadbda2e22262bcdc5454c4c6cf5b2583..983e0cdbd1bd950807967a36cba49859fb956f31 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java +@@ -32,20 +32,32 @@ public class CraftMushroomCow extends CraftCow implements MushroomCow, io.paperm + return ImmutableList.of(); + } + ++ // Paper start - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + @Override + public boolean addEffectToNextStew(PotionEffect potionEffect, boolean overwrite) { + Preconditions.checkArgument(potionEffect != null, "PotionEffect cannot be null"); +- MobEffectInstance minecraftPotionEffect = CraftPotionUtil.fromBukkit(potionEffect); +- if (!overwrite && this.hasEffectForNextStew(potionEffect.getType())) { ++ return addEffectToNextStew(io.papermc.paper.potion.SuspiciousEffectEntry.create(potionEffect.getType(), potionEffect.getDuration()), overwrite); ++ } ++ ++ @Override ++ public boolean addEffectToNextStew(io.papermc.paper.potion.SuspiciousEffectEntry suspiciousEffectEntry, boolean overwrite) { ++ Preconditions.checkArgument(suspiciousEffectEntry != null, "SuspiciousEffectEntry cannot be null"); ++ MobEffect minecraftPotionEffect = CraftPotionEffectType.bukkitToMinecraft(suspiciousEffectEntry.effect()); ++ if (!overwrite && this.hasEffectForNextStew(suspiciousEffectEntry.effect())) { + return false; + } ++ SuspiciousEffectHolder.EffectEntry recordSuspiciousEffect = new SuspiciousEffectHolder.EffectEntry(minecraftPotionEffect, suspiciousEffectEntry.duration()); ++ this.removeEffectFromNextStew(suspiciousEffectEntry.effect()); // Avoid duplicates of effects ++ // Paper start - fix modification of immutable stew effects list + if (this.getHandle().stewEffects == null) { +- this.getHandle().stewEffects = new ArrayList<>(); ++ this.getHandle().stewEffects = List.of(recordSuspiciousEffect); ++ } else { ++ this.getHandle().stewEffects = io.papermc.paper.util.MCUtil.copyListAndAdd(this.getHandle().stewEffects, recordSuspiciousEffect); + } +- SuspiciousEffectHolder.EffectEntry recordSuspiciousEffect = new SuspiciousEffectHolder.EffectEntry(minecraftPotionEffect.getEffect(), minecraftPotionEffect.getDuration()); +- this.removeEffectFromNextStew(potionEffect.getType()); // Avoid duplicates of effects +- return this.getHandle().stewEffects.add(recordSuspiciousEffect); ++ // Paper end - fix modification of immutable stew effects list ++ return true; + } ++ // Paper end - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + + @Override + public boolean removeEffectFromNextStew(PotionEffectType potionEffectType) { +@@ -54,7 +66,21 @@ public class CraftMushroomCow extends CraftCow implements MushroomCow, io.paperm + return false; + } + MobEffect minecraftPotionEffectType = CraftPotionEffectType.bukkitToMinecraft(potionEffectType); +- return this.getHandle().stewEffects.removeIf(recordSuspiciousEffect -> recordSuspiciousEffect.effect().equals(minecraftPotionEffectType)); ++ // Paper start - fix modification of immutable stew effects list ++ if (this.getHandle().stewEffects == null) return false; ++ ++ final int oldSize = this.getHandle().stewEffects.size(); ++ this.getHandle().stewEffects = io.papermc.paper.util.MCUtil.copyListAndRemoveIf( ++ this.getHandle().stewEffects, s -> java.util.Objects.equals(s.effect(), minecraftPotionEffectType) ++ ); ++ ++ final int newSize = this.getHandle().stewEffects.size(); ++ if (newSize == 0) { ++ this.getHandle().stewEffects = null; // Null the empty list, mojang expect this ++ } ++ ++ return oldSize != newSize; // Yield back if the size changed, implying an object was removed. ++ // Paper end - fix modification of immutable stew effects list + } + + @Override +@@ -89,6 +115,43 @@ public class CraftMushroomCow extends CraftCow implements MushroomCow, io.paperm + this.getHandle().setVariant(net.minecraft.world.entity.animal.MushroomCow.MushroomType.values()[variant.ordinal()]); + } + ++ // Paper start ++ @Override ++ public java.util.List getStewEffects() { ++ if (this.getHandle().stewEffects == null) { ++ return java.util.List.of(); ++ } ++ ++ java.util.List nmsPairs = new java.util.ArrayList<>(this.getHandle().stewEffects.size()); ++ for (final net.minecraft.world.level.block.SuspiciousEffectHolder.EffectEntry effect : this.getHandle().stewEffects) { ++ nmsPairs.add(io.papermc.paper.potion.SuspiciousEffectEntry.create( ++ org.bukkit.craftbukkit.potion.CraftPotionEffectType.minecraftToBukkit(effect.effect()), ++ effect.duration() ++ )); ++ } ++ ++ return java.util.Collections.unmodifiableList(nmsPairs); ++ } ++ ++ @Override ++ public void setStewEffects(final java.util.List effects) { ++ if (effects.isEmpty()) { ++ this.getHandle().stewEffects = null; ++ return; ++ } ++ ++ java.util.List nmsPairs = new java.util.ArrayList<>(effects.size()); ++ for (final io.papermc.paper.potion.SuspiciousEffectEntry effect : effects) { ++ nmsPairs.add(new net.minecraft.world.level.block.SuspiciousEffectHolder.EffectEntry( ++ org.bukkit.craftbukkit.potion.CraftPotionEffectType.bukkitToMinecraft(effect.effect()), ++ effect.duration() ++ )); ++ } ++ ++ this.getHandle().stewEffects = nmsPairs; ++ } ++ // Paper end ++ + @Override + public String toString() { + return "CraftMushroomCow"; +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSuspiciousStew.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSuspiciousStew.java +index 2c3b9f76067088efdc2250cdb5070df86e2dc0f5..243acae2c69dc46c02290ba103afc1549b618d85 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSuspiciousStew.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSuspiciousStew.java +@@ -24,7 +24,7 @@ public class CraftMetaSuspiciousStew extends CraftMetaItem implements Suspicious + static final ItemMetaKey EFFECTS = new ItemMetaKey("effects", "effects"); + static final ItemMetaKey ID = new ItemMetaKey("id", "id"); + +- private List customEffects; ++ private List customEffects; // Paper - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + + CraftMetaSuspiciousStew(CraftMetaItem meta) { + super(meta); +@@ -57,7 +57,7 @@ public class CraftMetaSuspiciousStew extends CraftMetaItem implements Suspicious + duration = net.minecraft.world.item.SuspiciousStewItem.DEFAULT_DURATION; + } + // Paper end start - default duration is 160 +- this.customEffects.add(new PotionEffect(type, duration, 0)); ++ this.customEffects.add(io.papermc.paper.potion.SuspiciousEffectEntry.create(type, duration)); // Paper - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + } + } + } +@@ -84,12 +84,14 @@ public class CraftMetaSuspiciousStew extends CraftMetaItem implements Suspicious + ListTag effectList = new ListTag(); + tag.put(CraftMetaSuspiciousStew.EFFECTS.NBT, effectList); + +- for (PotionEffect effect : this.customEffects) { ++ // Paper start - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta ++ for (io.papermc.paper.potion.SuspiciousEffectEntry effect : this.customEffects) { + CompoundTag effectData = new CompoundTag(); +- effectData.putString(CraftMetaSuspiciousStew.ID.NBT, effect.getType().getKey().toString()); +- if (effect.getDuration() != net.minecraft.world.item.SuspiciousStewItem.DEFAULT_DURATION) effectData.putInt(CraftMetaSuspiciousStew.DURATION.NBT, effect.getDuration()); // Paper - don't save duration if it's the default value ++ effectData.putString(CraftMetaSuspiciousStew.ID.NBT, effect.effect().getKey().toString()); ++ if (effect.duration() != net.minecraft.world.item.SuspiciousStewItem.DEFAULT_DURATION) effectData.putInt(CraftMetaSuspiciousStew.DURATION.NBT, effect.duration()); // Paper - don't save duration if it's the default value + effectList.add(effectData); + } ++ // Paper end - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + } + } + +@@ -124,7 +126,7 @@ public class CraftMetaSuspiciousStew extends CraftMetaItem implements Suspicious + @Override + public List getCustomEffects() { + if (this.hasCustomEffects()) { +- return ImmutableList.copyOf(this.customEffects); ++ return this.customEffects.stream().map(suspiciousEffectEntry -> suspiciousEffectEntry.effect().createEffect(suspiciousEffectEntry.duration(), 0)).toList(); // Paper - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + } + return ImmutableList.of(); + } +@@ -132,15 +134,21 @@ public class CraftMetaSuspiciousStew extends CraftMetaItem implements Suspicious + @Override + public boolean addCustomEffect(PotionEffect effect, boolean overwrite) { + Preconditions.checkArgument(effect != null, "Potion effect cannot be null"); ++ return addCustomEffect(io.papermc.paper.potion.SuspiciousEffectEntry.create(effect.getType(), effect.getDuration()), overwrite); // Paper - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta ++ } + +- int index = this.indexOfEffect(effect.getType()); ++ // Paper start - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta ++ @Override ++ public boolean addCustomEffect(final io.papermc.paper.potion.SuspiciousEffectEntry suspiciousEffectEntry, final boolean overwrite) { ++ Preconditions.checkArgument(suspiciousEffectEntry != null, "Suspicious effect entry cannot be null"); ++ int index = this.indexOfEffect(suspiciousEffectEntry.effect()); + if (index != -1) { + if (overwrite) { +- PotionEffect old = this.customEffects.get(index); +- if (old.getDuration() == effect.getDuration()) { ++ io.papermc.paper.potion.SuspiciousEffectEntry old = this.customEffects.get(index); ++ if (old.duration() == suspiciousEffectEntry.duration()) { + return false; + } +- this.customEffects.set(index, effect); ++ this.customEffects.set(index, suspiciousEffectEntry); + return true; + } else { + return false; +@@ -149,10 +157,11 @@ public class CraftMetaSuspiciousStew extends CraftMetaItem implements Suspicious + if (this.customEffects == null) { + this.customEffects = new ArrayList<>(); + } +- this.customEffects.add(effect); ++ this.customEffects.add(suspiciousEffectEntry); + return true; + } + } ++ // Paper end - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + + @Override + public boolean removeCustomEffect(PotionEffectType type) { +@@ -163,10 +172,12 @@ public class CraftMetaSuspiciousStew extends CraftMetaItem implements Suspicious + } + + boolean changed = false; +- Iterator iterator = this.customEffects.iterator(); ++ // Paper start - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta ++ Iterator iterator = this.customEffects.iterator(); + while (iterator.hasNext()) { +- PotionEffect effect = iterator.next(); +- if (type.equals(effect.getType())) { ++ io.papermc.paper.potion.SuspiciousEffectEntry effect = iterator.next(); ++ if (type.equals(effect.effect())) { ++ // Paper end - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + iterator.remove(); + changed = true; + } +@@ -189,7 +200,7 @@ public class CraftMetaSuspiciousStew extends CraftMetaItem implements Suspicious + } + + for (int i = 0; i < this.customEffects.size(); i++) { +- if (this.customEffects.get(i).getType().equals(type)) { ++ if (this.customEffects.get(i).effect().equals(type)) { // Paper - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta + return i; + } + } +@@ -234,7 +245,7 @@ public class CraftMetaSuspiciousStew extends CraftMetaItem implements Suspicious + super.serialize(builder); + + if (this.hasCustomEffects()) { +- builder.put(CraftMetaSuspiciousStew.EFFECTS.BUKKIT, ImmutableList.copyOf(this.customEffects)); ++ builder.put(CraftMetaSuspiciousStew.EFFECTS.BUKKIT, ImmutableList.copyOf(com.google.common.collect.Lists.transform(this.customEffects, s -> new PotionEffect(s.effect(), s.duration(), 0)))); // Paper - add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta - convert back to potion effect for bukkit legacy item serialisation to maintain backwards compatibility for the written format. + } + + return builder; From 89d51d5f298cd25d6f44388970596c6780b5664b Mon Sep 17 00:00:00 2001 From: Owen <23108066+Owen1212055@users.noreply.github.com> Date: Sun, 3 Mar 2024 17:05:34 -0500 Subject: [PATCH 009/215] Allow enabling sand duping (#10191) Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable. It should be noted that this decision does not promise all future exploits will be configurable. --- patches/server/0005-Paper-config-files.patch | 6 ++-- ...sing-chunks-due-to-integer-overflow.patch} | 0 patches/server/0382-Fix-sand-duping.patch | 36 ------------------- ...-position-desync-causing-tp-exploit.patch} | 2 +- ...older-method-without-block-snapshot.patch} | 0 ...API.patch => 0385-Improve-Arrow-API.patch} | 0 ...0386-Add-PlayerRecipeBookClickEvent.patch} | 0 ...-Hide-sync-chunk-writes-behind-flag.patch} | 0 ...8-Add-permission-for-command-blocks.patch} | 2 +- ...position-and-AABB-are-never-invalid.patch} | 0 ...d-Difficulty-Remembering-Difficulty.patch} | 0 ...atch => 0391-Paper-dumpitem-command.patch} | 0 ...Legacy-Component-serialization-size.patch} | 0 ...Plugin-Tickets-to-API-Chunk-Methods.patch} | 0 ...-Add-BlockStateMeta-clearBlockState.patch} | 0 ...395-Support-old-UUID-format-for-NBT.patch} | 0 ...vert-legacy-attributes-in-Item-Meta.patch} | 2 +- ...-not-accept-invalid-client-settings.patch} | 0 ...e-fix-EntityTargetLivingEntityEvent.patch} | 0 ...patch => 0399-Add-entity-liquid-API.patch} | 0 ...date-itemstack-legacy-name-and-lore.patch} | 0 ...atch => 0401-Add-PrepareResultEvent.patch} | 0 ...-for-portal-on-world-gen-entity-add.patch} | 0 ...x-arrows-never-despawning-MC-125757.patch} | 0 ...Vanilla-Command-permission-checking.patch} | 0 ...-5989.patch => 0405-Fix-SPIGOT-5989.patch} | 0 ...-Bukkit-world-container-is-not-used.patch} | 0 ...5885-Unable-to-disable-advancements.patch} | 0 ...taPlayer-leak-due-from-quitting-ear.patch} | 0 ...e-NetworkManager-Exception-Handling.patch} | 0 ...ix-some-rails-connecting-improperly.patch} | 0 ...stake-in-CB-NBT-int-deserialization.patch} | 0 ...support.patch => 0412-Brand-support.patch} | 2 +- ...PickupItemAnimation-to-LivingEntity.patch} | 2 +- ...h => 0414-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 2 +- ...PI.patch => 0416-Add-moon-phase-API.patch} | 0 ...rver-load-chunks-from-newer-version.patch} | 0 ...headless-pistons-from-being-created.patch} | 2 +- ...ent.patch => 0419-Add-BellRingEvent.patch} | 0 ...dd-zombie-targets-turtle-egg-config.patch} | 0 ...patch => 0421-Buffer-joins-to-world.patch} | 0 ...s-not-working-in-some-kick-messages.patch} | 0 ...reateEvent-needs-to-know-its-entity.patch} | 0 ...I.patch => 0424-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0427-Cache-block-data-strings.patch} | 0 ...rtation-and-cancel-velocity-if-tele.patch} | 2 +- ...l-open-container-api-to-HumanEntity.patch} | 0 ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 2 +- ...-Counter-to-allow-plugins-to-use-va.patch} | 0 ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0434-Entity-isTicking.patch} | 0 ...non-whitelisted-player-when-white-l.patch} | 0 ...-Concurrency-issue-in-ShufflingList.patch} | 0 ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 2 +- ...-large-move-vectors-crashing-server.patch} | 2 +- ...atch => 0439-Optimise-getType-calls.patch} | 0 ....patch => 0440-Villager-resetOffers.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 2 +- ...lockpos-allocation-from-pathfinding.patch} | 0 ...em-locations-dropped-from-campfires.patch} | 0 ...4-Fix-bell-block-entity-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 0 ...ch => 0447-Add-ignore-discounts-API.patch} | 0 ...Toggle-for-removing-existing-dragon.patch} | 0 ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0450-Item-no-age-no-player-pickup.patch} | 0 ...451-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0452-Add-API-for-quit-reason.patch} | 0 ...ng-Trader-spawn-rate-config-options.patch} | 0 ...ch => 0454-Expose-world-spawn-angle.patch} | 0 ...patch => 0455-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 2 +- ...57-Add-LivingEntity-clearActiveItem.patch} | 2 +- ...=> 0458-Add-PlayerItemCooldownEvent.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...PI.patch => 0460-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 2 +- ...-missing-default-perms-for-commands.patch} | 0 ...h => 0463-Add-PlayerShearBlockEvent.patch} | 0 ....patch => 0464-Limit-recipe-packets.patch} | 0 ...-CraftSound-backwards-compatibility.patch} | 0 ...466-Player-Chunk-Load-Unload-Events.patch} | 0 ...7-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 0 ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 0 ...valid-ingredient-lists-in-VillagerA.patch} | 0 ...nt.patch => 0471-Add-TargetHitEvent.patch} | 0 ... 0472-MC-4-Fix-item-position-desync.patch} | 0 ... 0473-Additional-Block-Material-API.patch} | 0 ...tch => 0474-Fix-harming-potion-dupe.patch} | 0 ...t-Material-from-Boats-and-Minecarts.patch} | 0 ....patch => 0476-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 0 ...-Add-PlayerFlowerPotManipulateEvent.patch} | 0 ...ct-event-not-being-called-sometimes.patch} | 2 +- ...h => 0481-Zombie-API-breaking-doors.patch} | 0 ...482-Fix-nerfed-slime-when-splitting.patch} | 0 ...=> 0483-Add-EntityLoadCrossbowEvent.patch} | 0 ...> 0484-Add-WorldGameRuleChangeEvent.patch} | 0 ...85-Add-ServerResourcesReloadedEvent.patch} | 0 ...d-settings-for-mobs-picking-up-loot.patch} | 0 ...> 0487-Add-BlockFailedDispenseEvent.patch} | 0 ...88-Add-PlayerLecternPageChangeEvent.patch} | 0 ...89-Add-PlayerLoomPatternSelectEvent.patch} | 0 ...nfigurable-door-breaking-difficulty.patch} | 0 ...ty-commands-shall-not-be-dispatched.patch} | 0 ...OIs.patch => 0492-Remove-stale-POIs.patch} | 2 +- ...h => 0493-Fix-villager-boat-exploit.patch} | 0 ...I.patch => 0494-Add-sendOpLevel-API.patch} | 0 ...0495-TODO-Registry-Modification-API.patch} | 0 ...h => 0496-Add-StructuresLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 2 +- ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 0 ...500-Make-schedule-command-per-world.patch} | 0 ...501-Configurable-max-leash-distance.patch} | 0 ...h => 0502-Add-BlockPreDispenseEvent.patch} | 0 ...3-Add-PlayerChangeBeaconEffectEvent.patch} | 0 ...e-for-always-placing-the-dragon-egg.patch} | 2 +- ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...h => 0506-Expand-EntityUnleashEvent.patch} | 0 ...shield-blocking-on-dimension-change.patch} | 0 ...atch => 0508-Add-DragonEggFormEvent.patch} | 2 +- ...t.patch => 0509-Add-EntityMoveEvent.patch} | 0 ...isable-pathfinding-updates-on-block.patch} | 2 +- ... 0511-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 0 ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 2 +- ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ...atch => 0517-Expose-Tracked-Players.patch} | 0 ...GUI.patch => 0518-Improve-ServerGUI.patch} | 0 ...519-fix-converting-txt-to-json-file.patch} | 0 ...atch => 0520-Add-worldborder-events.patch} | 0 ...h => 0521-Add-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 0 ...h => 0523-Add-recipe-to-cook-events.patch} | 0 ...patch => 0524-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 2 +- ....patch => 0526-Expand-world-key-API.patch} | 0 ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0528-Item-Rarity-API.patch} | 0 ...d-item-when-player-has-disconnected.patch} | 0 ...elist-use-configurable-kick-message.patch} | 0 ...gnore-result-of-PlayerEditBookEvent.patch} | 2 +- ...tch => 0532-Expose-protocol-version.patch} | 0 ...ab-completions-for-brigadier-comman.patch} | 0 ...temConsumeEvent-cancelling-properly.patch} | 0 ...patch => 0535-Add-bypass-host-check.patch} | 0 ...0536-Set-area-affect-cloud-rotation.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 2 +- ...ch => 0542-Add-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0543-More-World-API.patch} | 0 ...=> 0544-Add-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 0 ...awnEvent-fix-passed-parameter-issue.patch} | 0 ...acon-activation-deactivation-events.patch} | 0 ...dd-Channel-initialization-listeners.patch} | 0 ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0550-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ... => 0553-Add-HiddenPotionEffect-API.patch} | 0 ...close.patch => 0554-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0556-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 0 ...58-Expand-PlayerGameModeChangeEvent.patch} | 2 +- ... => 0559-ItemStack-repair-check-API.patch} | 0 ....patch => 0560-More-Enchantment-API.patch} | 2 +- ...ve-range-check-for-block-placing-up.patch} | 2 +- ...PI.patch => 0562-Add-Mob-lookAt-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...0564-Add-Unix-domain-socket-support.patch} | 0 ... => 0565-Add-EntityInsideBlockEvent.patch} | 0 ...66-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 2 +- ...patch => 0568-More-Lidded-Block-API.patch} | 0 ...69-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0570-Add-PlayerKickEvent-causes.patch} | 0 ...0571-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0575-Add-BellRevealRaiderEvent.patch} | 0 ... 0576-Fix-invulnerable-end-crystals.patch} | 0 ...77-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0578-Fix-dangerous-end-portal-logic.patch} | 16 +++++---- ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 2 +- ...patch => 0581-Line-Of-Sight-Changes.patch} | 0 ... => 0582-add-per-world-spawn-limits.patch} | 0 ...h => 0583-Fix-potions-splash-events.patch} | 0 ... => 0584-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 0 ...PI.patch => 0586-Missing-Entity-API.patch} | 0 ...ect-for-book-edit-is-called-on-main.patch} | 2 +- ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 4 +-- ...rom-signs-not-firing-command-events.patch} | 0 ...tch => 0591-Add-PlayerArmSwingEvent.patch} | 2 +- ...-event-leave-message-not-being-sent.patch} | 0 ...-for-mobs-immune-to-default-effects.patch} | 0 ...-t-apply-cramming-damage-to-players.patch} | 0 ...d-timings-for-sensors-and-behaviors.patch} | 0 ... 0596-Add-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0597-Stinger-API.patch} | 2 +- ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0599-Add-System.out-err-catcher.patch} | 0 ...-to-contain-the-source-jars-in-stac.patch} | 0 ...AFK-kick-while-watching-end-credits.patch} | 2 +- ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0603-Add-PlayerSetSpawnEvent.patch} | 0 ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...h => 0607-Add-EntityDamageItemEvent.patch} | 0 ...timize-indirect-passenger-iteration.patch} | 2 +- ...em-frame-map-cursor-update-interval.patch} | 0 ...610-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0612-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0614-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0616-Add-back-EntityPortalExitEvent.patch} | 2 +- ...-find-targets-for-lightning-strikes.patch} | 2 +- ... 0618-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0619-Left-handed-API.patch} | 0 ...ch => 0620-Add-more-advancement-API.patch} | 0 ...621-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0622-Add-critical-damage-API.patch} | 0 ...0623-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0625-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...7-Add-Raw-Byte-Entity-Serialization.patch} | 2 +- ...28-Vanilla-command-permission-fixes.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 0 ...30-Fix-GameProfileCache-concurrency.patch} | 0 ...631-Improve-and-expand-AsyncCatcher.patch} | 0 ...per-mobcaps-and-paper-playermobcaps.patch} | 0 ...tize-ResourceLocation-error-logging.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 2 +- ...our-chunk-data-off-disk-when-conver.patch} | 0 ...d-state-when-raytracing-skip-air-bl.patch} | 0 ...atch => 0639-Time-scoreboard-search.patch} | 0 ...rimise-map-impl-for-tracked-players.patch} | 2 +- ...h => 0641-Add-missing-InventoryType.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 2 +- ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 2 +- ...h => 0646-Add-packet-limiter-config.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0648-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 2 +- ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0653-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 2 +- ...unintended-light-block-manipulation.patch} | 0 ...0656-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0658-Configurable-feature-seeds.patch} | 0 ... 0659-Add-root-admin-user-detection.patch} | 0 ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 2 +- ...ive-velocity-through-repeated-crits.patch} | 0 ...e-code-using-deprecated-for-removal.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 0 ...e-unnecessary-itemmeta-from-clients.patch} | 0 ...=> 0667-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0669-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0670-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0673-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 2 +- ... => 0676-Improve-scoreboard-entries.patch} | 0 ...ch => 0677-Entity-powdered-snow-API.patch} | 0 ...0678-Add-API-for-item-entity-health.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0683-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0684-Bucketable-API.patch} | 0 ...es.patch => 0685-Validate-usernames.patch} | 0 ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...0-Multiple-Entries-with-Scoreboards.patch} | 0 ...691-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0693-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 2 +- ...ent.patch => 0695-Fix-NotePlayEvent.patch} | 0 ....patch => 0696-Freeze-Tick-Lock-API.patch} | 2 +- ...h => 0697-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0701-Implement-regenerateChunk.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 0 ...gs.patch => 0704-Add-GameEvent-tags.patch} | 0 ...ks-fairly-for-worlds-while-waiting-.patch} | 0 ...tch => 0706-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 0 ...-worldlist-before-initing-the-world.patch} | 0 ... => 0711-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0712-Custom-Potion-Mixes.patch} | 0 ...13-Force-close-world-loading-screen.patch} | 0 ...714-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0717-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 2 +- ...0720-Implement-getComputedBiome-API.patch} | 2 +- ...> 0721-Make-some-itemstacks-nonnull.patch} | 0 ...722-Implement-enchantWithLevels-API.patch} | 0 ...h => 0723-Fix-saving-in-unloadWorld.patch} | 0 ...h => 0724-Buffer-OOB-setBlock-calls.patch} | 0 ... 0725-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 2 +- ...s.patch => 0729-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 0 ...> 0734-Expand-PlayerItemDamageEvent.patch} | 0 ...> 0735-WorldCreator-keepSpawnLoaded.patch} | 0 ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0741-Add-PlayerStopUsingItemEvent.patch} | 0 ...rs.patch => 0742-Don-t-tick-markers.patch} | 2 +- ...tch => 0743-Expand-FallingBlock-API.patch} | 8 ++--- ...0744-Add-support-for-Proxy-Protocol.patch} | 2 +- ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ...-read-and-store-sus-effect-duration.patch} | 0 ... 0748-Sanitize-sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 2 +- ...-on-world-create-while-being-ticked.patch} | 0 ...52-Dont-resent-entity-on-art-update.patch} | 0 ... => 0753-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0756-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 0 ...pty-items-from-being-added-to-world.patch} | 2 +- ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0760-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 2 +- ...PE.patch => 0763-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 2 +- ...API.patch => 0765-More-Teleport-API.patch} | 0 ... => 0766-Add-EntityPortalReadyEvent.patch} | 2 +- ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 2 +- ...on-plugins-accessing-faraway-chunks.patch} | 2 +- ...tom-Chat-Completion-Suggestions-API.patch} | 2 +- ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0772-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0774-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 0 ...776-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 0 ...ok-changes-from-crashing-the-server.patch} | 0 ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0780-Missing-eating-regain-reason.patch} | 2 +- ....patch => 0781-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 2 +- ...4-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0785-Configurable-chat-thread-limit.patch} | 4 +-- ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0787-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 2 +- ... => 0789-Add-getDrops-to-BlockState.patch} | 0 ...=> 0790-Fix-a-bunch-of-vanilla-bugs.patch} | 0 ...y-onTrackingStart-during-navigation.patch} | 2 +- ... 0792-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0793-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0796-Elder-Guardian-appearance-API.patch} | 2 +- ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0798-Add-entity-knockback-API.patch} | 2 +- ....patch => 0799-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...ch => 0801-Add-EntityToggleSitEvent.patch} | 0 ... => 0802-Add-fire-tick-delay-option.patch} | 0 ...patch => 0803-Add-Moving-Piston-API.patch} | 0 ...> 0804-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 2 +- ...0808-Add-PrePlayerAttackEntityEvent.patch} | 0 ...e-reset-EnderDragon-boss-event-name.patch} | 2 +- ...-green-map-markers-do-not-disappear.patch} | 0 ... 0811-Add-Player-Warden-Warning-API.patch} | 2 +- ...a-friendly-methods-to-update-trades.patch} | 0 ...813-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 0 ...sync-entity-add-due-to-fungus-trees.patch} | 2 +- ....patch => 0816-ItemStack-damage-API.patch} | 2 +- ...tion-API.patch => 0817-Friction-API.patch} | 0 ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0819-Fix-player-kick-on-shutdown.patch} | 0 ... => 0820-Sync-offhand-slot-in-menus.patch} | 0 ... 0821-Player-Entity-Tracking-Events.patch} | 2 +- ...tch => 0822-Limit-pet-look-distance.patch} | 0 ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0824-fix-Instruments.patch} | 2 +- ...for-some-hot-BlockBehavior-and-Flui.patch} | 0 ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0827-Add-BlockLockCheckEvent.patch} | 0 ... 0828-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0829-Improve-logging-and-errors.patch} | 0 ....patch => 0830-Improve-PortalEvents.patch} | 2 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 2 +- ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0834-Flying-Fall-Damage.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...ion-moving-velocity-to-VehicleBlock.patch} | 2 +- ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 0 ...k-items-during-EntityResurrectEvent.patch} | 0 ...en-API.patch => 0840-Win-Screen-API.patch} | 2 +- ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0843-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 2 +- ...=> 0846-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 0 ...851-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0853-Add-Shearable-API.patch} | 2 +- ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 2 +- ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 2 +- ...0860-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0863-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...66-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ... => 0868-Expand-PlayerItemMendEvent.patch} | 0 ...sh-ProjectileSource-for-projectiles.patch} | 2 +- ... => 0870-Add-transient-modifier-API.patch} | 0 ...patch => 0871-Fix-block-place-logic.patch} | 2 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 0 ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 2 +- ...rafting-result-amount-for-fireworks.patch} | 0 ...9-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 0 ...883-Call-missing-BlockDispenseEvent.patch} | 0 ...-chunks-for-supporting-block-checks.patch} | 2 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...886-Add-Sign-getInteractableSideFor.patch} | 0 ...87-Array-backed-synched-entity-data.patch} | 0 ...8-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0889-Fix-BanList-API.patch} | 2 +- ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 0 ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0895-Add-whitelist-events.patch} | 0 ... 0896-Implement-PlayerFailMoveEvent.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 2 +- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 0 ...tion-when-spawning-display-entities.patch} | 0 ...901-Only-capture-actual-tree-growth.patch} | 2 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 0 ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0906-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0908-Bandaid-fix-for-Effect.patch} | 2 +- ...tch => 0909-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...lace-methods-with-old-StructureType.patch} | 0 ...e-namespaced-commands-if-send-names.patch} | 2 +- ...-handle-BlockBreakEvent-isDropItems.patch} | 0 ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 2 +- ... => 0916-Add-Listing-API-for-Player.patch} | 0 ...figurable-Region-Compression-Format.patch} | 0 ...8-Add-BlockFace-to-BlockDamageEvent.patch} | 0 ...h => 0919-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0920-Expand-Pose-API.patch} | 2 +- ...patch => 0921-More-DragonBattle-API.patch} | 2 +- ... 0922-Deep-clone-unhandled-nbt-tags.patch} | 2 +- ...tch => 0923-Add-PlayerPickItemEvent.patch} | 2 +- ...=> 0924-Allow-trident-custom-damage.patch} | 0 ...5-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 2 +- ....patch => 0928-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...30-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 2 +- ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 0 ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0937-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 2 +- ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...49-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 0950-Add-player-idle-duration-API.patch} | 2 +- ...-if-we-can-see-non-visible-entities.patch} | 2 +- ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 2 +- ...Ints.patch => 0954-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...em-packets-with-collector-as-source.patch} | 0 ... => 0958-Expand-LingeringPotion-API.patch} | 0 ....patch => 0959-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...963-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 2 +- ...tch => 0967-Add-Structure-check-API.patch} | 0 ...-getAttributeModifier-duplication-c.patch} | 2 +- ...store-vanilla-entity-drops-behavior.patch} | 2 +- ...-Dont-resend-blocks-on-interactions.patch} | 0 ...tch => 0971-add-more-scoreboard-API.patch} | 0 ...stry.patch => 0972-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 0 ...h => 0974-Add-experience-points-API.patch} | 0 ...h => 0975-Add-drops-to-shear-events.patch} | 0 ...> 0976-Add-PlayerShieldDisableEvent.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 0 ...-experience-dropping-on-block-break.patch} | 2 +- ...> 0979-Fixup-NamespacedKey-handling.patch} | 0 ...80-Expose-LootTable-of-DecoratedPot.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 2 +- ...> 0982-Rewrite-dataconverter-system.patch} | 0 ...4-Starlight.patch => 0983-Starlight.patch} | 2 +- ....patch => 0984-Rewrite-chunk-system.patch} | 6 ++-- ...incremental-chunk-and-player-saving.patch} | 0 ...dBounds-and-getBlockState-for-inlin.patch} | 2 +- ...tem-frames-performance-and-bug-fixe.patch} | 0 ...ing-for-EntityLiving-hasLineOfSight.patch} | 0 ...Manager-and-add-advanced-packet-sup.patch} | 0 ...90-Allow-Saving-of-Oversized-Chunks.patch} | 0 ...91-Fix-World-isChunkGenerated-calls.patch} | 2 +- ...992-Flat-bedrock-generator-settings.patch} | 0 ...=> 0993-Entity-Activation-Range-2.0.patch} | 2 +- ...0994-Optional-per-player-mob-spawns.patch} | 2 +- ...6-Anti-Xray.patch => 0995-Anti-Xray.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 2 +- ...timize-Collision-to-not-load-chunks.patch} | 2 +- ...alSelector-Goal.Flag-Set-operations.patch} | 0 ...99-Entity-load-save-limit-per-chunk.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 2 +- ...h => 1001-Improved-Watchdog-Support.patch} | 0 ...> 1002-Optimize-Voxel-Shape-Merging.patch} | 0 ...ch => 1003-Write-SavedData-IO-async.patch} | 2 +- ...nd-End-Portal-Frames-from-being-des.patch} | 4 +-- ...ance-map-to-optimise-entity-tracker.patch} | 2 +- ...Optimize-Bit-Operations-by-inlining.patch} | 0 ...> 1007-Remove-streams-from-hot-code.patch} | 0 ...-Eigencraft-redstone-implementation.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 0 ...-Improve-boat-collision-performance.patch} | 0 ...=> 1012-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...> 1014-Execute-chunk-tasks-mid-tick.patch} | 4 +-- ... 1015-Optimise-random-block-ticking.patch} | 4 +-- ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 2 +- ...-more-information-in-watchdog-dumps.patch} | 2 +- ...tch => 1019-Collision-optimisations.patch} | 2 +- ...n-checking-in-player-move-packet-ha.patch} | 2 +- ...21-Fix-tripwire-state-inconsistency.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ate-Current-redstone-implementation.patch} | 4 +-- ...24-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 1025-Properly-resend-entities.patch} | 0 ...pers.patch => 1026-Optimize-Hoppers.patch} | 0 ...-Improve-performance-of-mass-crafts.patch} | 0 ...> 1028-Actually-optimise-explosions.patch} | 2 +- ... 1029-Optimise-chunk-tick-iteration.patch} | 2 +- ...atch => 1030-Lag-compensation-ticks.patch} | 0 ...31-Optimise-nearby-player-retrieval.patch} | 2 +- ... 1032-Distance-manager-tick-timings.patch} | 0 ...-Oversized-block-entities-in-chunks.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...h => 1035-Add-ShulkerDuplicateEvent.patch} | 0 ...dd-api-for-spawn-egg-texture-colors.patch} | 0 ...7-Disable-memory-reserve-allocating.patch} | 0 ...=> 1038-Improve-tag-parser-handling.patch} | 0 ... => 1039-Add-Lifecycle-Event-system.patch} | 0 ...nduit-API.patch => 1040-Conduit-API.patch} | 0 ...patch => 1041-ItemStack-Tooltip-API.patch} | 0 ...ackOverflowError-for-some-dispenses.patch} | 0 ...e-changed-item-from-dispense-events.patch} | 0 ...Snapshot-includeLightData-parameter.patch} | 0 ...PI.patch => 1045-Add-FluidState-API.patch} | 2 +- ...patch => 1046-add-number-format-api.patch} | 0 ...eck-if-itemstack-is-stackable-first.patch} | 0 ...ByEntityEvent-for-unowned-wither-sk.patch} | 0 ...patch => 1049-improve-BanList-types.patch} | 0 ...-Configurable-max-block-fluid-ticks.patch} | 0 ...51-disable-forced-empty-world-ticks.patch} | 0 ...=> 1052-Suspicious-Effect-Entry-API.patch} | 0 673 files changed, 157 insertions(+), 189 deletions(-) rename patches/server/{0383-Fix-missing-chunks-due-to-integer-overflow.patch => 0382-Fix-missing-chunks-due-to-integer-overflow.patch} (100%) delete mode 100644 patches/server/0382-Fix-sand-duping.patch rename patches/server/{0384-Prevent-position-desync-causing-tp-exploit.patch => 0383-Prevent-position-desync-causing-tp-exploit.patch} (94%) rename patches/server/{0385-Inventory-getHolder-method-without-block-snapshot.patch => 0384-Inventory-getHolder-method-without-block-snapshot.patch} (100%) rename patches/server/{0386-Improve-Arrow-API.patch => 0385-Improve-Arrow-API.patch} (100%) rename patches/server/{0387-Add-PlayerRecipeBookClickEvent.patch => 0386-Add-PlayerRecipeBookClickEvent.patch} (100%) rename patches/server/{0388-Hide-sync-chunk-writes-behind-flag.patch => 0387-Hide-sync-chunk-writes-behind-flag.patch} (100%) rename patches/server/{0389-Add-permission-for-command-blocks.patch => 0388-Add-permission-for-command-blocks.patch} (98%) rename patches/server/{0390-Ensure-Entity-position-and-AABB-are-never-invalid.patch => 0389-Ensure-Entity-position-and-AABB-are-never-invalid.patch} (100%) rename patches/server/{0391-Fix-Per-World-Difficulty-Remembering-Difficulty.patch => 0390-Fix-Per-World-Difficulty-Remembering-Difficulty.patch} (100%) rename patches/server/{0392-Paper-dumpitem-command.patch => 0391-Paper-dumpitem-command.patch} (100%) rename patches/server/{0393-Improve-Legacy-Component-serialization-size.patch => 0392-Improve-Legacy-Component-serialization-size.patch} (100%) rename patches/server/{0394-Add-Plugin-Tickets-to-API-Chunk-Methods.patch => 0393-Add-Plugin-Tickets-to-API-Chunk-Methods.patch} (100%) rename patches/server/{0395-Add-BlockStateMeta-clearBlockState.patch => 0394-Add-BlockStateMeta-clearBlockState.patch} (100%) rename patches/server/{0396-Support-old-UUID-format-for-NBT.patch => 0395-Support-old-UUID-format-for-NBT.patch} (100%) rename patches/server/{0397-Convert-legacy-attributes-in-Item-Meta.patch => 0396-Convert-legacy-attributes-in-Item-Meta.patch} (97%) rename patches/server/{0398-Do-not-accept-invalid-client-settings.patch => 0397-Do-not-accept-invalid-client-settings.patch} (100%) rename patches/server/{0399-Improve-fix-EntityTargetLivingEntityEvent.patch => 0398-Improve-fix-EntityTargetLivingEntityEvent.patch} (100%) rename patches/server/{0400-Add-entity-liquid-API.patch => 0399-Add-entity-liquid-API.patch} (100%) rename patches/server/{0401-Update-itemstack-legacy-name-and-lore.patch => 0400-Update-itemstack-legacy-name-and-lore.patch} (100%) rename patches/server/{0402-Add-PrepareResultEvent.patch => 0401-Add-PrepareResultEvent.patch} (100%) rename patches/server/{0403-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch => 0402-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch} (100%) rename patches/server/{0404-Fix-arrows-never-despawning-MC-125757.patch => 0403-Fix-arrows-never-despawning-MC-125757.patch} (100%) rename patches/server/{0405-Thread-Safe-Vanilla-Command-permission-checking.patch => 0404-Thread-Safe-Vanilla-Command-permission-checking.patch} (100%) rename patches/server/{0406-Fix-SPIGOT-5989.patch => 0405-Fix-SPIGOT-5989.patch} (100%) rename patches/server/{0407-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0406-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (100%) rename patches/server/{0408-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0407-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (100%) rename patches/server/{0409-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0408-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (100%) rename patches/server/{0410-Optimize-NetworkManager-Exception-Handling.patch => 0409-Optimize-NetworkManager-Exception-Handling.patch} (100%) rename patches/server/{0411-Fix-some-rails-connecting-improperly.patch => 0410-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/server/{0412-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0411-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/server/{0413-Brand-support.patch => 0412-Brand-support.patch} (98%) rename patches/server/{0414-Add-playPickupItemAnimation-to-LivingEntity.patch => 0413-Add-playPickupItemAnimation-to-LivingEntity.patch} (90%) rename patches/server/{0415-Don-t-require-FACING-data.patch => 0414-Don-t-require-FACING-data.patch} (100%) rename patches/server/{0416-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0415-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (96%) rename patches/server/{0417-Add-moon-phase-API.patch => 0416-Add-moon-phase-API.patch} (100%) rename patches/server/{0418-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0417-Do-not-let-the-server-load-chunks-from-newer-version.patch} (100%) rename patches/server/{0419-Prevent-headless-pistons-from-being-created.patch => 0418-Prevent-headless-pistons-from-being-created.patch} (95%) rename patches/server/{0420-Add-BellRingEvent.patch => 0419-Add-BellRingEvent.patch} (100%) rename patches/server/{0421-Add-zombie-targets-turtle-egg-config.patch => 0420-Add-zombie-targets-turtle-egg-config.patch} (100%) rename patches/server/{0422-Buffer-joins-to-world.patch => 0421-Buffer-joins-to-world.patch} (100%) rename patches/server/{0423-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0422-Fix-hex-colors-not-working-in-some-kick-messages.patch} (100%) rename patches/server/{0424-PortalCreateEvent-needs-to-know-its-entity.patch => 0423-PortalCreateEvent-needs-to-know-its-entity.patch} (100%) rename patches/server/{0425-Add-more-Evoker-API.patch => 0424-Add-more-Evoker-API.patch} (100%) rename patches/server/{0426-Add-methods-to-get-translation-keys.patch => 0425-Add-methods-to-get-translation-keys.patch} (100%) rename patches/server/{0427-Create-HoverEvent-from-ItemStack-Entity.patch => 0426-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0428-Cache-block-data-strings.patch => 0427-Cache-block-data-strings.patch} (100%) rename patches/server/{0429-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0428-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (98%) rename patches/server/{0430-Add-additional-open-container-api-to-HumanEntity.patch => 0429-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/server/{0431-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0430-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0432-Extend-block-drop-capture-to-capture-all-items-added.patch => 0431-Extend-block-drop-capture-to-capture-all-items-added.patch} (96%) rename patches/server/{0433-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0432-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (100%) rename patches/server/{0434-Lazily-track-plugin-scoreboards-by-default.patch => 0433-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0435-Entity-isTicking.patch => 0434-Entity-isTicking.patch} (100%) rename patches/server/{0436-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0435-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (100%) rename patches/server/{0437-Fix-Concurrency-issue-in-ShufflingList.patch => 0436-Fix-Concurrency-issue-in-ShufflingList.patch} (100%) rename patches/server/{0438-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0437-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (92%) rename patches/server/{0439-Fix-for-large-move-vectors-crashing-server.patch => 0438-Fix-for-large-move-vectors-crashing-server.patch} (98%) rename patches/server/{0440-Optimise-getType-calls.patch => 0439-Optimise-getType-calls.patch} (100%) rename patches/server/{0441-Villager-resetOffers.patch => 0440-Villager-resetOffers.patch} (100%) rename patches/server/{0442-Retain-block-place-order-when-capturing-blockstates.patch => 0441-Retain-block-place-order-when-capturing-blockstates.patch} (93%) rename patches/server/{0443-Reduce-blockpos-allocation-from-pathfinding.patch => 0442-Reduce-blockpos-allocation-from-pathfinding.patch} (100%) rename patches/server/{0444-Fix-item-locations-dropped-from-campfires.patch => 0443-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0445-Fix-bell-block-entity-memory-leak.patch => 0444-Fix-bell-block-entity-memory-leak.patch} (100%) rename patches/server/{0446-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0445-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0447-Add-getOfflinePlayerIfCached-String.patch => 0446-Add-getOfflinePlayerIfCached-String.patch} (100%) rename patches/server/{0448-Add-ignore-discounts-API.patch => 0447-Add-ignore-discounts-API.patch} (100%) rename patches/server/{0449-Toggle-for-removing-existing-dragon.patch => 0448-Toggle-for-removing-existing-dragon.patch} (100%) rename patches/server/{0450-Fix-client-lag-on-advancement-loading.patch => 0449-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/server/{0451-Item-no-age-no-player-pickup.patch => 0450-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0452-Beacon-API-custom-effect-ranges.patch => 0451-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0453-Add-API-for-quit-reason.patch => 0452-Add-API-for-quit-reason.patch} (100%) rename patches/server/{0454-Add-Wandering-Trader-spawn-rate-config-options.patch => 0453-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/server/{0455-Expose-world-spawn-angle.patch => 0454-Expose-world-spawn-angle.patch} (100%) rename patches/server/{0456-Add-Destroy-Speed-API.patch => 0455-Add-Destroy-Speed-API.patch} (100%) rename patches/server/{0457-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0456-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (93%) rename patches/server/{0458-Add-LivingEntity-clearActiveItem.patch => 0457-Add-LivingEntity-clearActiveItem.patch} (90%) rename patches/server/{0459-Add-PlayerItemCooldownEvent.patch => 0458-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0460-Significantly-improve-performance-of-the-end-generat.patch => 0459-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0461-More-lightning-API.patch => 0460-More-lightning-API.patch} (100%) rename patches/server/{0462-Climbing-should-not-bypass-cramming-gamerule.patch => 0461-Climbing-should-not-bypass-cramming-gamerule.patch} (98%) rename patches/server/{0463-Add-missing-default-perms-for-commands.patch => 0462-Add-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0464-Add-PlayerShearBlockEvent.patch => 0463-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0465-Limit-recipe-packets.patch => 0464-Limit-recipe-packets.patch} (100%) rename patches/server/{0466-Fix-CraftSound-backwards-compatibility.patch => 0465-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0467-Player-Chunk-Load-Unload-Events.patch => 0466-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/server/{0468-Optimize-Dynamic-get-Missing-Keys.patch => 0467-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0469-Expose-LivingEntity-hurt-direction.patch => 0468-Expose-LivingEntity-hurt-direction.patch} (100%) rename patches/server/{0470-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0469-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (100%) rename patches/server/{0471-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch => 0470-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch} (100%) rename patches/server/{0472-Add-TargetHitEvent.patch => 0471-Add-TargetHitEvent.patch} (100%) rename patches/server/{0473-MC-4-Fix-item-position-desync.patch => 0472-MC-4-Fix-item-position-desync.patch} (100%) rename patches/server/{0474-Additional-Block-Material-API.patch => 0473-Additional-Block-Material-API.patch} (100%) rename patches/server/{0475-Fix-harming-potion-dupe.patch => 0474-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0476-API-to-get-Material-from-Boats-and-Minecarts.patch => 0475-API-to-get-Material-from-Boats-and-Minecarts.patch} (100%) rename patches/server/{0477-Cache-burn-durations.patch => 0476-Cache-burn-durations.patch} (100%) rename patches/server/{0478-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0477-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/server/{0479-Fix-Not-a-string-Map-Conversion-spam.patch => 0478-Fix-Not-a-string-Map-Conversion-spam.patch} (100%) rename patches/server/{0480-Add-PlayerFlowerPotManipulateEvent.patch => 0479-Add-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0481-Fix-interact-event-not-being-called-sometimes.patch => 0480-Fix-interact-event-not-being-called-sometimes.patch} (97%) rename patches/server/{0482-Zombie-API-breaking-doors.patch => 0481-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0483-Fix-nerfed-slime-when-splitting.patch => 0482-Fix-nerfed-slime-when-splitting.patch} (100%) rename patches/server/{0484-Add-EntityLoadCrossbowEvent.patch => 0483-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0485-Add-WorldGameRuleChangeEvent.patch => 0484-Add-WorldGameRuleChangeEvent.patch} (100%) rename patches/server/{0486-Add-ServerResourcesReloadedEvent.patch => 0485-Add-ServerResourcesReloadedEvent.patch} (100%) rename patches/server/{0487-Add-world-settings-for-mobs-picking-up-loot.patch => 0486-Add-world-settings-for-mobs-picking-up-loot.patch} (100%) rename patches/server/{0488-Add-BlockFailedDispenseEvent.patch => 0487-Add-BlockFailedDispenseEvent.patch} (100%) rename patches/server/{0489-Add-PlayerLecternPageChangeEvent.patch => 0488-Add-PlayerLecternPageChangeEvent.patch} (100%) rename patches/server/{0490-Add-PlayerLoomPatternSelectEvent.patch => 0489-Add-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/server/{0491-Configurable-door-breaking-difficulty.patch => 0490-Configurable-door-breaking-difficulty.patch} (100%) rename patches/server/{0492-Empty-commands-shall-not-be-dispatched.patch => 0491-Empty-commands-shall-not-be-dispatched.patch} (100%) rename patches/server/{0493-Remove-stale-POIs.patch => 0492-Remove-stale-POIs.patch} (92%) rename patches/server/{0494-Fix-villager-boat-exploit.patch => 0493-Fix-villager-boat-exploit.patch} (100%) rename patches/server/{0495-Add-sendOpLevel-API.patch => 0494-Add-sendOpLevel-API.patch} (100%) rename patches/server/{0496-TODO-Registry-Modification-API.patch => 0495-TODO-Registry-Modification-API.patch} (100%) rename patches/server/{0497-Add-StructuresLocateEvent.patch => 0496-Add-StructuresLocateEvent.patch} (100%) rename patches/server/{0498-Collision-option-for-requiring-a-player-participant.patch => 0497-Collision-option-for-requiring-a-player-participant.patch} (97%) rename patches/server/{0499-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0498-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0500-Return-chat-component-with-empty-text-instead-of-thr.patch => 0499-Return-chat-component-with-empty-text-instead-of-thr.patch} (100%) rename patches/server/{0501-Make-schedule-command-per-world.patch => 0500-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0502-Configurable-max-leash-distance.patch => 0501-Configurable-max-leash-distance.patch} (100%) rename patches/server/{0503-Add-BlockPreDispenseEvent.patch => 0502-Add-BlockPreDispenseEvent.patch} (100%) rename patches/server/{0504-Add-PlayerChangeBeaconEffectEvent.patch => 0503-Add-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/server/{0505-Add-toggle-for-always-placing-the-dragon-egg.patch => 0504-Add-toggle-for-always-placing-the-dragon-egg.patch} (92%) rename patches/server/{0506-Add-PlayerStonecutterRecipeSelectEvent.patch => 0505-Add-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/server/{0507-Expand-EntityUnleashEvent.patch => 0506-Expand-EntityUnleashEvent.patch} (100%) rename patches/server/{0508-Reset-shield-blocking-on-dimension-change.patch => 0507-Reset-shield-blocking-on-dimension-change.patch} (100%) rename patches/server/{0509-Add-DragonEggFormEvent.patch => 0508-Add-DragonEggFormEvent.patch} (96%) rename patches/server/{0510-Add-EntityMoveEvent.patch => 0509-Add-EntityMoveEvent.patch} (100%) rename patches/server/{0511-added-option-to-disable-pathfinding-updates-on-block.patch => 0510-added-option-to-disable-pathfinding-updates-on-block.patch} (92%) rename patches/server/{0512-Inline-shift-direction-fields.patch => 0511-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0513-Allow-adding-items-to-BlockDropItemEvent.patch => 0512-Allow-adding-items-to-BlockDropItemEvent.patch} (100%) rename patches/server/{0514-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0513-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0515-living-entity-allow-attribute-registration.patch => 0514-living-entity-allow-attribute-registration.patch} (96%) rename patches/server/{0516-fix-dead-slime-setSize-invincibility.patch => 0515-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0517-Merchant-getRecipes-should-return-an-immutable-list.patch => 0516-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0518-Expose-Tracked-Players.patch => 0517-Expose-Tracked-Players.patch} (100%) rename patches/server/{0519-Improve-ServerGUI.patch => 0518-Improve-ServerGUI.patch} (100%) rename patches/server/{0520-fix-converting-txt-to-json-file.patch => 0519-fix-converting-txt-to-json-file.patch} (100%) rename patches/server/{0521-Add-worldborder-events.patch => 0520-Add-worldborder-events.patch} (100%) rename patches/server/{0522-Add-PlayerNameEntityEvent.patch => 0521-Add-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0523-Prevent-grindstones-from-overstacking-items.patch => 0522-Prevent-grindstones-from-overstacking-items.patch} (100%) rename patches/server/{0524-Add-recipe-to-cook-events.patch => 0523-Add-recipe-to-cook-events.patch} (100%) rename patches/server/{0525-Add-Block-isValidTool.patch => 0524-Add-Block-isValidTool.patch} (100%) rename patches/server/{0526-Allow-using-signs-inside-spawn-protection.patch => 0525-Allow-using-signs-inside-spawn-protection.patch} (95%) rename patches/server/{0527-Expand-world-key-API.patch => 0526-Expand-world-key-API.patch} (100%) rename patches/server/{0528-Add-fast-alternative-constructor-for-Rotations.patch => 0527-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0529-Item-Rarity-API.patch => 0528-Item-Rarity-API.patch} (100%) rename patches/server/{0530-Drop-carried-item-when-player-has-disconnected.patch => 0529-Drop-carried-item-when-player-has-disconnected.patch} (100%) rename patches/server/{0531-forced-whitelist-use-configurable-kick-message.patch => 0530-forced-whitelist-use-configurable-kick-message.patch} (100%) rename patches/server/{0532-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0531-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (91%) rename patches/server/{0533-Expose-protocol-version.patch => 0532-Expose-protocol-version.patch} (100%) rename patches/server/{0534-Enhance-console-tab-completions-for-brigadier-comman.patch => 0533-Enhance-console-tab-completions-for-brigadier-comman.patch} (100%) rename patches/server/{0535-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0534-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (100%) rename patches/server/{0536-Add-bypass-host-check.patch => 0535-Add-bypass-host-check.patch} (100%) rename patches/server/{0537-Set-area-affect-cloud-rotation.patch => 0536-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0538-add-isDeeplySleeping-to-HumanEntity.patch => 0537-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/server/{0539-add-consumeFuel-to-FurnaceBurnEvent.patch => 0538-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0540-add-get-set-drop-chance-to-EntityEquipment.patch => 0539-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0541-fix-PigZombieAngerEvent-cancellation.patch => 0540-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0542-fix-PlayerItemHeldEvent-firing-twice.patch => 0541-fix-PlayerItemHeldEvent-firing-twice.patch} (93%) rename patches/server/{0543-Add-PlayerDeepSleepEvent.patch => 0542-Add-PlayerDeepSleepEvent.patch} (100%) rename patches/server/{0544-More-World-API.patch => 0543-More-World-API.patch} (100%) rename patches/server/{0545-Add-PlayerBedFailEnterEvent.patch => 0544-Add-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0546-Implement-methods-to-convert-between-Component-and-B.patch => 0545-Implement-methods-to-convert-between-Component-and-B.patch} (100%) rename patches/server/{0547-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch => 0546-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch} (100%) rename patches/server/{0548-Introduce-beacon-activation-deactivation-events.patch => 0547-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0549-Add-Channel-initialization-listeners.patch => 0548-Add-Channel-initialization-listeners.patch} (100%) rename patches/server/{0550-Send-empty-commands-if-tab-completion-is-disabled.patch => 0549-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0551-Add-more-WanderingTrader-API.patch => 0550-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0552-Add-EntityBlockStorage-clearEntities.patch => 0551-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0553-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0552-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0554-Add-HiddenPotionEffect-API.patch => 0553-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{0555-Inventory-close.patch => 0554-Inventory-close.patch} (100%) rename patches/server/{0556-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0555-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0557-Add-basic-Datapack-API.patch => 0556-Add-basic-Datapack-API.patch} (100%) rename patches/server/{0558-Add-environment-variable-to-disable-server-gui.patch => 0557-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0559-Expand-PlayerGameModeChangeEvent.patch => 0558-Expand-PlayerGameModeChangeEvent.patch} (99%) rename patches/server/{0560-ItemStack-repair-check-API.patch => 0559-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0561-More-Enchantment-API.patch => 0560-More-Enchantment-API.patch} (98%) rename patches/server/{0562-Move-range-check-for-block-placing-up.patch => 0561-Move-range-check-for-block-placing-up.patch} (92%) rename patches/server/{0563-Add-Mob-lookAt-API.patch => 0562-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0564-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 0563-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{0565-Add-Unix-domain-socket-support.patch => 0564-Add-Unix-domain-socket-support.patch} (100%) rename patches/server/{0566-Add-EntityInsideBlockEvent.patch => 0565-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0567-Attributes-API-for-item-defaults.patch => 0566-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0568-Add-cause-to-Weather-ThunderChangeEvents.patch => 0567-Add-cause-to-Weather-ThunderChangeEvents.patch} (98%) rename patches/server/{0569-More-Lidded-Block-API.patch => 0568-More-Lidded-Block-API.patch} (100%) rename patches/server/{0570-Limit-item-frame-cursors-on-maps.patch => 0569-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0571-Add-PlayerKickEvent-causes.patch => 0570-Add-PlayerKickEvent-causes.patch} (100%) rename patches/server/{0572-Add-PufferFishStateChangeEvent.patch => 0571-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0573-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0572-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0574-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0573-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/server/{0575-Add-option-to-fix-items-merging-through-walls.patch => 0574-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0576-Add-BellRevealRaiderEvent.patch => 0575-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0577-Fix-invulnerable-end-crystals.patch => 0576-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0578-Add-ElderGuardianAppearanceEvent.patch => 0577-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0579-Fix-dangerous-end-portal-logic.patch => 0578-Fix-dangerous-end-portal-logic.patch} (85%) rename patches/server/{0580-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0579-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0581-Make-item-validations-configurable.patch => 0580-Make-item-validations-configurable.patch} (97%) rename patches/server/{0582-Line-Of-Sight-Changes.patch => 0581-Line-Of-Sight-Changes.patch} (100%) rename patches/server/{0583-add-per-world-spawn-limits.patch => 0582-add-per-world-spawn-limits.patch} (100%) rename patches/server/{0584-Fix-potions-splash-events.patch => 0583-Fix-potions-splash-events.patch} (100%) rename patches/server/{0585-Add-more-LimitedRegion-API.patch => 0584-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0586-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0585-Fix-PlayerDropItemEvent-using-wrong-item.patch} (100%) rename patches/server/{0587-Missing-Entity-API.patch => 0586-Missing-Entity-API.patch} (100%) rename patches/server/{0588-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0587-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (92%) rename patches/server/{0589-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0588-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0590-Use-getChunkIfLoadedImmediately-in-places.patch => 0589-Use-getChunkIfLoadedImmediately-in-places.patch} (94%) rename patches/server/{0591-Fix-commands-from-signs-not-firing-command-events.patch => 0590-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0592-Add-PlayerArmSwingEvent.patch => 0591-Add-PlayerArmSwingEvent.patch} (92%) rename patches/server/{0593-Fix-kick-event-leave-message-not-being-sent.patch => 0592-Fix-kick-event-leave-message-not-being-sent.patch} (100%) rename patches/server/{0594-Add-config-for-mobs-immune-to-default-effects.patch => 0593-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/server/{0595-Don-t-apply-cramming-damage-to-players.patch => 0594-Don-t-apply-cramming-damage-to-players.patch} (100%) rename patches/server/{0596-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0595-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0597-Add-missing-forceDrop-toggles.patch => 0596-Add-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0598-Stinger-API.patch => 0597-Stinger-API.patch} (95%) rename patches/server/{0599-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0598-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0600-Add-System.out-err-catcher.patch => 0599-Add-System.out-err-catcher.patch} (100%) rename patches/server/{0601-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0600-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0602-Prevent-AFK-kick-while-watching-end-credits.patch => 0601-Prevent-AFK-kick-while-watching-end-credits.patch} (93%) rename patches/server/{0603-Allow-skipping-writing-of-comments-to-server.propert.patch => 0602-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0604-Add-PlayerSetSpawnEvent.patch => 0603-Add-PlayerSetSpawnEvent.patch} (100%) rename patches/server/{0605-Make-hoppers-respect-inventory-max-stack-size.patch => 0604-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0606-Optimize-entity-tracker-passenger-checks.patch => 0605-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0607-Config-option-for-Piglins-guarding-chests.patch => 0606-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0608-Add-EntityDamageItemEvent.patch => 0607-Add-EntityDamageItemEvent.patch} (100%) rename patches/server/{0609-Optimize-indirect-passenger-iteration.patch => 0608-Optimize-indirect-passenger-iteration.patch} (96%) rename patches/server/{0610-Configurable-item-frame-map-cursor-update-interval.patch => 0609-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0611-Clear-bucket-NBT-after-dispense.patch => 0610-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0612-Change-EnderEye-target-without-changing-other-things.patch => 0611-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0613-Add-BlockBreakBlockEvent.patch => 0612-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0614-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0613-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0615-More-CommandBlock-API.patch => 0614-More-CommandBlock-API.patch} (100%) rename patches/server/{0616-Add-missing-team-sidebar-display-slots.patch => 0615-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0617-Add-back-EntityPortalExitEvent.patch => 0616-Add-back-EntityPortalExitEvent.patch} (97%) rename patches/server/{0618-Add-methods-to-find-targets-for-lightning-strikes.patch => 0617-Add-methods-to-find-targets-for-lightning-strikes.patch} (97%) rename patches/server/{0619-Get-entity-default-attributes.patch => 0618-Get-entity-default-attributes.patch} (100%) rename patches/server/{0620-Left-handed-API.patch => 0619-Left-handed-API.patch} (100%) rename patches/server/{0621-Add-more-advancement-API.patch => 0620-Add-more-advancement-API.patch} (100%) rename patches/server/{0622-Add-ItemFactory-getSpawnEgg-API.patch => 0621-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0623-Add-critical-damage-API.patch => 0622-Add-critical-damage-API.patch} (100%) rename patches/server/{0624-Fix-issues-with-mob-conversion.patch => 0623-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0625-Add-isCollidable-methods-to-various-places.patch => 0624-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0626-Goat-ram-API.patch => 0625-Goat-ram-API.patch} (100%) rename patches/server/{0627-Add-API-for-resetting-a-single-score.patch => 0626-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0628-Add-Raw-Byte-Entity-Serialization.patch => 0627-Add-Raw-Byte-Entity-Serialization.patch} (97%) rename patches/server/{0629-Vanilla-command-permission-fixes.patch => 0628-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0630-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0629-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (100%) rename patches/server/{0631-Fix-GameProfileCache-concurrency.patch => 0630-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0632-Improve-and-expand-AsyncCatcher.patch => 0631-Improve-and-expand-AsyncCatcher.patch} (100%) rename patches/server/{0633-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0632-Add-paper-mobcaps-and-paper-playermobcaps.patch} (100%) rename patches/server/{0634-Sanitize-ResourceLocation-error-logging.patch => 0633-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0635-Manually-inline-methods-in-BlockPosition.patch => 0634-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0636-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0635-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0637-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0636-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (94%) rename patches/server/{0638-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0637-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0639-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch => 0638-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (100%) rename patches/server/{0640-Time-scoreboard-search.patch => 0639-Time-scoreboard-search.patch} (100%) rename patches/server/{0641-Oprimise-map-impl-for-tracked-players.patch => 0640-Oprimise-map-impl-for-tracked-players.patch} (92%) rename patches/server/{0642-Add-missing-InventoryType.patch => 0641-Add-missing-InventoryType.patch} (100%) rename patches/server/{0643-Optimise-BlockSoil-nearby-water-lookup.patch => 0642-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0644-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0643-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (94%) rename patches/server/{0645-Check-requirement-before-suggesting-root-nodes.patch => 0644-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0646-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0645-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (92%) rename patches/server/{0647-Add-packet-limiter-config.patch => 0646-Add-packet-limiter-config.patch} (100%) rename patches/server/{0648-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0647-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0649-Ensure-valid-vehicle-status.patch => 0648-Ensure-valid-vehicle-status.patch} (100%) rename patches/server/{0650-Prevent-softlocked-end-exit-portal-generation.patch => 0649-Prevent-softlocked-end-exit-portal-generation.patch} (92%) rename patches/server/{0651-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0650-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0652-Don-t-log-debug-logging-being-disabled.patch => 0651-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0653-fix-various-menus-with-empty-level-accesses.patch => 0652-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0654-Preserve-overstacked-loot.patch => 0653-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0655-Update-head-rotation-in-missing-places.patch => 0654-Update-head-rotation-in-missing-places.patch} (93%) rename patches/server/{0656-prevent-unintended-light-block-manipulation.patch => 0655-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0657-Fix-CraftCriteria-defaults-map.patch => 0656-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0658-Fix-upstreams-block-state-factories.patch => 0657-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0659-Configurable-feature-seeds.patch => 0658-Configurable-feature-seeds.patch} (100%) rename patches/server/{0660-Add-root-admin-user-detection.patch => 0659-Add-root-admin-user-detection.patch} (100%) rename patches/server/{0661-Always-allow-item-changing-in-Fireball.patch => 0660-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0662-don-t-attempt-to-teleport-dead-entities.patch => 0661-don-t-attempt-to-teleport-dead-entities.patch} (91%) rename patches/server/{0663-Prevent-excessive-velocity-through-repeated-crits.patch => 0662-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/server/{0664-Remove-client-side-code-using-deprecated-for-removal.patch => 0663-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0665-Fix-removing-recipes-from-RecipeIterator.patch => 0664-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0666-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0665-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/server/{0667-Hide-unnecessary-itemmeta-from-clients.patch => 0666-Hide-unnecessary-itemmeta-from-clients.patch} (100%) rename patches/server/{0668-Fix-Spigot-growth-modifiers.patch => 0667-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0669-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0668-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0670-Add-PlayerItemFrameChangeEvent.patch => 0669-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0671-Optimize-HashMapPalette.patch => 0670-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0672-Allow-delegation-to-vanilla-chunk-gen.patch => 0671-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/server/{0673-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0672-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0674-Add-more-Campfire-API.patch => 0673-Add-more-Campfire-API.patch} (100%) rename patches/server/{0675-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0674-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0676-Forward-CraftEntity-in-teleport-command.patch => 0675-Forward-CraftEntity-in-teleport-command.patch} (95%) rename patches/server/{0677-Improve-scoreboard-entries.patch => 0676-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0678-Entity-powdered-snow-API.patch => 0677-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0679-Add-API-for-item-entity-health.patch => 0678-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0680-Configurable-max-block-light-for-monster-spawning.patch => 0679-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0681-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0680-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0682-Load-effect-amplifiers-greater-than-127-correctly.patch => 0681-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0683-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0682-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0684-Fix-bees-aging-inside-hives.patch => 0683-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0685-Bucketable-API.patch => 0684-Bucketable-API.patch} (100%) rename patches/server/{0686-Validate-usernames.patch => 0685-Validate-usernames.patch} (100%) rename patches/server/{0687-Make-water-animal-spawn-height-configurable.patch => 0686-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0688-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0687-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/server/{0689-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0688-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0690-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0689-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0691-Multiple-Entries-with-Scoreboards.patch => 0690-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0692-Reset-placed-block-on-exception.patch => 0691-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0693-Add-configurable-height-for-slime-spawn.patch => 0692-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0694-Fix-xp-reward-for-baby-zombies.patch => 0693-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0695-Multi-Block-Change-API-Implementation.patch => 0694-Multi-Block-Change-API-Implementation.patch} (97%) rename patches/server/{0696-Fix-NotePlayEvent.patch => 0695-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0697-Freeze-Tick-Lock-API.patch => 0696-Freeze-Tick-Lock-API.patch} (97%) rename patches/server/{0698-More-PotionEffectType-API.patch => 0697-More-PotionEffectType-API.patch} (100%) rename patches/server/{0699-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0698-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0700-API-for-creating-command-sender-which-forwards-feedb.patch => 0699-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/server/{0701-Add-missing-structure-set-seed-configs.patch => 0700-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0702-Implement-regenerateChunk.patch => 0701-Implement-regenerateChunk.patch} (100%) rename patches/server/{0703-Fix-cancelled-powdered-snow-bucket-placement.patch => 0702-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0704-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0703-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (100%) rename patches/server/{0705-Add-GameEvent-tags.patch => 0704-Add-GameEvent-tags.patch} (100%) rename patches/server/{0706-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0705-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (100%) rename patches/server/{0707-Furnace-RecipesUsed-API.patch => 0706-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0708-Configurable-sculk-sensor-listener-range.patch => 0707-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0709-Add-missing-block-data-mins-and-maxes.patch => 0708-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0710-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0709-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (100%) rename patches/server/{0711-Put-world-into-worldlist-before-initing-the-world.patch => 0710-Put-world-into-worldlist-before-initing-the-world.patch} (100%) rename patches/server/{0712-Fix-Entity-Position-Desync.patch => 0711-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0713-Custom-Potion-Mixes.patch => 0712-Custom-Potion-Mixes.patch} (100%) rename patches/server/{0714-Force-close-world-loading-screen.patch => 0713-Force-close-world-loading-screen.patch} (100%) rename patches/server/{0715-Fix-falling-block-spawn-methods.patch => 0714-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0716-Expose-furnace-minecart-push-values.patch => 0715-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0717-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0716-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0718-More-Projectile-API.patch => 0717-More-Projectile-API.patch} (100%) rename patches/server/{0719-Fix-swamp-hut-cat-generation-deadlock.patch => 0718-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0720-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0719-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (94%) rename patches/server/{0721-Implement-getComputedBiome-API.patch => 0720-Implement-getComputedBiome-API.patch} (96%) rename patches/server/{0722-Make-some-itemstacks-nonnull.patch => 0721-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0723-Implement-enchantWithLevels-API.patch => 0722-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0724-Fix-saving-in-unloadWorld.patch => 0723-Fix-saving-in-unloadWorld.patch} (100%) rename patches/server/{0725-Buffer-OOB-setBlock-calls.patch => 0724-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0726-Add-TameableDeathMessageEvent.patch => 0725-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0727-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0726-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (100%) rename patches/server/{0728-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0727-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/server/{0729-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0728-Ensure-entity-passenger-world-matches-ridden-entity.patch} (91%) rename patches/server/{0730-cache-resource-keys.patch => 0729-cache-resource-keys.patch} (100%) rename patches/server/{0731-Allow-changing-the-EnderDragon-podium.patch => 0730-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/server/{0732-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0731-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0733-Prevent-tile-entity-copies-loading-chunks.patch => 0732-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/server/{0734-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0733-Use-username-instead-of-display-name-in-PlayerList-g.patch} (100%) rename patches/server/{0735-Expand-PlayerItemDamageEvent.patch => 0734-Expand-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0736-WorldCreator-keepSpawnLoaded.patch => 0735-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/server/{0737-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0736-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0738-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0737-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0739-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0738-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0740-Fire-CauldronLevelChange-on-initial-fill.patch => 0739-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0741-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0740-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0742-Add-PlayerStopUsingItemEvent.patch => 0741-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/server/{0743-Don-t-tick-markers.patch => 0742-Don-t-tick-markers.patch} (95%) rename patches/server/{0744-Expand-FallingBlock-API.patch => 0743-Expand-FallingBlock-API.patch} (94%) rename patches/server/{0745-Add-support-for-Proxy-Protocol.patch => 0744-Add-support-for-Proxy-Protocol.patch} (97%) rename patches/server/{0746-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0745-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0747-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0746-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0748-properly-read-and-store-sus-effect-duration.patch => 0747-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{0749-Sanitize-sent-BlockEntity-NBT.patch => 0748-Sanitize-sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0750-Disable-component-selector-resolving-in-books-by-def.patch => 0749-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0751-Prevent-entity-loading-causing-async-lookups.patch => 0750-Prevent-entity-loading-causing-async-lookups.patch} (97%) rename patches/server/{0752-Throw-exception-on-world-create-while-being-ticked.patch => 0751-Throw-exception-on-world-create-while-being-ticked.patch} (100%) rename patches/server/{0753-Dont-resent-entity-on-art-update.patch => 0752-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0754-Add-WardenAngerChangeEvent.patch => 0753-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0755-Add-option-for-strict-advancement-dimension-checks.patch => 0754-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/server/{0756-Add-missing-important-BlockStateListPopulator-method.patch => 0755-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0757-Nameable-Banner-API.patch => 0756-Nameable-Banner-API.patch} (100%) rename patches/server/{0758-Don-t-broadcast-messages-to-command-blocks.patch => 0757-Don-t-broadcast-messages-to-command-blocks.patch} (100%) rename patches/server/{0759-Prevent-empty-items-from-being-added-to-world.patch => 0758-Prevent-empty-items-from-being-added-to-world.patch} (93%) rename patches/server/{0760-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0759-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0761-Add-Player-getFishHook.patch => 0760-Add-Player-getFishHook.patch} (100%) rename patches/server/{0762-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0761-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0763-Add-various-missing-EntityDropItemEvent-calls.patch => 0762-Add-various-missing-EntityDropItemEvent-calls.patch} (98%) rename patches/server/{0764-Fix-Bee-flower-NPE.patch => 0763-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0765-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0764-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (92%) rename patches/server/{0766-More-Teleport-API.patch => 0765-More-Teleport-API.patch} (100%) rename patches/server/{0767-Add-EntityPortalReadyEvent.patch => 0766-Add-EntityPortalReadyEvent.patch} (95%) rename patches/server/{0768-Don-t-use-level-random-in-entity-constructors.patch => 0767-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0769-Send-block-entities-after-destroy-prediction.patch => 0768-Send-block-entities-after-destroy-prediction.patch} (98%) rename patches/server/{0770-Warn-on-plugins-accessing-faraway-chunks.patch => 0769-Warn-on-plugins-accessing-faraway-chunks.patch} (98%) rename patches/server/{0771-Custom-Chat-Completion-Suggestions-API.patch => 0770-Custom-Chat-Completion-Suggestions-API.patch} (94%) rename patches/server/{0772-Add-and-fix-missing-BlockFadeEvents.patch => 0771-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0773-Collision-API.patch => 0772-Collision-API.patch} (100%) rename patches/server/{0774-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0773-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/server/{0775-Block-Ticking-API.patch => 0774-Block-Ticking-API.patch} (100%) rename patches/server/{0776-Add-Velocity-IP-Forwarding-Support.patch => 0775-Add-Velocity-IP-Forwarding-Support.patch} (100%) rename patches/server/{0777-Add-NamespacedKey-biome-methods.patch => 0776-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0778-Fix-plugin-loggers-on-server-shutdown.patch => 0777-Fix-plugin-loggers-on-server-shutdown.patch} (100%) rename patches/server/{0779-Stop-large-look-changes-from-crashing-the-server.patch => 0778-Stop-large-look-changes-from-crashing-the-server.patch} (100%) rename patches/server/{0780-Fire-EntityChangeBlockEvent-in-more-places.patch => 0779-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0781-Missing-eating-regain-reason.patch => 0780-Missing-eating-regain-reason.patch} (96%) rename patches/server/{0782-Missing-effect-cause.patch => 0781-Missing-effect-cause.patch} (100%) rename patches/server/{0783-Added-byte-array-serialization-deserialization-for-P.patch => 0782-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0784-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0783-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (97%) rename patches/server/{0785-Call-BlockPhysicsEvent-more-often.patch => 0784-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0786-Configurable-chat-thread-limit.patch => 0785-Configurable-chat-thread-limit.patch} (94%) rename patches/server/{0787-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0786-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0788-fix-Jigsaw-block-kicking-user.patch => 0787-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0789-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0788-use-BlockFormEvent-for-mud-converting-into-clay.patch} (95%) rename patches/server/{0790-Add-getDrops-to-BlockState.patch => 0789-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0791-Fix-a-bunch-of-vanilla-bugs.patch => 0790-Fix-a-bunch-of-vanilla-bugs.patch} (100%) rename patches/server/{0792-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0791-Remove-unnecessary-onTrackingStart-during-navigation.patch} (94%) rename patches/server/{0793-Fix-custom-piglin-loved-items.patch => 0792-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0794-EntityPickupItemEvent-fixes.patch => 0793-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0795-Correctly-handle-interactions-with-items-on-cooldown.patch => 0794-Correctly-handle-interactions-with-items-on-cooldown.patch} (100%) rename patches/server/{0796-Add-PlayerInventorySlotChangeEvent.patch => 0795-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/server/{0797-Elder-Guardian-appearance-API.patch => 0796-Elder-Guardian-appearance-API.patch} (90%) rename patches/server/{0798-Allow-changing-bed-s-occupied-property.patch => 0797-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0799-Add-entity-knockback-API.patch => 0798-Add-entity-knockback-API.patch} (91%) rename patches/server/{0800-Detect-headless-JREs.patch => 0799-Detect-headless-JREs.patch} (100%) rename patches/server/{0801-fix-entity-vehicle-collision-event-not-called.patch => 0800-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0802-Add-EntityToggleSitEvent.patch => 0801-Add-EntityToggleSitEvent.patch} (100%) rename patches/server/{0803-Add-fire-tick-delay-option.patch => 0802-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0804-Add-Moving-Piston-API.patch => 0803-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0805-Ignore-impossible-spawn-tick.patch => 0804-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0806-Track-projectile-source-for-fireworks-from-dispenser.patch => 0805-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0807-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0806-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0808-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0807-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (95%) rename patches/server/{0809-Add-PrePlayerAttackEntityEvent.patch => 0808-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/server/{0810-ensure-reset-EnderDragon-boss-event-name.patch => 0809-ensure-reset-EnderDragon-boss-event-name.patch} (96%) rename patches/server/{0811-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0810-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0812-Add-Player-Warden-Warning-API.patch => 0811-Add-Player-Warden-Warning-API.patch} (95%) rename patches/server/{0813-More-vanilla-friendly-methods-to-update-trades.patch => 0812-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0814-Add-paper-dumplisteners-command.patch => 0813-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0815-check-global-player-list-where-appropriate.patch => 0814-check-global-player-list-where-appropriate.patch} (100%) rename patches/server/{0816-Fix-async-entity-add-due-to-fungus-trees.patch => 0815-Fix-async-entity-add-due-to-fungus-trees.patch} (96%) rename patches/server/{0817-ItemStack-damage-API.patch => 0816-ItemStack-damage-API.patch} (97%) rename patches/server/{0818-Friction-API.patch => 0817-Friction-API.patch} (100%) rename patches/server/{0819-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0818-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0820-Fix-player-kick-on-shutdown.patch => 0819-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0821-Sync-offhand-slot-in-menus.patch => 0820-Sync-offhand-slot-in-menus.patch} (100%) rename patches/server/{0822-Player-Entity-Tracking-Events.patch => 0821-Player-Entity-Tracking-Events.patch} (96%) rename patches/server/{0823-Limit-pet-look-distance.patch => 0822-Limit-pet-look-distance.patch} (100%) rename patches/server/{0824-Fixes-and-additions-to-the-SpawnReason-API.patch => 0823-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0825-fix-Instruments.patch => 0824-fix-Instruments.patch} (96%) rename patches/server/{0826-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0825-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (100%) rename patches/server/{0827-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0826-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0828-Add-BlockLockCheckEvent.patch => 0827-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0829-Add-Sneaking-API-for-Entities.patch => 0828-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/server/{0830-Improve-logging-and-errors.patch => 0829-Improve-logging-and-errors.patch} (100%) rename patches/server/{0831-Improve-PortalEvents.patch => 0830-Improve-PortalEvents.patch} (93%) rename patches/server/{0832-Add-config-option-for-spider-worldborder-climbing.patch => 0831-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0833-Add-missing-SpigotConfig-logCommands-check.patch => 0832-Add-missing-SpigotConfig-logCommands-check.patch} (93%) rename patches/server/{0834-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0833-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0835-Flying-Fall-Damage.patch => 0834-Flying-Fall-Damage.patch} (100%) rename patches/server/{0836-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0835-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/server/{0837-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0836-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (94%) rename patches/server/{0838-config-for-disabling-entity-tag-tags.patch => 0837-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0839-Use-single-player-info-update-packet-on-join.patch => 0838-Use-single-player-info-update-packet-on-join.patch} (100%) rename patches/server/{0840-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0839-Correctly-shrink-items-during-EntityResurrectEvent.patch} (100%) rename patches/server/{0841-Win-Screen-API.patch => 0840-Win-Screen-API.patch} (93%) rename patches/server/{0842-Remove-CraftItemStack-setAmount-null-assignment.patch => 0841-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0843-Fix-force-opening-enchantment-tables.patch => 0842-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0844-Add-Entity-Body-Yaw-API.patch => 0843-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0845-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0844-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0846-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0845-Update-the-flag-when-a-captured-block-state-is-outda.patch} (90%) rename patches/server/{0847-Add-EntityFertilizeEggEvent.patch => 0846-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/server/{0848-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0847-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0849-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0848-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0850-Correctly-handle-ArmorStand-invisibility.patch => 0849-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0851-Fix-advancement-triggers-for-entity-damage.patch => 0850-Fix-advancement-triggers-for-entity-damage.patch} (100%) rename patches/server/{0852-Fix-text-display-error-on-spawn.patch => 0851-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0853-Fix-inventories-returning-null-Locations.patch => 0852-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0854-Add-Shearable-API.patch => 0853-Add-Shearable-API.patch} (97%) rename patches/server/{0855-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0854-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0856-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0855-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0857-Treat-sequence-violations-like-they-should-be.patch => 0856-Treat-sequence-violations-like-they-should-be.patch} (92%) rename patches/server/{0858-remove-duplicate-animate-packet-for-records.patch => 0857-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0859-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0858-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/server/{0860-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0859-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (91%) rename patches/server/{0861-Use-array-for-gamerule-storage.patch => 0860-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0862-Fix-a-couple-of-upstream-bed-issues.patch => 0861-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0863-Fix-demo-flag-not-enabling-demo-mode.patch => 0862-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0864-Add-Mob-Experience-reward-API.patch => 0863-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0865-Break-redstone-on-top-of-trap-doors-early.patch => 0864-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0866-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0865-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0867-More-accurate-isInOpenWater-impl.patch => 0866-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0868-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0867-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0869-Expand-PlayerItemMendEvent.patch => 0868-Expand-PlayerItemMendEvent.patch} (100%) rename patches/server/{0870-Refresh-ProjectileSource-for-projectiles.patch => 0869-Refresh-ProjectileSource-for-projectiles.patch} (97%) rename patches/server/{0871-Add-transient-modifier-API.patch => 0870-Add-transient-modifier-API.patch} (100%) rename patches/server/{0872-Fix-block-place-logic.patch => 0871-Fix-block-place-logic.patch} (97%) rename patches/server/{0873-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0872-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0874-Call-BlockGrowEvent-for-missing-blocks.patch => 0873-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0875-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0874-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (100%) rename patches/server/{0876-fix-MapLike-spam-for-missing-key-selector.patch => 0875-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0877-Fix-sniffer-removeExploredLocation.patch => 0876-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0878-Add-method-to-remove-all-active-potion-effects.patch => 0877-Add-method-to-remove-all-active-potion-effects.patch} (91%) rename patches/server/{0879-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0878-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0880-Add-event-for-player-editing-sign.patch => 0879-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0881-Only-tick-item-frames-if-players-can-see-it.patch => 0880-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0882-Fix-cmd-permission-levels-for-command-blocks.patch => 0881-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/server/{0883-Add-option-to-disable-block-updates.patch => 0882-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0884-Call-missing-BlockDispenseEvent.patch => 0883-Call-missing-BlockDispenseEvent.patch} (100%) rename patches/server/{0885-Don-t-load-chunks-for-supporting-block-checks.patch => 0884-Don-t-load-chunks-for-supporting-block-checks.patch} (90%) rename patches/server/{0886-Optimize-player-lookups-for-beacons.patch => 0885-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0887-Add-Sign-getInteractableSideFor.patch => 0886-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0888-Array-backed-synched-entity-data.patch => 0887-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0889-fix-item-meta-for-tadpole-buckets.patch => 0888-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0890-Fix-BanList-API.patch => 0889-Fix-BanList-API.patch} (99%) rename patches/server/{0891-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0890-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0892-Fix-possible-NPE-on-painting-creation.patch => 0891-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0893-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0892-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0894-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0893-ExperienceOrb-should-call-EntitySpawnEvent.patch} (100%) rename patches/server/{0895-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0894-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0896-Add-whitelist-events.patch => 0895-Add-whitelist-events.patch} (100%) rename patches/server/{0897-Implement-PlayerFailMoveEvent.patch => 0896-Implement-PlayerFailMoveEvent.patch} (100%) rename patches/server/{0898-Folia-scheduler-and-owned-region-API.patch => 0897-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0899-Only-erase-allay-memory-on-non-item-targets.patch => 0898-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0900-API-for-updating-recipes-on-clients.patch => 0899-API-for-updating-recipes-on-clients.patch} (100%) rename patches/server/{0901-Fix-rotation-when-spawning-display-entities.patch => 0900-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0902-Only-capture-actual-tree-growth.patch => 0901-Only-capture-actual-tree-growth.patch} (98%) rename patches/server/{0903-Use-correct-source-for-mushroom-block-spread-event.patch => 0902-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0904-Respect-randomizeData-on-more-entities-when-spawning.patch => 0903-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0905-Use-correct-seed-on-api-world-load.patch => 0904-Use-correct-seed-on-api-world-load.patch} (100%) rename patches/server/{0906-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0905-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0907-Cache-map-ids-on-item-frames.patch => 0906-Cache-map-ids-on-item-frames.patch} (100%) rename patches/server/{0908-Fix-custom-statistic-criteria-creation.patch => 0907-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0909-Bandaid-fix-for-Effect.patch => 0908-Bandaid-fix-for-Effect.patch} (98%) rename patches/server/{0910-SculkCatalyst-bloom-API.patch => 0909-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0911-API-for-an-entity-s-scoreboard-name.patch => 0910-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0912-Deprecate-and-replace-methods-with-old-StructureType.patch => 0911-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/server/{0913-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0912-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (95%) rename patches/server/{0914-Properly-handle-BlockBreakEvent-isDropItems.patch => 0913-Properly-handle-BlockBreakEvent-isDropItems.patch} (100%) rename patches/server/{0915-Fire-entity-death-event-for-ender-dragon.patch => 0914-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0916-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0915-Configurable-entity-tracking-range-by-Y-coordinate.patch} (94%) rename patches/server/{0917-Add-Listing-API-for-Player.patch => 0916-Add-Listing-API-for-Player.patch} (100%) rename patches/server/{0918-Configurable-Region-Compression-Format.patch => 0917-Configurable-Region-Compression-Format.patch} (100%) rename patches/server/{0919-Add-BlockFace-to-BlockDamageEvent.patch => 0918-Add-BlockFace-to-BlockDamageEvent.patch} (100%) rename patches/server/{0920-Fix-NPE-on-Boat-getStatus.patch => 0919-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0921-Expand-Pose-API.patch => 0920-Expand-Pose-API.patch} (95%) rename patches/server/{0922-More-DragonBattle-API.patch => 0921-More-DragonBattle-API.patch} (97%) rename patches/server/{0923-Deep-clone-unhandled-nbt-tags.patch => 0922-Deep-clone-unhandled-nbt-tags.patch} (97%) rename patches/server/{0924-Add-PlayerPickItemEvent.patch => 0923-Add-PlayerPickItemEvent.patch} (96%) rename patches/server/{0925-Allow-trident-custom-damage.patch => 0924-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0926-Expose-hand-in-BlockCanBuildEvent.patch => 0925-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0927-Optimize-nearest-structure-border-iteration.patch => 0926-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0928-Implement-OfflinePlayer-isConnected.patch => 0927-Implement-OfflinePlayer-isConnected.patch} (94%) rename patches/server/{0929-Fix-inventory-desync.patch => 0928-Fix-inventory-desync.patch} (100%) rename patches/server/{0930-Add-titleOverride-to-InventoryOpenEvent.patch => 0929-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/server/{0931-Configure-sniffer-egg-hatch-time.patch => 0930-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0932-Do-crystal-portal-proximity-check-before-entity-look.patch => 0931-Do-crystal-portal-proximity-check-before-entity-look.patch} (97%) rename patches/server/{0933-Skip-POI-finding-if-stuck-in-vehicle.patch => 0932-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0934-Add-slot-sanity-checks-in-container-clicks.patch => 0933-Add-slot-sanity-checks-in-container-clicks.patch} (100%) rename patches/server/{0935-Call-BlockRedstoneEvents-for-lecterns.patch => 0934-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0936-Allow-proper-checking-of-empty-item-stacks.patch => 0935-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0937-Fix-silent-equipment-change-for-mobs.patch => 0936-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{0938-Fix-spigot-s-Forced-Stats.patch => 0937-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0939-Add-missing-InventoryHolders-to-inventories.patch => 0938-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/server/{0940-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0939-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{0941-Add-missing-logs-for-log-ips-config-option.patch => 0940-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0942-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0941-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{0943-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0942-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{0944-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0943-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{0945-Fix-team-sidebar-objectives-not-being-cleared.patch => 0944-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{0946-Fix-missing-map-initialize-event-call.patch => 0945-Fix-missing-map-initialize-event-call.patch} (95%) rename patches/server/{0947-Update-entity-data-when-attaching-firework-to-entity.patch => 0946-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{0948-Use-correct-variable-for-initializing-CraftLootTable.patch => 0947-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{0949-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 0948-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{0950-Fix-UnsafeValues-loadAdvancement.patch => 0949-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{0951-Add-player-idle-duration-API.patch => 0950-Add-player-idle-duration-API.patch} (91%) rename patches/server/{0952-Don-t-check-if-we-can-see-non-visible-entities.patch => 0951-Don-t-check-if-we-can-see-non-visible-entities.patch} (91%) rename patches/server/{0953-Fix-NPE-in-SculkBloomEvent-world-access.patch => 0952-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{0954-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 0953-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (90%) rename patches/server/{0955-Optimize-VarInts.patch => 0954-Optimize-VarInts.patch} (100%) rename patches/server/{0956-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0955-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{0957-Add-predicate-for-blocks-when-raytracing.patch => 0956-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/server/{0958-Broadcast-take-item-packets-with-collector-as-source.patch => 0957-Broadcast-take-item-packets-with-collector-as-source.patch} (100%) rename patches/server/{0959-Expand-LingeringPotion-API.patch => 0958-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{0960-Add-MaterialTagsTest.patch => 0959-Add-MaterialTagsTest.patch} (100%) rename patches/server/{0961-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 0960-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/server/{0962-Add-hand-to-fish-event-for-all-player-interactions.patch => 0961-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{0963-Fix-several-issues-with-EntityBreedEvent.patch => 0962-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{0964-Add-UUID-attribute-modifier-API.patch => 0963-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{0965-Fix-missing-event-call-for-entity-teleport-API.patch => 0964-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{0966-Lazily-create-LootContext-for-criterions.patch => 0965-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{0967-Don-t-fire-sync-events-during-worldgen.patch => 0966-Don-t-fire-sync-events-during-worldgen.patch} (99%) rename patches/server/{0968-Add-Structure-check-API.patch => 0967-Add-Structure-check-API.patch} (100%) rename patches/server/{0969-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 0968-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (93%) rename patches/server/{0970-Restore-vanilla-entity-drops-behavior.patch => 0969-Restore-vanilla-entity-drops-behavior.patch} (99%) rename patches/server/{0971-Dont-resend-blocks-on-interactions.patch => 0970-Dont-resend-blocks-on-interactions.patch} (100%) rename patches/server/{0972-add-more-scoreboard-API.patch => 0971-add-more-scoreboard-API.patch} (100%) rename patches/server/{0973-Improve-Registry.patch => 0972-Improve-Registry.patch} (100%) rename patches/server/{0974-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 0973-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (100%) rename patches/server/{0975-Add-experience-points-API.patch => 0974-Add-experience-points-API.patch} (100%) rename patches/server/{0976-Add-drops-to-shear-events.patch => 0975-Add-drops-to-shear-events.patch} (100%) rename patches/server/{0977-Add-PlayerShieldDisableEvent.patch => 0976-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/server/{0978-Validate-ResourceLocation-in-NBT-reading.patch => 0977-Validate-ResourceLocation-in-NBT-reading.patch} (100%) rename patches/server/{0979-Properly-handle-experience-dropping-on-block-break.patch => 0978-Properly-handle-experience-dropping-on-block-break.patch} (98%) rename patches/server/{0980-Fixup-NamespacedKey-handling.patch => 0979-Fixup-NamespacedKey-handling.patch} (100%) rename patches/server/{0981-Expose-LootTable-of-DecoratedPot.patch => 0980-Expose-LootTable-of-DecoratedPot.patch} (100%) rename patches/server/{0982-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 0981-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (97%) rename patches/server/{0983-Rewrite-dataconverter-system.patch => 0982-Rewrite-dataconverter-system.patch} (100%) rename patches/server/{0984-Starlight.patch => 0983-Starlight.patch} (99%) rename patches/server/{0985-Rewrite-chunk-system.patch => 0984-Rewrite-chunk-system.patch} (99%) rename patches/server/{0986-incremental-chunk-and-player-saving.patch => 0985-incremental-chunk-and-player-saving.patch} (100%) rename patches/server/{0987-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch => 0986-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch} (98%) rename patches/server/{0988-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch => 0987-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch} (100%) rename patches/server/{0989-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch => 0988-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch} (100%) rename patches/server/{0990-Optimize-Network-Manager-and-add-advanced-packet-sup.patch => 0989-Optimize-Network-Manager-and-add-advanced-packet-sup.patch} (100%) rename patches/server/{0991-Allow-Saving-of-Oversized-Chunks.patch => 0990-Allow-Saving-of-Oversized-Chunks.patch} (100%) rename patches/server/{0992-Fix-World-isChunkGenerated-calls.patch => 0991-Fix-World-isChunkGenerated-calls.patch} (99%) rename patches/server/{0993-Flat-bedrock-generator-settings.patch => 0992-Flat-bedrock-generator-settings.patch} (100%) rename patches/server/{0994-Entity-Activation-Range-2.0.patch => 0993-Entity-Activation-Range-2.0.patch} (99%) rename patches/server/{0995-Optional-per-player-mob-spawns.patch => 0994-Optional-per-player-mob-spawns.patch} (99%) rename patches/server/{0996-Anti-Xray.patch => 0995-Anti-Xray.patch} (100%) rename patches/server/{0997-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0996-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (98%) rename patches/server/{0998-Optimize-Collision-to-not-load-chunks.patch => 0997-Optimize-Collision-to-not-load-chunks.patch} (98%) rename patches/server/{0999-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => 0998-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (100%) rename patches/server/{1000-Entity-load-save-limit-per-chunk.patch => 0999-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/server/{1001-Fix-and-optimise-world-force-upgrading.patch => 1000-Fix-and-optimise-world-force-upgrading.patch} (99%) rename patches/server/{1002-Improved-Watchdog-Support.patch => 1001-Improved-Watchdog-Support.patch} (100%) rename patches/server/{1003-Optimize-Voxel-Shape-Merging.patch => 1002-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/server/{1004-Write-SavedData-IO-async.patch => 1003-Write-SavedData-IO-async.patch} (99%) rename patches/server/{1005-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 1004-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (98%) rename patches/server/{1006-Use-distance-map-to-optimise-entity-tracker.patch => 1005-Use-distance-map-to-optimise-entity-tracker.patch} (99%) rename patches/server/{1007-Optimize-Bit-Operations-by-inlining.patch => 1006-Optimize-Bit-Operations-by-inlining.patch} (100%) rename patches/server/{1008-Remove-streams-from-hot-code.patch => 1007-Remove-streams-from-hot-code.patch} (100%) rename patches/server/{1009-Eigencraft-redstone-implementation.patch => 1008-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{1011-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 1010-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (100%) rename patches/server/{1012-Improve-boat-collision-performance.patch => 1011-Improve-boat-collision-performance.patch} (100%) rename patches/server/{1013-Optimise-general-POI-access.patch => 1012-Optimise-general-POI-access.patch} (100%) rename patches/server/{1014-Custom-table-implementation-for-blockstate-state-loo.patch => 1013-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{1015-Execute-chunk-tasks-mid-tick.patch => 1014-Execute-chunk-tasks-mid-tick.patch} (97%) rename patches/server/{1016-Optimise-random-block-ticking.patch => 1015-Optimise-random-block-ticking.patch} (99%) rename patches/server/{1017-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1016-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{1018-Use-Velocity-compression-and-cipher-natives.patch => 1017-Use-Velocity-compression-and-cipher-natives.patch} (99%) rename patches/server/{1019-Detail-more-information-in-watchdog-dumps.patch => 1018-Detail-more-information-in-watchdog-dumps.patch} (99%) rename patches/server/{1020-Collision-optimisations.patch => 1019-Collision-optimisations.patch} (99%) rename patches/server/{1021-Optimise-collision-checking-in-player-move-packet-ha.patch => 1020-Optimise-collision-checking-in-player-move-packet-ha.patch} (99%) rename patches/server/{1022-Fix-tripwire-state-inconsistency.patch => 1021-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{1023-Fix-entity-type-tags-suggestions-in-selectors.patch => 1022-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{1024-Add-Alternate-Current-redstone-implementation.patch => 1023-Add-Alternate-Current-redstone-implementation.patch} (99%) rename patches/server/{1025-optimize-dirt-and-snow-spreading.patch => 1024-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{1026-Properly-resend-entities.patch => 1025-Properly-resend-entities.patch} (100%) rename patches/server/{1027-Optimize-Hoppers.patch => 1026-Optimize-Hoppers.patch} (100%) rename patches/server/{1028-Improve-performance-of-mass-crafts.patch => 1027-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{1029-Actually-optimise-explosions.patch => 1028-Actually-optimise-explosions.patch} (99%) rename patches/server/{1030-Optimise-chunk-tick-iteration.patch => 1029-Optimise-chunk-tick-iteration.patch} (99%) rename patches/server/{1031-Lag-compensation-ticks.patch => 1030-Lag-compensation-ticks.patch} (100%) rename patches/server/{1032-Optimise-nearby-player-retrieval.patch => 1031-Optimise-nearby-player-retrieval.patch} (99%) rename patches/server/{1033-Distance-manager-tick-timings.patch => 1032-Distance-manager-tick-timings.patch} (100%) rename patches/server/{1034-Handle-Oversized-block-entities-in-chunks.patch => 1033-Handle-Oversized-block-entities-in-chunks.patch} (100%) rename patches/server/{1035-Send-full-pos-packets-for-hard-colliding-entities.patch => 1034-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{1036-Add-ShulkerDuplicateEvent.patch => 1035-Add-ShulkerDuplicateEvent.patch} (100%) rename patches/server/{1037-Add-api-for-spawn-egg-texture-colors.patch => 1036-Add-api-for-spawn-egg-texture-colors.patch} (100%) rename patches/server/{1038-Disable-memory-reserve-allocating.patch => 1037-Disable-memory-reserve-allocating.patch} (100%) rename patches/server/{1039-Improve-tag-parser-handling.patch => 1038-Improve-tag-parser-handling.patch} (100%) rename patches/server/{1040-Add-Lifecycle-Event-system.patch => 1039-Add-Lifecycle-Event-system.patch} (100%) rename patches/server/{1041-Conduit-API.patch => 1040-Conduit-API.patch} (100%) rename patches/server/{1042-ItemStack-Tooltip-API.patch => 1041-ItemStack-Tooltip-API.patch} (100%) rename patches/server/{1043-Fix-possible-StackOverflowError-for-some-dispenses.patch => 1042-Fix-possible-StackOverflowError-for-some-dispenses.patch} (100%) rename patches/server/{1044-Properly-track-the-changed-item-from-dispense-events.patch => 1043-Properly-track-the-changed-item-from-dispense-events.patch} (100%) rename patches/server/{1045-Add-getChunkSnapshot-includeLightData-parameter.patch => 1044-Add-getChunkSnapshot-includeLightData-parameter.patch} (100%) rename patches/server/{1046-Add-FluidState-API.patch => 1045-Add-FluidState-API.patch} (98%) rename patches/server/{1047-add-number-format-api.patch => 1046-add-number-format-api.patch} (100%) rename patches/server/{1048-check-if-itemstack-is-stackable-first.patch => 1047-check-if-itemstack-is-stackable-first.patch} (100%) rename patches/server/{1049-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch => 1048-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch} (100%) rename patches/server/{1050-improve-BanList-types.patch => 1049-improve-BanList-types.patch} (100%) rename patches/server/{1051-Configurable-max-block-fluid-ticks.patch => 1050-Configurable-max-block-fluid-ticks.patch} (100%) rename patches/server/{1052-disable-forced-empty-world-ticks.patch => 1051-disable-forced-empty-world-ticks.patch} (100%) rename patches/server/{1053-Suspicious-Effect-Entry-API.patch => 1052-Suspicious-Effect-Entry-API.patch} (100%) diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index f8a1046ab5..57e8a5c627 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -482,10 +482,10 @@ index 0000000000000000000000000000000000000000..c01b4393439838976965823298f12e47 +} diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java new file mode 100644 -index 0000000000000000000000000000000000000000..57e6e857c84234bf0c137058ae35e6fb0e9b124f +index 0000000000000000000000000000000000000000..7a53374319d5495253f277199114eaf43097456d --- /dev/null +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -0,0 +1,309 @@ +@@ -0,0 +1,311 @@ +package io.papermc.paper.configuration; + +import co.aikar.timings.MinecraftTimings; @@ -635,6 +635,8 @@ index 0000000000000000000000000000000000000000..57e6e857c84234bf0c137058ae35e6fb + public UnsupportedSettings unsupportedSettings; + + public class UnsupportedSettings extends ConfigurationPart { ++ @Comment("This setting allows for exploits related to end portals, for example sand duping") ++ public boolean allowUnsafeEndPortalTeleportation = false; + @Comment("This setting controls if players should be able to break bedrock, end portals and other intended to be permanent blocks.") + public boolean allowPermanentBlockBreakExploits = false; + @Comment("This setting controls if player should be able to use TNT duplication, but this also allows duplicating carpet, rails and potentially other items") diff --git a/patches/server/0383-Fix-missing-chunks-due-to-integer-overflow.patch b/patches/server/0382-Fix-missing-chunks-due-to-integer-overflow.patch similarity index 100% rename from patches/server/0383-Fix-missing-chunks-due-to-integer-overflow.patch rename to patches/server/0382-Fix-missing-chunks-due-to-integer-overflow.patch diff --git a/patches/server/0382-Fix-sand-duping.patch b/patches/server/0382-Fix-sand-duping.patch deleted file mode 100644 index f99be8b6c7..0000000000 --- a/patches/server/0382-Fix-sand-duping.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Spottedleaf -Date: Fri, 12 Jun 2020 13:33:19 -0700 -Subject: [PATCH] Fix sand duping - -If the falling block dies during teleportation (entity#move), then we need -to detect that by placing a check after the move. - -diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index c0477f913867c67809978a4f240303151d81e6ea..33cc2d1a4723ec07c4201eb6e0080d5e0281e1f0 100644 ---- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -@@ -132,6 +132,11 @@ public class FallingBlockEntity extends Entity { - - @Override - public void tick() { -+ // Paper start - fix sand duping -+ if (this.isRemoved()) { -+ return; -+ } -+ // Paper end - fix sand duping - if (this.blockState.isAir()) { - this.discard(EntityRemoveEvent.Cause.DESPAWN); // CraftBukkit - add Bukkit remove cause - } else { -@@ -143,6 +148,11 @@ public class FallingBlockEntity extends Entity { - } - - this.move(MoverType.SELF, this.getDeltaMovement()); -+ // Paper start - fix sand duping -+ if (this.isRemoved()) { -+ return; -+ } -+ // Paper end - fix sand duping - // Paper start - Configurable falling blocks height nerf - if (this.level().paperConfig().fixes.fallingBlockHeightNerf.test(v -> this.getY() > v)) { - if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { diff --git a/patches/server/0384-Prevent-position-desync-causing-tp-exploit.patch b/patches/server/0383-Prevent-position-desync-causing-tp-exploit.patch similarity index 94% rename from patches/server/0384-Prevent-position-desync-causing-tp-exploit.patch rename to patches/server/0383-Prevent-position-desync-causing-tp-exploit.patch index 60bf017cb9..8681f50831 100644 --- a/patches/server/0384-Prevent-position-desync-causing-tp-exploit.patch +++ b/patches/server/0383-Prevent-position-desync-causing-tp-exploit.patch @@ -13,7 +13,7 @@ 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 874a1998b6aaff9f4c7818481298ad51e1adc525..67470ad0c09ae94e5fab775a28cdefdf1241c5fa 100644 +index c0907af0169862702a4f28985d141c0acb506f51..2eeeb1f1b07db439a68d70c55192aa9fb54f620c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1366,6 +1366,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0385-Inventory-getHolder-method-without-block-snapshot.patch b/patches/server/0384-Inventory-getHolder-method-without-block-snapshot.patch similarity index 100% rename from patches/server/0385-Inventory-getHolder-method-without-block-snapshot.patch rename to patches/server/0384-Inventory-getHolder-method-without-block-snapshot.patch diff --git a/patches/server/0386-Improve-Arrow-API.patch b/patches/server/0385-Improve-Arrow-API.patch similarity index 100% rename from patches/server/0386-Improve-Arrow-API.patch rename to patches/server/0385-Improve-Arrow-API.patch diff --git a/patches/server/0387-Add-PlayerRecipeBookClickEvent.patch b/patches/server/0386-Add-PlayerRecipeBookClickEvent.patch similarity index 100% rename from patches/server/0387-Add-PlayerRecipeBookClickEvent.patch rename to patches/server/0386-Add-PlayerRecipeBookClickEvent.patch diff --git a/patches/server/0388-Hide-sync-chunk-writes-behind-flag.patch b/patches/server/0387-Hide-sync-chunk-writes-behind-flag.patch similarity index 100% rename from patches/server/0388-Hide-sync-chunk-writes-behind-flag.patch rename to patches/server/0387-Hide-sync-chunk-writes-behind-flag.patch diff --git a/patches/server/0389-Add-permission-for-command-blocks.patch b/patches/server/0388-Add-permission-for-command-blocks.patch similarity index 98% rename from patches/server/0389-Add-permission-for-command-blocks.patch rename to patches/server/0388-Add-permission-for-command-blocks.patch index 6948cb2f18..6134ce4262 100644 --- a/patches/server/0389-Add-permission-for-command-blocks.patch +++ b/patches/server/0388-Add-permission-for-command-blocks.patch @@ -18,7 +18,7 @@ index e8b12b27e5ec74afb940f575e5ce78e5905d55f4..c3eb4b6372eed0b7eb636f495ce494b6 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 98826ba4ab062e029359968c221ba320b2d2daeb..e9a3edbb66c79664f35150f052b6ff3534d0904c 100644 +index 80b6871516c45291f63b1ae521dcdf34199fd9b4..d78d411879275f11f395b4f9c94b7aab88342236 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -778,7 +778,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0390-Ensure-Entity-position-and-AABB-are-never-invalid.patch b/patches/server/0389-Ensure-Entity-position-and-AABB-are-never-invalid.patch similarity index 100% rename from patches/server/0390-Ensure-Entity-position-and-AABB-are-never-invalid.patch rename to patches/server/0389-Ensure-Entity-position-and-AABB-are-never-invalid.patch diff --git a/patches/server/0391-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0390-Fix-Per-World-Difficulty-Remembering-Difficulty.patch similarity index 100% rename from patches/server/0391-Fix-Per-World-Difficulty-Remembering-Difficulty.patch rename to patches/server/0390-Fix-Per-World-Difficulty-Remembering-Difficulty.patch diff --git a/patches/server/0392-Paper-dumpitem-command.patch b/patches/server/0391-Paper-dumpitem-command.patch similarity index 100% rename from patches/server/0392-Paper-dumpitem-command.patch rename to patches/server/0391-Paper-dumpitem-command.patch diff --git a/patches/server/0393-Improve-Legacy-Component-serialization-size.patch b/patches/server/0392-Improve-Legacy-Component-serialization-size.patch similarity index 100% rename from patches/server/0393-Improve-Legacy-Component-serialization-size.patch rename to patches/server/0392-Improve-Legacy-Component-serialization-size.patch diff --git a/patches/server/0394-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0393-Add-Plugin-Tickets-to-API-Chunk-Methods.patch similarity index 100% rename from patches/server/0394-Add-Plugin-Tickets-to-API-Chunk-Methods.patch rename to patches/server/0393-Add-Plugin-Tickets-to-API-Chunk-Methods.patch diff --git a/patches/server/0395-Add-BlockStateMeta-clearBlockState.patch b/patches/server/0394-Add-BlockStateMeta-clearBlockState.patch similarity index 100% rename from patches/server/0395-Add-BlockStateMeta-clearBlockState.patch rename to patches/server/0394-Add-BlockStateMeta-clearBlockState.patch diff --git a/patches/server/0396-Support-old-UUID-format-for-NBT.patch b/patches/server/0395-Support-old-UUID-format-for-NBT.patch similarity index 100% rename from patches/server/0396-Support-old-UUID-format-for-NBT.patch rename to patches/server/0395-Support-old-UUID-format-for-NBT.patch diff --git a/patches/server/0397-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0396-Convert-legacy-attributes-in-Item-Meta.patch similarity index 97% rename from patches/server/0397-Convert-legacy-attributes-in-Item-Meta.patch rename to patches/server/0396-Convert-legacy-attributes-in-Item-Meta.patch index 73fa3e1bc2..382b69e42d 100644 --- a/patches/server/0397-Convert-legacy-attributes-in-Item-Meta.patch +++ b/patches/server/0396-Convert-legacy-attributes-in-Item-Meta.patch @@ -30,7 +30,7 @@ index d4dba8c733c7560e5108b8d239b52e593f8debec..ea48f1119a940056c37d1d203437bfbf public CraftAttributeMap(AttributeMap handle) { this.handle = handle; diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 629fa76e6c7c2ede36ab855bb3a7a65dfd601449..a3713c5ab624b8d54ddcd69ae7587346ebbaed69 100644 +index 7cf1153ae532a9d53ee85b05f77ed74b94cf5fbc..27be5da67801be6fd99c91576064e4be0b3f0d6c 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -485,7 +485,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/0398-Do-not-accept-invalid-client-settings.patch b/patches/server/0397-Do-not-accept-invalid-client-settings.patch similarity index 100% rename from patches/server/0398-Do-not-accept-invalid-client-settings.patch rename to patches/server/0397-Do-not-accept-invalid-client-settings.patch diff --git a/patches/server/0399-Improve-fix-EntityTargetLivingEntityEvent.patch b/patches/server/0398-Improve-fix-EntityTargetLivingEntityEvent.patch similarity index 100% rename from patches/server/0399-Improve-fix-EntityTargetLivingEntityEvent.patch rename to patches/server/0398-Improve-fix-EntityTargetLivingEntityEvent.patch diff --git a/patches/server/0400-Add-entity-liquid-API.patch b/patches/server/0399-Add-entity-liquid-API.patch similarity index 100% rename from patches/server/0400-Add-entity-liquid-API.patch rename to patches/server/0399-Add-entity-liquid-API.patch diff --git a/patches/server/0401-Update-itemstack-legacy-name-and-lore.patch b/patches/server/0400-Update-itemstack-legacy-name-and-lore.patch similarity index 100% rename from patches/server/0401-Update-itemstack-legacy-name-and-lore.patch rename to patches/server/0400-Update-itemstack-legacy-name-and-lore.patch diff --git a/patches/server/0402-Add-PrepareResultEvent.patch b/patches/server/0401-Add-PrepareResultEvent.patch similarity index 100% rename from patches/server/0402-Add-PrepareResultEvent.patch rename to patches/server/0401-Add-PrepareResultEvent.patch diff --git a/patches/server/0403-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0402-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch similarity index 100% rename from patches/server/0403-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch rename to patches/server/0402-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch diff --git a/patches/server/0404-Fix-arrows-never-despawning-MC-125757.patch b/patches/server/0403-Fix-arrows-never-despawning-MC-125757.patch similarity index 100% rename from patches/server/0404-Fix-arrows-never-despawning-MC-125757.patch rename to patches/server/0403-Fix-arrows-never-despawning-MC-125757.patch diff --git a/patches/server/0405-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0404-Thread-Safe-Vanilla-Command-permission-checking.patch similarity index 100% rename from patches/server/0405-Thread-Safe-Vanilla-Command-permission-checking.patch rename to patches/server/0404-Thread-Safe-Vanilla-Command-permission-checking.patch diff --git a/patches/server/0406-Fix-SPIGOT-5989.patch b/patches/server/0405-Fix-SPIGOT-5989.patch similarity index 100% rename from patches/server/0406-Fix-SPIGOT-5989.patch rename to patches/server/0405-Fix-SPIGOT-5989.patch diff --git a/patches/server/0407-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/patches/server/0406-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch similarity index 100% rename from patches/server/0407-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch rename to patches/server/0406-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch diff --git a/patches/server/0408-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch b/patches/server/0407-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch similarity index 100% rename from patches/server/0408-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch rename to patches/server/0407-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch diff --git a/patches/server/0409-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/patches/server/0408-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch similarity index 100% rename from patches/server/0409-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch rename to patches/server/0408-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch diff --git a/patches/server/0410-Optimize-NetworkManager-Exception-Handling.patch b/patches/server/0409-Optimize-NetworkManager-Exception-Handling.patch similarity index 100% rename from patches/server/0410-Optimize-NetworkManager-Exception-Handling.patch rename to patches/server/0409-Optimize-NetworkManager-Exception-Handling.patch diff --git a/patches/server/0411-Fix-some-rails-connecting-improperly.patch b/patches/server/0410-Fix-some-rails-connecting-improperly.patch similarity index 100% rename from patches/server/0411-Fix-some-rails-connecting-improperly.patch rename to patches/server/0410-Fix-some-rails-connecting-improperly.patch diff --git a/patches/server/0412-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch b/patches/server/0411-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch similarity index 100% rename from patches/server/0412-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch rename to patches/server/0411-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch diff --git a/patches/server/0413-Brand-support.patch b/patches/server/0412-Brand-support.patch similarity index 98% rename from patches/server/0413-Brand-support.patch rename to patches/server/0412-Brand-support.patch index 5c4d8ed97e..bccbce58fe 100644 --- a/patches/server/0413-Brand-support.patch +++ b/patches/server/0412-Brand-support.patch @@ -57,7 +57,7 @@ index e69043316372d98b122ed3788fda79cdd36849e8..6597e6e9987ddb5906909c22704fdfb6 } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d6bddec130167af3d72555535045568ee941bb88..6e9fc623f5a56753e2c78c3ff63c6f4de7cbcccb 100644 +index 5ba0fa6fda6d496f7540185e6dc58439cc1e04f1..16d1338df730fd66c079b66117cbef91786f2146 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3056,6 +3056,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0414-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0413-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 90% rename from patches/server/0414-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/server/0413-Add-playPickupItemAnimation-to-LivingEntity.patch index 56a928d96f..c7055de757 100644 --- a/patches/server/0414-Add-playPickupItemAnimation-to-LivingEntity.patch +++ b/patches/server/0413-Add-playPickupItemAnimation-to-LivingEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 9a9d119e76fca75a9e531f4bbd204ab8eb9a1263..bf581842476b8f554987b452c291a55a1dfc92c5 100644 +index c4db692fb5d952e4d185067388fd46ed0e1f1537..e07553c3ee28a2510c46a8188c8ce507f2567c80 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -949,5 +949,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0415-Don-t-require-FACING-data.patch b/patches/server/0414-Don-t-require-FACING-data.patch similarity index 100% rename from patches/server/0415-Don-t-require-FACING-data.patch rename to patches/server/0414-Don-t-require-FACING-data.patch diff --git a/patches/server/0416-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0415-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 96% rename from patches/server/0416-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/server/0415-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 066bed27a2..9c8dcfe23c 100644 --- a/patches/server/0416-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0415-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d2da284aa7284c5205e656c48262061980893be6..aa2f23c4f7d25d0f92ff025bb1840aff1b053fa3 100644 +index 9af1877321356348ad96b92ae8c5f4811bef50ac..2e42e09d3fa19e5a16374ee6ac1677dd2b2004f1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1726,9 +1726,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0417-Add-moon-phase-API.patch b/patches/server/0416-Add-moon-phase-API.patch similarity index 100% rename from patches/server/0417-Add-moon-phase-API.patch rename to patches/server/0416-Add-moon-phase-API.patch diff --git a/patches/server/0418-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0417-Do-not-let-the-server-load-chunks-from-newer-version.patch similarity index 100% rename from patches/server/0418-Do-not-let-the-server-load-chunks-from-newer-version.patch rename to patches/server/0417-Do-not-let-the-server-load-chunks-from-newer-version.patch diff --git a/patches/server/0419-Prevent-headless-pistons-from-being-created.patch b/patches/server/0418-Prevent-headless-pistons-from-being-created.patch similarity index 95% rename from patches/server/0419-Prevent-headless-pistons-from-being-created.patch rename to patches/server/0418-Prevent-headless-pistons-from-being-created.patch index c4ae7a0fb8..2dbb5ee5de 100644 --- a/patches/server/0419-Prevent-headless-pistons-from-being-created.patch +++ b/patches/server/0418-Prevent-headless-pistons-from-being-created.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Prevent headless pistons from being created Prevent headless pistons from being created by explosions or tree/mushroom growth. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index b03b4d366cae39081a7b70524e8615c986d76362..cd939ab6958e8eb632056d32f68e2fcae7735d64 100644 +index b057a67a416928ae30bd407b3da982b73ae3be03..2d1fe6af7923ad4a0143f2d3fd28abc85e6092c1 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -205,6 +205,15 @@ public class Explosion { diff --git a/patches/server/0420-Add-BellRingEvent.patch b/patches/server/0419-Add-BellRingEvent.patch similarity index 100% rename from patches/server/0420-Add-BellRingEvent.patch rename to patches/server/0419-Add-BellRingEvent.patch diff --git a/patches/server/0421-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0420-Add-zombie-targets-turtle-egg-config.patch similarity index 100% rename from patches/server/0421-Add-zombie-targets-turtle-egg-config.patch rename to patches/server/0420-Add-zombie-targets-turtle-egg-config.patch diff --git a/patches/server/0422-Buffer-joins-to-world.patch b/patches/server/0421-Buffer-joins-to-world.patch similarity index 100% rename from patches/server/0422-Buffer-joins-to-world.patch rename to patches/server/0421-Buffer-joins-to-world.patch diff --git a/patches/server/0423-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0422-Fix-hex-colors-not-working-in-some-kick-messages.patch similarity index 100% rename from patches/server/0423-Fix-hex-colors-not-working-in-some-kick-messages.patch rename to patches/server/0422-Fix-hex-colors-not-working-in-some-kick-messages.patch diff --git a/patches/server/0424-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0423-PortalCreateEvent-needs-to-know-its-entity.patch similarity index 100% rename from patches/server/0424-PortalCreateEvent-needs-to-know-its-entity.patch rename to patches/server/0423-PortalCreateEvent-needs-to-know-its-entity.patch diff --git a/patches/server/0425-Add-more-Evoker-API.patch b/patches/server/0424-Add-more-Evoker-API.patch similarity index 100% rename from patches/server/0425-Add-more-Evoker-API.patch rename to patches/server/0424-Add-more-Evoker-API.patch diff --git a/patches/server/0426-Add-methods-to-get-translation-keys.patch b/patches/server/0425-Add-methods-to-get-translation-keys.patch similarity index 100% rename from patches/server/0426-Add-methods-to-get-translation-keys.patch rename to patches/server/0425-Add-methods-to-get-translation-keys.patch diff --git a/patches/server/0427-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0426-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/server/0427-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/server/0426-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/server/0428-Cache-block-data-strings.patch b/patches/server/0427-Cache-block-data-strings.patch similarity index 100% rename from patches/server/0428-Cache-block-data-strings.patch rename to patches/server/0427-Cache-block-data-strings.patch diff --git a/patches/server/0429-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0428-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch similarity index 98% rename from patches/server/0429-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch rename to patches/server/0428-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch index 92ccabf898..5fb2dcfe1f 100644 --- a/patches/server/0429-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch +++ b/patches/server/0428-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch @@ -31,7 +31,7 @@ index 789576f8b7b3001c243972b320b7dffbbf3baa5f..3b73565d295c09a5ab0d610338498f01 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index dfea1879b8ab8d12bc7530ccf409f4d24978105d..a3d1f7ccac58cfec8f50dbdb3a620daa4894fffb 100644 +index 11a9142962637af5e26939a5eb8f35ba5f205793..f839ab6dea7f1efd59f22bcef91d4e279b1c232a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -162,6 +162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0430-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0429-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/server/0430-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/server/0429-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/server/0431-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0430-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch similarity index 100% rename from patches/server/0431-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch rename to patches/server/0430-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch diff --git a/patches/server/0432-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0431-Extend-block-drop-capture-to-capture-all-items-added.patch similarity index 96% rename from patches/server/0432-Extend-block-drop-capture-to-capture-all-items-added.patch rename to patches/server/0431-Extend-block-drop-capture-to-capture-all-items-added.patch index f7a5dbb2e8..aa2f0131c1 100644 --- a/patches/server/0432-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/patches/server/0431-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Extend block drop capture to capture all items added to the diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index aa2f23c4f7d25d0f92ff025bb1840aff1b053fa3..a668e204946943bcc963ad41ea3029111267eef9 100644 +index 2e42e09d3fa19e5a16374ee6ac1677dd2b2004f1..283f686364691f54d9e9e925b33238526de74219 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1224,6 +1224,12 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0433-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0432-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 100% rename from patches/server/0433-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/server/0432-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch diff --git a/patches/server/0434-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0433-Lazily-track-plugin-scoreboards-by-default.patch similarity index 100% rename from patches/server/0434-Lazily-track-plugin-scoreboards-by-default.patch rename to patches/server/0433-Lazily-track-plugin-scoreboards-by-default.patch diff --git a/patches/server/0435-Entity-isTicking.patch b/patches/server/0434-Entity-isTicking.patch similarity index 100% rename from patches/server/0435-Entity-isTicking.patch rename to patches/server/0434-Entity-isTicking.patch diff --git a/patches/server/0436-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0435-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch similarity index 100% rename from patches/server/0436-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch rename to patches/server/0435-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch diff --git a/patches/server/0437-Fix-Concurrency-issue-in-ShufflingList.patch b/patches/server/0436-Fix-Concurrency-issue-in-ShufflingList.patch similarity index 100% rename from patches/server/0437-Fix-Concurrency-issue-in-ShufflingList.patch rename to patches/server/0436-Fix-Concurrency-issue-in-ShufflingList.patch diff --git a/patches/server/0438-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0437-Reset-Ender-Crystals-on-Dragon-Spawn.patch similarity index 92% rename from patches/server/0438-Reset-Ender-Crystals-on-Dragon-Spawn.patch rename to patches/server/0437-Reset-Ender-Crystals-on-Dragon-Spawn.patch index b93dbed55c..3a8fa9719c 100644 --- a/patches/server/0438-Reset-Ender-Crystals-on-Dragon-Spawn.patch +++ b/patches/server/0437-Reset-Ender-Crystals-on-Dragon-Spawn.patch @@ -11,7 +11,7 @@ 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 cad7a1b28c9d7a3e67dbf0865cbf232ebd39a8d9..3953bbfdaf3e93468108d194c215e6242e14f067 100644 +index 1c716cf65d77e54ba8f90c8cf736e20c64f5df2e..f615b7f43f1444cf1e34b92cb0c05242a5dc26fd 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 @@ -472,6 +472,7 @@ public class EndDragonFight { diff --git a/patches/server/0439-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0438-Fix-for-large-move-vectors-crashing-server.patch similarity index 98% rename from patches/server/0439-Fix-for-large-move-vectors-crashing-server.patch rename to patches/server/0438-Fix-for-large-move-vectors-crashing-server.patch index 5b7b0e19db..572b5d2307 100644 --- a/patches/server/0439-Fix-for-large-move-vectors-crashing-server.patch +++ b/patches/server/0438-Fix-for-large-move-vectors-crashing-server.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix for large move vectors crashing server Check movement distance also based on current position. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4e37b9a495babec58f60b59db0e034d5e033b198..5e605b9bdb76ca0c9529e7351432578855cc7fa2 100644 +index 3b73565d295c09a5ab0d610338498f01c7b1520d..e08c3e0d09896da60cbec7923882bc2263de1bae 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -472,9 +472,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0440-Optimise-getType-calls.patch b/patches/server/0439-Optimise-getType-calls.patch similarity index 100% rename from patches/server/0440-Optimise-getType-calls.patch rename to patches/server/0439-Optimise-getType-calls.patch diff --git a/patches/server/0441-Villager-resetOffers.patch b/patches/server/0440-Villager-resetOffers.patch similarity index 100% rename from patches/server/0441-Villager-resetOffers.patch rename to patches/server/0440-Villager-resetOffers.patch diff --git a/patches/server/0442-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0441-Retain-block-place-order-when-capturing-blockstates.patch similarity index 93% rename from patches/server/0442-Retain-block-place-order-when-capturing-blockstates.patch rename to patches/server/0441-Retain-block-place-order-when-capturing-blockstates.patch index db9341df0c..f568cd0d92 100644 --- a/patches/server/0442-Retain-block-place-order-when-capturing-blockstates.patch +++ b/patches/server/0441-Retain-block-place-order-when-capturing-blockstates.patch @@ -10,7 +10,7 @@ In general, look at making this logic more robust (i.e properly handling cases where a captured entry is overriden) - but for now this will do. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index caf2c9799aa5ddbd5caf160e2c8f2e8f0cdaa1f8..9879f9fd804f93faae4419add2c4c64fc6902ba1 100644 +index cb6c6e8c8fe744350a117f38e474ce8f5dd0a43a..1bb7cc9462cab7fbd09b944662711ae5bc5cf950 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -154,7 +154,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0443-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0442-Reduce-blockpos-allocation-from-pathfinding.patch similarity index 100% rename from patches/server/0443-Reduce-blockpos-allocation-from-pathfinding.patch rename to patches/server/0442-Reduce-blockpos-allocation-from-pathfinding.patch diff --git a/patches/server/0444-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0443-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/server/0444-Fix-item-locations-dropped-from-campfires.patch rename to patches/server/0443-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/server/0445-Fix-bell-block-entity-memory-leak.patch b/patches/server/0444-Fix-bell-block-entity-memory-leak.patch similarity index 100% rename from patches/server/0445-Fix-bell-block-entity-memory-leak.patch rename to patches/server/0444-Fix-bell-block-entity-memory-leak.patch diff --git a/patches/server/0446-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0445-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/server/0446-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/server/0445-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/server/0447-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0446-Add-getOfflinePlayerIfCached-String.patch similarity index 100% rename from patches/server/0447-Add-getOfflinePlayerIfCached-String.patch rename to patches/server/0446-Add-getOfflinePlayerIfCached-String.patch diff --git a/patches/server/0448-Add-ignore-discounts-API.patch b/patches/server/0447-Add-ignore-discounts-API.patch similarity index 100% rename from patches/server/0448-Add-ignore-discounts-API.patch rename to patches/server/0447-Add-ignore-discounts-API.patch diff --git a/patches/server/0449-Toggle-for-removing-existing-dragon.patch b/patches/server/0448-Toggle-for-removing-existing-dragon.patch similarity index 100% rename from patches/server/0449-Toggle-for-removing-existing-dragon.patch rename to patches/server/0448-Toggle-for-removing-existing-dragon.patch diff --git a/patches/server/0450-Fix-client-lag-on-advancement-loading.patch b/patches/server/0449-Fix-client-lag-on-advancement-loading.patch similarity index 100% rename from patches/server/0450-Fix-client-lag-on-advancement-loading.patch rename to patches/server/0449-Fix-client-lag-on-advancement-loading.patch diff --git a/patches/server/0451-Item-no-age-no-player-pickup.patch b/patches/server/0450-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/server/0451-Item-no-age-no-player-pickup.patch rename to patches/server/0450-Item-no-age-no-player-pickup.patch diff --git a/patches/server/0452-Beacon-API-custom-effect-ranges.patch b/patches/server/0451-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/server/0452-Beacon-API-custom-effect-ranges.patch rename to patches/server/0451-Beacon-API-custom-effect-ranges.patch diff --git a/patches/server/0453-Add-API-for-quit-reason.patch b/patches/server/0452-Add-API-for-quit-reason.patch similarity index 100% rename from patches/server/0453-Add-API-for-quit-reason.patch rename to patches/server/0452-Add-API-for-quit-reason.patch diff --git a/patches/server/0454-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0453-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/server/0454-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0453-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/server/0455-Expose-world-spawn-angle.patch b/patches/server/0454-Expose-world-spawn-angle.patch similarity index 100% rename from patches/server/0455-Expose-world-spawn-angle.patch rename to patches/server/0454-Expose-world-spawn-angle.patch diff --git a/patches/server/0456-Add-Destroy-Speed-API.patch b/patches/server/0455-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/server/0456-Add-Destroy-Speed-API.patch rename to patches/server/0455-Add-Destroy-Speed-API.patch diff --git a/patches/server/0457-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0456-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 93% rename from patches/server/0457-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0456-Fix-Player-spawnParticle-x-y-z-precision-loss.patch index 80a1eb67cb..55306da79d 100644 --- a/patches/server/0457-Fix-Player-spawnParticle-x-y-z-precision-loss.patch +++ b/patches/server/0456-Fix-Player-spawnParticle-x-y-z-precision-loss.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6e9fc623f5a56753e2c78c3ff63c6f4de7cbcccb..ec4ebbdde676806c4b2348408a8004dd66cbc44b 100644 +index 16d1338df730fd66c079b66117cbef91786f2146..f9188664f868c0c55c92c0ec7ca43204d267b91e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2619,7 +2619,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0458-Add-LivingEntity-clearActiveItem.patch b/patches/server/0457-Add-LivingEntity-clearActiveItem.patch similarity index 90% rename from patches/server/0458-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0457-Add-LivingEntity-clearActiveItem.patch index 642aedd9b6..54d5de0aa1 100644 --- a/patches/server/0458-Add-LivingEntity-clearActiveItem.patch +++ b/patches/server/0457-Add-LivingEntity-clearActiveItem.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index bf581842476b8f554987b452c291a55a1dfc92c5..e71f71988790af1a09f65d73dd081490002b821c 100644 +index e07553c3ee28a2510c46a8188c8ce507f2567c80..aac0fb198fb912dc59dc56f449e586839600fa13 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -916,6 +916,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0459-Add-PlayerItemCooldownEvent.patch b/patches/server/0458-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0459-Add-PlayerItemCooldownEvent.patch rename to patches/server/0458-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0460-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0459-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0460-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0459-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0461-More-lightning-API.patch b/patches/server/0460-More-lightning-API.patch similarity index 100% rename from patches/server/0461-More-lightning-API.patch rename to patches/server/0460-More-lightning-API.patch diff --git a/patches/server/0462-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0461-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 98% rename from patches/server/0462-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0461-Climbing-should-not-bypass-cramming-gamerule.patch index 08c77e01c3..e615ac322f 100644 --- a/patches/server/0462-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0461-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2b962ef7f167cc3ee17d26b994b6ecc2916f6242..a0c4f6edc87d653bcbe23621bfcf9fbbd20b013d 100644 +index f33067ea049793d898def3c83bff5b36490f8232..3b9c691973f11b7d4db8fb77d2b02aa0d07ed7b5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1983,6 +1983,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0463-Add-missing-default-perms-for-commands.patch b/patches/server/0462-Add-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0463-Add-missing-default-perms-for-commands.patch rename to patches/server/0462-Add-missing-default-perms-for-commands.patch diff --git a/patches/server/0464-Add-PlayerShearBlockEvent.patch b/patches/server/0463-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0464-Add-PlayerShearBlockEvent.patch rename to patches/server/0463-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0465-Limit-recipe-packets.patch b/patches/server/0464-Limit-recipe-packets.patch similarity index 100% rename from patches/server/0465-Limit-recipe-packets.patch rename to patches/server/0464-Limit-recipe-packets.patch diff --git a/patches/server/0466-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0465-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0466-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0465-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0467-Player-Chunk-Load-Unload-Events.patch b/patches/server/0466-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/server/0467-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0466-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/server/0468-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0467-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0468-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0467-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0469-Expose-LivingEntity-hurt-direction.patch b/patches/server/0468-Expose-LivingEntity-hurt-direction.patch similarity index 100% rename from patches/server/0469-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0468-Expose-LivingEntity-hurt-direction.patch diff --git a/patches/server/0470-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0469-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/server/0470-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0469-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/server/0471-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch b/patches/server/0470-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch similarity index 100% rename from patches/server/0471-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch rename to patches/server/0470-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch diff --git a/patches/server/0472-Add-TargetHitEvent.patch b/patches/server/0471-Add-TargetHitEvent.patch similarity index 100% rename from patches/server/0472-Add-TargetHitEvent.patch rename to patches/server/0471-Add-TargetHitEvent.patch diff --git a/patches/server/0473-MC-4-Fix-item-position-desync.patch b/patches/server/0472-MC-4-Fix-item-position-desync.patch similarity index 100% rename from patches/server/0473-MC-4-Fix-item-position-desync.patch rename to patches/server/0472-MC-4-Fix-item-position-desync.patch diff --git a/patches/server/0474-Additional-Block-Material-API.patch b/patches/server/0473-Additional-Block-Material-API.patch similarity index 100% rename from patches/server/0474-Additional-Block-Material-API.patch rename to patches/server/0473-Additional-Block-Material-API.patch diff --git a/patches/server/0475-Fix-harming-potion-dupe.patch b/patches/server/0474-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0475-Fix-harming-potion-dupe.patch rename to patches/server/0474-Fix-harming-potion-dupe.patch diff --git a/patches/server/0476-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/server/0475-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/server/0476-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/server/0475-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/server/0477-Cache-burn-durations.patch b/patches/server/0476-Cache-burn-durations.patch similarity index 100% rename from patches/server/0477-Cache-burn-durations.patch rename to patches/server/0476-Cache-burn-durations.patch diff --git a/patches/server/0478-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0477-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/server/0478-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0477-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/server/0479-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0478-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 100% rename from patches/server/0479-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/server/0478-Fix-Not-a-string-Map-Conversion-spam.patch diff --git a/patches/server/0480-Add-PlayerFlowerPotManipulateEvent.patch b/patches/server/0479-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0480-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0479-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0481-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0480-Fix-interact-event-not-being-called-sometimes.patch similarity index 97% rename from patches/server/0481-Fix-interact-event-not-being-called-sometimes.patch rename to patches/server/0480-Fix-interact-event-not-being-called-sometimes.patch index 26bc4885cd..b4f8b3eada 100644 --- a/patches/server/0481-Fix-interact-event-not-being-called-sometimes.patch +++ b/patches/server/0480-Fix-interact-event-not-being-called-sometimes.patch @@ -11,7 +11,7 @@ Subject: [PATCH] Fix interact event not being called sometimes Co-authored-by: Moulberry diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 87ff69ffbd1e8fa3e88ce2561b56958c23040a10..730b30ee33f0fb2a98454080045608ff538c8c04 100644 +index 5190939658fce990e166b7c4f5998dd030a156e8..e5113e86836f9c21570705b1ad312d76e8162e5f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1760,7 +1760,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0482-Zombie-API-breaking-doors.patch b/patches/server/0481-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0482-Zombie-API-breaking-doors.patch rename to patches/server/0481-Zombie-API-breaking-doors.patch diff --git a/patches/server/0483-Fix-nerfed-slime-when-splitting.patch b/patches/server/0482-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/server/0483-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0482-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/server/0484-Add-EntityLoadCrossbowEvent.patch b/patches/server/0483-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0484-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0483-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0485-Add-WorldGameRuleChangeEvent.patch b/patches/server/0484-Add-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/server/0485-Add-WorldGameRuleChangeEvent.patch rename to patches/server/0484-Add-WorldGameRuleChangeEvent.patch diff --git a/patches/server/0486-Add-ServerResourcesReloadedEvent.patch b/patches/server/0485-Add-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/server/0486-Add-ServerResourcesReloadedEvent.patch rename to patches/server/0485-Add-ServerResourcesReloadedEvent.patch diff --git a/patches/server/0487-Add-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0486-Add-world-settings-for-mobs-picking-up-loot.patch similarity index 100% rename from patches/server/0487-Add-world-settings-for-mobs-picking-up-loot.patch rename to patches/server/0486-Add-world-settings-for-mobs-picking-up-loot.patch diff --git a/patches/server/0488-Add-BlockFailedDispenseEvent.patch b/patches/server/0487-Add-BlockFailedDispenseEvent.patch similarity index 100% rename from patches/server/0488-Add-BlockFailedDispenseEvent.patch rename to patches/server/0487-Add-BlockFailedDispenseEvent.patch diff --git a/patches/server/0489-Add-PlayerLecternPageChangeEvent.patch b/patches/server/0488-Add-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/server/0489-Add-PlayerLecternPageChangeEvent.patch rename to patches/server/0488-Add-PlayerLecternPageChangeEvent.patch diff --git a/patches/server/0490-Add-PlayerLoomPatternSelectEvent.patch b/patches/server/0489-Add-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/server/0490-Add-PlayerLoomPatternSelectEvent.patch rename to patches/server/0489-Add-PlayerLoomPatternSelectEvent.patch diff --git a/patches/server/0491-Configurable-door-breaking-difficulty.patch b/patches/server/0490-Configurable-door-breaking-difficulty.patch similarity index 100% rename from patches/server/0491-Configurable-door-breaking-difficulty.patch rename to patches/server/0490-Configurable-door-breaking-difficulty.patch diff --git a/patches/server/0492-Empty-commands-shall-not-be-dispatched.patch b/patches/server/0491-Empty-commands-shall-not-be-dispatched.patch similarity index 100% rename from patches/server/0492-Empty-commands-shall-not-be-dispatched.patch rename to patches/server/0491-Empty-commands-shall-not-be-dispatched.patch diff --git a/patches/server/0493-Remove-stale-POIs.patch b/patches/server/0492-Remove-stale-POIs.patch similarity index 92% rename from patches/server/0493-Remove-stale-POIs.patch rename to patches/server/0492-Remove-stale-POIs.patch index 1579631de9..ca376b9ba7 100644 --- a/patches/server/0493-Remove-stale-POIs.patch +++ b/patches/server/0492-Remove-stale-POIs.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove stale POIs diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a668e204946943bcc963ad41ea3029111267eef9..b93976abbc98c1beffe4b464735c9b5a71cb45a4 100644 +index 283f686364691f54d9e9e925b33238526de74219..a2113c01d8ea3da13efbf4f0b23460e7fa4e8c68 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1795,6 +1795,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0494-Fix-villager-boat-exploit.patch b/patches/server/0493-Fix-villager-boat-exploit.patch similarity index 100% rename from patches/server/0494-Fix-villager-boat-exploit.patch rename to patches/server/0493-Fix-villager-boat-exploit.patch diff --git a/patches/server/0495-Add-sendOpLevel-API.patch b/patches/server/0494-Add-sendOpLevel-API.patch similarity index 100% rename from patches/server/0495-Add-sendOpLevel-API.patch rename to patches/server/0494-Add-sendOpLevel-API.patch diff --git a/patches/server/0496-TODO-Registry-Modification-API.patch b/patches/server/0495-TODO-Registry-Modification-API.patch similarity index 100% rename from patches/server/0496-TODO-Registry-Modification-API.patch rename to patches/server/0495-TODO-Registry-Modification-API.patch diff --git a/patches/server/0497-Add-StructuresLocateEvent.patch b/patches/server/0496-Add-StructuresLocateEvent.patch similarity index 100% rename from patches/server/0497-Add-StructuresLocateEvent.patch rename to patches/server/0496-Add-StructuresLocateEvent.patch diff --git a/patches/server/0498-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0497-Collision-option-for-requiring-a-player-participant.patch similarity index 97% rename from patches/server/0498-Collision-option-for-requiring-a-player-participant.patch rename to patches/server/0497-Collision-option-for-requiring-a-player-participant.patch index f7b52564b1..c029c3a902 100644 --- a/patches/server/0498-Collision-option-for-requiring-a-player-participant.patch +++ b/patches/server/0497-Collision-option-for-requiring-a-player-participant.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Collision option for requiring a player participant diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 745e22b78613f8c45f5432fb27e3b9c87cdf2313..baedc48d788d51799d2d3b1816aee2782ba35d25 100644 +index df389ebaaef8ef307adb6c604ce22a192a522ba4..fa5d634cefcf73afd3e090f91c4c589edb988352 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1848,6 +1848,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0499-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0498-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch similarity index 100% rename from patches/server/0499-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch rename to patches/server/0498-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch diff --git a/patches/server/0500-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0499-Return-chat-component-with-empty-text-instead-of-thr.patch similarity index 100% rename from patches/server/0500-Return-chat-component-with-empty-text-instead-of-thr.patch rename to patches/server/0499-Return-chat-component-with-empty-text-instead-of-thr.patch diff --git a/patches/server/0501-Make-schedule-command-per-world.patch b/patches/server/0500-Make-schedule-command-per-world.patch similarity index 100% rename from patches/server/0501-Make-schedule-command-per-world.patch rename to patches/server/0500-Make-schedule-command-per-world.patch diff --git a/patches/server/0502-Configurable-max-leash-distance.patch b/patches/server/0501-Configurable-max-leash-distance.patch similarity index 100% rename from patches/server/0502-Configurable-max-leash-distance.patch rename to patches/server/0501-Configurable-max-leash-distance.patch diff --git a/patches/server/0503-Add-BlockPreDispenseEvent.patch b/patches/server/0502-Add-BlockPreDispenseEvent.patch similarity index 100% rename from patches/server/0503-Add-BlockPreDispenseEvent.patch rename to patches/server/0502-Add-BlockPreDispenseEvent.patch diff --git a/patches/server/0504-Add-PlayerChangeBeaconEffectEvent.patch b/patches/server/0503-Add-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/server/0504-Add-PlayerChangeBeaconEffectEvent.patch rename to patches/server/0503-Add-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/server/0505-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0504-Add-toggle-for-always-placing-the-dragon-egg.patch similarity index 92% rename from patches/server/0505-Add-toggle-for-always-placing-the-dragon-egg.patch rename to patches/server/0504-Add-toggle-for-always-placing-the-dragon-egg.patch index 25361d7e14..7d6769dff8 100644 --- a/patches/server/0505-Add-toggle-for-always-placing-the-dragon-egg.patch +++ b/patches/server/0504-Add-toggle-for-always-placing-the-dragon-egg.patch @@ -5,7 +5,7 @@ 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 46f286a68d04aced44acbb97041a74e2668c13d8..957af0553d4b794a1b26a6591dcc0165b0509c6a 100644 +index c4555320d1f283a41c47d08d68c2633717f6fda8..45b7efc85f2ec17288cad329c3a78483903c0ea2 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 @@ -407,7 +407,7 @@ public class EndDragonFight { diff --git a/patches/server/0506-Add-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0505-Add-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/server/0506-Add-PlayerStonecutterRecipeSelectEvent.patch rename to patches/server/0505-Add-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/server/0507-Expand-EntityUnleashEvent.patch b/patches/server/0506-Expand-EntityUnleashEvent.patch similarity index 100% rename from patches/server/0507-Expand-EntityUnleashEvent.patch rename to patches/server/0506-Expand-EntityUnleashEvent.patch diff --git a/patches/server/0508-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0507-Reset-shield-blocking-on-dimension-change.patch similarity index 100% rename from patches/server/0508-Reset-shield-blocking-on-dimension-change.patch rename to patches/server/0507-Reset-shield-blocking-on-dimension-change.patch diff --git a/patches/server/0509-Add-DragonEggFormEvent.patch b/patches/server/0508-Add-DragonEggFormEvent.patch similarity index 96% rename from patches/server/0509-Add-DragonEggFormEvent.patch rename to patches/server/0508-Add-DragonEggFormEvent.patch index f90545d9df..b92df234cd 100644 --- a/patches/server/0509-Add-DragonEggFormEvent.patch +++ b/patches/server/0508-Add-DragonEggFormEvent.patch @@ -5,7 +5,7 @@ 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 957af0553d4b794a1b26a6591dcc0165b0509c6a..1d5edcad4c5bfe48711cfce7c46a9c4606196ae3 100644 +index 45b7efc85f2ec17288cad329c3a78483903c0ea2..1c9bfcf595bcb247c3b9ffe8b0e0cfee0d0ba91f 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 @@ -407,8 +407,22 @@ public class EndDragonFight { diff --git a/patches/server/0510-Add-EntityMoveEvent.patch b/patches/server/0509-Add-EntityMoveEvent.patch similarity index 100% rename from patches/server/0510-Add-EntityMoveEvent.patch rename to patches/server/0509-Add-EntityMoveEvent.patch diff --git a/patches/server/0511-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0510-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 92% rename from patches/server/0511-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0510-added-option-to-disable-pathfinding-updates-on-block.patch index c155d17a87..fbf9bd1483 100644 --- a/patches/server/0511-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0510-added-option-to-disable-pathfinding-updates-on-block.patch @@ -5,7 +5,7 @@ Subject: [PATCH] added option to disable pathfinding updates on block changes diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f75722633789155af38184982ce6459a6ff1178e..bc7177bc0699e64933399a1ed0e66fee0663636d 100644 +index 125e3425af05541e5c848ee0e9390cea44a29302..0f6a34776482a7eef638911fe01db819962b3ce8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1369,6 +1369,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0512-Inline-shift-direction-fields.patch b/patches/server/0511-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0512-Inline-shift-direction-fields.patch rename to patches/server/0511-Inline-shift-direction-fields.patch diff --git a/patches/server/0513-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0512-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/server/0513-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0512-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/server/0514-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0513-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0514-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0513-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0515-living-entity-allow-attribute-registration.patch b/patches/server/0514-living-entity-allow-attribute-registration.patch similarity index 96% rename from patches/server/0515-living-entity-allow-attribute-registration.patch rename to patches/server/0514-living-entity-allow-attribute-registration.patch index cc5fbf104d..6982e40447 100644 --- a/patches/server/0515-living-entity-allow-attribute-registration.patch +++ b/patches/server/0514-living-entity-allow-attribute-registration.patch @@ -38,7 +38,7 @@ index ea48f1119a940056c37d1d203437bfbfdf13663b..8a678df56fcf30535957e111d81ad07b + // Paper end - living entity allow attribute registration } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 06f25a9453bcc8f304cc83b599f8a54112a6ed01..72d9a9696c95374bed29e2e453c7750d0cf06170 100644 +index 3b2d54d7a365e268107c4abc5a15c996954e5e9c..c95c0580e0c3afe9730a1c3f2095b7970e7cc001 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -739,6 +739,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0516-fix-dead-slime-setSize-invincibility.patch b/patches/server/0515-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0516-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0515-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0517-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0516-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0517-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0516-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0518-Expose-Tracked-Players.patch b/patches/server/0517-Expose-Tracked-Players.patch similarity index 100% rename from patches/server/0518-Expose-Tracked-Players.patch rename to patches/server/0517-Expose-Tracked-Players.patch diff --git a/patches/server/0519-Improve-ServerGUI.patch b/patches/server/0518-Improve-ServerGUI.patch similarity index 100% rename from patches/server/0519-Improve-ServerGUI.patch rename to patches/server/0518-Improve-ServerGUI.patch diff --git a/patches/server/0520-fix-converting-txt-to-json-file.patch b/patches/server/0519-fix-converting-txt-to-json-file.patch similarity index 100% rename from patches/server/0520-fix-converting-txt-to-json-file.patch rename to patches/server/0519-fix-converting-txt-to-json-file.patch diff --git a/patches/server/0521-Add-worldborder-events.patch b/patches/server/0520-Add-worldborder-events.patch similarity index 100% rename from patches/server/0521-Add-worldborder-events.patch rename to patches/server/0520-Add-worldborder-events.patch diff --git a/patches/server/0522-Add-PlayerNameEntityEvent.patch b/patches/server/0521-Add-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0522-Add-PlayerNameEntityEvent.patch rename to patches/server/0521-Add-PlayerNameEntityEvent.patch diff --git a/patches/server/0523-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0522-Prevent-grindstones-from-overstacking-items.patch similarity index 100% rename from patches/server/0523-Prevent-grindstones-from-overstacking-items.patch rename to patches/server/0522-Prevent-grindstones-from-overstacking-items.patch diff --git a/patches/server/0524-Add-recipe-to-cook-events.patch b/patches/server/0523-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/server/0524-Add-recipe-to-cook-events.patch rename to patches/server/0523-Add-recipe-to-cook-events.patch diff --git a/patches/server/0525-Add-Block-isValidTool.patch b/patches/server/0524-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0525-Add-Block-isValidTool.patch rename to patches/server/0524-Add-Block-isValidTool.patch diff --git a/patches/server/0526-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0525-Allow-using-signs-inside-spawn-protection.patch similarity index 95% rename from patches/server/0526-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0525-Allow-using-signs-inside-spawn-protection.patch index a749fc47e7..0eefa73f3f 100644 --- a/patches/server/0526-Allow-using-signs-inside-spawn-protection.patch +++ b/patches/server/0525-Allow-using-signs-inside-spawn-protection.patch @@ -5,7 +5,7 @@ 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 730b30ee33f0fb2a98454080045608ff538c8c04..437c642f0df201528eb2fcd49ae21b67db13df86 100644 +index e5113e86836f9c21570705b1ad312d76e8162e5f..f455c7ab48accf581a8ecdbc78a12b055dbd19fa 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1752,7 +1752,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0527-Expand-world-key-API.patch b/patches/server/0526-Expand-world-key-API.patch similarity index 100% rename from patches/server/0527-Expand-world-key-API.patch rename to patches/server/0526-Expand-world-key-API.patch diff --git a/patches/server/0528-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0527-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0528-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0527-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0529-Item-Rarity-API.patch b/patches/server/0528-Item-Rarity-API.patch similarity index 100% rename from patches/server/0529-Item-Rarity-API.patch rename to patches/server/0528-Item-Rarity-API.patch diff --git a/patches/server/0530-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0529-Drop-carried-item-when-player-has-disconnected.patch similarity index 100% rename from patches/server/0530-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0529-Drop-carried-item-when-player-has-disconnected.patch diff --git a/patches/server/0531-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0530-forced-whitelist-use-configurable-kick-message.patch similarity index 100% rename from patches/server/0531-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0530-forced-whitelist-use-configurable-kick-message.patch diff --git a/patches/server/0532-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0531-Don-t-ignore-result-of-PlayerEditBookEvent.patch similarity index 91% rename from patches/server/0532-Don-t-ignore-result-of-PlayerEditBookEvent.patch rename to patches/server/0531-Don-t-ignore-result-of-PlayerEditBookEvent.patch index 29c6375a71..ff433de537 100644 --- a/patches/server/0532-Don-t-ignore-result-of-PlayerEditBookEvent.patch +++ b/patches/server/0531-Don-t-ignore-result-of-PlayerEditBookEvent.patch @@ -5,7 +5,7 @@ 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 437c642f0df201528eb2fcd49ae21b67db13df86..b1a0711dbedaaf79aac49b8c594d47e997c2613d 100644 +index f455c7ab48accf581a8ecdbc78a12b055dbd19fa..0ff1e65df2b3c131ed65f8b769bbf369a76aa3d0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1187,7 +1187,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0533-Expose-protocol-version.patch b/patches/server/0532-Expose-protocol-version.patch similarity index 100% rename from patches/server/0533-Expose-protocol-version.patch rename to patches/server/0532-Expose-protocol-version.patch diff --git a/patches/server/0534-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0533-Enhance-console-tab-completions-for-brigadier-comman.patch similarity index 100% rename from patches/server/0534-Enhance-console-tab-completions-for-brigadier-comman.patch rename to patches/server/0533-Enhance-console-tab-completions-for-brigadier-comman.patch diff --git a/patches/server/0535-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0534-Fix-PlayerItemConsumeEvent-cancelling-properly.patch similarity index 100% rename from patches/server/0535-Fix-PlayerItemConsumeEvent-cancelling-properly.patch rename to patches/server/0534-Fix-PlayerItemConsumeEvent-cancelling-properly.patch diff --git a/patches/server/0536-Add-bypass-host-check.patch b/patches/server/0535-Add-bypass-host-check.patch similarity index 100% rename from patches/server/0536-Add-bypass-host-check.patch rename to patches/server/0535-Add-bypass-host-check.patch diff --git a/patches/server/0537-Set-area-affect-cloud-rotation.patch b/patches/server/0536-Set-area-affect-cloud-rotation.patch similarity index 100% rename from patches/server/0537-Set-area-affect-cloud-rotation.patch rename to patches/server/0536-Set-area-affect-cloud-rotation.patch diff --git a/patches/server/0538-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0537-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/server/0538-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/server/0537-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/server/0539-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0538-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/server/0539-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/server/0538-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/server/0540-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0539-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/server/0540-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/server/0539-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/server/0541-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0540-fix-PigZombieAngerEvent-cancellation.patch similarity index 100% rename from patches/server/0541-fix-PigZombieAngerEvent-cancellation.patch rename to patches/server/0540-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/server/0542-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0541-fix-PlayerItemHeldEvent-firing-twice.patch similarity index 93% rename from patches/server/0542-fix-PlayerItemHeldEvent-firing-twice.patch rename to patches/server/0541-fix-PlayerItemHeldEvent-firing-twice.patch index 2d2a115414..8a5876c2cb 100644 --- a/patches/server/0542-fix-PlayerItemHeldEvent-firing-twice.patch +++ b/patches/server/0541-fix-PlayerItemHeldEvent-firing-twice.patch @@ -5,7 +5,7 @@ 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 b1a0711dbedaaf79aac49b8c594d47e997c2613d..8fcb3361c510cb1ef0b6405d0077c82ba155d586 100644 +index 0ff1e65df2b3c131ed65f8b769bbf369a76aa3d0..12b81d6dc04586d2491a382b6198f986b2b5bae1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1921,6 +1921,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0543-Add-PlayerDeepSleepEvent.patch b/patches/server/0542-Add-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/server/0543-Add-PlayerDeepSleepEvent.patch rename to patches/server/0542-Add-PlayerDeepSleepEvent.patch diff --git a/patches/server/0544-More-World-API.patch b/patches/server/0543-More-World-API.patch similarity index 100% rename from patches/server/0544-More-World-API.patch rename to patches/server/0543-More-World-API.patch diff --git a/patches/server/0545-Add-PlayerBedFailEnterEvent.patch b/patches/server/0544-Add-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/server/0545-Add-PlayerBedFailEnterEvent.patch rename to patches/server/0544-Add-PlayerBedFailEnterEvent.patch diff --git a/patches/server/0546-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0545-Implement-methods-to-convert-between-Component-and-B.patch similarity index 100% rename from patches/server/0546-Implement-methods-to-convert-between-Component-and-B.patch rename to patches/server/0545-Implement-methods-to-convert-between-Component-and-B.patch diff --git a/patches/server/0547-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/server/0546-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch similarity index 100% rename from patches/server/0547-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch rename to patches/server/0546-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch diff --git a/patches/server/0548-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0547-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0548-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0547-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0549-Add-Channel-initialization-listeners.patch b/patches/server/0548-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/server/0549-Add-Channel-initialization-listeners.patch rename to patches/server/0548-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0550-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0549-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0550-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0549-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0551-Add-more-WanderingTrader-API.patch b/patches/server/0550-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0551-Add-more-WanderingTrader-API.patch rename to patches/server/0550-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0552-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0551-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0552-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0551-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0553-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0552-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0553-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0552-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0554-Add-HiddenPotionEffect-API.patch b/patches/server/0553-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/0554-Add-HiddenPotionEffect-API.patch rename to patches/server/0553-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/0555-Inventory-close.patch b/patches/server/0554-Inventory-close.patch similarity index 100% rename from patches/server/0555-Inventory-close.patch rename to patches/server/0554-Inventory-close.patch diff --git a/patches/server/0556-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0555-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0556-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0555-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0557-Add-basic-Datapack-API.patch b/patches/server/0556-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0557-Add-basic-Datapack-API.patch rename to patches/server/0556-Add-basic-Datapack-API.patch diff --git a/patches/server/0558-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0557-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0558-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0557-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0559-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0558-Expand-PlayerGameModeChangeEvent.patch similarity index 99% rename from patches/server/0559-Expand-PlayerGameModeChangeEvent.patch rename to patches/server/0558-Expand-PlayerGameModeChangeEvent.patch index a994ea7bcf..12c30b462b 100644 --- a/patches/server/0559-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0558-Expand-PlayerGameModeChangeEvent.patch @@ -144,7 +144,7 @@ index e12740f601acbe2b344d8e1fffc4bee2c752face..c9a8d04d1485a9493f6353beb7998801 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a9f30ba8d6d6e3d488f46b0bd79bf77b660c1b82..fa5bf1ef9cb4df06eabce00ccdd86a408ddaef8f 100644 +index f4cf8cc4cf085c621cc0d3e71f3ad10b8ef9f15a..2b8a85008b9562358265cfb28743f889159c21eb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1562,7 +1562,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0560-ItemStack-repair-check-API.patch b/patches/server/0559-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0560-ItemStack-repair-check-API.patch rename to patches/server/0559-ItemStack-repair-check-API.patch diff --git a/patches/server/0561-More-Enchantment-API.patch b/patches/server/0560-More-Enchantment-API.patch similarity index 98% rename from patches/server/0561-More-Enchantment-API.patch rename to patches/server/0560-More-Enchantment-API.patch index 70329e2627..826f3c58ee 100644 --- a/patches/server/0561-More-Enchantment-API.patch +++ b/patches/server/0560-More-Enchantment-API.patch @@ -78,7 +78,7 @@ index 7aa4035a4df1ddcc71065034eafd569ca59be810..5b7579395e61684592758f408d61cffe @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 72d9a9696c95374bed29e2e453c7750d0cf06170..40fbd911943abd6f6cc7910b5179c196bb3fe8f8 100644 +index c95c0580e0c3afe9730a1c3f2095b7970e7cc001..aab6948060d8870729690449064b34e1b01c925e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -978,5 +978,21 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0562-Move-range-check-for-block-placing-up.patch b/patches/server/0561-Move-range-check-for-block-placing-up.patch similarity index 92% rename from patches/server/0562-Move-range-check-for-block-placing-up.patch rename to patches/server/0561-Move-range-check-for-block-placing-up.patch index 6ef0f8fe85..6ba529d1a6 100644 --- a/patches/server/0562-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0561-Move-range-check-for-block-placing-up.patch @@ -5,7 +5,7 @@ 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 c54a1c2bf8719791047eb9ccc6cbe26c7541f125..60acd12ab02a2a3c1fd788af2695b6a699646986 100644 +index c9a8d04d1485a9493f6353beb7998801e286923e..ba7f0f4e2840b88d8f53c5720752cfeed2493c49 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1738,6 +1738,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0563-Add-Mob-lookAt-API.patch b/patches/server/0562-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0563-Add-Mob-lookAt-API.patch rename to patches/server/0562-Add-Mob-lookAt-API.patch diff --git a/patches/server/0564-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/0563-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/0564-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/0563-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/0565-Add-Unix-domain-socket-support.patch b/patches/server/0564-Add-Unix-domain-socket-support.patch similarity index 100% rename from patches/server/0565-Add-Unix-domain-socket-support.patch rename to patches/server/0564-Add-Unix-domain-socket-support.patch diff --git a/patches/server/0566-Add-EntityInsideBlockEvent.patch b/patches/server/0565-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0566-Add-EntityInsideBlockEvent.patch rename to patches/server/0565-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0567-Attributes-API-for-item-defaults.patch b/patches/server/0566-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0567-Attributes-API-for-item-defaults.patch rename to patches/server/0566-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0568-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0567-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 98% rename from patches/server/0568-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0567-Add-cause-to-Weather-ThunderChangeEvents.patch index 04bbf4641a..f8ab56bacb 100644 --- a/patches/server/0568-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0567-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index bc7177bc0699e64933399a1ed0e66fee0663636d..3f0745a9bfba35c0b133aa4bf2312e1b5eb640aa 100644 +index 0f6a34776482a7eef638911fe01db819962b3ce8..9e4453878246a22e320a6f8eb7aa08cb17438faf 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -434,8 +434,8 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0569-More-Lidded-Block-API.patch b/patches/server/0568-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0569-More-Lidded-Block-API.patch rename to patches/server/0568-More-Lidded-Block-API.patch diff --git a/patches/server/0570-Limit-item-frame-cursors-on-maps.patch b/patches/server/0569-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0570-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0569-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0571-Add-PlayerKickEvent-causes.patch b/patches/server/0570-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/server/0571-Add-PlayerKickEvent-causes.patch rename to patches/server/0570-Add-PlayerKickEvent-causes.patch diff --git a/patches/server/0572-Add-PufferFishStateChangeEvent.patch b/patches/server/0571-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0572-Add-PufferFishStateChangeEvent.patch rename to patches/server/0571-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0573-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0572-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0573-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0572-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0574-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0573-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/server/0574-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0573-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/server/0575-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0574-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0575-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0574-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0576-Add-BellRevealRaiderEvent.patch b/patches/server/0575-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0576-Add-BellRevealRaiderEvent.patch rename to patches/server/0575-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0577-Fix-invulnerable-end-crystals.patch b/patches/server/0576-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0577-Fix-invulnerable-end-crystals.patch rename to patches/server/0576-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0578-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0577-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0578-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0577-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0579-Fix-dangerous-end-portal-logic.patch b/patches/server/0578-Fix-dangerous-end-portal-logic.patch similarity index 85% rename from patches/server/0579-Fix-dangerous-end-portal-logic.patch rename to patches/server/0578-Fix-dangerous-end-portal-logic.patch index b484f326da..3c92033da9 100644 --- a/patches/server/0579-Fix-dangerous-end-portal-logic.patch +++ b/patches/server/0578-Fix-dangerous-end-portal-logic.patch @@ -11,7 +11,7 @@ Move the tick logic into the post tick, where portaling was designed to happen in the first place. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fa5d634cefcf73afd3e090f91c4c589edb988352..6df66ba1bafa3c850372ff877c420a24c6356a2d 100644 +index fa5d634cefcf73afd3e090f91c4c589edb988352..e9a12d9b7c8789f3d07ba5a799c941ca25eb3e63 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -421,6 +421,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -55,15 +55,15 @@ index fa5d634cefcf73afd3e090f91c4c589edb988352..6df66ba1bafa3c850372ff877c420a24 } this.processPortalCooldown(); -+ this.tickEndPortal(); // Paper - make end portalling safe ++ if (!io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowUnsafeEndPortalTeleportation) this.tickEndPortal(); // Paper - make end portalling safe } } diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -index 9ee2fd0914ff7836517ca143d51db6150967cb0e..a0c1db8cfebaa0344012cc0af18d6231cdcdcbb8 100644 +index 9ee2fd0914ff7836517ca143d51db6150967cb0e..4ba24bced9a2de4616a0418857d3738e0e322ea0 100644 --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -@@ -61,16 +61,10 @@ public class EndPortalBlock extends BaseEntityBlock { +@@ -61,16 +61,13 @@ public class EndPortalBlock extends BaseEntityBlock { // return; // CraftBukkit - always fire event in case plugins wish to change it } @@ -74,12 +74,14 @@ index 9ee2fd0914ff7836517ca143d51db6150967cb0e..a0c1db8cfebaa0344012cc0af18d6231 - if (entity instanceof ServerPlayer) { - ((ServerPlayer) entity).changeDimension(worldserver, PlayerTeleportEvent.TeleportCause.END_PORTAL); - return; -- } -- // CraftBukkit end -- entity.changeDimension(worldserver); + // Paper start - move all of this logic into portal tick + entity.portalWorld = ((ServerLevel)world); + entity.portalBlock = pos.immutable(); ++ if (io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowUnsafeEndPortalTeleportation) { ++ entity.tickEndPortal(); + } +- // CraftBukkit end +- entity.changeDimension(worldserver); + // Paper end - move all of this logic into portal tick } diff --git a/patches/server/0580-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0579-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0580-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0579-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0581-Make-item-validations-configurable.patch b/patches/server/0580-Make-item-validations-configurable.patch similarity index 97% rename from patches/server/0581-Make-item-validations-configurable.patch rename to patches/server/0580-Make-item-validations-configurable.patch index 3bbdbee6ea..e82f39807e 100644 --- a/patches/server/0581-Make-item-validations-configurable.patch +++ b/patches/server/0580-Make-item-validations-configurable.patch @@ -32,7 +32,7 @@ index e0d4798e244add64cbe43201604ad9d57701515f..c5d1ba7a1be3f102edcdfdc05fc50b30 } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index a3713c5ab624b8d54ddcd69ae7587346ebbaed69..6c797f35a10e8491718f38eb08f31b1e6182a8d1 100644 +index 27be5da67801be6fd99c91576064e4be0b3f0d6c..7d3d32679bdfe373d89a28c3616da5069640d1bb 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -362,7 +362,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/0582-Line-Of-Sight-Changes.patch b/patches/server/0581-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/server/0582-Line-Of-Sight-Changes.patch rename to patches/server/0581-Line-Of-Sight-Changes.patch diff --git a/patches/server/0583-add-per-world-spawn-limits.patch b/patches/server/0582-add-per-world-spawn-limits.patch similarity index 100% rename from patches/server/0583-add-per-world-spawn-limits.patch rename to patches/server/0582-add-per-world-spawn-limits.patch diff --git a/patches/server/0584-Fix-potions-splash-events.patch b/patches/server/0583-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0584-Fix-potions-splash-events.patch rename to patches/server/0583-Fix-potions-splash-events.patch diff --git a/patches/server/0585-Add-more-LimitedRegion-API.patch b/patches/server/0584-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0585-Add-more-LimitedRegion-API.patch rename to patches/server/0584-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0586-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0585-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 100% rename from patches/server/0586-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0585-Fix-PlayerDropItemEvent-using-wrong-item.patch diff --git a/patches/server/0587-Missing-Entity-API.patch b/patches/server/0586-Missing-Entity-API.patch similarity index 100% rename from patches/server/0587-Missing-Entity-API.patch rename to patches/server/0586-Missing-Entity-API.patch diff --git a/patches/server/0588-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0587-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 92% rename from patches/server/0588-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0587-Ensure-disconnect-for-book-edit-is-called-on-main.patch index f09bb60682..20f139446c 100644 --- a/patches/server/0588-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0587-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,7 +5,7 @@ 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 28a0570988f93b21f530a6cca87efa429f83079d..6f4c8b6ac6f56d183796deaa0d3b5a23241e8348 100644 +index 2e1a0b3d2dee21d6deba62ec710d92efdf33e1a6..75ff85e3710d5e70a32fe39e8469c1f169fd2d46 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1096,7 +1096,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0589-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0588-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0589-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0588-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0590-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0589-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 94% rename from patches/server/0590-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0589-Use-getChunkIfLoadedImmediately-in-places.patch index 66dda54d6e..b45da09501 100644 --- a/patches/server/0590-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0589-Use-getChunkIfLoadedImmediately-in-places.patch @@ -8,7 +8,7 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk load in that case). diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3f0745a9bfba35c0b133aa4bf2312e1b5eb640aa..af51a014156ade4d9c1b874a4c57a6de8849aea1 100644 +index 9e4453878246a22e320a6f8eb7aa08cb17438faf..60590ee30d2ff3b94c796bae2d7e9d9bc145fc0d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -225,7 +225,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -21,7 +21,7 @@ index 3f0745a9bfba35c0b133aa4bf2312e1b5eb640aa..af51a014156ade4d9c1b874a4c57a6de @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9879f9fd804f93faae4419add2c4c64fc6902ba1..9130ba6b008bab38212b162b4795cff63df5b957 100644 +index 1bb7cc9462cab7fbd09b944662711ae5bc5cf950..48e60e5ce01942fa5d30e043012e888989046cee 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -182,6 +182,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0591-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0590-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0591-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0590-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0592-Add-PlayerArmSwingEvent.patch b/patches/server/0591-Add-PlayerArmSwingEvent.patch similarity index 92% rename from patches/server/0592-Add-PlayerArmSwingEvent.patch rename to patches/server/0591-Add-PlayerArmSwingEvent.patch index a2db1e148c..d3f4757d38 100644 --- a/patches/server/0592-Add-PlayerArmSwingEvent.patch +++ b/patches/server/0591-Add-PlayerArmSwingEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6f4c8b6ac6f56d183796deaa0d3b5a23241e8348..c0f29e612a69b33bd79d05c472fe72529a6fd14b 100644 +index 75ff85e3710d5e70a32fe39e8469c1f169fd2d46..bce87f55ad85837a17f783b5341ef5b64ab0ede0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2328,7 +2328,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0593-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0592-Fix-kick-event-leave-message-not-being-sent.patch similarity index 100% rename from patches/server/0593-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/server/0592-Fix-kick-event-leave-message-not-being-sent.patch diff --git a/patches/server/0594-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0593-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/0594-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0593-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0595-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0594-Don-t-apply-cramming-damage-to-players.patch similarity index 100% rename from patches/server/0595-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0594-Don-t-apply-cramming-damage-to-players.patch diff --git a/patches/server/0596-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0595-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0596-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0595-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0597-Add-missing-forceDrop-toggles.patch b/patches/server/0596-Add-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0597-Add-missing-forceDrop-toggles.patch rename to patches/server/0596-Add-missing-forceDrop-toggles.patch diff --git a/patches/server/0598-Stinger-API.patch b/patches/server/0597-Stinger-API.patch similarity index 95% rename from patches/server/0598-Stinger-API.patch rename to patches/server/0597-Stinger-API.patch index a1a70741b4..262a4a8481 100644 --- a/patches/server/0598-Stinger-API.patch +++ b/patches/server/0597-Stinger-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stinger API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 8eb4b6c2752d68b866eab64263ede1d449ee2458..f288efe62c7280189359bba749a2dc3ec3f6ef49 100644 +index 9a7a670c1e99674e8a554342165b7b77001083fc..e1092bb514e01e978a8d624bd5a7cba5b4b5fe81 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -338,6 +338,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0599-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0598-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0599-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0598-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0600-Add-System.out-err-catcher.patch b/patches/server/0599-Add-System.out-err-catcher.patch similarity index 100% rename from patches/server/0600-Add-System.out-err-catcher.patch rename to patches/server/0599-Add-System.out-err-catcher.patch diff --git a/patches/server/0601-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0600-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0601-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0600-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0602-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0601-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 93% rename from patches/server/0602-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0601-Prevent-AFK-kick-while-watching-end-credits.patch index 0abb2b65fd..8ab33daef9 100644 --- a/patches/server/0602-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0601-Prevent-AFK-kick-while-watching-end-credits.patch @@ -5,7 +5,7 @@ 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 8b6f37463e35162d4b228b732a0283d57dc2f1b9..0fef0dda0586b70dc140406b55dba1d5e23c3c97 100644 +index 42c24ed58fab0f7ff9f58b2a65818f45a5b7cc06..2941445ea453e2fb88ea8de38c24bf755b93936a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -389,7 +389,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0603-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0602-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0603-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0602-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0604-Add-PlayerSetSpawnEvent.patch b/patches/server/0603-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/server/0604-Add-PlayerSetSpawnEvent.patch rename to patches/server/0603-Add-PlayerSetSpawnEvent.patch diff --git a/patches/server/0605-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0604-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0605-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0604-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0606-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0605-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0606-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0605-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0607-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0606-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0607-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0606-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0608-Add-EntityDamageItemEvent.patch b/patches/server/0607-Add-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0608-Add-EntityDamageItemEvent.patch rename to patches/server/0607-Add-EntityDamageItemEvent.patch diff --git a/patches/server/0609-Optimize-indirect-passenger-iteration.patch b/patches/server/0608-Optimize-indirect-passenger-iteration.patch similarity index 96% rename from patches/server/0609-Optimize-indirect-passenger-iteration.patch rename to patches/server/0608-Optimize-indirect-passenger-iteration.patch index cacff3bc5a..92ffa35c2c 100644 --- a/patches/server/0609-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0608-Optimize-indirect-passenger-iteration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize indirect passenger iteration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6df66ba1bafa3c850372ff877c420a24c6356a2d..53f5d5da6edb0874573347747e5e3ef4b712219f 100644 +index e9a12d9b7c8789f3d07ba5a799c941ca25eb3e63..96ed3d345085c7d86643166fb4c124675e6b07d4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3842,20 +3842,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0610-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0609-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0610-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0609-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0611-Clear-bucket-NBT-after-dispense.patch b/patches/server/0610-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0611-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0610-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0612-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0611-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0612-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0611-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0613-Add-BlockBreakBlockEvent.patch b/patches/server/0612-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0613-Add-BlockBreakBlockEvent.patch rename to patches/server/0612-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0614-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0613-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0614-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0613-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0615-More-CommandBlock-API.patch b/patches/server/0614-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0615-More-CommandBlock-API.patch rename to patches/server/0614-More-CommandBlock-API.patch diff --git a/patches/server/0616-Add-missing-team-sidebar-display-slots.patch b/patches/server/0615-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0616-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0615-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0617-Add-back-EntityPortalExitEvent.patch b/patches/server/0616-Add-back-EntityPortalExitEvent.patch similarity index 97% rename from patches/server/0617-Add-back-EntityPortalExitEvent.patch rename to patches/server/0616-Add-back-EntityPortalExitEvent.patch index 6a55175c75..5e091febda 100644 --- a/patches/server/0617-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0616-Add-back-EntityPortalExitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add back EntityPortalExitEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 53f5d5da6edb0874573347747e5e3ef4b712219f..4e8d20807048066a0d69b4e120438c869d4a0a2a 100644 +index 96ed3d345085c7d86643166fb4c124675e6b07d4..822666e1199e0851136d88b2b556d8d17843d902 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3291,6 +3291,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0618-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0617-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 97% rename from patches/server/0618-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0617-Add-methods-to-find-targets-for-lightning-strikes.patch index bd7a6b51d2..9958d9851d 100644 --- a/patches/server/0618-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0617-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index af51a014156ade4d9c1b874a4c57a6de8849aea1..c83f2be16953b5cc009ddef81fd082295f3b2f71 100644 +index 60590ee30d2ff3b94c796bae2d7e9d9bc145fc0d..14b3edc05a04f5049f994df5be68e4f01e8cf1ef 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -757,6 +757,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0619-Get-entity-default-attributes.patch b/patches/server/0618-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0619-Get-entity-default-attributes.patch rename to patches/server/0618-Get-entity-default-attributes.patch diff --git a/patches/server/0620-Left-handed-API.patch b/patches/server/0619-Left-handed-API.patch similarity index 100% rename from patches/server/0620-Left-handed-API.patch rename to patches/server/0619-Left-handed-API.patch diff --git a/patches/server/0621-Add-more-advancement-API.patch b/patches/server/0620-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0621-Add-more-advancement-API.patch rename to patches/server/0620-Add-more-advancement-API.patch diff --git a/patches/server/0622-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0621-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0622-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0621-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0623-Add-critical-damage-API.patch b/patches/server/0622-Add-critical-damage-API.patch similarity index 100% rename from patches/server/0623-Add-critical-damage-API.patch rename to patches/server/0622-Add-critical-damage-API.patch diff --git a/patches/server/0624-Fix-issues-with-mob-conversion.patch b/patches/server/0623-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0624-Fix-issues-with-mob-conversion.patch rename to patches/server/0623-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0625-Add-isCollidable-methods-to-various-places.patch b/patches/server/0624-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0625-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0624-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0626-Goat-ram-API.patch b/patches/server/0625-Goat-ram-API.patch similarity index 100% rename from patches/server/0626-Goat-ram-API.patch rename to patches/server/0625-Goat-ram-API.patch diff --git a/patches/server/0627-Add-API-for-resetting-a-single-score.patch b/patches/server/0626-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0627-Add-API-for-resetting-a-single-score.patch rename to patches/server/0626-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0628-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0627-Add-Raw-Byte-Entity-Serialization.patch similarity index 97% rename from patches/server/0628-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0627-Add-Raw-Byte-Entity-Serialization.patch index f4056c9b60..436c536f74 100644 --- a/patches/server/0628-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0627-Add-Raw-Byte-Entity-Serialization.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add Raw Byte Entity Serialization public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fae9aa88bc672b3ac17dcbbf077a57cd3254a723..6cb7a7642a2b02a85d6a0da0fc6e66f81844016a 100644 +index 822666e1199e0851136d88b2b556d8d17843d902..e6ef67a7a2eab5314c95e751895b4d4ce71c91b8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2078,6 +2078,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0629-Vanilla-command-permission-fixes.patch b/patches/server/0628-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0629-Vanilla-command-permission-fixes.patch rename to patches/server/0628-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0630-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0629-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 100% rename from patches/server/0630-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0629-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch diff --git a/patches/server/0631-Fix-GameProfileCache-concurrency.patch b/patches/server/0630-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0631-Fix-GameProfileCache-concurrency.patch rename to patches/server/0630-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0632-Improve-and-expand-AsyncCatcher.patch b/patches/server/0631-Improve-and-expand-AsyncCatcher.patch similarity index 100% rename from patches/server/0632-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0631-Improve-and-expand-AsyncCatcher.patch diff --git a/patches/server/0633-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0632-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 100% rename from patches/server/0633-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0632-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/server/0634-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0633-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0634-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0633-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0635-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0634-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0635-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0634-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0636-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0635-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0636-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0635-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0637-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0636-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 94% rename from patches/server/0637-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0636-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index 4e0e3eb2b1..3834fdb183 100644 --- a/patches/server/0637-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0636-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -10,7 +10,7 @@ chunks did get inlined, but the standard CPS.getChunkAt method was not inlined. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9130ba6b008bab38212b162b4795cff63df5b957..c49ff35c92874273233ec53ed63aaff9c79edcd0 100644 +index 48e60e5ce01942fa5d30e043012e888989046cee..275c02d480cdf25ba0e735f4a43015ec0af238b3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -358,6 +358,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0638-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0637-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0638-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0637-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0639-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0638-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 100% rename from patches/server/0639-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/server/0638-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch diff --git a/patches/server/0640-Time-scoreboard-search.patch b/patches/server/0639-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0640-Time-scoreboard-search.patch rename to patches/server/0639-Time-scoreboard-search.patch diff --git a/patches/server/0641-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0640-Oprimise-map-impl-for-tracked-players.patch similarity index 92% rename from patches/server/0641-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0640-Oprimise-map-impl-for-tracked-players.patch index 274e6f709e..c8c75040be 100644 --- a/patches/server/0641-Oprimise-map-impl-for-tracked-players.patch +++ b/patches/server/0640-Oprimise-map-impl-for-tracked-players.patch @@ -7,7 +7,7 @@ Reference2BooleanOpenHashMap is going to have better lookups than HashMap. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 5ef08156aa2e93e42eed586a4014c6208ddb20c1..63e7f41eaed3f22c1bc0191790ff0ad313dc4ffd 100644 +index 4c1dd470ac561f61d7f49adf90d273b1f293d296..f2d3dc066b00b685715eb5104234945c41a15f92 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1677,7 +1677,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0642-Add-missing-InventoryType.patch b/patches/server/0641-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/0642-Add-missing-InventoryType.patch rename to patches/server/0641-Add-missing-InventoryType.patch diff --git a/patches/server/0643-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0642-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0643-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0642-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0644-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0643-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 94% rename from patches/server/0644-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0643-Fix-merchant-inventory-not-closing-on-entity-removal.patch index e4c9eb4f84..76d51d8295 100644 --- a/patches/server/0644-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0643-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f2015ffc83696b7ab6a552d4bb6fec1d8f6c6031..5ed27de9be5300b22cd29b57385e93e6e97ef361 100644 +index 10eb5c342930d2efd7d919f286fe8fa64cebaea4..03a9f82ac2af6cb64081c2bb758cb02a7ffd5b89 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2325,6 +2325,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0645-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0644-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0645-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0644-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0646-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0645-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 92% rename from patches/server/0646-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0645-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index e21f5ec679..d80840a79c 100644 --- a/patches/server/0646-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/server/0645-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch @@ -6,7 +6,7 @@ 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 b0df4c822ad01f1ed0f8b858e4ca012a823c7f47..bf790227e9716a9f678bea1914430c1c65027468 100644 +index 666c6cb6f600973e1d84839aed715606279d4630..ace2cab310aa7d89e1b76bf5fdc9fd64f56b6cc7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -725,6 +725,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0647-Add-packet-limiter-config.patch b/patches/server/0646-Add-packet-limiter-config.patch similarity index 100% rename from patches/server/0647-Add-packet-limiter-config.patch rename to patches/server/0646-Add-packet-limiter-config.patch diff --git a/patches/server/0648-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0647-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0648-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0647-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0649-Ensure-valid-vehicle-status.patch b/patches/server/0648-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/server/0649-Ensure-valid-vehicle-status.patch rename to patches/server/0648-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0650-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0649-Prevent-softlocked-end-exit-portal-generation.patch similarity index 92% rename from patches/server/0650-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0649-Prevent-softlocked-end-exit-portal-generation.patch index 6a1c04bc8a..67312cbfe5 100644 --- a/patches/server/0650-Prevent-softlocked-end-exit-portal-generation.patch +++ b/patches/server/0649-Prevent-softlocked-end-exit-portal-generation.patch @@ -5,7 +5,7 @@ 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 1d5edcad4c5bfe48711cfce7c46a9c4606196ae3..59f6c3109b34719a7ed487ada5a8ce33ec458e87 100644 +index 1c9bfcf595bcb247c3b9ffe8b0e0cfee0d0ba91f..50071bec6825ec2b34662de14128070510d16afb 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 @@ -466,6 +466,11 @@ public class EndDragonFight { diff --git a/patches/server/0651-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0650-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0651-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0650-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0652-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0651-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0652-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0651-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0653-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0652-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0653-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0652-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0654-Preserve-overstacked-loot.patch b/patches/server/0653-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0654-Preserve-overstacked-loot.patch rename to patches/server/0653-Preserve-overstacked-loot.patch diff --git a/patches/server/0655-Update-head-rotation-in-missing-places.patch b/patches/server/0654-Update-head-rotation-in-missing-places.patch similarity index 93% rename from patches/server/0655-Update-head-rotation-in-missing-places.patch rename to patches/server/0654-Update-head-rotation-in-missing-places.patch index 11b6d2810b..d43abb0d8a 100644 --- a/patches/server/0655-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0654-Update-head-rotation-in-missing-places.patch @@ -8,7 +8,7 @@ This is because bukkit uses a separate head rotation field for yaw. This issue only applies to players. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6cb7a7642a2b02a85d6a0da0fc6e66f81844016a..cd6546b853e147bea8fba789e241674cc400b81e 100644 +index e6ef67a7a2eab5314c95e751895b4d4ce71c91b8..efdc94c6e57dcd5c122300f77ca0cc058651aa7e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1790,6 +1790,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0656-prevent-unintended-light-block-manipulation.patch b/patches/server/0655-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0656-prevent-unintended-light-block-manipulation.patch rename to patches/server/0655-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0657-Fix-CraftCriteria-defaults-map.patch b/patches/server/0656-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0657-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0656-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0658-Fix-upstreams-block-state-factories.patch b/patches/server/0657-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0658-Fix-upstreams-block-state-factories.patch rename to patches/server/0657-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0659-Configurable-feature-seeds.patch b/patches/server/0658-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0659-Configurable-feature-seeds.patch rename to patches/server/0658-Configurable-feature-seeds.patch diff --git a/patches/server/0660-Add-root-admin-user-detection.patch b/patches/server/0659-Add-root-admin-user-detection.patch similarity index 100% rename from patches/server/0660-Add-root-admin-user-detection.patch rename to patches/server/0659-Add-root-admin-user-detection.patch diff --git a/patches/server/0661-Always-allow-item-changing-in-Fireball.patch b/patches/server/0660-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0661-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0660-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0662-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0661-don-t-attempt-to-teleport-dead-entities.patch similarity index 91% rename from patches/server/0662-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0661-don-t-attempt-to-teleport-dead-entities.patch index fe234b451f..5eff5788eb 100644 --- a/patches/server/0662-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0661-don-t-attempt-to-teleport-dead-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cd6546b853e147bea8fba789e241674cc400b81e..c090a529eb6bfe3790f6b912ac3d296a43e52762 100644 +index efdc94c6e57dcd5c122300f77ca0cc058651aa7e..5691ce8e654b05d466f179f87b17cc627de98fcb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -718,7 +718,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0663-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0662-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/server/0663-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0662-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0664-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0663-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0664-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0663-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0665-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0664-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0665-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0664-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0666-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0665-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/server/0666-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0665-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0667-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0666-Hide-unnecessary-itemmeta-from-clients.patch similarity index 100% rename from patches/server/0667-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0666-Hide-unnecessary-itemmeta-from-clients.patch diff --git a/patches/server/0668-Fix-Spigot-growth-modifiers.patch b/patches/server/0667-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0668-Fix-Spigot-growth-modifiers.patch rename to patches/server/0667-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0669-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0668-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0669-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0668-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0670-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0669-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0670-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0669-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0671-Optimize-HashMapPalette.patch b/patches/server/0670-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0671-Optimize-HashMapPalette.patch rename to patches/server/0670-Optimize-HashMapPalette.patch diff --git a/patches/server/0672-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0671-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/server/0672-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0671-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/server/0673-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0672-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0673-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0672-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0674-Add-more-Campfire-API.patch b/patches/server/0673-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0674-Add-more-Campfire-API.patch rename to patches/server/0673-Add-more-Campfire-API.patch diff --git a/patches/server/0675-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0674-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0675-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0674-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0676-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0675-Forward-CraftEntity-in-teleport-command.patch similarity index 95% rename from patches/server/0676-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0675-Forward-CraftEntity-in-teleport-command.patch index 06b0eac821..493db169a4 100644 --- a/patches/server/0676-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0675-Forward-CraftEntity-in-teleport-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 47b87fa8c74dba9380fdfc067fea5ae1040e07d3..bab075f68079d5d6c608ef63dc02ae54209cf029 100644 +index 5691ce8e654b05d466f179f87b17cc627de98fcb..653b5bedf9b6132a5410be5f9c36a36cf99b6f68 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3263,6 +3263,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0677-Improve-scoreboard-entries.patch b/patches/server/0676-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0677-Improve-scoreboard-entries.patch rename to patches/server/0676-Improve-scoreboard-entries.patch diff --git a/patches/server/0678-Entity-powdered-snow-API.patch b/patches/server/0677-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0678-Entity-powdered-snow-API.patch rename to patches/server/0677-Entity-powdered-snow-API.patch diff --git a/patches/server/0679-Add-API-for-item-entity-health.patch b/patches/server/0678-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0679-Add-API-for-item-entity-health.patch rename to patches/server/0678-Add-API-for-item-entity-health.patch diff --git a/patches/server/0680-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0679-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0680-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0679-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0681-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0680-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0681-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0680-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0682-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0681-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0682-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0681-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0683-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0682-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0683-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0682-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0684-Fix-bees-aging-inside-hives.patch b/patches/server/0683-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0684-Fix-bees-aging-inside-hives.patch rename to patches/server/0683-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0685-Bucketable-API.patch b/patches/server/0684-Bucketable-API.patch similarity index 100% rename from patches/server/0685-Bucketable-API.patch rename to patches/server/0684-Bucketable-API.patch diff --git a/patches/server/0686-Validate-usernames.patch b/patches/server/0685-Validate-usernames.patch similarity index 100% rename from patches/server/0686-Validate-usernames.patch rename to patches/server/0685-Validate-usernames.patch diff --git a/patches/server/0687-Make-water-animal-spawn-height-configurable.patch b/patches/server/0686-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0687-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0686-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0688-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0687-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/server/0688-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0687-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/server/0689-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0688-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/server/0689-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0688-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/server/0690-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0689-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/server/0690-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/server/0689-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/server/0691-Multiple-Entries-with-Scoreboards.patch b/patches/server/0690-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/server/0691-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0690-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/server/0692-Reset-placed-block-on-exception.patch b/patches/server/0691-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/server/0692-Reset-placed-block-on-exception.patch rename to patches/server/0691-Reset-placed-block-on-exception.patch diff --git a/patches/server/0693-Add-configurable-height-for-slime-spawn.patch b/patches/server/0692-Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/server/0693-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0692-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/server/0694-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0693-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/server/0694-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0693-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/server/0695-Multi-Block-Change-API-Implementation.patch b/patches/server/0694-Multi-Block-Change-API-Implementation.patch similarity index 97% rename from patches/server/0695-Multi-Block-Change-API-Implementation.patch rename to patches/server/0694-Multi-Block-Change-API-Implementation.patch index 13e338d236..86eb7ab941 100644 --- a/patches/server/0695-Multi-Block-Change-API-Implementation.patch +++ b/patches/server/0694-Multi-Block-Change-API-Implementation.patch @@ -24,7 +24,7 @@ index f96d61bdeb556665d6e6e5023f9d77fd82204e89..ccdc2345465313991f065e1176b58fb7 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 8b89f46aad11628a50d9f6c65caf52a558b9ee18..87b241a8b78b6fe0144e0d318e04da69a3101bc7 100644 +index 3c0be3eb7eb79fd2e62845d516f5d9a3c0f8403f..11e144bf561cc3c4dc1d8b712f915cc167f4d4ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -850,6 +850,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0696-Fix-NotePlayEvent.patch b/patches/server/0695-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0696-Fix-NotePlayEvent.patch rename to patches/server/0695-Fix-NotePlayEvent.patch diff --git a/patches/server/0697-Freeze-Tick-Lock-API.patch b/patches/server/0696-Freeze-Tick-Lock-API.patch similarity index 97% rename from patches/server/0697-Freeze-Tick-Lock-API.patch rename to patches/server/0696-Freeze-Tick-Lock-API.patch index b2a2235c41..7ca49418f1 100644 --- a/patches/server/0697-Freeze-Tick-Lock-API.patch +++ b/patches/server/0696-Freeze-Tick-Lock-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bab075f68079d5d6c608ef63dc02ae54209cf029..8c12c385408371126306b75b2b633b4056d7ade3 100644 +index 653b5bedf9b6132a5410be5f9c36a36cf99b6f68..80d5a7a77fab3b978ee4a1a76b992eb666486792 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -405,6 +405,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0698-More-PotionEffectType-API.patch b/patches/server/0697-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0698-More-PotionEffectType-API.patch rename to patches/server/0697-More-PotionEffectType-API.patch diff --git a/patches/server/0699-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0698-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0699-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0698-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0700-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0699-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/server/0700-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0699-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/server/0701-Add-missing-structure-set-seed-configs.patch b/patches/server/0700-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/server/0701-Add-missing-structure-set-seed-configs.patch rename to patches/server/0700-Add-missing-structure-set-seed-configs.patch diff --git a/patches/server/0702-Implement-regenerateChunk.patch b/patches/server/0701-Implement-regenerateChunk.patch similarity index 100% rename from patches/server/0702-Implement-regenerateChunk.patch rename to patches/server/0701-Implement-regenerateChunk.patch diff --git a/patches/server/0703-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0702-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0703-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0702-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0704-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0703-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/server/0704-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0703-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0705-Add-GameEvent-tags.patch b/patches/server/0704-Add-GameEvent-tags.patch similarity index 100% rename from patches/server/0705-Add-GameEvent-tags.patch rename to patches/server/0704-Add-GameEvent-tags.patch diff --git a/patches/server/0706-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0705-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/server/0706-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0705-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/server/0707-Furnace-RecipesUsed-API.patch b/patches/server/0706-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/server/0707-Furnace-RecipesUsed-API.patch rename to patches/server/0706-Furnace-RecipesUsed-API.patch diff --git a/patches/server/0708-Configurable-sculk-sensor-listener-range.patch b/patches/server/0707-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/server/0708-Configurable-sculk-sensor-listener-range.patch rename to patches/server/0707-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/server/0709-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0708-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/server/0709-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0708-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0710-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0709-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 100% rename from patches/server/0710-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0709-Option-to-have-default-CustomSpawners-in-custom-worl.patch diff --git a/patches/server/0711-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0710-Put-world-into-worldlist-before-initing-the-world.patch similarity index 100% rename from patches/server/0711-Put-world-into-worldlist-before-initing-the-world.patch rename to patches/server/0710-Put-world-into-worldlist-before-initing-the-world.patch diff --git a/patches/server/0712-Fix-Entity-Position-Desync.patch b/patches/server/0711-Fix-Entity-Position-Desync.patch similarity index 100% rename from patches/server/0712-Fix-Entity-Position-Desync.patch rename to patches/server/0711-Fix-Entity-Position-Desync.patch diff --git a/patches/server/0713-Custom-Potion-Mixes.patch b/patches/server/0712-Custom-Potion-Mixes.patch similarity index 100% rename from patches/server/0713-Custom-Potion-Mixes.patch rename to patches/server/0712-Custom-Potion-Mixes.patch diff --git a/patches/server/0714-Force-close-world-loading-screen.patch b/patches/server/0713-Force-close-world-loading-screen.patch similarity index 100% rename from patches/server/0714-Force-close-world-loading-screen.patch rename to patches/server/0713-Force-close-world-loading-screen.patch diff --git a/patches/server/0715-Fix-falling-block-spawn-methods.patch b/patches/server/0714-Fix-falling-block-spawn-methods.patch similarity index 100% rename from patches/server/0715-Fix-falling-block-spawn-methods.patch rename to patches/server/0714-Fix-falling-block-spawn-methods.patch diff --git a/patches/server/0716-Expose-furnace-minecart-push-values.patch b/patches/server/0715-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0716-Expose-furnace-minecart-push-values.patch rename to patches/server/0715-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0717-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0716-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0717-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0716-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0718-More-Projectile-API.patch b/patches/server/0717-More-Projectile-API.patch similarity index 100% rename from patches/server/0718-More-Projectile-API.patch rename to patches/server/0717-More-Projectile-API.patch diff --git a/patches/server/0719-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0718-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0719-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0718-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0720-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0719-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 94% rename from patches/server/0720-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0719-Don-t-allow-vehicle-movement-from-players-while-tele.patch index 8d3a98a368..cf48604618 100644 --- a/patches/server/0720-Don-t-allow-vehicle-movement-from-players-while-tele.patch +++ b/patches/server/0719-Don-t-allow-vehicle-movement-from-players-while-tele.patch @@ -7,7 +7,7 @@ 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 1fb3e89d6f7f9d048f083e80b1259480d4e67ef9..cd79aa53ec49c80ee3ddf79b7161637e66b688fd 100644 +index cf173a2315f3a97a89dc2aabe81be285abe73603..53a0ad0125e947537ed537b627d1b02c27f0a63d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -464,6 +464,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0721-Implement-getComputedBiome-API.patch b/patches/server/0720-Implement-getComputedBiome-API.patch similarity index 96% rename from patches/server/0721-Implement-getComputedBiome-API.patch rename to patches/server/0720-Implement-getComputedBiome-API.patch index 610d889706..851c8f573b 100644 --- a/patches/server/0721-Implement-getComputedBiome-API.patch +++ b/patches/server/0720-Implement-getComputedBiome-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement getComputedBiome API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 5f4958d28b6d79fe9e589e4794d9a7e8ab67c8b3..42def68f0c682afe7628ff0b9a537e74d77e558c 100644 +index af14244caba22e750ee7baba03bb7ce267795b21..fbcf1320ef9c1817b24aa8724cd6cf07319c20b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -76,6 +76,13 @@ public abstract class CraftRegionAccessor implements RegionAccessor { diff --git a/patches/server/0722-Make-some-itemstacks-nonnull.patch b/patches/server/0721-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0722-Make-some-itemstacks-nonnull.patch rename to patches/server/0721-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0723-Implement-enchantWithLevels-API.patch b/patches/server/0722-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0723-Implement-enchantWithLevels-API.patch rename to patches/server/0722-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0724-Fix-saving-in-unloadWorld.patch b/patches/server/0723-Fix-saving-in-unloadWorld.patch similarity index 100% rename from patches/server/0724-Fix-saving-in-unloadWorld.patch rename to patches/server/0723-Fix-saving-in-unloadWorld.patch diff --git a/patches/server/0725-Buffer-OOB-setBlock-calls.patch b/patches/server/0724-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0725-Buffer-OOB-setBlock-calls.patch rename to patches/server/0724-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0726-Add-TameableDeathMessageEvent.patch b/patches/server/0725-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0726-Add-TameableDeathMessageEvent.patch rename to patches/server/0725-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0727-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0726-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 100% rename from patches/server/0727-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0726-Fix-new-block-data-for-EntityChangeBlockEvent.patch diff --git a/patches/server/0728-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0727-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 100% rename from patches/server/0728-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0727-fix-player-loottables-running-when-mob-loot-gamerule.patch diff --git a/patches/server/0729-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0728-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 91% rename from patches/server/0729-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0728-Ensure-entity-passenger-world-matches-ridden-entity.patch index b763ae3b79..846f0c230c 100644 --- a/patches/server/0729-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0728-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8c12c385408371126306b75b2b633b4056d7ade3..91242b075c7f5c07d06c2c89cab3fbdb069b61e9 100644 +index 80d5a7a77fab3b978ee4a1a76b992eb666486792..3d0f7310840742a5b16f0c0a7115dc0c90202919 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2580,7 +2580,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0730-cache-resource-keys.patch b/patches/server/0729-cache-resource-keys.patch similarity index 100% rename from patches/server/0730-cache-resource-keys.patch rename to patches/server/0729-cache-resource-keys.patch diff --git a/patches/server/0731-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0730-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/server/0731-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0730-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/server/0732-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0731-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0732-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0731-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0733-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0732-Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/server/0733-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0732-Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/server/0734-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0733-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 100% rename from patches/server/0734-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0733-Use-username-instead-of-display-name-in-PlayerList-g.patch diff --git a/patches/server/0735-Expand-PlayerItemDamageEvent.patch b/patches/server/0734-Expand-PlayerItemDamageEvent.patch similarity index 100% rename from patches/server/0735-Expand-PlayerItemDamageEvent.patch rename to patches/server/0734-Expand-PlayerItemDamageEvent.patch diff --git a/patches/server/0736-WorldCreator-keepSpawnLoaded.patch b/patches/server/0735-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/server/0736-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0735-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/server/0737-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0736-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0737-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0736-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0738-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0737-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/server/0738-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0737-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/server/0739-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0738-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0739-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0738-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0740-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0739-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0740-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0739-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0741-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0740-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0741-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0740-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0742-Add-PlayerStopUsingItemEvent.patch b/patches/server/0741-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/server/0742-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0741-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/server/0743-Don-t-tick-markers.patch b/patches/server/0742-Don-t-tick-markers.patch similarity index 95% rename from patches/server/0743-Don-t-tick-markers.patch rename to patches/server/0742-Don-t-tick-markers.patch index ae96fa4757..f920e6b436 100644 --- a/patches/server/0743-Don-t-tick-markers.patch +++ b/patches/server/0742-Don-t-tick-markers.patch @@ -23,7 +23,7 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5e5a018433414af76eaa1e781f61612d } }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5ed27de9be5300b22cd29b57385e93e6e97ef361..196c776fdb20aac5a9ad5692c47f61c979e4ace0 100644 +index 03a9f82ac2af6cb64081c2bb758cb02a7ffd5b89..024f32155feb31365c8233f94b1e15ed85e929fb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2235,6 +2235,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0744-Expand-FallingBlock-API.patch b/patches/server/0743-Expand-FallingBlock-API.patch similarity index 94% rename from patches/server/0744-Expand-FallingBlock-API.patch rename to patches/server/0743-Expand-FallingBlock-API.patch index d0d49233fa..3f57a2d718 100644 --- a/patches/server/0744-Expand-FallingBlock-API.patch +++ b/patches/server/0743-Expand-FallingBlock-API.patch @@ -13,7 +13,7 @@ public net.minecraft.world.entity.item.FallingBlockEntity blockState Co-authored-by: Lukas Planz diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 33cc2d1a4723ec07c4201eb6e0080d5e0281e1f0..0aef6a8d51cb1351daaea16022f5cbb27ceaff0d 100644 +index c0477f913867c67809978a4f240303151d81e6ea..a52c2fc38fd97ffa1684270443646d605ec35830 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -67,6 +67,7 @@ public class FallingBlockEntity extends Entity { @@ -24,7 +24,7 @@ index 33cc2d1a4723ec07c4201eb6e0080d5e0281e1f0..0aef6a8d51cb1351daaea16022f5cbb2 public FallingBlockEntity(EntityType type, Level world) { super(type, world); -@@ -179,7 +180,7 @@ public class FallingBlockEntity extends Entity { +@@ -169,7 +170,7 @@ public class FallingBlockEntity extends Entity { } if (!this.onGround() && !flag1) { @@ -33,7 +33,7 @@ index 33cc2d1a4723ec07c4201eb6e0080d5e0281e1f0..0aef6a8d51cb1351daaea16022f5cbb2 if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { this.spawnAtLocation((ItemLike) block); } -@@ -325,6 +326,7 @@ public class FallingBlockEntity extends Entity { +@@ -315,6 +316,7 @@ public class FallingBlockEntity extends Entity { } nbt.putBoolean("CancelDrop", this.cancelDrop); @@ -41,7 +41,7 @@ index 33cc2d1a4723ec07c4201eb6e0080d5e0281e1f0..0aef6a8d51cb1351daaea16022f5cbb2 } @Override -@@ -352,6 +354,11 @@ public class FallingBlockEntity extends Entity { +@@ -342,6 +344,11 @@ public class FallingBlockEntity extends Entity { this.blockState = Blocks.SAND.defaultBlockState(); } diff --git a/patches/server/0745-Add-support-for-Proxy-Protocol.patch b/patches/server/0744-Add-support-for-Proxy-Protocol.patch similarity index 97% rename from patches/server/0745-Add-support-for-Proxy-Protocol.patch rename to patches/server/0744-Add-support-for-Proxy-Protocol.patch index 1580298fa5..278aa4c803 100644 --- a/patches/server/0745-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0744-Add-support-for-Proxy-Protocol.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add support for Proxy Protocol diff --git a/build.gradle.kts b/build.gradle.kts -index c6241f858209ed662d8720217d143340916024e9..7c563ef33d12b227856e65392905bffa5289285a 100644 +index e7ea6d57488cbde806b7d5febd48c42dfe3c5195..b5f31e210f2ca4bdfe9957d44780d89240da6269 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,7 @@ dependencies { diff --git a/patches/server/0746-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0745-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0746-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0745-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0747-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0746-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0747-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0746-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0748-properly-read-and-store-sus-effect-duration.patch b/patches/server/0747-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/0748-properly-read-and-store-sus-effect-duration.patch rename to patches/server/0747-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/0749-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0748-Sanitize-sent-BlockEntity-NBT.patch similarity index 100% rename from patches/server/0749-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0748-Sanitize-sent-BlockEntity-NBT.patch diff --git a/patches/server/0750-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0749-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0750-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0749-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0751-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0750-Prevent-entity-loading-causing-async-lookups.patch similarity index 97% rename from patches/server/0751-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0750-Prevent-entity-loading-causing-async-lookups.patch index 7de6a022b5..c9ec6cc4c0 100644 --- a/patches/server/0751-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0750-Prevent-entity-loading-causing-async-lookups.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a9bc659a89009f430105c8524688130a01baaecf..c02181318220d544aca15c030b54650404205519 100644 +index 3d0f7310840742a5b16f0c0a7115dc0c90202919..45712b358e97b65396f63b34c09debc1d42fdbb9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -727,6 +727,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0752-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0751-Throw-exception-on-world-create-while-being-ticked.patch similarity index 100% rename from patches/server/0752-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0751-Throw-exception-on-world-create-while-being-ticked.patch diff --git a/patches/server/0753-Dont-resent-entity-on-art-update.patch b/patches/server/0752-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/server/0753-Dont-resent-entity-on-art-update.patch rename to patches/server/0752-Dont-resent-entity-on-art-update.patch diff --git a/patches/server/0754-Add-WardenAngerChangeEvent.patch b/patches/server/0753-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/server/0754-Add-WardenAngerChangeEvent.patch rename to patches/server/0753-Add-WardenAngerChangeEvent.patch diff --git a/patches/server/0755-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0754-Add-option-for-strict-advancement-dimension-checks.patch similarity index 100% rename from patches/server/0755-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0754-Add-option-for-strict-advancement-dimension-checks.patch diff --git a/patches/server/0756-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0755-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/server/0756-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0755-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/0757-Nameable-Banner-API.patch b/patches/server/0756-Nameable-Banner-API.patch similarity index 100% rename from patches/server/0757-Nameable-Banner-API.patch rename to patches/server/0756-Nameable-Banner-API.patch diff --git a/patches/server/0758-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0757-Don-t-broadcast-messages-to-command-blocks.patch similarity index 100% rename from patches/server/0758-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0757-Don-t-broadcast-messages-to-command-blocks.patch diff --git a/patches/server/0759-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0758-Prevent-empty-items-from-being-added-to-world.patch similarity index 93% rename from patches/server/0759-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0758-Prevent-empty-items-from-being-added-to-world.patch index a3cccb274c..c3d0b8413a 100644 --- a/patches/server/0759-Prevent-empty-items-from-being-added-to-world.patch +++ b/patches/server/0758-Prevent-empty-items-from-being-added-to-world.patch @@ -7,7 +7,7 @@ The previous solution caused a bunch of bandaid fixes inorder to resolve edge ca Just simply prevent them from being added to the world instead. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 196c776fdb20aac5a9ad5692c47f61c979e4ace0..de822b99df2de08371f3a7a29bf8f3275650887c 100644 +index 024f32155feb31365c8233f94b1e15ed85e929fb..57f54e3399f9d2d7fecdae62858d20e50caf7afd 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1231,6 +1231,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0760-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0759-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/server/0760-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0759-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/server/0761-Add-Player-getFishHook.patch b/patches/server/0760-Add-Player-getFishHook.patch similarity index 100% rename from patches/server/0761-Add-Player-getFishHook.patch rename to patches/server/0760-Add-Player-getFishHook.patch diff --git a/patches/server/0762-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0761-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/server/0762-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0761-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/server/0763-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0762-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 98% rename from patches/server/0763-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0762-Add-various-missing-EntityDropItemEvent-calls.patch index 16399035a0..ad1ba5c540 100644 --- a/patches/server/0763-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0762-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 766ffaa165afe799c027ffac3ffcfc04701d02ab..f56739b5a6a748f1a063a63bc31300dd75aaf8d7 100644 +index 45712b358e97b65396f63b34c09debc1d42fdbb9..e5b15ef69bedfd94398f1a8d7a84d0fbf3773919 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2491,6 +2491,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0764-Fix-Bee-flower-NPE.patch b/patches/server/0763-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/server/0764-Fix-Bee-flower-NPE.patch rename to patches/server/0763-Fix-Bee-flower-NPE.patch diff --git a/patches/server/0765-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0764-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 92% rename from patches/server/0765-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0764-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch index 2d342dd0a1..9c4e396ae4 100644 --- a/patches/server/0765-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch +++ b/patches/server/0764-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch @@ -5,7 +5,7 @@ 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 819894dabc8e28a499a6ab5420299e14ab072ff8..2f566e05dc100cde49d36e3392a86c7e20b32473 100644 +index de2b8ae62bdd9e97aa696768f84543cd4a6522cc..5775d071f714e7b9d959bfa94510b865f489e68e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2299,7 +2299,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0766-More-Teleport-API.patch b/patches/server/0765-More-Teleport-API.patch similarity index 100% rename from patches/server/0766-More-Teleport-API.patch rename to patches/server/0765-More-Teleport-API.patch diff --git a/patches/server/0767-Add-EntityPortalReadyEvent.patch b/patches/server/0766-Add-EntityPortalReadyEvent.patch similarity index 95% rename from patches/server/0767-Add-EntityPortalReadyEvent.patch rename to patches/server/0766-Add-EntityPortalReadyEvent.patch index 244db29cbb..1d064ea6c7 100644 --- a/patches/server/0767-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0766-Add-EntityPortalReadyEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f56739b5a6a748f1a063a63bc31300dd75aaf8d7..3a938cd07ec5cec40a244a9a717376c75c26f12b 100644 +index e5b15ef69bedfd94398f1a8d7a84d0fbf3773919..45a7b217ab6ef3a7c4ad1c07824d7185d4847086 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2832,6 +2832,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0768-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0767-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/server/0768-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0767-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/server/0769-Send-block-entities-after-destroy-prediction.patch b/patches/server/0768-Send-block-entities-after-destroy-prediction.patch similarity index 98% rename from patches/server/0769-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0768-Send-block-entities-after-destroy-prediction.patch index 5acf3fa9d7..c1bc860181 100644 --- a/patches/server/0769-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0768-Send-block-entities-after-destroy-prediction.patch @@ -57,7 +57,7 @@ index 8f4c9b99b638cfce8cc7c55f6369f62e757f4e48..f3389dc345d8b6e5389ae37848d9b268 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7a3293e1a911de494ac32b946d8f709a52d98cbe..1eae23b70659b729aaec9d1b5b4dedbefb30a29f 100644 +index 27eb4bc4d1276ea36b97d0faeed2acee8b7a64cc..b8f1549d1ea98a105577927a735bab331aff3840 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1704,8 +1704,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0770-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0769-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 98% rename from patches/server/0770-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0769-Warn-on-plugins-accessing-faraway-chunks.patch index 81ca2e88f6..cf8698ba32 100644 --- a/patches/server/0770-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0769-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c49ff35c92874273233ec53ed63aaff9c79edcd0..76deb93a1a1d3f93498176f32ef291e1299c588d 100644 +index 275c02d480cdf25ba0e735f4a43015ec0af238b3..2cbb3fcae6a8e26ee4bc2a9c88e64984da15ce86 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -345,7 +345,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0771-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0770-Custom-Chat-Completion-Suggestions-API.patch similarity index 94% rename from patches/server/0771-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0770-Custom-Chat-Completion-Suggestions-API.patch index fa918c4450..f48547cc9c 100644 --- a/patches/server/0771-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/server/0770-Custom-Chat-Completion-Suggestions-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0e5076529693f1b9f971600909ae353e021f0671..d866ad7fd91c64fd0fe6680a417678e3ef5ca41d 100644 +index f606250106f1bcf5870dff1167f2902f85f7784a..e278933f1b8fec3165ef088e2a15872cf34f1258 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -611,6 +611,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0772-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0771-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0772-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0771-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0773-Collision-API.patch b/patches/server/0772-Collision-API.patch similarity index 100% rename from patches/server/0773-Collision-API.patch rename to patches/server/0772-Collision-API.patch diff --git a/patches/server/0774-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0773-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 100% rename from patches/server/0774-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0773-Fix-suggest-command-message-for-brigadier-syntax-exc.patch diff --git a/patches/server/0775-Block-Ticking-API.patch b/patches/server/0774-Block-Ticking-API.patch similarity index 100% rename from patches/server/0775-Block-Ticking-API.patch rename to patches/server/0774-Block-Ticking-API.patch diff --git a/patches/server/0776-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0775-Add-Velocity-IP-Forwarding-Support.patch similarity index 100% rename from patches/server/0776-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0775-Add-Velocity-IP-Forwarding-Support.patch diff --git a/patches/server/0777-Add-NamespacedKey-biome-methods.patch b/patches/server/0776-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0777-Add-NamespacedKey-biome-methods.patch rename to patches/server/0776-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0778-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0777-Fix-plugin-loggers-on-server-shutdown.patch similarity index 100% rename from patches/server/0778-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0777-Fix-plugin-loggers-on-server-shutdown.patch diff --git a/patches/server/0779-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0778-Stop-large-look-changes-from-crashing-the-server.patch similarity index 100% rename from patches/server/0779-Stop-large-look-changes-from-crashing-the-server.patch rename to patches/server/0778-Stop-large-look-changes-from-crashing-the-server.patch diff --git a/patches/server/0780-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0779-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0780-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0779-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0781-Missing-eating-regain-reason.patch b/patches/server/0780-Missing-eating-regain-reason.patch similarity index 96% rename from patches/server/0781-Missing-eating-regain-reason.patch rename to patches/server/0780-Missing-eating-regain-reason.patch index ae0d770acd..d03459459f 100644 --- a/patches/server/0781-Missing-eating-regain-reason.patch +++ b/patches/server/0780-Missing-eating-regain-reason.patch @@ -18,7 +18,7 @@ index 1d0c424be2b67cad0f8bca85070a9c46a6b283da..f760ce7d9df79ef58f8963de3e901cba } diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index 869f60e9407ed1c5bee536ef91a21f4d11f8f964..16a5e1247a160a7ae3eba2bab9fde42dff5d62c6 100644 +index 95e5d1d707e610c930b6098a86c5162fd29bf602..be8e056f82e348d7cd14bb22a873207cddfb3044 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -384,7 +384,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl diff --git a/patches/server/0782-Missing-effect-cause.patch b/patches/server/0781-Missing-effect-cause.patch similarity index 100% rename from patches/server/0782-Missing-effect-cause.patch rename to patches/server/0781-Missing-effect-cause.patch diff --git a/patches/server/0783-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0782-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0783-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0782-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0784-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0783-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 97% rename from patches/server/0784-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0783-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch index d7fcd122ed..ff24a5400c 100644 --- a/patches/server/0784-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch +++ b/patches/server/0783-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add a consumer parameter to ProjectileSource#launchProjectile diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 60230ddeec41485e1e1b83614a6256d9ae2cb242..1aa4f09d93f36f523923281a6fb17dc184dbed86 100644 +index 1170cf9b3b61fae099ed8574888187cf4f20ffd1..e559af05c58b7d9c940cea9f48c0f4bd0aad756c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -546,8 +546,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0785-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0784-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0785-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0784-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0786-Configurable-chat-thread-limit.patch b/patches/server/0785-Configurable-chat-thread-limit.patch similarity index 94% rename from patches/server/0786-Configurable-chat-thread-limit.patch rename to patches/server/0785-Configurable-chat-thread-limit.patch index 9296a47439..4ce6896216 100644 --- a/patches/server/0786-Configurable-chat-thread-limit.patch +++ b/patches/server/0785-Configurable-chat-thread-limit.patch @@ -22,10 +22,10 @@ is actually processed, this is honestly really just exposed for the misnomers or who just wanna ensure that this won't grow over a specific size if chat gets stupidly active diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 57e6e857c84234bf0c137058ae35e6fb0e9b124f..ffd52f6871161cd1f2d23040ed4493434a29b834 100644 +index 7a53374319d5495253f277199114eaf43097456d..7145c3776c85416240408b8e23a1d949da39bad9 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -283,7 +283,18 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -285,7 +285,18 @@ public class GlobalConfiguration extends ConfigurationPart { @PostProcess private void postProcess() { diff --git a/patches/server/0787-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0786-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0787-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0786-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0788-fix-Jigsaw-block-kicking-user.patch b/patches/server/0787-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0788-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0787-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0789-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0788-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 95% rename from patches/server/0789-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0788-use-BlockFormEvent-for-mud-converting-into-clay.patch index 3344be8e00..2da3483da9 100644 --- a/patches/server/0789-use-BlockFormEvent-for-mud-converting-into-clay.patch +++ b/patches/server/0788-use-BlockFormEvent-for-mud-converting-into-clay.patch @@ -5,7 +5,7 @@ Subject: [PATCH] use BlockFormEvent for mud converting into clay diff --git a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java -index 998e43e8dc6bd6b741bdcb77d2b75df8ab2feefc..06a9dd14c7f7954bf9327427de76965be8fe30f4 100644 +index d0e679745a794228bf62a9aa59422776760f3867..5835872df922b859a31b44e3723c67097f21a641 100644 --- a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java @@ -214,10 +214,13 @@ public class PointedDripstoneBlock extends Block implements Fallable, SimpleWate diff --git a/patches/server/0790-Add-getDrops-to-BlockState.patch b/patches/server/0789-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0790-Add-getDrops-to-BlockState.patch rename to patches/server/0789-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0791-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0790-Fix-a-bunch-of-vanilla-bugs.patch similarity index 100% rename from patches/server/0791-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0790-Fix-a-bunch-of-vanilla-bugs.patch diff --git a/patches/server/0792-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0791-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 94% rename from patches/server/0792-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0791-Remove-unnecessary-onTrackingStart-during-navigation.patch index 66236863d1..ea3e8cfcd2 100644 --- a/patches/server/0792-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0791-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 62feb9e2f8e0072bb180c65b4946281494a7dc1d..e7ed2d1160d412790b23550f9ae967179b7a61f4 100644 +index b804941c76582871813ba813b9eef2422e7e71f0..b5eda9931a82a667c25ca1a49980b01b042dc0cc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2263,7 +2263,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0793-Fix-custom-piglin-loved-items.patch b/patches/server/0792-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0793-Fix-custom-piglin-loved-items.patch rename to patches/server/0792-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0794-EntityPickupItemEvent-fixes.patch b/patches/server/0793-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0794-EntityPickupItemEvent-fixes.patch rename to patches/server/0793-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0795-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0794-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 100% rename from patches/server/0795-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0794-Correctly-handle-interactions-with-items-on-cooldown.patch diff --git a/patches/server/0796-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0795-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/server/0796-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0795-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/server/0797-Elder-Guardian-appearance-API.patch b/patches/server/0796-Elder-Guardian-appearance-API.patch similarity index 90% rename from patches/server/0797-Elder-Guardian-appearance-API.patch rename to patches/server/0796-Elder-Guardian-appearance-API.patch index 302f3da2c2..ee040588dd 100644 --- a/patches/server/0797-Elder-Guardian-appearance-API.patch +++ b/patches/server/0796-Elder-Guardian-appearance-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d866ad7fd91c64fd0fe6680a417678e3ef5ca41d..6ea05945e26e517563ed359a5216739dd49c7631 100644 +index e278933f1b8fec3165ef088e2a15872cf34f1258..fb68934b8210bae3de5260d72d1a299c1f941044 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3215,6 +3215,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0798-Allow-changing-bed-s-occupied-property.patch b/patches/server/0797-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0798-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0797-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0799-Add-entity-knockback-API.patch b/patches/server/0798-Add-entity-knockback-API.patch similarity index 91% rename from patches/server/0799-Add-entity-knockback-API.patch rename to patches/server/0798-Add-entity-knockback-API.patch index 484391c1da..7086303073 100644 --- a/patches/server/0799-Add-entity-knockback-API.patch +++ b/patches/server/0798-Add-entity-knockback-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 1aa4f09d93f36f523923281a6fb17dc184dbed86..908b72e1d85dc3d6992e1aa3018ac4d4c88f6fcf 100644 +index e559af05c58b7d9c940cea9f48c0f4bd0aad756c..cb585a82e52697d84f3da25a150b663c8c286f58 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -1073,5 +1073,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0800-Detect-headless-JREs.patch b/patches/server/0799-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0800-Detect-headless-JREs.patch rename to patches/server/0799-Detect-headless-JREs.patch diff --git a/patches/server/0801-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0800-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0801-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0800-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0802-Add-EntityToggleSitEvent.patch b/patches/server/0801-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0802-Add-EntityToggleSitEvent.patch rename to patches/server/0801-Add-EntityToggleSitEvent.patch diff --git a/patches/server/0803-Add-fire-tick-delay-option.patch b/patches/server/0802-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0803-Add-fire-tick-delay-option.patch rename to patches/server/0802-Add-fire-tick-delay-option.patch diff --git a/patches/server/0804-Add-Moving-Piston-API.patch b/patches/server/0803-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0804-Add-Moving-Piston-API.patch rename to patches/server/0803-Add-Moving-Piston-API.patch diff --git a/patches/server/0805-Ignore-impossible-spawn-tick.patch b/patches/server/0804-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0805-Ignore-impossible-spawn-tick.patch rename to patches/server/0804-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0806-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0805-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0806-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0805-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0807-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0806-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0807-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0806-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0808-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0807-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 95% rename from patches/server/0808-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0807-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index e6135036e5..efc81025ac 100644 --- a/patches/server/0808-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0807-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3a938cd07ec5cec40a244a9a717376c75c26f12b..bdefbb1040cf7bcdcdf2f5b625ef854e3805f567 100644 +index 45a7b217ab6ef3a7c4ad1c07824d7185d4847086..ea65396e55476dc4e91fe2c26a5c5bd658184d5e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3111,6 +3111,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0809-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0808-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/server/0809-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0808-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/server/0810-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0809-ensure-reset-EnderDragon-boss-event-name.patch similarity index 96% rename from patches/server/0810-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0809-ensure-reset-EnderDragon-boss-event-name.patch index 18d504b2fd..07dc251b4d 100644 --- a/patches/server/0810-ensure-reset-EnderDragon-boss-event-name.patch +++ b/patches/server/0809-ensure-reset-EnderDragon-boss-event-name.patch @@ -6,7 +6,7 @@ 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 59f6c3109b34719a7ed487ada5a8ce33ec458e87..b9b773d7dba559afe00b085ded3f020ea6b97c12 100644 +index 50071bec6825ec2b34662de14128070510d16afb..8737501e14792de13adf95da24fa6177bfb77946 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 @@ -73,6 +73,7 @@ public class EndDragonFight { diff --git a/patches/server/0811-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0810-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0811-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0810-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0812-Add-Player-Warden-Warning-API.patch b/patches/server/0811-Add-Player-Warden-Warning-API.patch similarity index 95% rename from patches/server/0812-Add-Player-Warden-Warning-API.patch rename to patches/server/0811-Add-Player-Warden-Warning-API.patch index e6584699bb..e38acd3ff2 100644 --- a/patches/server/0812-Add-Player-Warden-Warning-API.patch +++ b/patches/server/0811-Add-Player-Warden-Warning-API.patch @@ -10,7 +10,7 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6ea05945e26e517563ed359a5216739dd49c7631..ca71160491f11bc805a6cb1ad432a6ba4c756931 100644 +index fb68934b8210bae3de5260d72d1a299c1f941044..fc47eb2de7e8d39b3a053e5458529267cc86408d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3220,6 +3220,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0813-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0812-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0813-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0812-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0814-Add-paper-dumplisteners-command.patch b/patches/server/0813-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0814-Add-paper-dumplisteners-command.patch rename to patches/server/0813-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0815-check-global-player-list-where-appropriate.patch b/patches/server/0814-check-global-player-list-where-appropriate.patch similarity index 100% rename from patches/server/0815-check-global-player-list-where-appropriate.patch rename to patches/server/0814-check-global-player-list-where-appropriate.patch diff --git a/patches/server/0816-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0815-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 96% rename from patches/server/0816-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0815-Fix-async-entity-add-due-to-fungus-trees.patch index 2486d05f04..63a99ea749 100644 --- a/patches/server/0816-Fix-async-entity-add-due-to-fungus-trees.patch +++ b/patches/server/0815-Fix-async-entity-add-due-to-fungus-trees.patch @@ -17,7 +17,7 @@ index ff94af5be8de374f5cde2607eebbb23e65705581..209596e89307b9e1d0ff4c465876d29f BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 13afea4ecfefc7e3de26dc42b5316fe2c7554b5c..9dd6012556979514f9879f867138bc836c58ef3f 100644 +index 5680e9772a2d90e997d2d0aacdda9eddb7edef56..7c7dbd030ada8d2fab494b6a125664ddc3955639 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -257,10 +257,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor { diff --git a/patches/server/0817-ItemStack-damage-API.patch b/patches/server/0816-ItemStack-damage-API.patch similarity index 97% rename from patches/server/0817-ItemStack-damage-API.patch rename to patches/server/0816-ItemStack-damage-API.patch index 6f851f92db..933e8cf6e8 100644 --- a/patches/server/0817-ItemStack-damage-API.patch +++ b/patches/server/0816-ItemStack-damage-API.patch @@ -11,7 +11,7 @@ the logic associated with damaging them public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 908b72e1d85dc3d6992e1aa3018ac4d4c88f6fcf..77b32e520f80289a44d75ed0cde0b8bc3b3cecc3 100644 +index cb585a82e52697d84f3da25a150b663c8c286f58..7ba726584ce4a58654b8a8b9604f0cca762b3f42 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -1074,6 +1074,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0818-Friction-API.patch b/patches/server/0817-Friction-API.patch similarity index 100% rename from patches/server/0818-Friction-API.patch rename to patches/server/0817-Friction-API.patch diff --git a/patches/server/0819-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0818-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0819-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0818-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0820-Fix-player-kick-on-shutdown.patch b/patches/server/0819-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0820-Fix-player-kick-on-shutdown.patch rename to patches/server/0819-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0821-Sync-offhand-slot-in-menus.patch b/patches/server/0820-Sync-offhand-slot-in-menus.patch similarity index 100% rename from patches/server/0821-Sync-offhand-slot-in-menus.patch rename to patches/server/0820-Sync-offhand-slot-in-menus.patch diff --git a/patches/server/0822-Player-Entity-Tracking-Events.patch b/patches/server/0821-Player-Entity-Tracking-Events.patch similarity index 96% rename from patches/server/0822-Player-Entity-Tracking-Events.patch rename to patches/server/0821-Player-Entity-Tracking-Events.patch index 358c0c0114..37d60f62c0 100644 --- a/patches/server/0822-Player-Entity-Tracking-Events.patch +++ b/patches/server/0821-Player-Entity-Tracking-Events.patch @@ -21,7 +21,7 @@ index 43c8f6a0615f392cc560b2259b116cc9d5fba4e7..ca24463405f138deb882f319bf84696f } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bdefbb1040cf7bcdcdf2f5b625ef854e3805f567..a410ff9fbfc92d16a3720b8db9f3df554c66a9f0 100644 +index ea65396e55476dc4e91fe2c26a5c5bd658184d5e..e7b260c85ce8054f612089be5d39c5df35ab2d88 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3837,7 +3837,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0823-Limit-pet-look-distance.patch b/patches/server/0822-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0823-Limit-pet-look-distance.patch rename to patches/server/0822-Limit-pet-look-distance.patch diff --git a/patches/server/0824-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0823-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0824-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0823-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0825-fix-Instruments.patch b/patches/server/0824-fix-Instruments.patch similarity index 96% rename from patches/server/0825-fix-Instruments.patch rename to patches/server/0824-fix-Instruments.patch index 0795f113cc..fa96e40eb2 100644 --- a/patches/server/0825-fix-Instruments.patch +++ b/patches/server/0824-fix-Instruments.patch @@ -6,7 +6,7 @@ Subject: [PATCH] fix Instruments properly handle Player#playNote diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ca71160491f11bc805a6cb1ad432a6ba4c756931..fee318e42bac5f06825352c16f9f03168d8ce271 100644 +index fc47eb2de7e8d39b3a053e5458529267cc86408d..1a0023472b9ba5bbc0ee1d16824219d94944bdf9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -688,7 +688,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0826-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0825-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 100% rename from patches/server/0826-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0825-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch diff --git a/patches/server/0827-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0826-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0827-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0826-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0828-Add-BlockLockCheckEvent.patch b/patches/server/0827-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0828-Add-BlockLockCheckEvent.patch rename to patches/server/0827-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0829-Add-Sneaking-API-for-Entities.patch b/patches/server/0828-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/server/0829-Add-Sneaking-API-for-Entities.patch rename to patches/server/0828-Add-Sneaking-API-for-Entities.patch diff --git a/patches/server/0830-Improve-logging-and-errors.patch b/patches/server/0829-Improve-logging-and-errors.patch similarity index 100% rename from patches/server/0830-Improve-logging-and-errors.patch rename to patches/server/0829-Improve-logging-and-errors.patch diff --git a/patches/server/0831-Improve-PortalEvents.patch b/patches/server/0830-Improve-PortalEvents.patch similarity index 93% rename from patches/server/0831-Improve-PortalEvents.patch rename to patches/server/0830-Improve-PortalEvents.patch index c6f1e8fa27..c8e1fcfb1f 100644 --- a/patches/server/0831-Improve-PortalEvents.patch +++ b/patches/server/0830-Improve-PortalEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a410ff9fbfc92d16a3720b8db9f3df554c66a9f0..82ddbe8e71bc2d1ee2be0e576d595fd462f9baab 100644 +index e7b260c85ce8054f612089be5d39c5df35ab2d88..c4b925eaa94e48ffa04fb6fb9a5fa61f1d391ec8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3495,7 +3495,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0832-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0831-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0832-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0831-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0833-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0832-Add-missing-SpigotConfig-logCommands-check.patch similarity index 93% rename from patches/server/0833-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0832-Add-missing-SpigotConfig-logCommands-check.patch index c7b08d7fbe..a6135e7f58 100644 --- a/patches/server/0833-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0832-Add-missing-SpigotConfig-logCommands-check.patch @@ -5,7 +5,7 @@ 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 a72af814b81ba3ca82476da47d68ae344bb2b63c..6b215d271a884bf60bbda5abc46657ddafdca1dc 100644 +index 45a68beff0c97ead5e9f1201b5fb9ef80c08b92b..994787f52ce9eb0b77889ed9bc8021183fa0cb7c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2060,7 +2060,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0834-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0833-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0834-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0833-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0835-Flying-Fall-Damage.patch b/patches/server/0834-Flying-Fall-Damage.patch similarity index 100% rename from patches/server/0835-Flying-Fall-Damage.patch rename to patches/server/0834-Flying-Fall-Damage.patch diff --git a/patches/server/0836-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0835-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/server/0836-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0835-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/server/0837-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0836-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 94% rename from patches/server/0837-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0836-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index e880f7368d..02a7125dd4 100644 --- a/patches/server/0837-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0836-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5c37fb16d57bdffc4973b42a15f79b480ba65e5f..c394c60f4e6b216be332c3585fbfbc4f32f9db30 100644 +index c4b925eaa94e48ffa04fb6fb9a5fa61f1d391ec8..d24c2e23a12a196e1f6dc4f5c6d3c69472ddc704 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -957,6 +957,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0838-config-for-disabling-entity-tag-tags.patch b/patches/server/0837-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0838-config-for-disabling-entity-tag-tags.patch rename to patches/server/0837-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0839-Use-single-player-info-update-packet-on-join.patch b/patches/server/0838-Use-single-player-info-update-packet-on-join.patch similarity index 100% rename from patches/server/0839-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0838-Use-single-player-info-update-packet-on-join.patch diff --git a/patches/server/0840-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0839-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 100% rename from patches/server/0840-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0839-Correctly-shrink-items-during-EntityResurrectEvent.patch diff --git a/patches/server/0841-Win-Screen-API.patch b/patches/server/0840-Win-Screen-API.patch similarity index 93% rename from patches/server/0841-Win-Screen-API.patch rename to patches/server/0840-Win-Screen-API.patch index 0cc81b1cb8..25f9952de7 100644 --- a/patches/server/0841-Win-Screen-API.patch +++ b/patches/server/0840-Win-Screen-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API public net.minecraft.server.level.ServerPlayer seenCredits diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4f62bd701e2645ef37bcfda851723c6b51f5f3d5..04e5be79348733f5a6a8b1968b6887379fa65027 100644 +index 69917a56fc05f8c16a1302fe331993e8d49889b9..4996776287c58039507ad2eda9d59e3fd13c08a8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1214,6 +1214,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0842-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0841-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0842-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0841-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0843-Fix-force-opening-enchantment-tables.patch b/patches/server/0842-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0843-Fix-force-opening-enchantment-tables.patch rename to patches/server/0842-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0844-Add-Entity-Body-Yaw-API.patch b/patches/server/0843-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0844-Add-Entity-Body-Yaw-API.patch rename to patches/server/0843-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0845-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0844-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0845-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0844-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0846-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0845-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 90% rename from patches/server/0846-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0845-Update-the-flag-when-a-captured-block-state-is-outda.patch index d580c7b237..acec71e5bc 100644 --- a/patches/server/0846-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0845-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 76deb93a1a1d3f93498176f32ef291e1299c588d..cb4be07de48cbb18d6b7cd79f57aae40cfcc8a56 100644 +index 2cbb3fcae6a8e26ee4bc2a9c88e64984da15ce86..5fcdb88dd2aa8c8c57d57935d15ea92c1015670e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -451,6 +451,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0847-Add-EntityFertilizeEggEvent.patch b/patches/server/0846-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/server/0847-Add-EntityFertilizeEggEvent.patch rename to patches/server/0846-Add-EntityFertilizeEggEvent.patch diff --git a/patches/server/0848-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0847-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0848-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0847-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0849-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0848-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0849-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0848-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0850-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0849-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0850-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0849-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0851-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0850-Fix-advancement-triggers-for-entity-damage.patch similarity index 100% rename from patches/server/0851-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0850-Fix-advancement-triggers-for-entity-damage.patch diff --git a/patches/server/0852-Fix-text-display-error-on-spawn.patch b/patches/server/0851-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0852-Fix-text-display-error-on-spawn.patch rename to patches/server/0851-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0853-Fix-inventories-returning-null-Locations.patch b/patches/server/0852-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0853-Fix-inventories-returning-null-Locations.patch rename to patches/server/0852-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0854-Add-Shearable-API.patch b/patches/server/0853-Add-Shearable-API.patch similarity index 97% rename from patches/server/0854-Add-Shearable-API.patch rename to patches/server/0853-Add-Shearable-API.patch index 8ab6feec02..f97657b8e1 100644 --- a/patches/server/0854-Add-Shearable-API.patch +++ b/patches/server/0853-Add-Shearable-API.patch @@ -32,7 +32,7 @@ index 0000000000000000000000000000000000000000..bcf254e3c81cf1e401bddc850fb24ad2 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java -index a41a85ad89a177759c97d661a89b8b5dc419db1b..1d78ae1db211a452a42fb4a7bef4cca4b7c71a1f 100644 +index cc69f471c623c65251ccf7015499d8dbdb70ffad..b453a47cadbda2e22262bcdc5454c4c6cf5b2583 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java @@ -14,7 +14,7 @@ import org.bukkit.entity.MushroomCow; diff --git a/patches/server/0855-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0854-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0855-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0854-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0856-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0855-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0856-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0855-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0857-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0856-Treat-sequence-violations-like-they-should-be.patch similarity index 92% rename from patches/server/0857-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0856-Treat-sequence-violations-like-they-should-be.patch index 360f303ea0..d67cd31a14 100644 --- a/patches/server/0857-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0856-Treat-sequence-violations-like-they-should-be.patch @@ -5,7 +5,7 @@ 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 006c1fa70bd38a3db9844a77f3f5d22b0d083ddf..2e12d2f22485644bc2fc3d5235cfd3bc755f6c72 100644 +index a1196f79968c950fd9d92123bb4018f8d29c3a82..c9dab47fe3db73b31b40e071d37f1be63401c19d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1964,6 +1964,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0858-remove-duplicate-animate-packet-for-records.patch b/patches/server/0857-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0858-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0857-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0859-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0858-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/server/0859-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0858-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/server/0860-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0859-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 91% rename from patches/server/0860-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0859-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index 88a92e8a06..b0714f833f 100644 --- a/patches/server/0860-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0859-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 711712f144d7b0e26d1248f53bf7ac3963c5df4a..09b0113df3b7c78b5cc62a1c32e71dc400385795 100644 +index 5f1a4a35d2179b7ff5a95390f82d65cacf4fd457..a6af6585aca50033f45138a4408218b056b8b785 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1368,6 +1368,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0861-Use-array-for-gamerule-storage.patch b/patches/server/0860-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0861-Use-array-for-gamerule-storage.patch rename to patches/server/0860-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0862-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0861-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0862-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0861-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0863-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0862-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0863-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0862-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0864-Add-Mob-Experience-reward-API.patch b/patches/server/0863-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0864-Add-Mob-Experience-reward-API.patch rename to patches/server/0863-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0865-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0864-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0865-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0864-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0866-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0865-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0866-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0865-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0867-More-accurate-isInOpenWater-impl.patch b/patches/server/0866-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0867-More-accurate-isInOpenWater-impl.patch rename to patches/server/0866-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0868-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0867-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0868-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0867-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0869-Expand-PlayerItemMendEvent.patch b/patches/server/0868-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/server/0869-Expand-PlayerItemMendEvent.patch rename to patches/server/0868-Expand-PlayerItemMendEvent.patch diff --git a/patches/server/0870-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0869-Refresh-ProjectileSource-for-projectiles.patch similarity index 97% rename from patches/server/0870-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0869-Refresh-ProjectileSource-for-projectiles.patch index d9ecc6ae32..1e23e270a4 100644 --- a/patches/server/0870-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0869-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c394c60f4e6b216be332c3585fbfbc4f32f9db30..5b612466db7c063bf0efbdaa3fcc575eb202ab21 100644 +index d24c2e23a12a196e1f6dc4f5c6d3c69472ddc704..c173ecd1283331afcf4db010e65764e5ed6e1eff 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -384,6 +384,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0871-Add-transient-modifier-API.patch b/patches/server/0870-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0871-Add-transient-modifier-API.patch rename to patches/server/0870-Add-transient-modifier-API.patch diff --git a/patches/server/0872-Fix-block-place-logic.patch b/patches/server/0871-Fix-block-place-logic.patch similarity index 97% rename from patches/server/0872-Fix-block-place-logic.patch rename to patches/server/0871-Fix-block-place-logic.patch index d94615de79..10b444c4dc 100644 --- a/patches/server/0872-Fix-block-place-logic.patch +++ b/patches/server/0871-Fix-block-place-logic.patch @@ -41,7 +41,7 @@ index 59c4550b4cb8b0317f5256efc9376265f4583b60..964d6af9eb9752b9e08f712c80b67bd9 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index cb4be07de48cbb18d6b7cd79f57aae40cfcc8a56..b942e9f163fa342c58b74d1cd6ffe6bdbe4f691a 100644 +index 5fcdb88dd2aa8c8c57d57935d15ea92c1015670e..4fe0f8ba4a2b089f44808063e72dd994d6c73e0a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -560,17 +560,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0873-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0872-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0873-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0872-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0874-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0873-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0874-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0873-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0875-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0874-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 100% rename from patches/server/0875-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0874-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch diff --git a/patches/server/0876-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0875-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0876-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0875-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0877-Fix-sniffer-removeExploredLocation.patch b/patches/server/0876-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0877-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0876-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0878-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0877-Add-method-to-remove-all-active-potion-effects.patch similarity index 91% rename from patches/server/0878-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0877-Add-method-to-remove-all-active-potion-effects.patch index 73565fe49a..20554be569 100644 --- a/patches/server/0878-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/server/0877-Add-method-to-remove-all-active-potion-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 4abfe34ee595fef3e1253090410c6309d3459a84..f1e4dfd203d455ec089cd2b5679c4083400dbc7f 100644 +index 3302d8e9b7c2c48b20dd257f4699b263d3bc52dc..3f952d1409118535f325f614f1a6507c40efa4d6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -540,6 +540,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0879-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0878-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0879-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0878-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0880-Add-event-for-player-editing-sign.patch b/patches/server/0879-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0880-Add-event-for-player-editing-sign.patch rename to patches/server/0879-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0881-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0880-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0881-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0880-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0882-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0881-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0882-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0881-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0883-Add-option-to-disable-block-updates.patch b/patches/server/0882-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0883-Add-option-to-disable-block-updates.patch rename to patches/server/0882-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0884-Call-missing-BlockDispenseEvent.patch b/patches/server/0883-Call-missing-BlockDispenseEvent.patch similarity index 100% rename from patches/server/0884-Call-missing-BlockDispenseEvent.patch rename to patches/server/0883-Call-missing-BlockDispenseEvent.patch diff --git a/patches/server/0885-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0884-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 90% rename from patches/server/0885-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0884-Don-t-load-chunks-for-supporting-block-checks.patch index f1dd778224..2fc45560a6 100644 --- a/patches/server/0885-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0884-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5b612466db7c063bf0efbdaa3fcc575eb202ab21..957165e1fce7ddd4c7b7e53a4db8f65739c0ff7f 100644 +index c173ecd1283331afcf4db010e65764e5ed6e1eff..626f2180b87daa1c00e97dc24b1a78aec4d9f033 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1200,7 +1200,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0886-Optimize-player-lookups-for-beacons.patch b/patches/server/0885-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0886-Optimize-player-lookups-for-beacons.patch rename to patches/server/0885-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0887-Add-Sign-getInteractableSideFor.patch b/patches/server/0886-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0887-Add-Sign-getInteractableSideFor.patch rename to patches/server/0886-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0888-Array-backed-synched-entity-data.patch b/patches/server/0887-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0888-Array-backed-synched-entity-data.patch rename to patches/server/0887-Array-backed-synched-entity-data.patch diff --git a/patches/server/0889-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0888-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0889-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0888-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0890-Fix-BanList-API.patch b/patches/server/0889-Fix-BanList-API.patch similarity index 99% rename from patches/server/0890-Fix-BanList-API.patch rename to patches/server/0889-Fix-BanList-API.patch index 8d1fcf4c1a..ec8005e221 100644 --- a/patches/server/0890-Fix-BanList-API.patch +++ b/patches/server/0889-Fix-BanList-API.patch @@ -208,7 +208,7 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c7e0aa94a8c1f821f723f323b69bacfd2d2d8aa3..0f32750ec4bc85033c6da8a21f4ad3150112ece6 100644 +index e111017c3de7b374c702fed20a5e98557011ea06..748f49fd3fd4a3c1ed287d1eeed23ce5efecb8d4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1655,23 +1655,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0891-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0890-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0891-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0890-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0892-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0891-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0892-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0891-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0893-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0892-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0893-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0892-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0894-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0893-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 100% rename from patches/server/0894-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0893-ExperienceOrb-should-call-EntitySpawnEvent.patch diff --git a/patches/server/0895-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0894-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0895-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0894-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0896-Add-whitelist-events.patch b/patches/server/0895-Add-whitelist-events.patch similarity index 100% rename from patches/server/0896-Add-whitelist-events.patch rename to patches/server/0895-Add-whitelist-events.patch diff --git a/patches/server/0897-Implement-PlayerFailMoveEvent.patch b/patches/server/0896-Implement-PlayerFailMoveEvent.patch similarity index 100% rename from patches/server/0897-Implement-PlayerFailMoveEvent.patch rename to patches/server/0896-Implement-PlayerFailMoveEvent.patch diff --git a/patches/server/0898-Folia-scheduler-and-owned-region-API.patch b/patches/server/0897-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0898-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0897-Folia-scheduler-and-owned-region-API.patch index 77a7babe2c..ec5f0abb4d 100644 --- a/patches/server/0898-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0897-Folia-scheduler-and-owned-region-API.patch @@ -1185,7 +1185,7 @@ index 0747b0042446271385371f1ca9c8fefdebd851b8..fade1e36037075aae968eb90bbfeac76 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 a5c806431bca48f51aeedf52679dda27618af41b..35eb78717396de92db846d335fe8abce7ba3a117 100644 +index 626f2180b87daa1c00e97dc24b1a78aec4d9f033..abbd6a866b666978ce29211e4027f2b08b0c2e3d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -247,11 +247,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0899-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0898-Only-erase-allay-memory-on-non-item-targets.patch similarity index 100% rename from patches/server/0899-Only-erase-allay-memory-on-non-item-targets.patch rename to patches/server/0898-Only-erase-allay-memory-on-non-item-targets.patch diff --git a/patches/server/0900-API-for-updating-recipes-on-clients.patch b/patches/server/0899-API-for-updating-recipes-on-clients.patch similarity index 100% rename from patches/server/0900-API-for-updating-recipes-on-clients.patch rename to patches/server/0899-API-for-updating-recipes-on-clients.patch diff --git a/patches/server/0901-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0900-Fix-rotation-when-spawning-display-entities.patch similarity index 100% rename from patches/server/0901-Fix-rotation-when-spawning-display-entities.patch rename to patches/server/0900-Fix-rotation-when-spawning-display-entities.patch diff --git a/patches/server/0902-Only-capture-actual-tree-growth.patch b/patches/server/0901-Only-capture-actual-tree-growth.patch similarity index 98% rename from patches/server/0902-Only-capture-actual-tree-growth.patch rename to patches/server/0901-Only-capture-actual-tree-growth.patch index 9255870831..96167911d0 100644 --- a/patches/server/0902-Only-capture-actual-tree-growth.patch +++ b/patches/server/0901-Only-capture-actual-tree-growth.patch @@ -29,7 +29,7 @@ index 5a86b2c205250ddcd833a15accb27ca4a580eadd..9b4e20d4bfba2de08084f1d69cb2ebff entityhuman.awardStat(Stats.ITEM_USED.get(item)); // SPIGOT-7236 - award stat } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b942e9f163fa342c58b74d1cd6ffe6bdbe4f691a..cd19005d3f239a27a4ce764588c8df0b229035bf 100644 +index 4fe0f8ba4a2b089f44808063e72dd994d6c73e0a..6d98b910b1079f1b4a95c430e5500d55fbc68ec2 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1372,4 +1372,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0903-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0902-Use-correct-source-for-mushroom-block-spread-event.patch similarity index 100% rename from patches/server/0903-Use-correct-source-for-mushroom-block-spread-event.patch rename to patches/server/0902-Use-correct-source-for-mushroom-block-spread-event.patch diff --git a/patches/server/0904-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0903-Respect-randomizeData-on-more-entities-when-spawning.patch similarity index 100% rename from patches/server/0904-Respect-randomizeData-on-more-entities-when-spawning.patch rename to patches/server/0903-Respect-randomizeData-on-more-entities-when-spawning.patch diff --git a/patches/server/0905-Use-correct-seed-on-api-world-load.patch b/patches/server/0904-Use-correct-seed-on-api-world-load.patch similarity index 100% rename from patches/server/0905-Use-correct-seed-on-api-world-load.patch rename to patches/server/0904-Use-correct-seed-on-api-world-load.patch diff --git a/patches/server/0906-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0905-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch similarity index 100% rename from patches/server/0906-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch rename to patches/server/0905-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch diff --git a/patches/server/0907-Cache-map-ids-on-item-frames.patch b/patches/server/0906-Cache-map-ids-on-item-frames.patch similarity index 100% rename from patches/server/0907-Cache-map-ids-on-item-frames.patch rename to patches/server/0906-Cache-map-ids-on-item-frames.patch diff --git a/patches/server/0908-Fix-custom-statistic-criteria-creation.patch b/patches/server/0907-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/server/0908-Fix-custom-statistic-criteria-creation.patch rename to patches/server/0907-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/server/0909-Bandaid-fix-for-Effect.patch b/patches/server/0908-Bandaid-fix-for-Effect.patch similarity index 98% rename from patches/server/0909-Bandaid-fix-for-Effect.patch rename to patches/server/0908-Bandaid-fix-for-Effect.patch index f8dd13a38f..92c731798f 100644 --- a/patches/server/0909-Bandaid-fix-for-Effect.patch +++ b/patches/server/0908-Bandaid-fix-for-Effect.patch @@ -73,7 +73,7 @@ index 54cdb4b6a97250c1e15e2fce355e3699c9189948..457d5cdb510a11a069ac7f54a8ed95a7 // Special case: the axis is optional for ELECTRIC_SPARK Preconditions.checkArgument(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for the %s effect", effect); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0f32750ec4bc85033c6da8a21f4ad3150112ece6..59dd4f06d33a0bb8e747857ee81f6465b7ed78b1 100644 +index 748f49fd3fd4a3c1ed287d1eeed23ce5efecb8d4..15817a84ad5db54ec299f933387f4ad1e0e74b33 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -837,7 +837,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0910-SculkCatalyst-bloom-API.patch b/patches/server/0909-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/server/0910-SculkCatalyst-bloom-API.patch rename to patches/server/0909-SculkCatalyst-bloom-API.patch diff --git a/patches/server/0911-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0910-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/server/0911-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0910-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/server/0912-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0911-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/server/0912-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0911-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/server/0913-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0912-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 95% rename from patches/server/0913-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0912-Don-t-tab-complete-namespaced-commands-if-send-names.patch index 73b317b26d..e3fb817061 100644 --- a/patches/server/0913-Don-t-tab-complete-namespaced-commands-if-send-names.patch +++ b/patches/server/0912-Don-t-tab-complete-namespaced-commands-if-send-names.patch @@ -11,7 +11,7 @@ This patch prevents server from sending namespaced commands when player requests tab-complete only commands. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3141681dc21f7a61fcc77bbf65975072b07c8970..5092aed16ad9ed049624030a6c26a8013e92ae56 100644 +index 93f5ec2c48bf4bdd4afc1e07ffcf1a34387ce6ac..81bc1e1cf5cd77f09560dbd0c277f77670d6cc56 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -792,6 +792,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0914-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0913-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 100% rename from patches/server/0914-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0913-Properly-handle-BlockBreakEvent-isDropItems.patch diff --git a/patches/server/0915-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0914-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/server/0915-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0914-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/server/0916-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0915-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 94% rename from patches/server/0916-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0915-Configurable-entity-tracking-range-by-Y-coordinate.patch index 2856a1f09c..81dacf5aab 100644 --- a/patches/server/0916-Configurable-entity-tracking-range-by-Y-coordinate.patch +++ b/patches/server/0915-Configurable-entity-tracking-range-by-Y-coordinate.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable entity tracking range by Y coordinate Options to configure entity tracking by Y coordinate, also for each entity category. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 601693243c11b06fe0bae0040bf79d95696cdb21..4793871db838aba8b0370ada299406d3fb904c14 100644 +index ca24463405f138deb882f319bf84696f52a1f606..aed4f4ac21b8ddc9c9ee7ce5151bbfc8bb6cf7f5 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1741,6 +1741,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0917-Add-Listing-API-for-Player.patch b/patches/server/0916-Add-Listing-API-for-Player.patch similarity index 100% rename from patches/server/0917-Add-Listing-API-for-Player.patch rename to patches/server/0916-Add-Listing-API-for-Player.patch diff --git a/patches/server/0918-Configurable-Region-Compression-Format.patch b/patches/server/0917-Configurable-Region-Compression-Format.patch similarity index 100% rename from patches/server/0918-Configurable-Region-Compression-Format.patch rename to patches/server/0917-Configurable-Region-Compression-Format.patch diff --git a/patches/server/0919-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0918-Add-BlockFace-to-BlockDamageEvent.patch similarity index 100% rename from patches/server/0919-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/server/0918-Add-BlockFace-to-BlockDamageEvent.patch diff --git a/patches/server/0920-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0919-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/server/0920-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0919-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/server/0921-Expand-Pose-API.patch b/patches/server/0920-Expand-Pose-API.patch similarity index 95% rename from patches/server/0921-Expand-Pose-API.patch rename to patches/server/0920-Expand-Pose-API.patch index 6667e21c82..660dffd43c 100644 --- a/patches/server/0921-Expand-Pose-API.patch +++ b/patches/server/0920-Expand-Pose-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 14855cd35ce7607e74192a55722bd10660f1126b..361bdbb940a0da6821bcaf6037ddfe6bf61b36ac 100644 +index abbd6a866b666978ce29211e4027f2b08b0c2e3d..bbc3f09105b19eabd3ebb8b9589412b8871739a1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -419,6 +419,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0922-More-DragonBattle-API.patch b/patches/server/0921-More-DragonBattle-API.patch similarity index 97% rename from patches/server/0922-More-DragonBattle-API.patch rename to patches/server/0921-More-DragonBattle-API.patch index 991159cfb6..1ff4688b56 100644 --- a/patches/server/0922-More-DragonBattle-API.patch +++ b/patches/server/0921-More-DragonBattle-API.patch @@ -10,7 +10,7 @@ public net.minecraft.world.level.dimension.end.EndDragonFight respawnCrystals public net.minecraft.world.level.dimension.end.EndDragonFight spawnNewGateway(Lnet/minecraft/core/BlockPos;)V 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 b9b773d7dba559afe00b085ded3f020ea6b97c12..adbe8ca78716114a3bc03136f02c631f30aff977 100644 +index 8737501e14792de13adf95da24fa6177bfb77946..b9c85289776971f90eb5749262a9014befe465f7 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 @@ -439,6 +439,24 @@ public class EndDragonFight { diff --git a/patches/server/0923-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0922-Deep-clone-unhandled-nbt-tags.patch similarity index 97% rename from patches/server/0923-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0922-Deep-clone-unhandled-nbt-tags.patch index 5ecebf9875..0f522edd88 100644 --- a/patches/server/0923-Deep-clone-unhandled-nbt-tags.patch +++ b/patches/server/0922-Deep-clone-unhandled-nbt-tags.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Deep clone unhandled nbt tags diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 6c797f35a10e8491718f38eb08f31b1e6182a8d1..c425b21ddc12917ab9aa10869ff3aec622ce2d9a 100644 +index 7d3d32679bdfe373d89a28c3616da5069640d1bb..9137d6d56386111dfd072859df84e533580ee294 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -305,7 +305,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/0924-Add-PlayerPickItemEvent.patch b/patches/server/0923-Add-PlayerPickItemEvent.patch similarity index 96% rename from patches/server/0924-Add-PlayerPickItemEvent.patch rename to patches/server/0923-Add-PlayerPickItemEvent.patch index 79578e9ee6..5ddf5f6a12 100644 --- a/patches/server/0924-Add-PlayerPickItemEvent.patch +++ b/patches/server/0923-Add-PlayerPickItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerPickItemEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5092aed16ad9ed049624030a6c26a8013e92ae56..9d24b63c9a8a22cafac570421333f6edfd4fd5c6 100644 +index 81bc1e1cf5cd77f09560dbd0c277f77670d6cc56..270a76e932b76105a8a986b71ac8da8096368c73 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -907,8 +907,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0925-Allow-trident-custom-damage.patch b/patches/server/0924-Allow-trident-custom-damage.patch similarity index 100% rename from patches/server/0925-Allow-trident-custom-damage.patch rename to patches/server/0924-Allow-trident-custom-damage.patch diff --git a/patches/server/0926-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0925-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/server/0926-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/server/0925-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/server/0927-Optimize-nearest-structure-border-iteration.patch b/patches/server/0926-Optimize-nearest-structure-border-iteration.patch similarity index 100% rename from patches/server/0927-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0926-Optimize-nearest-structure-border-iteration.patch diff --git a/patches/server/0928-Implement-OfflinePlayer-isConnected.patch b/patches/server/0927-Implement-OfflinePlayer-isConnected.patch similarity index 94% rename from patches/server/0928-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0927-Implement-OfflinePlayer-isConnected.patch index eecbaca15f..50c30ac481 100644 --- a/patches/server/0928-Implement-OfflinePlayer-isConnected.patch +++ b/patches/server/0927-Implement-OfflinePlayer-isConnected.patch @@ -23,7 +23,7 @@ index 96408d505ce80799868ff84554a3b0b25adabb22..4a875bce9563f3b9351ebecde9b0eb12 public String getName() { Player player = this.getPlayer(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a8bdeb0c5045344983efe083aa3214be00c07cf1..1e36d9ef87507d1a771c605ec51c0f66d2cec089 100644 +index 458c7039bddf63a0affbf14c24ba73d66cc13fac..5b5167947c82ca66a89aab456a2eb5b523887d33 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -243,6 +243,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0929-Fix-inventory-desync.patch b/patches/server/0928-Fix-inventory-desync.patch similarity index 100% rename from patches/server/0929-Fix-inventory-desync.patch rename to patches/server/0928-Fix-inventory-desync.patch diff --git a/patches/server/0930-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0929-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 100% rename from patches/server/0930-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0929-Add-titleOverride-to-InventoryOpenEvent.patch diff --git a/patches/server/0931-Configure-sniffer-egg-hatch-time.patch b/patches/server/0930-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/server/0931-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0930-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/server/0932-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0931-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 97% rename from patches/server/0932-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0931-Do-crystal-portal-proximity-check-before-entity-look.patch index f71552dee5..43740a74f0 100644 --- a/patches/server/0932-Do-crystal-portal-proximity-check-before-entity-look.patch +++ b/patches/server/0931-Do-crystal-portal-proximity-check-before-entity-look.patch @@ -34,7 +34,7 @@ index ca1edc083847b47bb450b291723aca778a5912dc..e1696f6b77df4c8fceaece64701d4db7 } 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 adbe8ca78716114a3bc03136f02c631f30aff977..7e9c502a7bcda445333adc250a3106f33d38c128 100644 +index b9c85289776971f90eb5749262a9014befe465f7..d4f903c402765c6e8e1db99e148613748f530726 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 @@ -558,6 +558,12 @@ public class EndDragonFight { diff --git a/patches/server/0933-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0932-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0933-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0932-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0934-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0933-Add-slot-sanity-checks-in-container-clicks.patch similarity index 100% rename from patches/server/0934-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0933-Add-slot-sanity-checks-in-container-clicks.patch diff --git a/patches/server/0935-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0934-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0935-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0934-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0936-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0935-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0936-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0935-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0937-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0936-Fix-silent-equipment-change-for-mobs.patch similarity index 100% rename from patches/server/0937-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0936-Fix-silent-equipment-change-for-mobs.patch diff --git a/patches/server/0938-Fix-spigot-s-Forced-Stats.patch b/patches/server/0937-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0938-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0937-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0939-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0938-Add-missing-InventoryHolders-to-inventories.patch similarity index 100% rename from patches/server/0939-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0938-Add-missing-InventoryHolders-to-inventories.patch diff --git a/patches/server/0940-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0939-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/server/0940-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0939-Do-not-read-tile-entities-in-chunks-that-are-positio.patch diff --git a/patches/server/0941-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0940-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0941-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0940-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0942-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0941-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 100% rename from patches/server/0942-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/0941-Remove-Spigot-Bug-Fix-for-MC-109346.patch diff --git a/patches/server/0943-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0942-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0943-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0942-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/0944-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0943-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/0944-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0943-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/0945-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0944-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/0945-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/0944-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/0946-Fix-missing-map-initialize-event-call.patch b/patches/server/0945-Fix-missing-map-initialize-event-call.patch similarity index 95% rename from patches/server/0946-Fix-missing-map-initialize-event-call.patch rename to patches/server/0945-Fix-missing-map-initialize-event-call.patch index 261c9631e8..20b3a50d58 100644 --- a/patches/server/0946-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/0945-Fix-missing-map-initialize-event-call.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 09b0113df3b7c78b5cc62a1c32e71dc400385795..0e7811ae2a8731ae7475aabd2322e56ab364bc32 100644 +index a6af6585aca50033f45138a4408218b056b8b785..8235dace0f4a1090dfbd403db34231ccafe5f30e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1657,13 +1657,25 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0947-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/0946-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/0947-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/0946-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/0948-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/0947-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/0948-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/0947-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/0949-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/0948-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/0949-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/0948-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/0950-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0949-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/0950-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/0949-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/0951-Add-player-idle-duration-API.patch b/patches/server/0950-Add-player-idle-duration-API.patch similarity index 91% rename from patches/server/0951-Add-player-idle-duration-API.patch rename to patches/server/0950-Add-player-idle-duration-API.patch index 992aafd757..717b1d7291 100644 --- a/patches/server/0951-Add-player-idle-duration-API.patch +++ b/patches/server/0950-Add-player-idle-duration-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1e36d9ef87507d1a771c605ec51c0f66d2cec089..6130e66bcacec92c067c423470f41865a64452d7 100644 +index 5b5167947c82ca66a89aab456a2eb5b523887d33..ff3db4efd2c10b3351453656937e88064267fb22 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3337,6 +3337,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0952-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0951-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 91% rename from patches/server/0952-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/0951-Don-t-check-if-we-can-see-non-visible-entities.patch index a360d2d0e0..1c1aa40a97 100644 --- a/patches/server/0952-Don-t-check-if-we-can-see-non-visible-entities.patch +++ b/patches/server/0951-Don-t-check-if-we-can-see-non-visible-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't check if we can see non-visible entities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 4793871db838aba8b0370ada299406d3fb904c14..886ddaf896c8385a744e9abe4dcd399bc693f60b 100644 +index aed4f4ac21b8ddc9c9ee7ce5151bbfc8bb6cf7f5..22558aa7f83191519ca21357925309119d0718c7 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1752,7 +1752,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0953-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0952-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/0953-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/0952-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/0954-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0953-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 90% rename from patches/server/0954-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/0953-Allow-null-itemstack-for-Player-sendEquipmentChange.patch index e01df45b17..72c810300c 100644 --- a/patches/server/0954-Allow-null-itemstack-for-Player-sendEquipmentChange.patch +++ b/patches/server/0953-Allow-null-itemstack-for-Player-sendEquipmentChange.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6130e66bcacec92c067c423470f41865a64452d7..b88c71c4a1d4eb5c24d143a0d8ddff507df690f7 100644 +index ff3db4efd2c10b3351453656937e88064267fb22..0b34a90d275534a84bea7d7d9cce08b41ea7a698 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1047,7 +1047,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0955-Optimize-VarInts.patch b/patches/server/0954-Optimize-VarInts.patch similarity index 100% rename from patches/server/0955-Optimize-VarInts.patch rename to patches/server/0954-Optimize-VarInts.patch diff --git a/patches/server/0956-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0955-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/0956-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/0955-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/0957-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0956-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/server/0957-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/0956-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/server/0958-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0957-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 100% rename from patches/server/0958-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/0957-Broadcast-take-item-packets-with-collector-as-source.patch diff --git a/patches/server/0959-Expand-LingeringPotion-API.patch b/patches/server/0958-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/0959-Expand-LingeringPotion-API.patch rename to patches/server/0958-Expand-LingeringPotion-API.patch diff --git a/patches/server/0960-Add-MaterialTagsTest.patch b/patches/server/0959-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/0960-Add-MaterialTagsTest.patch rename to patches/server/0959-Add-MaterialTagsTest.patch diff --git a/patches/server/0961-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0960-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 100% rename from patches/server/0961-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/0960-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch diff --git a/patches/server/0962-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0961-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/0962-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/0961-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/0963-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0962-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/0963-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/0962-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/0964-Add-UUID-attribute-modifier-API.patch b/patches/server/0963-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/0964-Add-UUID-attribute-modifier-API.patch rename to patches/server/0963-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/0965-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0964-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/server/0965-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/0964-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/0966-Lazily-create-LootContext-for-criterions.patch b/patches/server/0965-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/0966-Lazily-create-LootContext-for-criterions.patch rename to patches/server/0965-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/0967-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0966-Don-t-fire-sync-events-during-worldgen.patch similarity index 99% rename from patches/server/0967-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/0966-Don-t-fire-sync-events-during-worldgen.patch index 6aecc48aeb..0200563077 100644 --- a/patches/server/0967-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/0966-Don-t-fire-sync-events-during-worldgen.patch @@ -31,7 +31,7 @@ index 8235dace0f4a1090dfbd403db34231ccafe5f30e..9816913ad729fd39c173364b92e5db06 if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 361bdbb940a0da6821bcaf6037ddfe6bf61b36ac..d85151689d3cd7db078b8e068b8be1934c99600e 100644 +index bbc3f09105b19eabd3ebb8b9589412b8871739a1..67dfb7b6a8825a87ff69b8c33efd1c040db12bf0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -637,7 +637,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0968-Add-Structure-check-API.patch b/patches/server/0967-Add-Structure-check-API.patch similarity index 100% rename from patches/server/0968-Add-Structure-check-API.patch rename to patches/server/0967-Add-Structure-check-API.patch diff --git a/patches/server/0969-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0968-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 93% rename from patches/server/0969-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/0968-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch index bd1de406e5..bbc3e41f85 100644 --- a/patches/server/0969-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch +++ b/patches/server/0968-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix CraftMetaItem#getAttributeModifier duplication check diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index c425b21ddc12917ab9aa10869ff3aec622ce2d9a..536e80886c2393edaf526f460f49dae8c3b40295 100644 +index 9137d6d56386111dfd072859df84e533580ee294..5cd0fbac267f9c69c5de4c200a95860f5c56d42e 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -1174,7 +1174,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/0970-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0969-Restore-vanilla-entity-drops-behavior.patch similarity index 99% rename from patches/server/0970-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/0969-Restore-vanilla-entity-drops-behavior.patch index c6196c8cfe..c2f0a406f7 100644 --- a/patches/server/0970-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/0969-Restore-vanilla-entity-drops-behavior.patch @@ -50,7 +50,7 @@ index 7272dc058c575efee5ac2643ce41b7d12e346e89..ae5a2136a0e266d4c35190f5d3355299 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index abd50a7b5f85eb63d1f675626e2f68d28b82fdc1..46b4c07ec0907218382ee94849417ad5d1eb1066 100644 +index 67dfb7b6a8825a87ff69b8c33efd1c040db12bf0..198aeb71e958a3fa6f8eaa8f607120af483e597f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2496,6 +2496,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0971-Dont-resend-blocks-on-interactions.patch b/patches/server/0970-Dont-resend-blocks-on-interactions.patch similarity index 100% rename from patches/server/0971-Dont-resend-blocks-on-interactions.patch rename to patches/server/0970-Dont-resend-blocks-on-interactions.patch diff --git a/patches/server/0972-add-more-scoreboard-API.patch b/patches/server/0971-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/0972-add-more-scoreboard-API.patch rename to patches/server/0971-add-more-scoreboard-API.patch diff --git a/patches/server/0973-Improve-Registry.patch b/patches/server/0972-Improve-Registry.patch similarity index 100% rename from patches/server/0973-Improve-Registry.patch rename to patches/server/0972-Improve-Registry.patch diff --git a/patches/server/0974-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0973-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 100% rename from patches/server/0974-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/0973-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch diff --git a/patches/server/0975-Add-experience-points-API.patch b/patches/server/0974-Add-experience-points-API.patch similarity index 100% rename from patches/server/0975-Add-experience-points-API.patch rename to patches/server/0974-Add-experience-points-API.patch diff --git a/patches/server/0976-Add-drops-to-shear-events.patch b/patches/server/0975-Add-drops-to-shear-events.patch similarity index 100% rename from patches/server/0976-Add-drops-to-shear-events.patch rename to patches/server/0975-Add-drops-to-shear-events.patch diff --git a/patches/server/0977-Add-PlayerShieldDisableEvent.patch b/patches/server/0976-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/server/0977-Add-PlayerShieldDisableEvent.patch rename to patches/server/0976-Add-PlayerShieldDisableEvent.patch diff --git a/patches/server/0978-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0977-Validate-ResourceLocation-in-NBT-reading.patch similarity index 100% rename from patches/server/0978-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/0977-Validate-ResourceLocation-in-NBT-reading.patch diff --git a/patches/server/0979-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/0978-Properly-handle-experience-dropping-on-block-break.patch similarity index 98% rename from patches/server/0979-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/0978-Properly-handle-experience-dropping-on-block-break.patch index ec81670c91..f7d4494ec0 100644 --- a/patches/server/0979-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/0978-Properly-handle-experience-dropping-on-block-break.patch @@ -7,7 +7,7 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index cd19005d3f239a27a4ce764588c8df0b229035bf..d5290c97babfa9415bd52deb14610821f0fa2575 100644 +index 6d98b910b1079f1b4a95c430e5500d55fbc68ec2..c0ae70e3490b56aaa464460e3c41175b27136f6b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -625,7 +625,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0980-Fixup-NamespacedKey-handling.patch b/patches/server/0979-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/0980-Fixup-NamespacedKey-handling.patch rename to patches/server/0979-Fixup-NamespacedKey-handling.patch diff --git a/patches/server/0981-Expose-LootTable-of-DecoratedPot.patch b/patches/server/0980-Expose-LootTable-of-DecoratedPot.patch similarity index 100% rename from patches/server/0981-Expose-LootTable-of-DecoratedPot.patch rename to patches/server/0980-Expose-LootTable-of-DecoratedPot.patch diff --git a/patches/server/0982-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0981-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 97% rename from patches/server/0982-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/0981-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index d64cc30c77..d6756e53cf 100644 --- a/patches/server/0982-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/0981-Reduce-allocation-of-Vec3D-by-entity-tracker.patch @@ -18,7 +18,7 @@ index 3c4ac79c094dc2fff7de94150a34b7bf814ac0de..38b56923a642afc1cb411480ba03cc78 @VisibleForTesting static long encode(double value) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 886ddaf896c8385a744e9abe4dcd399bc693f60b..9dab2dd7fd77fa1006c903dc5d1f4f8339e10b91 100644 +index 22558aa7f83191519ca21357925309119d0718c7..d7c58ac9f9f4727cf13c0fd3bc370b10a2aba38f 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1735,10 +1735,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0983-Rewrite-dataconverter-system.patch b/patches/server/0982-Rewrite-dataconverter-system.patch similarity index 100% rename from patches/server/0983-Rewrite-dataconverter-system.patch rename to patches/server/0982-Rewrite-dataconverter-system.patch diff --git a/patches/server/0984-Starlight.patch b/patches/server/0983-Starlight.patch similarity index 99% rename from patches/server/0984-Starlight.patch rename to patches/server/0983-Starlight.patch index 0604569c85..b4e6c66968 100644 --- a/patches/server/0984-Starlight.patch +++ b/patches/server/0983-Starlight.patch @@ -4492,7 +4492,7 @@ index facfdbb87e89f4db33ce13233c2ba4366d35c15b..807a6bb1026dac2c4cd0a50afe06fd62 private final DebugBuffer chunkToSaveHistory; public int oldTicketLevel; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 9dab2dd7fd77fa1006c903dc5d1f4f8339e10b91..3ae47b86b80f9156e71d1da83e492153f360d1b5 100644 +index d7c58ac9f9f4727cf13c0fd3bc370b10a2aba38f..ee16a8ef86705dc89b1cc300c06cf683431c7ef3 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -125,7 +125,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0985-Rewrite-chunk-system.patch b/patches/server/0984-Rewrite-chunk-system.patch similarity index 99% rename from patches/server/0985-Rewrite-chunk-system.patch rename to patches/server/0984-Rewrite-chunk-system.patch index 946ea26ece..0d4fc72669 100644 --- a/patches/server/0985-Rewrite-chunk-system.patch +++ b/patches/server/0984-Rewrite-chunk-system.patch @@ -14439,7 +14439,7 @@ index 0000000000000000000000000000000000000000..962d3cae6340fc11607b59355e291629 + +} diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index ffd52f6871161cd1f2d23040ed4493434a29b834..a6f58b3457b7477015c5c6d969e7d83017dd3fa1 100644 +index 7145c3776c85416240408b8e23a1d949da39bad9..b53b6cc4463675096b061b3b65f14a4695c742e2 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -28,6 +28,45 @@ public class GlobalConfiguration extends ConfigurationPart { @@ -14510,7 +14510,7 @@ index ffd52f6871161cd1f2d23040ed4493434a29b834..a6f58b3457b7477015c5c6d969e7d830 public UnsupportedSettings unsupportedSettings; public class UnsupportedSettings extends ConfigurationPart { -@@ -198,7 +222,7 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -200,7 +224,7 @@ public class GlobalConfiguration extends ConfigurationPart { @PostProcess private void postProcess() { @@ -19375,7 +19375,7 @@ index 640db9f71608310a64e09f1e3e677c01e6ccd98a..f2a7cb6ebed7a4b4019a09af2a025f62 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 46b4c07ec0907218382ee94849417ad5d1eb1066..a3077daa43fe52b569c6bbddc7bee9ad1be08af7 100644 +index 198aeb71e958a3fa6f8eaa8f607120af483e597f..89db78c05118a64d1b73ac05381e24c825d3cf76 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -480,6 +480,58 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0986-incremental-chunk-and-player-saving.patch b/patches/server/0985-incremental-chunk-and-player-saving.patch similarity index 100% rename from patches/server/0986-incremental-chunk-and-player-saving.patch rename to patches/server/0985-incremental-chunk-and-player-saving.patch diff --git a/patches/server/0987-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch b/patches/server/0986-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch similarity index 98% rename from patches/server/0987-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch rename to patches/server/0986-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch index c41b836fad..622feb95fb 100644 --- a/patches/server/0987-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch +++ b/patches/server/0986-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch @@ -29,7 +29,7 @@ index 369b54b96c682717ef93d05312714b4d30efaceb..beadef19ee136c27601f0d116a869673 this.x = x; this.y = y; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c9afe29bae7f339184f4f46d8f9828f5762d0a9c..5f98f3e1bc76076278cbe63d5fbb8ec75b3bf04b 100644 +index 0df6572c94854526899890fba7e9da681b729f47..207dd58cbceb5ac5c073526b40196f42fee77168 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -337,7 +337,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0988-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0987-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch similarity index 100% rename from patches/server/0988-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch rename to patches/server/0987-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch diff --git a/patches/server/0989-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0988-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch similarity index 100% rename from patches/server/0989-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch rename to patches/server/0988-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch diff --git a/patches/server/0990-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/0989-Optimize-Network-Manager-and-add-advanced-packet-sup.patch similarity index 100% rename from patches/server/0990-Optimize-Network-Manager-and-add-advanced-packet-sup.patch rename to patches/server/0989-Optimize-Network-Manager-and-add-advanced-packet-sup.patch diff --git a/patches/server/0991-Allow-Saving-of-Oversized-Chunks.patch b/patches/server/0990-Allow-Saving-of-Oversized-Chunks.patch similarity index 100% rename from patches/server/0991-Allow-Saving-of-Oversized-Chunks.patch rename to patches/server/0990-Allow-Saving-of-Oversized-Chunks.patch diff --git a/patches/server/0992-Fix-World-isChunkGenerated-calls.patch b/patches/server/0991-Fix-World-isChunkGenerated-calls.patch similarity index 99% rename from patches/server/0992-Fix-World-isChunkGenerated-calls.patch rename to patches/server/0991-Fix-World-isChunkGenerated-calls.patch index 1cec6fc43b..0b3eebad3f 100644 --- a/patches/server/0992-Fix-World-isChunkGenerated-calls.patch +++ b/patches/server/0991-Fix-World-isChunkGenerated-calls.patch @@ -8,7 +8,7 @@ This patch also adds a chunk status cache on region files (note that its only purpose is to cache the status on DISK) diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 5c1accb75655eadd4858ee24cdcdf9b200fbbcb2..42dde36273030494a6e7ff19e55d3b6a7da06fee 100644 +index 4549b32a3d848e4e84334e889dbc9c6b883fe621..07a9a11c7fa608e221c0f0e759c483b44de9fdd5 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -717,9 +717,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0993-Flat-bedrock-generator-settings.patch b/patches/server/0992-Flat-bedrock-generator-settings.patch similarity index 100% rename from patches/server/0993-Flat-bedrock-generator-settings.patch rename to patches/server/0992-Flat-bedrock-generator-settings.patch diff --git a/patches/server/0994-Entity-Activation-Range-2.0.patch b/patches/server/0993-Entity-Activation-Range-2.0.patch similarity index 99% rename from patches/server/0994-Entity-Activation-Range-2.0.patch rename to patches/server/0993-Entity-Activation-Range-2.0.patch index 8dc0695bb6..c709e5d6cf 100644 --- a/patches/server/0994-Entity-Activation-Range-2.0.patch +++ b/patches/server/0993-Entity-Activation-Range-2.0.patch @@ -111,7 +111,7 @@ index bd8c96e914b156284bdbb960f168e63e1f122920..abb4c32e8b35de332fa517523e8c598e } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1a91bffc016312e02408766cd9419610aca74b92..48c62366bd175665eb029f040ecfbab4eb7e45fd 100644 +index 89db78c05118a64d1b73ac05381e24c825d3cf76..dd785d11461541e8a93544142f7a3b4e43b2173d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -412,6 +412,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0995-Optional-per-player-mob-spawns.patch b/patches/server/0994-Optional-per-player-mob-spawns.patch similarity index 99% rename from patches/server/0995-Optional-per-player-mob-spawns.patch rename to patches/server/0994-Optional-per-player-mob-spawns.patch index 7347555f67..b80d633556 100644 --- a/patches/server/0995-Optional-per-player-mob-spawns.patch +++ b/patches/server/0994-Optional-per-player-mob-spawns.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optional per player mob spawns diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 42dde36273030494a6e7ff19e55d3b6a7da06fee..0d552d4b967687e2bfb92b1e5106071460082409 100644 +index 07a9a11c7fa608e221c0f0e759c483b44de9fdd5..ccf0f7c7feaf47f451cec30ba02bea39ba192b3c 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -288,9 +288,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0996-Anti-Xray.patch b/patches/server/0995-Anti-Xray.patch similarity index 100% rename from patches/server/0996-Anti-Xray.patch rename to patches/server/0995-Anti-Xray.patch diff --git a/patches/server/0997-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0996-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 98% rename from patches/server/0997-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/0996-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch index 0997fb9da2..c9e2fc6398 100644 --- a/patches/server/0997-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch +++ b/patches/server/0996-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve cancelling PreCreatureSpawnEvent with per player mob diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 0d552d4b967687e2bfb92b1e5106071460082409..9037ba5197eed9d8e616fb65369f6b1a5ea9562c 100644 +index ccf0f7c7feaf47f451cec30ba02bea39ba192b3c..ac1a4ff5f83e53fa2983ff6e834775e51fba715e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -306,8 +306,25 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0998-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0997-Optimize-Collision-to-not-load-chunks.patch similarity index 98% rename from patches/server/0998-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/0997-Optimize-Collision-to-not-load-chunks.patch index b4cb81ee27..106d5bd3fb 100644 --- a/patches/server/0998-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/0997-Optimize-Collision-to-not-load-chunks.patch @@ -26,7 +26,7 @@ index 461c27292af06a5150de8ec263d0c8527e8c5278..37245ff682837e7e8c9647f4afe30f0d // CraftBukkit end entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 48c62366bd175665eb029f040ecfbab4eb7e45fd..87ed38858f3cea1da7a60e39da8b095b27d3a59c 100644 +index dd785d11461541e8a93544142f7a3b4e43b2173d..f8ce3c92597b9fb2b8743a08088f33a7bf237c5d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -242,6 +242,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0999-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/0998-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 100% rename from patches/server/0999-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/server/0998-Optimize-GoalSelector-Goal.Flag-Set-operations.patch diff --git a/patches/server/1000-Entity-load-save-limit-per-chunk.patch b/patches/server/0999-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/server/1000-Entity-load-save-limit-per-chunk.patch rename to patches/server/0999-Entity-load-save-limit-per-chunk.patch diff --git a/patches/server/1001-Fix-and-optimise-world-force-upgrading.patch b/patches/server/1000-Fix-and-optimise-world-force-upgrading.patch similarity index 99% rename from patches/server/1001-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/1000-Fix-and-optimise-world-force-upgrading.patch index e42149db91..aedbde4517 100644 --- a/patches/server/1001-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/1000-Fix-and-optimise-world-force-upgrading.patch @@ -298,7 +298,7 @@ index 79de3c639795cfc0bd86f842446e2bb3ab71d23a..1dfafbe508b4e4598339f412e5fb9d92 if (dimensionKey == LevelStem.OVERWORLD) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 927c7948e567764e8cf75c7ce486e1ea6c9a8d87..7694b7f299495a084ce71c5d04e5e690a75fe55b 100644 +index 29368a97c6348e2d1d6241db3d57e84b9537231a..23643b18e9352289ddad1eb1e04d1c3ada5570ad 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -181,6 +181,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1002-Improved-Watchdog-Support.patch b/patches/server/1001-Improved-Watchdog-Support.patch similarity index 100% rename from patches/server/1002-Improved-Watchdog-Support.patch rename to patches/server/1001-Improved-Watchdog-Support.patch diff --git a/patches/server/1003-Optimize-Voxel-Shape-Merging.patch b/patches/server/1002-Optimize-Voxel-Shape-Merging.patch similarity index 100% rename from patches/server/1003-Optimize-Voxel-Shape-Merging.patch rename to patches/server/1002-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/server/1004-Write-SavedData-IO-async.patch b/patches/server/1003-Write-SavedData-IO-async.patch similarity index 99% rename from patches/server/1004-Write-SavedData-IO-async.patch rename to patches/server/1003-Write-SavedData-IO-async.patch index d7f6d3dea7..a61e63bdcc 100644 --- a/patches/server/1004-Write-SavedData-IO-async.patch +++ b/patches/server/1003-Write-SavedData-IO-async.patch @@ -44,7 +44,7 @@ index 5afbb5b307cc67d86dd916dc8f7521d5d021e056..4e0f80b26f1a1703184e38d739996b99 // CraftBukkit start - modelled on below diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 811c9c7970dfef290acdf0bbd803b27ca81a4767..f24734f2a38eb5f2dc39f418a1f506a600127a79 100644 +index 6f497b95fd870a32c56590c00b2b39f88c51ecb9..4f2d30e8ffe228952db64d0122a8958e33f841fa 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1318,7 +1318,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1005-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/1004-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch similarity index 98% rename from patches/server/1005-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch rename to patches/server/1004-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch index 03bc5f00bb..ae7e0e0b35 100644 --- a/patches/server/1005-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch +++ b/patches/server/1004-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch @@ -13,7 +13,7 @@ A config is provided if you rather let players use these exploits, and let them destroy the worlds End Portals and get on top of the nether easy. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 32775780df3e6f34961119f10c81462c0f729045..6894366ebedc461e1e6703317d83f91fb8d4f09b 100644 +index 217018dbdd78af4b89d9d4e7154956593dfa8dae..093c814d6835f20b1208236db96bb40b4611936c 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -191,6 +191,7 @@ public class Explosion { @@ -25,7 +25,7 @@ index 32775780df3e6f34961119f10c81462c0f729045..6894366ebedc461e1e6703317d83f91f if (!this.level.isInWorldBounds(blockposition)) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9149ddd3d950d1616ec3c85d54c494bcc6501e83..cb31b2f88e701dc9bb14ea5c568e4666f6cdc0b9 100644 +index 8485ee703f9c18557818ff735001f02e2d119604..5bf0cc83faf973b0072b06b7ec2f02b3ecda8a9b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -540,6 +540,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1006-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/1005-Use-distance-map-to-optimise-entity-tracker.patch similarity index 99% rename from patches/server/1006-Use-distance-map-to-optimise-entity-tracker.patch rename to patches/server/1005-Use-distance-map-to-optimise-entity-tracker.patch index 16b412633c..395ef636c5 100644 --- a/patches/server/1006-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/1005-Use-distance-map-to-optimise-entity-tracker.patch @@ -236,7 +236,7 @@ index ac1a4ff5f83e53fa2983ff6e834775e51fba715e..284f9548d62f9230c668bb1adb8cb808 return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 87ed38858f3cea1da7a60e39da8b095b27d3a59c..d5b92dbd98b62b0afd68543222858dca5981ecbd 100644 +index f8ce3c92597b9fb2b8743a08088f33a7bf237c5d..3282327f1a85155d671dd63f3e5bf9b636a3e893 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -56,6 +56,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; diff --git a/patches/server/1007-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1006-Optimize-Bit-Operations-by-inlining.patch similarity index 100% rename from patches/server/1007-Optimize-Bit-Operations-by-inlining.patch rename to patches/server/1006-Optimize-Bit-Operations-by-inlining.patch diff --git a/patches/server/1008-Remove-streams-from-hot-code.patch b/patches/server/1007-Remove-streams-from-hot-code.patch similarity index 100% rename from patches/server/1008-Remove-streams-from-hot-code.patch rename to patches/server/1007-Remove-streams-from-hot-code.patch diff --git a/patches/server/1009-Eigencraft-redstone-implementation.patch b/patches/server/1008-Eigencraft-redstone-implementation.patch similarity index 100% rename from patches/server/1009-Eigencraft-redstone-implementation.patch rename to patches/server/1008-Eigencraft-redstone-implementation.patch diff --git a/patches/server/1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/server/1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/server/1011-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/1010-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch similarity index 100% rename from patches/server/1011-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch rename to patches/server/1010-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch diff --git a/patches/server/1012-Improve-boat-collision-performance.patch b/patches/server/1011-Improve-boat-collision-performance.patch similarity index 100% rename from patches/server/1012-Improve-boat-collision-performance.patch rename to patches/server/1011-Improve-boat-collision-performance.patch diff --git a/patches/server/1013-Optimise-general-POI-access.patch b/patches/server/1012-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/1013-Optimise-general-POI-access.patch rename to patches/server/1012-Optimise-general-POI-access.patch diff --git a/patches/server/1014-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/1013-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/1014-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/1013-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/1015-Execute-chunk-tasks-mid-tick.patch b/patches/server/1014-Execute-chunk-tasks-mid-tick.patch similarity index 97% rename from patches/server/1015-Execute-chunk-tasks-mid-tick.patch rename to patches/server/1014-Execute-chunk-tasks-mid-tick.patch index 5d56a6faba..8ea2ca205e 100644 --- a/patches/server/1015-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/1014-Execute-chunk-tasks-mid-tick.patch @@ -123,7 +123,7 @@ index 4e0f80b26f1a1703184e38d739996b9919699fec..2b33a3d8fdb86024acb2a3ee9d0a4a7d } } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f24734f2a38eb5f2dc39f418a1f506a600127a79..3535f86b92c4e61fd84defbbf37e074690a30019 100644 +index 4f2d30e8ffe228952db64d0122a8958e33f841fa..160d340b6b9a054091897a728e4dbc73bb62ab96 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -216,6 +216,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -151,7 +151,7 @@ index f24734f2a38eb5f2dc39f418a1f506a600127a79..3535f86b92c4e61fd84defbbf37e0746 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index cb31b2f88e701dc9bb14ea5c568e4666f6cdc0b9..43052e3194812fe8d7aa6569c1c1c49d8ba25446 100644 +index 5bf0cc83faf973b0072b06b7ec2f02b3ecda8a9b..ba623bf42b859379f842447e08781a4006298c32 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -924,6 +924,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1016-Optimise-random-block-ticking.patch b/patches/server/1015-Optimise-random-block-ticking.patch similarity index 99% rename from patches/server/1016-Optimise-random-block-ticking.patch rename to patches/server/1015-Optimise-random-block-ticking.patch index 65d5fd3202..8e35b48622 100644 --- a/patches/server/1016-Optimise-random-block-ticking.patch +++ b/patches/server/1015-Optimise-random-block-ticking.patch @@ -90,7 +90,7 @@ index 0000000000000000000000000000000000000000..7d93652c1abbb6aee6eb7c26cf35d4d0 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3535f86b92c4e61fd84defbbf37e074690a30019..bac2e7c8178696859ff2d38f1e095d86557fc306 100644 +index 160d340b6b9a054091897a728e4dbc73bb62ab96..9d18da228c6709e7665ba8babb6ee6d0b36b5dc5 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -855,6 +855,10 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -324,7 +324,7 @@ index 6a98f66b7701e8af389ca9a1e9eb230a6100c838..dbdb6c432448b151fa4421f14235f8ba public BlockPos getHomePos() { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 43052e3194812fe8d7aa6569c1c1c49d8ba25446..1712cf22d987a87c427f042a89a9fff90203b079 100644 +index ba623bf42b859379f842447e08781a4006298c32..7693163f73ea2dc9cf357893e1545b11b2049aec 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1395,10 +1395,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1017-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1016-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/1017-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/1016-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/1018-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1017-Use-Velocity-compression-and-cipher-natives.patch similarity index 99% rename from patches/server/1018-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/1017-Use-Velocity-compression-and-cipher-natives.patch index ed8b42ddf6..7dd88079df 100644 --- a/patches/server/1018-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/1017-Use-Velocity-compression-and-cipher-natives.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use Velocity compression and cipher natives diff --git a/build.gradle.kts b/build.gradle.kts -index 7c563ef33d12b227856e65392905bffa5289285a..376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf 100644 +index b5f31e210f2ca4bdfe9957d44780d89240da6269..241808d8619e17c0681f79acbbc98af5bf52dd89 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -40,6 +40,11 @@ dependencies { diff --git a/patches/server/1019-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1018-Detail-more-information-in-watchdog-dumps.patch similarity index 99% rename from patches/server/1019-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/1018-Detail-more-information-in-watchdog-dumps.patch index 89df2f21ed..4f06eee45b 100644 --- a/patches/server/1019-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/1018-Detail-more-information-in-watchdog-dumps.patch @@ -122,7 +122,7 @@ index 9d18da228c6709e7665ba8babb6ee6d0b36b5dc5..af9f58328c09dddb2875f79128f906b8 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 943a48fd8a95b8f28060ea1de9d021cf309dfd33..c3abc701e2c4458da63e40fbc51f235fc1cbd093 100644 +index 3282327f1a85155d671dd63f3e5bf9b636a3e893..2f3f1418b8ec765cfab5ece88972825d7d68cae5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1063,8 +1063,43 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1020-Collision-optimisations.patch b/patches/server/1019-Collision-optimisations.patch similarity index 99% rename from patches/server/1020-Collision-optimisations.patch rename to patches/server/1019-Collision-optimisations.patch index b05b9f0ec8..371f2b708c 100644 --- a/patches/server/1020-Collision-optimisations.patch +++ b/patches/server/1019-Collision-optimisations.patch @@ -2214,7 +2214,7 @@ index 594cb6ce4bfa6c42212000a1ed983ea95ee2c4bf..97b0119ac71284b3a223c089bec26d87 entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c3abc701e2c4458da63e40fbc51f235fc1cbd093..45439b0cc4ea69e409fd41d4684403c0e0feab12 100644 +index 2f3f1418b8ec765cfab5ece88972825d7d68cae5..51097f1d04d981db2823e8647b546658b8fd27c1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1250,9 +1250,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1021-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1020-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 99% rename from patches/server/1021-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/1020-Optimise-collision-checking-in-player-move-packet-ha.patch index 165a84935b..76b0962ce2 100644 --- a/patches/server/1021-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/1020-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -8,7 +8,7 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN CHECK ME diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f59b49a7e9884def9bc9f30dbd4c72dac2915c76..9a3d38365754cf40d8a18aabd1ad1cf27c576599 100644 +index e7f51d24868038179b0882c0e2cd4ce1f4fb56b7..a5bee627cd01d42c01751fef79d90062cc0c1603 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -552,7 +552,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/1022-Fix-tripwire-state-inconsistency.patch b/patches/server/1021-Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/server/1022-Fix-tripwire-state-inconsistency.patch rename to patches/server/1021-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/1023-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1022-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/1023-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/1022-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/1024-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1023-Add-Alternate-Current-redstone-implementation.patch similarity index 99% rename from patches/server/1024-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/1023-Add-Alternate-Current-redstone-implementation.patch index 5d73e1dae4..ed82f9487d 100644 --- a/patches/server/1024-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/1023-Add-Alternate-Current-redstone-implementation.patch @@ -2009,7 +2009,7 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5eaf8585df1f885f4a08fdd06ff4bb730961e400..ab2e84f85da7931e133ad5f0d2686cd1738f6ea1 100644 +index af9f58328c09dddb2875f79128f906b8b276ab88..c9405cbea1202e5603dde42637cf2a78592b92e1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2035,7 +2035,7 @@ index 5eaf8585df1f885f4a08fdd06ff4bb730961e400..ab2e84f85da7931e133ad5f0d2686cd1 EntityCallbacks() {} diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index f21f1b3fcab47f18cbf26a9797b1b7b9a5dccfc9..19f23a6c8fb5c02843c27fb8a242ec9d0d1b538b 100644 +index 3afb280e401f8f1b22bf91472b0b70c4716ac95b..f476ba6c97944bdffae5aacae2e285d17541f46e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1887,4 +1887,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1025-optimize-dirt-and-snow-spreading.patch b/patches/server/1024-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/1025-optimize-dirt-and-snow-spreading.patch rename to patches/server/1024-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/1026-Properly-resend-entities.patch b/patches/server/1025-Properly-resend-entities.patch similarity index 100% rename from patches/server/1026-Properly-resend-entities.patch rename to patches/server/1025-Properly-resend-entities.patch diff --git a/patches/server/1027-Optimize-Hoppers.patch b/patches/server/1026-Optimize-Hoppers.patch similarity index 100% rename from patches/server/1027-Optimize-Hoppers.patch rename to patches/server/1026-Optimize-Hoppers.patch diff --git a/patches/server/1028-Improve-performance-of-mass-crafts.patch b/patches/server/1027-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/1028-Improve-performance-of-mass-crafts.patch rename to patches/server/1027-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/1029-Actually-optimise-explosions.patch b/patches/server/1028-Actually-optimise-explosions.patch similarity index 99% rename from patches/server/1029-Actually-optimise-explosions.patch rename to patches/server/1028-Actually-optimise-explosions.patch index 679d55448b..bcb01ef768 100644 --- a/patches/server/1029-Actually-optimise-explosions.patch +++ b/patches/server/1028-Actually-optimise-explosions.patch @@ -34,7 +34,7 @@ The results indicate that this logic is 5 times faster than Vanilla and 2.3 times faster than Lithium. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 62f0db51e5d6dd36d618e7e890f30cc83af2fed3..695e90c35fc771bf101e04162ddcad1c6b698594 100644 +index 093c814d6835f20b1208236db96bb40b4611936c..b678da2cbb93cea7971bc3c4d324cfca18b0bc97 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -111,6 +111,271 @@ public class Explosion { diff --git a/patches/server/1030-Optimise-chunk-tick-iteration.patch b/patches/server/1029-Optimise-chunk-tick-iteration.patch similarity index 99% rename from patches/server/1030-Optimise-chunk-tick-iteration.patch rename to patches/server/1029-Optimise-chunk-tick-iteration.patch index 600f4520b4..73a6088d00 100644 --- a/patches/server/1030-Optimise-chunk-tick-iteration.patch +++ b/patches/server/1029-Optimise-chunk-tick-iteration.patch @@ -108,7 +108,7 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754 List list; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 7e5a8789e06a5ea1d2657ea8ee5c0460da92aaeb..5a7278b093e37b95fb005ad5cc3cac90ac36f8fb 100644 +index 284f9548d62f9230c668bb1adb8cb8084b7cef7c..12109446fc76a39faee6cda042ca48b3fd3809f4 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/1031-Lag-compensation-ticks.patch b/patches/server/1030-Lag-compensation-ticks.patch similarity index 100% rename from patches/server/1031-Lag-compensation-ticks.patch rename to patches/server/1030-Lag-compensation-ticks.patch diff --git a/patches/server/1032-Optimise-nearby-player-retrieval.patch b/patches/server/1031-Optimise-nearby-player-retrieval.patch similarity index 99% rename from patches/server/1032-Optimise-nearby-player-retrieval.patch rename to patches/server/1031-Optimise-nearby-player-retrieval.patch index c6ab594786..c73abc51ad 100644 --- a/patches/server/1032-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1031-Optimise-nearby-player-retrieval.patch @@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5bbfb1af24e13a9e6a02ad8c36bb504a17f06398..6934e9dac0d69c043b73b7c46d59f2d39b37c67f 100644 +index 8a5abc320137d045acba0c87cef9f2912d78b6fb..6907d1be36fbdf0856c0e11983218d2fd1f9cb46 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -576,6 +576,115 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1033-Distance-manager-tick-timings.patch b/patches/server/1032-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/1033-Distance-manager-tick-timings.patch rename to patches/server/1032-Distance-manager-tick-timings.patch diff --git a/patches/server/1034-Handle-Oversized-block-entities-in-chunks.patch b/patches/server/1033-Handle-Oversized-block-entities-in-chunks.patch similarity index 100% rename from patches/server/1034-Handle-Oversized-block-entities-in-chunks.patch rename to patches/server/1033-Handle-Oversized-block-entities-in-chunks.patch diff --git a/patches/server/1035-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/1034-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/1035-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/1034-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/1036-Add-ShulkerDuplicateEvent.patch b/patches/server/1035-Add-ShulkerDuplicateEvent.patch similarity index 100% rename from patches/server/1036-Add-ShulkerDuplicateEvent.patch rename to patches/server/1035-Add-ShulkerDuplicateEvent.patch diff --git a/patches/server/1037-Add-api-for-spawn-egg-texture-colors.patch b/patches/server/1036-Add-api-for-spawn-egg-texture-colors.patch similarity index 100% rename from patches/server/1037-Add-api-for-spawn-egg-texture-colors.patch rename to patches/server/1036-Add-api-for-spawn-egg-texture-colors.patch diff --git a/patches/server/1038-Disable-memory-reserve-allocating.patch b/patches/server/1037-Disable-memory-reserve-allocating.patch similarity index 100% rename from patches/server/1038-Disable-memory-reserve-allocating.patch rename to patches/server/1037-Disable-memory-reserve-allocating.patch diff --git a/patches/server/1039-Improve-tag-parser-handling.patch b/patches/server/1038-Improve-tag-parser-handling.patch similarity index 100% rename from patches/server/1039-Improve-tag-parser-handling.patch rename to patches/server/1038-Improve-tag-parser-handling.patch diff --git a/patches/server/1040-Add-Lifecycle-Event-system.patch b/patches/server/1039-Add-Lifecycle-Event-system.patch similarity index 100% rename from patches/server/1040-Add-Lifecycle-Event-system.patch rename to patches/server/1039-Add-Lifecycle-Event-system.patch diff --git a/patches/server/1041-Conduit-API.patch b/patches/server/1040-Conduit-API.patch similarity index 100% rename from patches/server/1041-Conduit-API.patch rename to patches/server/1040-Conduit-API.patch diff --git a/patches/server/1042-ItemStack-Tooltip-API.patch b/patches/server/1041-ItemStack-Tooltip-API.patch similarity index 100% rename from patches/server/1042-ItemStack-Tooltip-API.patch rename to patches/server/1041-ItemStack-Tooltip-API.patch diff --git a/patches/server/1043-Fix-possible-StackOverflowError-for-some-dispenses.patch b/patches/server/1042-Fix-possible-StackOverflowError-for-some-dispenses.patch similarity index 100% rename from patches/server/1043-Fix-possible-StackOverflowError-for-some-dispenses.patch rename to patches/server/1042-Fix-possible-StackOverflowError-for-some-dispenses.patch diff --git a/patches/server/1044-Properly-track-the-changed-item-from-dispense-events.patch b/patches/server/1043-Properly-track-the-changed-item-from-dispense-events.patch similarity index 100% rename from patches/server/1044-Properly-track-the-changed-item-from-dispense-events.patch rename to patches/server/1043-Properly-track-the-changed-item-from-dispense-events.patch diff --git a/patches/server/1045-Add-getChunkSnapshot-includeLightData-parameter.patch b/patches/server/1044-Add-getChunkSnapshot-includeLightData-parameter.patch similarity index 100% rename from patches/server/1045-Add-getChunkSnapshot-includeLightData-parameter.patch rename to patches/server/1044-Add-getChunkSnapshot-includeLightData-parameter.patch diff --git a/patches/server/1046-Add-FluidState-API.patch b/patches/server/1045-Add-FluidState-API.patch similarity index 98% rename from patches/server/1046-Add-FluidState-API.patch rename to patches/server/1045-Add-FluidState-API.patch index 93e022238d..153752df1d 100644 --- a/patches/server/1046-Add-FluidState-API.patch +++ b/patches/server/1045-Add-FluidState-API.patch @@ -173,7 +173,7 @@ index 0000000000000000000000000000000000000000..c0c2805cb045cdd835b402776a6923fe + +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 9dd6012556979514f9879f867138bc836c58ef3f..1df2202277ab58d7de844f7bebc07e494a0ecdf3 100644 +index 7c7dbd030ada8d2fab494b6a125664ddc3955639..35f7de6b50d3adae7bdd0da5f779f0a466d25522 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -107,6 +107,13 @@ public abstract class CraftRegionAccessor implements RegionAccessor { diff --git a/patches/server/1047-add-number-format-api.patch b/patches/server/1046-add-number-format-api.patch similarity index 100% rename from patches/server/1047-add-number-format-api.patch rename to patches/server/1046-add-number-format-api.patch diff --git a/patches/server/1048-check-if-itemstack-is-stackable-first.patch b/patches/server/1047-check-if-itemstack-is-stackable-first.patch similarity index 100% rename from patches/server/1048-check-if-itemstack-is-stackable-first.patch rename to patches/server/1047-check-if-itemstack-is-stackable-first.patch diff --git a/patches/server/1049-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch b/patches/server/1048-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch similarity index 100% rename from patches/server/1049-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch rename to patches/server/1048-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch diff --git a/patches/server/1050-improve-BanList-types.patch b/patches/server/1049-improve-BanList-types.patch similarity index 100% rename from patches/server/1050-improve-BanList-types.patch rename to patches/server/1049-improve-BanList-types.patch diff --git a/patches/server/1051-Configurable-max-block-fluid-ticks.patch b/patches/server/1050-Configurable-max-block-fluid-ticks.patch similarity index 100% rename from patches/server/1051-Configurable-max-block-fluid-ticks.patch rename to patches/server/1050-Configurable-max-block-fluid-ticks.patch diff --git a/patches/server/1052-disable-forced-empty-world-ticks.patch b/patches/server/1051-disable-forced-empty-world-ticks.patch similarity index 100% rename from patches/server/1052-disable-forced-empty-world-ticks.patch rename to patches/server/1051-disable-forced-empty-world-ticks.patch diff --git a/patches/server/1053-Suspicious-Effect-Entry-API.patch b/patches/server/1052-Suspicious-Effect-Entry-API.patch similarity index 100% rename from patches/server/1053-Suspicious-Effect-Entry-API.patch rename to patches/server/1052-Suspicious-Effect-Entry-API.patch From 6ad63fba30e7ecd1b11bb8d77e8ed43f0a6e9ce9 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 3 Mar 2024 14:53:58 -0800 Subject: [PATCH 010/215] Per world ticks per spawn settings (#6891) --- patches/server/0005-Paper-config-files.patch | 6 ++-- ...3-Per-world-ticks-per-spawn-settings.patch | 35 +++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 patches/server/1053-Per-world-ticks-per-spawn-settings.patch diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 57e8a5c627..6a80fba3c9 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -1392,10 +1392,10 @@ index 0000000000000000000000000000000000000000..351fbbc577556ebbd62222615801a96b +} diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java new file mode 100644 -index 0000000000000000000000000000000000000000..15bc01b59bb67f1f5d8590c08d13537fa81ca8e1 +index 0000000000000000000000000000000000000000..dc7950f9a52a718317e5f41de9d396cd7b846bf3 --- /dev/null +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -0,0 +1,551 @@ +@@ -0,0 +1,553 @@ +package io.papermc.paper.configuration; + +import com.google.common.collect.HashBasedTable; @@ -1581,6 +1581,8 @@ index 0000000000000000000000000000000000000000..15bc01b59bb67f1f5d8590c08d13537f + public Reference2IntMap spawnLimits = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1))); + @MergeMap + public Map despawnRanges = Arrays.stream(MobCategory.values()).collect(Collectors.toMap(Function.identity(), category -> new DespawnRange(category.getNoDespawnDistance(), category.getDespawnDistance()))); ++ @MergeMap ++ public Reference2IntMap ticksPerSpawn = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1))); + + @ConfigSerializable + public record DespawnRange(@Required int soft, @Required int hard) { diff --git a/patches/server/1053-Per-world-ticks-per-spawn-settings.patch b/patches/server/1053-Per-world-ticks-per-spawn-settings.patch new file mode 100644 index 0000000000..7cb3e6d77c --- /dev/null +++ b/patches/server/1053-Per-world-ticks-per-spawn-settings.patch @@ -0,0 +1,35 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Sat, 13 Nov 2021 12:36:26 -0800 +Subject: [PATCH] Per world ticks per spawn settings + + +diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java +index f476ba6c97944bdffae5aacae2e285d17541f46e..bc89f9e90af3d69872a58c47a4c2545ba91b6ba5 100644 +--- a/src/main/java/net/minecraft/world/level/Level.java ++++ b/src/main/java/net/minecraft/world/level/Level.java +@@ -204,6 +204,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + return this.getChunkIfLoaded(chunkX, chunkZ) != null; + } + // Paper end - Use getChunkIfLoadedImmediately ++ // Paper start - per world ticks per spawn ++ private int getTicksPerSpawn(SpawnCategory spawnCategory) { ++ final int perWorld = this.paperConfig().entities.spawning.ticksPerSpawn.getInt(CraftSpawnCategory.toNMS(spawnCategory)); ++ if (perWorld >= 0) { ++ return perWorld; ++ } ++ return this.getCraftServer().getTicksPerSpawns(spawnCategory); ++ } ++ // Paper end + + public abstract ResourceKey getTypeKey(); + +@@ -216,7 +225,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + // CraftBukkit Ticks things + for (SpawnCategory spawnCategory : SpawnCategory.values()) { + if (CraftSpawnCategory.isValidForLimits(spawnCategory)) { +- this.ticksPerSpawnCategory.put(spawnCategory, (long) this.getCraftServer().getTicksPerSpawns(spawnCategory)); ++ this.ticksPerSpawnCategory.put(spawnCategory, this.getTicksPerSpawn(spawnCategory)); // Paper + } + } + From 0052e2db39e4032f37c6679fe58272de69d7c832 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Thu, 7 Mar 2024 10:11:47 -0800 Subject: [PATCH 011/215] build: Update tiny-remapper to 0.10.1 & remove unused repo from dev bundle config (#10303) --- build.gradle.kts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index ed586bbaf9..2e1633818c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -68,7 +68,7 @@ repositories { dependencies { paramMappings("net.fabricmc:yarn:1.20.4+build.1:mergedv2") - remapper("net.fabricmc:tiny-remapper:0.8.10:fat") + remapper("net.fabricmc:tiny-remapper:0.10.1:fat") decompiler("net.minecraftforge:forgeflower:2.0.627.2") spigotDecompiler("io.papermc:patched-spigot-fernflower:0.1+build.6") paperclip("io.papermc:paperclip:3.0.3") @@ -115,7 +115,6 @@ tasks.generateDevelopmentBundle { libraryRepositories.addAll( "https://repo.maven.apache.org/maven2/", paperMavenPublicUrl, - "https://s01.oss.sonatype.org/content/repositories/snapshots/", // todo Remove when updating adventure to release ) } From a0931f48646aa60ccdbdd8827bf68dba88a6c238 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Fri, 8 Mar 2024 15:52:00 -0800 Subject: [PATCH 012/215] Updated Upstream (Bukkit/CraftBukkit) (#10301) Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 7ca2b46c SPIGOT-7594: Fix typo and include missing MinecraftExperimental annotation in Loot Table enum CraftBukkit Changes: 176c0ad39 Fix copying BlockStates with fields (eg, Banner) ee685bd2a Fix Camel not standing up when hurt 619936d4b Increase outdated build delay --- ...add-missing-Experimental-annotations.patch | 13 ++++++++++- .../server/0003-Build-system-changes.patch | 4 ++-- patches/server/0006-MC-Dev-fixes.patch | 13 ----------- patches/server/0008-CB-fixes.patch | 22 ++++++++++++------- ...ient-crashes-server-lists-and-Mojang.patch | 4 ++-- .../0144-Fix-this-stupid-bullshit.patch | 4 ++-- .../0780-Missing-eating-regain-reason.patch | 12 +++++----- .../0801-Add-EntityToggleSitEvent.patch | 8 +++---- ...several-issues-with-EntityBreedEvent.patch | 10 ++++----- work/Bukkit | 2 +- work/CraftBukkit | 2 +- 11 files changed, 49 insertions(+), 45 deletions(-) diff --git a/patches/api/0445-add-missing-Experimental-annotations.patch b/patches/api/0445-add-missing-Experimental-annotations.patch index d8d8192ab3..568617597e 100644 --- a/patches/api/0445-add-missing-Experimental-annotations.patch +++ b/patches/api/0445-add-missing-Experimental-annotations.patch @@ -613,7 +613,7 @@ index 65d3d8fd5f00114dc388d65321a9affe1b32ce20..8e39f282c771ddafe5d890dcf065c56f private static Structure getStructure(String name) { diff --git a/src/main/java/org/bukkit/loot/LootTables.java b/src/main/java/org/bukkit/loot/LootTables.java -index d87214444118f57dad31898cf776b9e4a368d11d..b3fcb501e69136df73943e1752df41a477111d59 100644 +index fe1af164da1e27f413a66acf2856d35bd2f72b6c..0cbdeb044beeef59285f5d6ed8782aa8b46e80d9 100644 --- a/src/main/java/org/bukkit/loot/LootTables.java +++ b/src/main/java/org/bukkit/loot/LootTables.java @@ -35,24 +35,34 @@ public enum LootTables implements Keyed { @@ -651,3 +651,14 @@ index d87214444118f57dad31898cf776b9e4a368d11d..b3fcb501e69136df73943e1752df41a4 TRIAL_CHAMBERS_CORRIDOR_POT("pots/trial_chambers/corridor"), SHIPWRECK_MAP("chests/shipwreck_map"), SHIPWRECK_SUPPLY("chests/shipwreck_supply"), +@@ -180,8 +190,10 @@ public enum LootTables implements Keyed { + PIGLIN_BARTERING("gameplay/piglin_bartering"), + // Spawners + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + TRIAL_CHAMBER_KEY("spawners/trial_chamber/key"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + TRIAL_CHAMBER_CONSUMABLES("spawners/trial_chamber/consumables"), + // Archaeology + DESERT_WELL_ARCHAEOLOGY("archaeology/desert_well"), diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch index 163868dafe..b483193167 100644 --- a/patches/server/0003-Build-system-changes.patch +++ b/patches/server/0003-Build-system-changes.patch @@ -135,7 +135,7 @@ index a2a8bce29ec5540de89095574dfdc0ca9b17bbd3..d92cd89373f8373c367ce422328b9836 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 4fad736163683f49502ccd2d3122a4eef0a4a20e..a7921cde2b6275d730879b2814cc5f430520b051 100644 +index dc1021186ad4c4db26fb498e58ddec06f8bc1cf6..96210dd54e8ff6dc0375a8d03bf14fec1b26aaeb 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 { @@ -146,7 +146,7 @@ index 4fad736163683f49502ccd2d3122a4eef0a4a20e..a7921cde2b6275d730879b2814cc5f43 + 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, -28); 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/0006-MC-Dev-fixes.patch b/patches/server/0006-MC-Dev-fixes.patch index 8e5eb9dca7..271ad7735f 100644 --- a/patches/server/0006-MC-Dev-fixes.patch +++ b/patches/server/0006-MC-Dev-fixes.patch @@ -141,19 +141,6 @@ index 2dc801061025888192c3bf2c4c38b928c16a0165..ca788f0dcec4a117b410fe8348969e05 } public static SortedArraySet create(Comparator comparator) { -diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index ff5c0d5a7dd263869ba1eb93f2e81e8c6de42f26..869f60e9407ed1c5bee536ef91a21f4d11f8f964 100644 ---- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -@@ -148,7 +148,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl - @Override - protected void customServerAiStep() { - this.level().getProfiler().push("camelBrain"); -- Brain brain = this.getBrain(); -+ Brain brain = (Brain) this.getBrain(); // Paper - decompile fix - brain.tick((ServerLevel)this.level(), this); - this.level().getProfiler().pop(); - this.level().getProfiler().push("camelActivityUpdate"); diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java index e1b9e25f1f8352bf6825a5827b6b354ef7a93203..90e4e0ec0c7b0ece23c4b53f5f12b1f24e1c18ad 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java diff --git a/patches/server/0008-CB-fixes.patch b/patches/server/0008-CB-fixes.patch index d0c88b5473..98d20522e6 100644 --- a/patches/server/0008-CB-fixes.patch +++ b/patches/server/0008-CB-fixes.patch @@ -17,7 +17,7 @@ Subject: [PATCH] CB fixes Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 674c996af91de91ee6302cc67334b836ea4fa4de..93867b8883c6f5d5086e8fdc153e6d7c1e5d9fec 100644 +index aac9513ff4d3d494860bd06607cf8af5e466fd5b..30fc222c384938fb4fdd4c6715295aeea57094bc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -296,7 +296,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -30,18 +30,24 @@ index 674c996af91de91ee6302cc67334b836ea4fa4de..93867b8883c6f5d5086e8fdc153e6d7c if ((this.dimension() == Level.END && this.dimensionTypeRegistration().is(BuiltinDimensionTypes.END)) || env == org.bukkit.World.Environment.THE_END) { // CraftBukkit - Allow to create EnderDragonBattle in default and custom END this.dragonFight = new EndDragonFight(this, this.serverLevelData.worldGenOptions().seed(), this.serverLevelData.endDragonFightData()); // CraftBukkit diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index 869f60e9407ed1c5bee536ef91a21f4d11f8f964..95e5d1d707e610c930b6098a86c5162fd29bf602 100644 +index b2f37e3caf305f7f2c19c59848717bf73bd2ef5d..87c8460324ff2d2a14e1404fcfa3adb2d336a089 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -@@ -445,9 +445,9 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl +@@ -462,15 +462,9 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl } @Override -- protected void actuallyHurt(DamageSource source, float amount) { -+ protected boolean actuallyHurt(DamageSource source, float amount) { // Paper - Fix CB... +- // CraftBukkit start - void -> boolean +- protected boolean actuallyHurt(DamageSource damagesource, float f) { +- boolean hurt = super.actuallyHurt(damagesource, f); +- if (!hurt) { +- return hurt; +- } +- // CraftBukkit end ++ protected boolean actuallyHurt(DamageSource damagesource, float f) { // Paper - change return type to boolean this.standUpInstantly(); -- super.actuallyHurt(source, amount); -+ return super.actuallyHurt(source, amount); // Paper - Fix CB... +- return hurt; // CraftBukkit ++ return super.actuallyHurt(damagesource, f); // Paper - change return type to boolean } @Override @@ -101,7 +107,7 @@ index cd39509d383c47319b71797e5d1df41c2b8c7ab6..2cc1871c81056acd0582184bb684e672 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index c8f0570b7d37a0c0bddb0a65c36fb32de584df8f..02060584892d630d91f58e864ed34656ee738572 100644 +index 19725db76dc3a12356993aed7edba507b52fe4d7..c2e1376bb06442297bda806ed8dc92f10cbbdd9a 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -122,6 +122,7 @@ public class Main { diff --git a/patches/server/0026-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/server/0026-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch index 06b6b9aded..fc9a21d7a5 100644 --- a/patches/server/0026-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch +++ b/patches/server/0026-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch @@ -32,11 +32,11 @@ index 48c40f12649735f14204c516eace6905b2ac0019..56a63adc3c0c919594c3f2646d4cf5b8 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 c312c450055965d63db0ccdee8aa8e34e7051d0b..9f4c5a6f22719ae30d88ca02a1db4a3f39957943 100644 +index cf0390e8ccb8e4845e3a14fa71b2547996b69baf..6c1e3254c9a20ba58c7285d4cf6a01489862100d 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -241,12 +241,25 @@ public class Main { - deadline.add(Calendar.DAY_OF_YEAR, -7); + deadline.add(Calendar.DAY_OF_YEAR, -28); 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/0144-Fix-this-stupid-bullshit.patch b/patches/server/0144-Fix-this-stupid-bullshit.patch index 1abc5b13f3..f71529aaed 100644 --- a/patches/server/0144-Fix-this-stupid-bullshit.patch +++ b/patches/server/0144-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 659b32d49016a23475f3bbda1548a78101b468ce..623c7304a6849e994e22cd559177d9de0dd2f4c4 100644 +index 1bd54fbadc9b1b5207325c78298cc72f61455ac7..a7a376e91fca80dd96f5a3e8910eba9772c67bfe 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -258,10 +258,12 @@ public class Main { Calendar deadline = Calendar.getInstance(); - deadline.add(Calendar.DAY_OF_YEAR, -7); + deadline.add(Calendar.DAY_OF_YEAR, -28); 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/0780-Missing-eating-regain-reason.patch b/patches/server/0780-Missing-eating-regain-reason.patch index d03459459f..1a46d0af82 100644 --- a/patches/server/0780-Missing-eating-regain-reason.patch +++ b/patches/server/0780-Missing-eating-regain-reason.patch @@ -18,18 +18,18 @@ index 1d0c424be2b67cad0f8bca85070a9c46a6b283da..f760ce7d9df79ef58f8963de3e901cba } diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index 95e5d1d707e610c930b6098a86c5162fd29bf602..be8e056f82e348d7cd14bb22a873207cddfb3044 100644 +index 87c8460324ff2d2a14e1404fcfa3adb2d336a089..090d36d73b12fec59782142e2e85f17ba35dc6be 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -@@ -384,7 +384,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl - } else { - boolean bl = this.getHealth() < this.getMaxHealth(); - if (bl) { +@@ -392,7 +392,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl + boolean flag = this.getHealth() < this.getMaxHealth(); + + if (flag) { - this.heal(2.0F); + this.heal(2.0F, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.EATING); // Paper - Add missing regain reason } - boolean bl2 = this.isTamed() && this.getAge() == 0 && this.canFallInLove(); + boolean flag1 = this.isTamed() && this.getAge() == 0 && this.canFallInLove(); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java index 91fb62807b3c5600c83d4dc8d3fadf36e94e2133..9b5b894d43f25566ab9c3698705e978ab823a0d2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java diff --git a/patches/server/0801-Add-EntityToggleSitEvent.patch b/patches/server/0801-Add-EntityToggleSitEvent.patch index 3db46de79b..e149e09cf1 100644 --- a/patches/server/0801-Add-EntityToggleSitEvent.patch +++ b/patches/server/0801-Add-EntityToggleSitEvent.patch @@ -69,10 +69,10 @@ index 4abd26c7baf8f198f13dd41a3146f9ece13a4164..0297e234f17c6157cfff79420b9eeaf4 } diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index be8e056f82e348d7cd14bb22a873207cddfb3044..5f879ec74cadc8b27f3c1648890978dbdc27f9f0 100644 +index 090d36d73b12fec59782142e2e85f17ba35dc6be..7860331b640fe48d1f2357d9f8e2e40c682b3620 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -@@ -556,7 +556,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl +@@ -580,7 +580,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl } public void sitDown() { @@ -81,7 +81,7 @@ index be8e056f82e348d7cd14bb22a873207cddfb3044..5f879ec74cadc8b27f3c1648890978db this.playSound(SoundEvents.CAMEL_SIT, 1.0F, this.getVoicePitch()); this.setPose(Pose.SITTING); this.gameEvent(GameEvent.ENTITY_ACTION); -@@ -565,7 +565,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl +@@ -589,7 +589,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl } public void standUp() { @@ -90,7 +90,7 @@ index be8e056f82e348d7cd14bb22a873207cddfb3044..5f879ec74cadc8b27f3c1648890978db this.playSound(SoundEvents.CAMEL_STAND, 1.0F, this.getVoicePitch()); this.setPose(Pose.STANDING); this.gameEvent(GameEvent.ENTITY_ACTION); -@@ -574,6 +574,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl +@@ -598,6 +598,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl } public void standUpInstantly() { diff --git a/patches/server/0962-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0962-Fix-several-issues-with-EntityBreedEvent.patch index 2ef92033bd..e7f91ee16c 100644 --- a/patches/server/0962-Fix-several-issues-with-EntityBreedEvent.patch +++ b/patches/server/0962-Fix-several-issues-with-EntityBreedEvent.patch @@ -69,18 +69,18 @@ index 0297e234f17c6157cfff79420b9eeaf4e0e2c3ab..d683c49fdf2d1e5b0f2620641f9c241e if (this.level().isClientSide || this.isSitting() || this.isInWater()) { return InteractionResult.PASS; diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index 5f879ec74cadc8b27f3c1648890978dbdc27f9f0..1f09d47b0ffb07b49b4d8bd79a371dd61f1c2a92 100644 +index 7860331b640fe48d1f2357d9f8e2e40c682b3620..84ae19bf9bddd2b6ee4737577d8836d59be028c2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -@@ -389,7 +389,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl +@@ -398,7 +398,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl + boolean flag1 = this.isTamed() && this.getAge() == 0 && this.canFallInLove(); - boolean bl2 = this.isTamed() && this.getAge() == 0 && this.canFallInLove(); - if (bl2) { + if (flag1) { - this.setInLove(player); + this.setInLove(player, item.copy()); // Paper - Fix EntityBreedEvent copying } - boolean bl3 = this.isBaby(); + boolean flag2 = this.isBaby(); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java index 94dd97662ba07689fbfa16ef5c7d99fe12ce83de..815eb15086976b8f9e03bf8182d9ed50aec14720 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java diff --git a/work/Bukkit b/work/Bukkit index 9a80d38c00..7ca2b46c1a 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 9a80d38c002509a4849c5e5f735dca9f9b5731e4 +Subproject commit 7ca2b46c1a7d7479e45a79aa2db86de5c7fd20d8 diff --git a/work/CraftBukkit b/work/CraftBukkit index 98b6c1ac7d..176c0ad39f 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 98b6c1ac7d4698ded83d96217861b071e519b300 +Subproject commit 176c0ad39fffd8a6003e686b910fc02b669f1434 From 80e1a459597351a57c7a64334c89511e7dcbfe29 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 9 Mar 2024 15:16:27 -0800 Subject: [PATCH 013/215] Add param to overrides to the correct method is called (#10308) --- ...ackByEntityEvent-and-EntityPushedByE.patch | 37 +++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch b/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch index 65f116cfbc..d9acc8f055 100644 --- a/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch +++ b/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch @@ -9,14 +9,16 @@ Co-authored-by: aerulion This event is called when an entity receives knockback by another entity. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fe314015f8cbc44e29a8ec73ecca4eeadd1da39f..17a8c7e42b31513a4586cd2d40b2d58911814f75 100644 +index fe314015f8cbc44e29a8ec73ecca4eeadd1da39f..d2d1a3e3c8accbdfeecafa86f9cc9f16007c3930 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1869,8 +1869,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1868,9 +1868,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S + } } - public void push(double deltaX, double deltaY, double deltaZ) { +- public void push(double deltaX, double deltaY, double deltaZ) { - this.setDeltaMovement(this.getDeltaMovement().add(deltaX, deltaY, deltaZ)); ++ public final void push(double deltaX, double deltaY, double deltaZ) { // Paper - override the added overload below + // Paper start - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent + this.push(deltaX, deltaY, deltaZ, null); + } @@ -121,6 +123,35 @@ index 9ab60fb1b7f9c8a342d9116e99f7f0a1e463a626..0d84f1fb53384a827d7418c322a32e32 if (!this.phaseManager.getCurrentPhase().isSitting() && ((LivingEntity) entity).getLastHurtByMobTimestamp() < entity.tickCount - 2) { entity.hurt(this.damageSources().mobAttack(this), 5.0F); this.doEnchantDamageEffects(this, entity); +diff --git a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java +index b3d05578f38af41f242f6634864ce1d2ecac14f8..aaa579ba04445aa350a439610d460a2415320cfc 100644 +--- a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java ++++ b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java +@@ -250,7 +250,7 @@ public abstract class HangingEntity extends Entity { + } + + @Override +- public void push(double deltaX, double deltaY, double deltaZ) { ++ public void push(double deltaX, double deltaY, double deltaZ, @org.jetbrains.annotations.Nullable Entity pushingEntity) { // Paper - add push source entity param + if (false && !this.level().isClientSide && !this.isRemoved() && deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ > 0.0D) { // CraftBukkit - not needed + this.kill(); + this.dropItem((Entity) null); +diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +index 78a3c87b74218a0d5792801c07e3a263c15fcd5b..f90878e0449f39f66ae3a7036a65c374b36b7dbc 100644 +--- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java ++++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +@@ -159,9 +159,9 @@ public class ItemFrame extends HangingEntity { + } + + @Override +- public void push(double deltaX, double deltaY, double deltaZ) { ++ public void push(double deltaX, double deltaY, double deltaZ, @org.jetbrains.annotations.Nullable Entity pushingEntity) { // Paper - add push source entity param + if (!this.fixed) { +- super.push(deltaX, deltaY, deltaZ); ++ super.push(deltaX, deltaY, deltaZ, pushingEntity); // Paper - add push source entity param + } + + } diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java index 041f1650b853138e4286fe83a08d79d276054ce7..aba20a4352d8983b01ab5d329187588f68d3e405 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java From 62b220a87f6991c33423346e5f50e64058e7bdd9 Mon Sep 17 00:00:00 2001 From: Bjarne Koll Date: Sun, 10 Mar 2024 01:08:44 +0100 Subject: [PATCH 014/215] Allow passenger retaining teleport via end gateway (#10283) Previously paper disabled the abilities for entities to teleport via end gateways if they were being used as a vehicle. While the behaviour generally worked fine for entities riding other entities, players would quickly end up in an invalid state, not seeing their passenger anymore. This commit removes the paper introduced limitation by now properly updating the passengers location of a player when they are teleporting through an end gateway. --- .../0375-Ensure-safe-gateway-teleport.patch | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/patches/server/0375-Ensure-safe-gateway-teleport.patch b/patches/server/0375-Ensure-safe-gateway-teleport.patch index cf80905d38..9c45473e39 100644 --- a/patches/server/0375-Ensure-safe-gateway-teleport.patch +++ b/patches/server/0375-Ensure-safe-gateway-teleport.patch @@ -3,24 +3,18 @@ From: kickash32 Date: Fri, 15 May 2020 01:10:03 -0400 Subject: [PATCH] Ensure safe gateway teleport +== AT == +public net.minecraft.world.entity.Entity teleportPassengers()V diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index a57743b21b6075ba01def0a41fecbf90b2df7f85..54f7bdd0e003ed170d739593199a2bb8ff0bbd68 100644 +index a57743b21b6075ba01def0a41fecbf90b2df7f85..098fde8200a11f91f934ddab6b1486dac4014dfe 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -@@ -106,7 +106,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { - List list = world.getEntitiesOfClass(Entity.class, new AABB(pos), TheEndGatewayBlockEntity::canEntityTeleport); +@@ -220,6 +220,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { - if (!list.isEmpty()) { -- TheEndGatewayBlockEntity.teleportEntity(world, pos, state, (Entity) list.get(world.random.nextInt(list.size())), blockEntity); -+ // Paper start - Ensure safe gateway teleport -+ for (Entity entity : list) { -+ if (entity.canChangeDimensions()) { -+ TheEndGatewayBlockEntity.teleportEntity(world, pos, state, entity, blockEntity); -+ break; -+ } -+ } -+ // Paper end - Ensure safe gateway teleport - } + entity1.setPortalCooldown(); + ((ServerPlayer) entity1).connection.teleport(teleEvent.getTo()); ++ entity1.teleportPassengers(); // Paper - teleport passengers as well, preventing invisible passengers post teleport. + TheEndGatewayBlockEntity.triggerCooldown(world, pos, state, blockEntity); // CraftBukkit - call at end of method + return; - if (blockEntity.age % 2400L == 0L) { From ab1afb0ed8838117f00a70fcf507ffedfb00c414 Mon Sep 17 00:00:00 2001 From: Suppergerrie2 <15769860+suppergerrie2@users.noreply.github.com> Date: Fri, 15 Mar 2024 12:09:47 +0100 Subject: [PATCH 015/215] Fix missing profiler.pop() in PathFinder::findPath (#10320) --- ...mize-Pathfinder-Remove-Streams-Optimized-collect.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch index 30e9a24146..f0c0562d70 100644 --- a/patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch +++ b/patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch @@ -16,7 +16,7 @@ This lets us get faster foreach iteration, as well as avoids map lookups on the values when needed. diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java -index 8519383a9abd45434c1e9888e77548941a80c79c..eb18494bd7257fa5eb00dea16cf4d5667b796f2b 100644 +index 8519383a9abd45434c1e9888e77548941a80c79c..8aa4ac3a6affbe888d6084a27b668c58dfda6c79 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java @@ -38,9 +38,12 @@ public class PathFinder { @@ -91,7 +91,7 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..eb18494bd7257fa5eb00dea16cf4d566 if (node2.inOpenSet()) { this.openSet.changeCost(node2, node2.g + node2.h); } else { -@@ -105,23 +113,31 @@ public class PathFinder { +@@ -105,23 +113,32 @@ public class PathFinder { } } @@ -100,8 +100,6 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..eb18494bd7257fa5eb00dea16cf4d566 - }).min(Comparator.comparingInt(Path::getNodeCount)) : set.stream().map((target) -> { - return this.reconstructPath(target.getBestNode(), positions.get(target), false); - }).min(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); -- profiler.pop(); -- return optional.isEmpty() ? null : optional.get(); + // Paper start - Perf: remove streams and optimize collection + Path best = null; + boolean entryListIsEmpty = entryList.isEmpty(); @@ -112,6 +110,8 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..eb18494bd7257fa5eb00dea16cf4d566 + if (best == null || comparator.compare(path, best) < 0) + best = path; + } + profiler.pop(); +- return optional.isEmpty() ? null : optional.get(); + return best; + // Paper end - Perf: remove streams and optimize collection } From cd110a8995130fbdf7981cb8fd4866e5ae2ccbf9 Mon Sep 17 00:00:00 2001 From: Ikko Eltociear Ashimine Date: Sun, 17 Mar 2024 02:56:04 +0900 Subject: [PATCH 016/215] [ci skip] Update CONTRIBUTING.md (#10318) tempermental -> temperamental --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a2fa410d3c..19f656419d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -319,7 +319,7 @@ Subject: [PATCH] revert serverside behavior of keepalives This patch intends to bump up the time that a client has to reply to the server back to 30 seconds as per pre 1.12.2, which allowed clients more than enough time to reply potentially allowing them to be less -tempermental due to lag spikes on the network thread, e.g. that caused +temperamental due to lag spikes on the network thread, e.g. that caused by plugins that are interacting with netty. We also add a system property to allow people to tweak how long the server From e6034867bab45fd507d68e238500bba730c6ffb9 Mon Sep 17 00:00:00 2001 From: leguan <59799222+Leguan16@users.noreply.github.com> Date: Sat, 16 Mar 2024 19:10:26 +0100 Subject: [PATCH 017/215] Add onboarding message for initial server start (#10312) --- ...ing-message-for-initial-server-start.patch | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 patches/server/1054-Add-onboarding-message-for-initial-server-start.patch diff --git a/patches/server/1054-Add-onboarding-message-for-initial-server-start.patch b/patches/server/1054-Add-onboarding-message-for-initial-server-start.patch new file mode 100644 index 0000000000..744407a16a --- /dev/null +++ b/patches/server/1054-Add-onboarding-message-for-initial-server-start.patch @@ -0,0 +1,103 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: leguan +Date: Sun, 10 Mar 2024 20:10:41 +0100 +Subject: [PATCH] Add onboarding message for initial server start + + +diff --git a/src/main/java/io/papermc/paper/configuration/Configurations.java b/src/main/java/io/papermc/paper/configuration/Configurations.java +index c01b4393439838976965823298f12e4762e72eff..218bf89fd7583d6db9f64754c4db8fcce5415bdb 100644 +--- a/src/main/java/io/papermc/paper/configuration/Configurations.java ++++ b/src/main/java/io/papermc/paper/configuration/Configurations.java +@@ -126,6 +126,7 @@ public abstract class Configurations { + if (Files.notExists(configFile)) { + node = CommentedConfigurationNode.root(loader.defaultOptions()); + node.node(Configuration.VERSION_FIELD).raw(this.globalConfigVersion()); ++ GlobalConfiguration.isFirstStart = true; + } else { + node = loader.load(); + this.verifyGlobalConfigVersion(node); +diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +index b53b6cc4463675096b061b3b65f14a4695c742e2..f2e30d8743a97c0541808dc5c03300c0d881b843 100644 +--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java ++++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +@@ -25,6 +25,7 @@ public class GlobalConfiguration extends ConfigurationPart { + private static final Logger LOGGER = LogUtils.getLogger(); + static final int CURRENT_VERSION = 29; // (when you change the version, change the comment, so it conflicts on rebases): + private static GlobalConfiguration instance; ++ public static boolean isFirstStart = false; + public static GlobalConfiguration get() { + return instance; + } +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index d06185566b447c432d4dc2e3ba04d121bcdbc71b..93b661e9cb7743aeff7da3972942cb73049a5e4c 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -1155,6 +1155,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop " + onboardingLink + ""); ++ link.setFont(MinecraftServerGui.MONOSPACED); ++ link.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); ++ link.addMouseListener(new java.awt.event.MouseAdapter() { ++ @Override ++ public void mouseClicked(final java.awt.event.MouseEvent e) { ++ try { ++ java.awt.Desktop.getDesktop().browse(java.net.URI.create(onboardingLink)); ++ } catch (java.io.IOException exception) { ++ LOGGER.error("Unable to find a default browser. Please manually visit the website: " + onboardingLink, exception); ++ } catch (UnsupportedOperationException exception) { ++ LOGGER.error("This platform does not support the BROWSE action. Please manually visit the website: " + onboardingLink, exception); ++ } catch (SecurityException exception) { ++ LOGGER.error("This action has been denied by the security manager. Please manually visit the website: " + onboardingLink, exception); ++ } ++ } ++ }); ++ ++ jPanel.add(jLabel); ++ jPanel.add(link); ++ ++ return jPanel; ++ } ++ // Paper end - Add onboarding message for initial server start ++ + private JComponent buildPlayerPanel() { + JList jlist = new PlayerListComponent(this.server); + JScrollPane jscrollpane = new JScrollPane(jlist, 22, 30); From d361a7f60912250ceeee9461f1f97d23dd87ff76 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 16 Mar 2024 11:51:22 -0700 Subject: [PATCH 018/215] Fix DamageSource API (#10307) Uses the correct entity in the EntityDamageByEntity event Returns the correct entity for API's DamageSource#getCausingEntity --- patches/api/0466-Fix-DamageSource-API.patch | 31 +++ .../server/1055-Fix-DamageSource-API.patch | 198 ++++++++++++++++++ 2 files changed, 229 insertions(+) create mode 100644 patches/api/0466-Fix-DamageSource-API.patch create mode 100644 patches/server/1055-Fix-DamageSource-API.patch diff --git a/patches/api/0466-Fix-DamageSource-API.patch b/patches/api/0466-Fix-DamageSource-API.patch new file mode 100644 index 0000000000..efe4403e2c --- /dev/null +++ b/patches/api/0466-Fix-DamageSource-API.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Sat, 16 Mar 2024 11:21:14 -0700 +Subject: [PATCH] Fix DamageSource API + + +diff --git a/src/main/java/org/bukkit/event/entity/EntityDamageByEntityEvent.java b/src/main/java/org/bukkit/event/entity/EntityDamageByEntityEvent.java +index 6b24d1281cb8f0253430c9c1a1323e2670bb9c93..8ea4be529400b34df3d31b0f17c2d145345523d9 100644 +--- a/src/main/java/org/bukkit/event/entity/EntityDamageByEntityEvent.java ++++ b/src/main/java/org/bukkit/event/entity/EntityDamageByEntityEvent.java +@@ -60,6 +60,20 @@ public class EntityDamageByEntityEvent extends EntityDamageEvent { + } + // Paper end + ++ // Paper start ++ /** ++ * {@inheritDoc} ++ *

++ * The {@link DamageSource#getDirectEntity()} may be different from the {@link #getDamager()} ++ * if the Minecraft damage source did not originally include an damager entity, but one was included ++ * for this event {@link #getDamager()}. ++ */ ++ @Override ++ public @NotNull DamageSource getDamageSource() { ++ return super.getDamageSource(); ++ } ++ // Paper end ++ + /** + * Returns the entity that damaged the defender. + * diff --git a/patches/server/1055-Fix-DamageSource-API.patch b/patches/server/1055-Fix-DamageSource-API.patch new file mode 100644 index 0000000000..3c80fe5209 --- /dev/null +++ b/patches/server/1055-Fix-DamageSource-API.patch @@ -0,0 +1,198 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Sat, 9 Mar 2024 14:13:04 -0800 +Subject: [PATCH] Fix DamageSource API + +Uses the correct entity in the EntityDamageByEntity event +Returns the correct entity for API's DamageSource#getCausingEntity + +diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java +index 1561b85a45f52a8162f43553f8485bfe084b8f1f..b26e4d58ea1898a5e4b31c3d6ab33f38835ab2c6 100644 +--- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java ++++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java +@@ -27,7 +27,8 @@ public class DamageSource { + private boolean withSweep = false; + private boolean melting = false; + private boolean poison = false; +- private Entity customCausingEntity = null; // This field is a helper for when causing entity damage is not set by vanilla ++ @Nullable ++ private Entity customEventDamager = null; // This field is a helper for when causing entity damage is not set by vanilla // Paper - fix DamageSource API + + public DamageSource sweep() { + this.withSweep = true; +@@ -56,13 +57,18 @@ public class DamageSource { + return this.poison; + } + +- public Entity getCausingEntity() { +- return (this.customCausingEntity != null) ? this.customCausingEntity : this.causingEntity; ++ // Paper start - fix DamageSource API ++ public @Nullable Entity getCustomEventDamager() { ++ return (this.customEventDamager != null) ? this.customEventDamager : this.directEntity; + } + +- public DamageSource customCausingEntity(Entity entity) { ++ public DamageSource customEventDamager(Entity entity) { ++ if (this.directEntity != null) { ++ throw new IllegalStateException("Cannot set a custom event damager entity when a direct entity is already set (report as a bug to Paper)"); ++ } + DamageSource damageSource = this.cloneInstance(); +- damageSource.customCausingEntity = entity; ++ damageSource.customEventDamager = entity; ++ // Paper end - fix DamageSource API + return damageSource; + } + +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index be2220457e941803b14d78c550d0db777c79a886..f5a86c0fb1a7a313afc4c56ffc445a7fe7821428 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -3462,7 +3462,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S + return; + } + +- if (!this.hurt(this.damageSources().lightningBolt().customCausingEntity(lightning), 5.0F)) { ++ if (!this.hurt(this.damageSources().lightningBolt().customEventDamager(lightning), 5.0F)) { // Paper - fix DamageSource API + return; + } + // CraftBukkit end +diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java +index dbdb6c432448b151fa4421f14235f8bad23dc720..2eb099957a3d0bae3339ff4edbab103fb348abed 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java ++++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java +@@ -336,7 +336,7 @@ public class Turtle extends Animal { + + @Override + public void thunderHit(ServerLevel world, LightningBolt lightning) { +- this.hurt(this.damageSources().lightningBolt().customCausingEntity(lightning), Float.MAX_VALUE); // CraftBukkit ++ this.hurt(this.damageSources().lightningBolt().customEventDamager(lightning), Float.MAX_VALUE); // CraftBukkit // Paper - fix DamageSource API + } + + @Override +diff --git a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java +index 4dea85a8ab8ae16d02e35d226fd155891ce2319a..eaad15a4d201356c34c1a09c7fbe5c35f76a2176 100644 +--- a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java ++++ b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java +@@ -204,7 +204,7 @@ public abstract class HangingEntity extends Entity { + } else { + if (!this.isRemoved() && !this.level().isClientSide) { + // CraftBukkit start - fire break events +- Entity damager = (source.isIndirect()) ? source.getEntity() : source.getDirectEntity(); ++ Entity damager = (source.isIndirect() && source.getEntity() != null) ? source.getEntity() : source.getDirectEntity(); // Paper - fix DamageSource API + HangingBreakEvent event; + if (damager != null) { + event = new HangingBreakByEntityEvent((Hanging) this.getBukkitEntity(), damager.getBukkitEntity(), source.is(DamageTypeTags.IS_EXPLOSION) ? HangingBreakEvent.RemoveCause.EXPLOSION : HangingBreakEvent.RemoveCause.ENTITY); +diff --git a/src/main/java/net/minecraft/world/entity/projectile/EvokerFangs.java b/src/main/java/net/minecraft/world/entity/projectile/EvokerFangs.java +index a729460e35bbef134bdf0d72d8894c3df007f7b8..e6f549f1fcd261f96f0e4fc4cbe26a04c389d191 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/EvokerFangs.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/EvokerFangs.java +@@ -132,7 +132,7 @@ public class EvokerFangs extends Entity implements TraceableEntity { + + if (target.isAlive() && !target.isInvulnerable() && target != entityliving1) { + if (entityliving1 == null) { +- target.hurt(this.damageSources().magic().customCausingEntity(this), 6.0F); // CraftBukkit ++ target.hurt(this.damageSources().magic().customEventDamager(this), 6.0F); // CraftBukkit // Paper - fix DamageSource API + } else { + if (entityliving1.isAlliedTo((Entity) target)) { + return; +diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java +index 28690877c443ceb2bdf20e6d251c9d32f667814c..1fb1e729d6879568d8b4943071fa940325b2e5b0 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java +@@ -86,7 +86,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { + + entityplayer.connection.teleport(teleEvent.getTo()); + entity.resetFallDistance(); +- entity.hurt(this.damageSources().fall().customCausingEntity(this), 5.0F); // CraftBukkit ++ entity.hurt(this.damageSources().fall().customEventDamager(this), 5.0F); // CraftBukkit // Paper - fix DamageSource API + } + // CraftBukkit end + this.level().playSound((Player) null, this.getX(), this.getY(), this.getZ(), SoundEvents.PLAYER_TELEPORT, SoundSource.PLAYERS); +diff --git a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java +index 5c7a6fe97b1f0b55b4a5dddbb684e4424688f866..6f49b9b8707d74330adb973e0db3cd5bccf138b6 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java +@@ -72,7 +72,7 @@ public class WitherSkull extends AbstractHurtingProjectile { + } + } + } else { +- flag = entity.hurt(this.damageSources().magic().customCausingEntity(this), 5.0F); // Paper - Fire EntityDamageByEntityEvent for unowned wither skulls ++ flag = entity.hurt(this.damageSources().magic().customEventDamager(this), 5.0F); // Paper - Fire EntityDamageByEntityEvent for unowned wither skulls // Paper - fix DamageSource API + } + + if (flag && entity instanceof LivingEntity) { +diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java +index b678da2cbb93cea7971bc3c4d324cfca18b0bc97..90a82bd7977ebe520bdcc2ab99e11452d5cf4a21 100644 +--- a/src/main/java/net/minecraft/world/level/Explosion.java ++++ b/src/main/java/net/minecraft/world/level/Explosion.java +@@ -103,7 +103,7 @@ public class Explosion { + this.z = z; + this.fire = createFire; + this.blockInteraction = destructionType; +- this.damageSource = damageSource == null ? world.damageSources().explosion(this).customCausingEntity(entity) : damageSource.customCausingEntity(entity); // CraftBukkit - handle source entity ++ this.damageSource = damageSource == null ? world.damageSources().explosion(this) : damageSource; // CraftBukkit - handle source entity // Paper - revert to fix DamageSource API + this.damageCalculator = behavior == null ? this.makeDamageCalculator(entity) : behavior; + this.smallExplosionParticles = particle; + this.largeExplosionParticles = emitterParticle; +diff --git a/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageSource.java b/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageSource.java +index 6ae1ad21807c039726021f8f26f92042acce2fda..b7e2327c50195e8d3ca3ca3b47c7c0f9ea8e289c 100644 +--- a/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageSource.java ++++ b/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageSource.java +@@ -41,7 +41,7 @@ public class CraftDamageSource implements DamageSource { + + @Override + public org.bukkit.entity.Entity getCausingEntity() { +- net.minecraft.world.entity.Entity entity = this.getHandle().getCausingEntity(); ++ net.minecraft.world.entity.Entity entity = this.getHandle().getEntity(); // Paper - fix DamageSource API + return (entity != null) ? entity.getBukkitEntity() : null; + } + +@@ -65,7 +65,7 @@ public class CraftDamageSource implements DamageSource { + + @Override + public boolean isIndirect() { +- return this.getHandle().getCausingEntity() != this.getHandle().getDirectEntity(); ++ return this.getHandle().isIndirect(); // Paper - fix DamageSource API + } + + @Override +diff --git a/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageSourceBuilder.java b/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageSourceBuilder.java +index 4c6e15535fa40aad8cf1920f392589404f9ba79c..35eb95ef6fb6a0f7ea63351e90741c489fdd15f9 100644 +--- a/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageSourceBuilder.java ++++ b/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageSourceBuilder.java +@@ -41,6 +41,11 @@ public class CraftDamageSourceBuilder implements DamageSource.Builder { + + @Override + public DamageSource build() { ++ // Paper start - fix DamageCause API ++ if (this.causingEntity != null && this.directEntity == null) { ++ throw new IllegalArgumentException("Direct entity must be set if causing entity is set"); ++ } ++ // Paper end - fix DamageCause API + return CraftDamageSource.buildFromBukkit(this.damageType, this.causingEntity, this.directEntity, this.damageLocation); + } + } +diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +index 4c2e8129481384a143384d327e14320023735b1a..cb3e9672f375a1a660757a05362729ddb5ca7504 100644 +--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java ++++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +@@ -1082,7 +1082,7 @@ public class CraftEventFactory { + + private static EntityDamageEvent handleEntityDamageEvent(Entity entity, DamageSource source, Map modifiers, Map> modifierFunctions, boolean cancelled) { + CraftDamageSource bukkitDamageSource = new CraftDamageSource(source); +- Entity damager = source.getCausingEntity(); ++ final Entity damager = source.getCustomEventDamager(); // Paper - fix DamageSource API + if (source.is(DamageTypeTags.IS_EXPLOSION)) { + if (damager == null) { + return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), entity, DamageCause.BLOCK_EXPLOSION, bukkitDamageSource, modifiers, modifierFunctions, cancelled, source.explodedBlockState); // Paper - Include BlockState for damage +@@ -1092,9 +1092,7 @@ public class CraftEventFactory { + } else if (damager != null || source.getDirectEntity() != null) { + DamageCause cause = (source.isSweep()) ? DamageCause.ENTITY_SWEEP_ATTACK : DamageCause.ENTITY_ATTACK; + +- if (bukkitDamageSource.isIndirect() && source.getDirectEntity() != null) { +- damager = source.getDirectEntity(); +- } ++ // Paper - fix DamageSource API + + if (damager instanceof net.minecraft.world.entity.projectile.Projectile) { + if (damager.getBukkitEntity() instanceof ThrownPotion) { From 99a641690abd3d3669249ce10243e0739a13af33 Mon Sep 17 00:00:00 2001 From: viciscat <51047087+viciscat@users.noreply.github.com> Date: Sat, 16 Mar 2024 20:28:50 +0100 Subject: [PATCH 019/215] Expand Hopper BlockState API (#10328) --- patches/api/0467-Expanded-Hopper-API.patch | 32 +++++++++++++++++++ patches/server/1056-Expanded-Hopper-API.patch | 31 ++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 patches/api/0467-Expanded-Hopper-API.patch create mode 100644 patches/server/1056-Expanded-Hopper-API.patch diff --git a/patches/api/0467-Expanded-Hopper-API.patch b/patches/api/0467-Expanded-Hopper-API.patch new file mode 100644 index 0000000000..51cb6dfee2 --- /dev/null +++ b/patches/api/0467-Expanded-Hopper-API.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: vicisacat +Date: Fri, 15 Mar 2024 17:35:18 +0100 +Subject: [PATCH] Expanded Hopper API + + +diff --git a/src/main/java/org/bukkit/block/Hopper.java b/src/main/java/org/bukkit/block/Hopper.java +index 7ade312f180b7e30871d3a3240c76325cc369c26..61ea33c1f2dbb546a66f945a01feae437b1381e0 100644 +--- a/src/main/java/org/bukkit/block/Hopper.java ++++ b/src/main/java/org/bukkit/block/Hopper.java +@@ -6,4 +6,20 @@ import org.bukkit.loot.Lootable; + /** + * Represents a captured state of a hopper. + */ +-public interface Hopper extends Container, LootableBlockInventory { } // Paper ++public interface Hopper extends Container, LootableBlockInventory { // Paper ++ // Paper start - Expanded Hopper API ++ /** ++ * Sets the cooldown before the hopper transfers or sucks in another item ++ * @param cooldown the cooldown in ticks ++ * @throws IllegalArgumentException if the passed cooldown value is negative. ++ */ ++ void setTransferCooldown(@org.jetbrains.annotations.Range(from = 0, to = Integer.MAX_VALUE) int cooldown); ++ ++ /** ++ * Returns the cooldown before the hopper transfers or sucks in another item ++ * @return the cooldown in ticks ++ */ ++ int getTransferCooldown(); ++ // Paper end - Expanded Hopper API ++} ++ diff --git a/patches/server/1056-Expanded-Hopper-API.patch b/patches/server/1056-Expanded-Hopper-API.patch new file mode 100644 index 0000000000..67efc0d7a2 --- /dev/null +++ b/patches/server/1056-Expanded-Hopper-API.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: vicisacat +Date: Fri, 15 Mar 2024 17:35:40 +0100 +Subject: [PATCH] Expanded Hopper API + +== AT == +public net.minecraft.world.level.block.entity.HopperBlockEntity setCooldown(I)V +public net.minecraft.world.level.block.entity.HopperBlockEntity cooldownTime + +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java b/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java +index d446f18df647484e2f05ab642b73e914b06fdfed..af5f27fb5ebad1e05da2b7d1a0710a2ef9c6ebbe 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java +@@ -34,4 +34,17 @@ public class CraftHopper extends CraftLootable implements Hop + public CraftHopper copy() { + return new CraftHopper(this); + } ++ ++ // Paper start - Expanded Hopper API ++ @Override ++ public void setTransferCooldown(final int cooldown) { ++ com.google.common.base.Preconditions.checkArgument(cooldown >= 0, "Hooper transfer cooldown cannot be negative (" + cooldown + ")"); ++ getSnapshot().setCooldown(cooldown); ++ } ++ ++ @Override ++ public int getTransferCooldown() { ++ return getSnapshot().cooldownTime; ++ } ++ // Paper end - Expanded Hopper API + } From 09d6dfb0dfb1ea6dfdf247caa8e5b3c377711bcc Mon Sep 17 00:00:00 2001 From: Kichura <68134602+Kichura@users.noreply.github.com> Date: Tue, 19 Mar 2024 14:30:03 +0100 Subject: [PATCH 020/215] [ci skip] Upstream dependencies in workflow scripts. (#10338) --- .github/workflows/build.yml | 6 +++--- .github/workflows/pr_comment.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index af890ab325..e32e3a4335 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,12 +32,12 @@ jobs: distribution: 'temurin' - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@v1 + uses: gradle/wrapper-validation-action@v2 - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/actions/setup-gradle@v3 - name: Configure Build - uses: actions/github-script@v6 + uses: actions/github-script@v7 id: determine with: script: | diff --git a/.github/workflows/pr_comment.yml b/.github/workflows/pr_comment.yml index 2e3c6d5a55..15c059b790 100644 --- a/.github/workflows/pr_comment.yml +++ b/.github/workflows/pr_comment.yml @@ -17,7 +17,7 @@ jobs: if: github.event.workflow_run.conclusion == 'success' runs-on: ubuntu-latest steps: - - uses: actions/github-script@v6 + - uses: actions/github-script@v7 with: # This snippet is public-domain, taken from # https://github.com/oprypin/nightly.link/blob/master/.github/workflows/pr-comment.yml From 55ffcb1111acb558d470790485d8835768873ba8 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Tue, 19 Mar 2024 19:49:12 +0100 Subject: [PATCH 021/215] Fix tripwire disarming not working as intended --- ...re-disarming-not-working-as-intended.patch | 22 +++++ ...021-Fix-tripwire-state-inconsistency.patch | 87 ------------------- 2 files changed, 22 insertions(+), 87 deletions(-) create mode 100644 patches/server/1021-Fix-tripwire-disarming-not-working-as-intended.patch delete mode 100644 patches/server/1021-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/1021-Fix-tripwire-disarming-not-working-as-intended.patch b/patches/server/1021-Fix-tripwire-disarming-not-working-as-intended.patch new file mode 100644 index 0000000000..efe071cf68 --- /dev/null +++ b/patches/server/1021-Fix-tripwire-disarming-not-working-as-intended.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: DungeonDev +Date: Sun, 2 Jul 2023 02:34:54 +0100 +Subject: [PATCH] Fix tripwire disarming not working as intended + +Fixes MC-129055 + +diff --git a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java +index d9b3877257b31ca1b5acc4a47fbf5b993de69ae0..8bf94fcf5c46ffe6d90f8431338b768ef1a2dd61 100644 +--- a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java +@@ -201,9 +201,8 @@ public class TripWireHookBlock extends Block { + BlockState iblockdata4 = aiblockdata[l]; + + if (iblockdata4 != null) { ++ if (world.getBlockState(blockposition2).is(Blocks.TRIPWIRE)) { // Paper - Fix tripwire disarming not working as intended + world.setBlock(blockposition2, (BlockState) iblockdata4.trySetValue(TripWireHookBlock.ATTACHED, flag4), 3); +- if (!world.getBlockState(blockposition2).isAir()) { +- ; + } + } + } diff --git a/patches/server/1021-Fix-tripwire-state-inconsistency.patch b/patches/server/1021-Fix-tripwire-state-inconsistency.patch deleted file mode 100644 index bce767ae73..0000000000 --- a/patches/server/1021-Fix-tripwire-state-inconsistency.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nassim Jahnke -Date: Sun, 19 Dec 2021 21:11:20 +0100 -Subject: [PATCH] Fix tripwire state inconsistency - -This patch prevents updating and re-setting the tripwire when being removed in certain conditions - -diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java -index bdb99b799d1a97f1340c3d388d2901f7cb1c3527..3cb1db27dba902678a5848a1fb5e2c6ec6241e60 100644 ---- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java -@@ -91,7 +91,7 @@ public class TripWireBlock extends Block { - public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean moved) { - if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating - if (!moved && !state.is(newState.getBlock())) { -- this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true)); -+ this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix tripwire state inconsistency - } - } - -@@ -108,6 +108,12 @@ public class TripWireBlock extends Block { - - private void updateSource(Level world, BlockPos pos, BlockState state) { - if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating -+ // Paper start - fix tripwire state inconsistency -+ this.updateSource(world, pos, state, false); -+ } -+ -+ private void updateSource(Level world, BlockPos pos, BlockState state, boolean beingRemoved) { -+ // Paper end - fix tripwire state inconsistency - Direction[] aenumdirection = new Direction[]{Direction.SOUTH, Direction.WEST}; - int i = aenumdirection.length; - int j = 0; -@@ -123,7 +129,7 @@ public class TripWireBlock extends Block { - - if (iblockdata1.is(this.hook)) { - if (iblockdata1.getValue(TripWireHookBlock.FACING) == enumdirection.getOpposite()) { -- TripWireHookBlock.calculateState(world, blockposition1, iblockdata1, false, true, k, state); -+ TripWireHookBlock.calculateState(world, blockposition1, iblockdata1, false, true, k, state, beingRemoved); // Paper - fix tripwire state inconsistency - } - } else if (iblockdata1.is((Block) this)) { - ++k; -diff --git a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java -index d9b3877257b31ca1b5acc4a47fbf5b993de69ae0..7f2dcf6a9e69779e6f898284b58fb1e32902000c 100644 ---- a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java -@@ -118,7 +118,13 @@ public class TripWireHookBlock extends Block { - TripWireHookBlock.calculateState(world, pos, state, false, false, -1, (BlockState) null); - } - -- public static void calculateState(Level world, BlockPos pos, BlockState state, boolean flag, boolean flag1, int i, @Nullable BlockState iblockdata1) { -+ public static void calculateState(Level world, BlockPos pos, BlockState state, boolean beingRemoved, boolean flag1, int i, @Nullable BlockState iblockdata1) { -+ // Paper start - fix tripwire state inconsistency -+ calculateState(world, pos, state, beingRemoved, flag1, i, iblockdata1, false); -+ } -+ -+ public static void calculateState(Level world, BlockPos pos, BlockState state, boolean beingRemoved, boolean flag1, int i, @Nullable BlockState iblockdata1, boolean tripWireBeingRemoved) { -+ // Paper end - fix tripwire state inconsistency - Optional optional = state.getOptionalValue(TripWireHookBlock.FACING); - - if (optional.isPresent()) { -@@ -126,7 +132,7 @@ public class TripWireHookBlock extends Block { - boolean flag2 = (Boolean) state.getOptionalValue(TripWireHookBlock.ATTACHED).orElse(false); - boolean flag3 = (Boolean) state.getOptionalValue(TripWireHookBlock.POWERED).orElse(false); - Block block = state.getBlock(); -- boolean flag4 = !flag; -+ boolean flag4 = !beingRemoved; // Paper - fix tripwire state inconsistency - boolean flag5 = false; - int j = 0; - BlockState[] aiblockdata = new BlockState[42]; -@@ -156,6 +162,7 @@ public class TripWireHookBlock extends Block { - boolean flag7 = (Boolean) iblockdata2.getValue(TripWireBlock.POWERED); - - flag5 |= flag6 && flag7; -+ if (k != i || !tripWireBeingRemoved || !flag6) // Paper - fix tripwire state inconsistency; don't update the tripwire again if being removed and not disarmed - aiblockdata[k] = iblockdata2; - if (k == i) { - world.scheduleTick(pos, block, 10); -@@ -187,7 +194,7 @@ public class TripWireHookBlock extends Block { - // CraftBukkit end - - TripWireHookBlock.emitState(world, pos, flag4, flag5, flag2, flag3); -- if (!flag) { -+ if (!beingRemoved) { // Paper - fix tripwire state inconsistency - if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - Validate tripwire hook placement before update - world.setBlock(pos, (BlockState) iblockdata3.setValue(TripWireHookBlock.FACING, enumdirection), 3); - if (flag1) { From 05fe15e0fcbd4bffd507d89a0bd751ea26eaac9a Mon Sep 17 00:00:00 2001 From: maxcom1 <46265094+maxcom1@users.noreply.github.com> Date: Wed, 20 Mar 2024 20:35:10 +0100 Subject: [PATCH 022/215] Fire EntityChangeBlockEvent on beehive nectar deposit (#10306) * Add BeehiveNectarDepositEvent * Fire EntityChangeBlockEvent instead of a separate event --- ...ntityChangeBlockEvent-in-more-places.patch | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/patches/server/0779-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0779-Fire-EntityChangeBlockEvent-in-more-places.patch index 4c1d97360d..5d703466dc 100644 --- a/patches/server/0779-Fire-EntityChangeBlockEvent-in-more-places.patch +++ b/patches/server/0779-Fire-EntityChangeBlockEvent-in-more-places.patch @@ -4,6 +4,7 @@ Date: Mon, 9 Aug 2021 20:45:46 -0700 Subject: [PATCH] Fire EntityChangeBlockEvent in more places Co-authored-by: ChristopheG <61288881+chrisgdt@users.noreply.github.com> +Co-authored-by: maxcom1 <46265094+maxcom1@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/LightningBolt.java b/src/main/java/net/minecraft/world/entity/LightningBolt.java index a298f511c8a7eb208a0dd63b24ec050848a31476..41a3ca4edf4fa662f2af13efd7b78b56e24aa4a7 100644 @@ -300,6 +301,25 @@ index 6cccdd1d19488275ff3fe90838cf1c31e844d517..413b307acaad5823b9e06f49fa2faf56 generatoraccess.setBlock(blockposition, iblockdata1, 3); generatoraccess.gameEvent(GameEvent.BLOCK_CHANGE, blockposition, GameEvent.Context.of(entity, iblockdata1)); +diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +index 55b0e2bf98a285cdcd30e40d94192b7a1802efd8..d445ed0895293dd45c36226051f5809be8587ebe 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +@@ -264,7 +264,13 @@ public class BeehiveBlockEntity extends BlockEntity { + --j; + } + +- world.setBlockAndUpdate(blockposition, (BlockState) iblockdata.setValue(BeehiveBlock.HONEY_LEVEL, i + j)); ++ // Paper start - Fire EntityChangeBlockEvent in more places ++ BlockState newBlockState = iblockdata.setValue(BeehiveBlock.HONEY_LEVEL, i + j); ++ ++ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entitybee, blockposition, newBlockState)) { ++ world.setBlockAndUpdate(blockposition, newBlockState); ++ } ++ // Paper end - Fire EntityChangeBlockEvent in more places + } + } + } diff --git a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java index 67c9009b735429e887e706baf50a6023d572a46c..7956002e2d4d583c27e277562312d27ea6871557 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java From de620b8480372e2896633f36e04e15dd01443265 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Wed, 20 Mar 2024 13:42:29 -0700 Subject: [PATCH 023/215] Clone mutable types in events when changes are discarded (#10333) --- patches/api/0034-EntityPathfindEvent.patch | 4 +- patches/api/0076-AsyncTabCompleteEvent.patch | 8 +- patches/api/0082-PreCreatureSpawnEvent.patch | 4 +- ...-constructor-and-getChangedBlockData.patch | 4 +- patches/api/0155-PreSpawnerSpawnEvent.patch | 4 +- patches/api/0158-Turtle-API.patch | 8 +- patches/api/0168-BlockDestroyEvent.patch | 9 +- .../api/0247-Add-StructuresLocateEvent.patch | 4 +- patches/api/0260-Add-worldborder-events.patch | 4 +- ...utables-to-prevent-unexpected-issues.patch | 151 ++++++++++++++++++ 10 files changed, 175 insertions(+), 25 deletions(-) create mode 100644 patches/api/0468-Clone-mutables-to-prevent-unexpected-issues.patch diff --git a/patches/api/0034-EntityPathfindEvent.patch b/patches/api/0034-EntityPathfindEvent.patch index f4e8d04eb9..3586652e5c 100644 --- a/patches/api/0034-EntityPathfindEvent.patch +++ b/patches/api/0034-EntityPathfindEvent.patch @@ -7,7 +7,7 @@ Fires when an Entity decides to start moving to a location. diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EntityPathfindEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EntityPathfindEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..5804497f34bac9a9b6b16c6e5decb0119467df7b +index 0000000000000000000000000000000000000000..8267e8f1f0ade29a284831069e1268ee4b29e109 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/entity/EntityPathfindEvent.java @@ -0,0 +1,87 @@ @@ -74,7 +74,7 @@ index 0000000000000000000000000000000000000000..5804497f34bac9a9b6b16c6e5decb011 + */ + @NotNull + public Location getLoc() { -+ return this.location; ++ return this.location.clone(); + } + + @Override diff --git a/patches/api/0076-AsyncTabCompleteEvent.patch b/patches/api/0076-AsyncTabCompleteEvent.patch index d18880ff5f..9a7669b39b 100644 --- a/patches/api/0076-AsyncTabCompleteEvent.patch +++ b/patches/api/0076-AsyncTabCompleteEvent.patch @@ -15,7 +15,7 @@ Co-authored-by: Aikar diff --git a/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..e0847b6f0202bd8267c537f72a5e8c8cb7c6b1db +index 0000000000000000000000000000000000000000..8965974988ad20fbe1d45885f20a3a98d2e9595f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java @@ -0,0 +1,339 @@ @@ -208,7 +208,7 @@ index 0000000000000000000000000000000000000000..e0847b6f0202bd8267c537f72a5e8c8c + */ + @Nullable + public Location getLocation() { -+ return this.location; ++ return this.location != null ? this.location.clone() : null; + } + + /** @@ -534,7 +534,7 @@ index 0000000000000000000000000000000000000000..6f560a51277ccbd46a9142cfa057d276 + } +} diff --git a/src/main/java/org/bukkit/event/server/TabCompleteEvent.java b/src/main/java/org/bukkit/event/server/TabCompleteEvent.java -index 270e6d8ad4358baa256cee5f16cff281f063ce3b..4a3451af454295ac3e1b688e6665cad9fc594c82 100644 +index 270e6d8ad4358baa256cee5f16cff281f063ce3b..b43c3cb5c88eada186d6f81712c244aaa18fb53e 100644 --- a/src/main/java/org/bukkit/event/server/TabCompleteEvent.java +++ b/src/main/java/org/bukkit/event/server/TabCompleteEvent.java @@ -29,6 +29,13 @@ public class TabCompleteEvent extends Event implements Cancellable { @@ -570,7 +570,7 @@ index 270e6d8ad4358baa256cee5f16cff281f063ce3b..4a3451af454295ac3e1b688e6665cad9 + */ + @org.jetbrains.annotations.Nullable + public org.bukkit.Location getLocation() { -+ return loc; ++ return this.loc != null ? this.loc.clone() : null; + } + // Paper end + diff --git a/patches/api/0082-PreCreatureSpawnEvent.patch b/patches/api/0082-PreCreatureSpawnEvent.patch index 156b50a9c1..60f65dc98d 100644 --- a/patches/api/0082-PreCreatureSpawnEvent.patch +++ b/patches/api/0082-PreCreatureSpawnEvent.patch @@ -16,7 +16,7 @@ See: https://github.com/PaperMC/Paper/issues/917 diff --git a/src/main/java/com/destroystokyo/paper/event/entity/PreCreatureSpawnEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/PreCreatureSpawnEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..1d582118f19a41b499ee73b5e27ddb66ed34f06b +index 0000000000000000000000000000000000000000..633ef4dcc701916f2dbfefbbebd5994f93ffc2a4 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/entity/PreCreatureSpawnEvent.java @@ -0,0 +1,109 @@ @@ -64,7 +64,7 @@ index 0000000000000000000000000000000000000000..1d582118f19a41b499ee73b5e27ddb66 + */ + @NotNull + public Location getSpawnLocation() { -+ return this.location; ++ return this.location.clone(); + } + + /** diff --git a/patches/api/0142-Add-source-block-constructor-and-getChangedBlockData.patch b/patches/api/0142-Add-source-block-constructor-and-getChangedBlockData.patch index 9f9e760855..f12e6ac1f5 100644 --- a/patches/api/0142-Add-source-block-constructor-and-getChangedBlockData.patch +++ b/patches/api/0142-Add-source-block-constructor-and-getChangedBlockData.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add source block constructor and getChangedBlockData() to diff --git a/src/main/java/org/bukkit/event/block/BlockPhysicsEvent.java b/src/main/java/org/bukkit/event/block/BlockPhysicsEvent.java -index e3a5f5824ed882058f5bac5003f66ce79733a868..1d496e5a3d1541bf0a257a4358b3943fd6415204 100644 +index e3a5f5824ed882058f5bac5003f66ce79733a868..b23686d2e452dc0b8bde453b4a375f424cb7504a 100644 --- a/src/main/java/org/bukkit/event/block/BlockPhysicsEvent.java +++ b/src/main/java/org/bukkit/event/block/BlockPhysicsEvent.java @@ -32,6 +32,13 @@ public class BlockPhysicsEvent extends BlockEvent implements Cancellable { @@ -46,7 +46,7 @@ index e3a5f5824ed882058f5bac5003f66ce79733a868..1d496e5a3d1541bf0a257a4358b3943f + */ + @NotNull + public BlockData getChangedBlockData() { -+ return changed; ++ return changed.clone(); + } + // Paper end + diff --git a/patches/api/0155-PreSpawnerSpawnEvent.patch b/patches/api/0155-PreSpawnerSpawnEvent.patch index 8ef2cd0db2..4b6bbe6f7a 100644 --- a/patches/api/0155-PreSpawnerSpawnEvent.patch +++ b/patches/api/0155-PreSpawnerSpawnEvent.patch @@ -12,7 +12,7 @@ Dropped as it does not apply due to the earlier PreCreatureSpawnEvent patch not diff --git a/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..9a450a0095ed0aa9c92655c2f4e5732bccdd59c9 +index 0000000000000000000000000000000000000000..2910f0bf929d918c86510f29d9361bbc19411256 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java @@ -0,0 +1,29 @@ @@ -42,6 +42,6 @@ index 0000000000000000000000000000000000000000..9a450a0095ed0aa9c92655c2f4e5732b + + @NotNull + public Location getSpawnerLocation() { -+ return this.spawnerLocation; ++ return this.spawnerLocation.clone(); + } +} diff --git a/patches/api/0158-Turtle-API.patch b/patches/api/0158-Turtle-API.patch index 4d3712fd8c..3ec867d360 100644 --- a/patches/api/0158-Turtle-API.patch +++ b/patches/api/0158-Turtle-API.patch @@ -65,7 +65,7 @@ index 0000000000000000000000000000000000000000..cfbc8aaf862ac90e794ee38bf8a6cb9e +} diff --git a/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..e917e64e8ea266a3fc7387c42aad95927f0f0501 +index 0000000000000000000000000000000000000000..3029e406cd684efb5645e38711dff9c0bb7b01e4 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java @@ -0,0 +1,92 @@ @@ -116,7 +116,7 @@ index 0000000000000000000000000000000000000000..e917e64e8ea266a3fc7387c42aad9592 + */ + @NotNull + public Location getLocation() { -+ return this.location; ++ return this.location.clone(); + } + + /** @@ -163,7 +163,7 @@ index 0000000000000000000000000000000000000000..e917e64e8ea266a3fc7387c42aad9592 +} diff --git a/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..5cdc6b0c3db43279e2bb8043922b31f750ddb3f5 +index 0000000000000000000000000000000000000000..7a2fa4a11b47e4982d1644830d7e28f12b4378ec --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java @@ -0,0 +1,66 @@ @@ -210,7 +210,7 @@ index 0000000000000000000000000000000000000000..5cdc6b0c3db43279e2bb8043922b31f7 + */ + @NotNull + public Location getLocation() { -+ return this.location; ++ return this.location.clone(); + } + + @Override diff --git a/patches/api/0168-BlockDestroyEvent.patch b/patches/api/0168-BlockDestroyEvent.patch index 0235746334..d6ac7bfb8d 100644 --- a/patches/api/0168-BlockDestroyEvent.patch +++ b/patches/api/0168-BlockDestroyEvent.patch @@ -12,10 +12,10 @@ This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/com/destroystokyo/paper/event/block/BlockDestroyEvent.java b/src/main/java/com/destroystokyo/paper/event/block/BlockDestroyEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..d0421a4cbcb672cc06b40ad41fc06a67f6d2dbbb +index 0000000000000000000000000000000000000000..c0742b58ca2c098c27394915b624889ece1a9168 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/block/BlockDestroyEvent.java -@@ -0,0 +1,123 @@ +@@ -0,0 +1,122 @@ +package com.destroystokyo.paper.event.block; + +import org.bukkit.block.Block; @@ -79,9 +79,8 @@ index 0000000000000000000000000000000000000000..d0421a4cbcb672cc06b40ad41fc06a67 + /** + * @return The new state of this block (Air, or a Fluid type) + */ -+ @NotNull -+ public BlockData getNewState() { -+ return this.newState; ++ public @NotNull BlockData getNewState() { ++ return this.newState.clone(); + } + + /** diff --git a/patches/api/0247-Add-StructuresLocateEvent.patch b/patches/api/0247-Add-StructuresLocateEvent.patch index ae3aef5102..746b674c5d 100644 --- a/patches/api/0247-Add-StructuresLocateEvent.patch +++ b/patches/api/0247-Add-StructuresLocateEvent.patch @@ -176,7 +176,7 @@ index 0000000000000000000000000000000000000000..1ac3369455972aeb1ade5dc023d1f818 +} diff --git a/src/main/java/io/papermc/paper/event/world/StructuresLocateEvent.java b/src/main/java/io/papermc/paper/event/world/StructuresLocateEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..be86894561ff808d911e123b09bda72c9ed09185 +index 0000000000000000000000000000000000000000..582af444b058708638683e7d6f9b79685c04c061 --- /dev/null +++ b/src/main/java/io/papermc/paper/event/world/StructuresLocateEvent.java @@ -0,0 +1,213 @@ @@ -241,7 +241,7 @@ index 0000000000000000000000000000000000000000..be86894561ff808d911e123b09bda72c + * @return {@link Location} where search begins + */ + public @NotNull Location getOrigin() { -+ return this.origin; ++ return this.origin.clone(); + } + + /** diff --git a/patches/api/0260-Add-worldborder-events.patch b/patches/api/0260-Add-worldborder-events.patch index 1c889b6cdd..9f3ae70435 100644 --- a/patches/api/0260-Add-worldborder-events.patch +++ b/patches/api/0260-Add-worldborder-events.patch @@ -202,7 +202,7 @@ index 0000000000000000000000000000000000000000..a44964593b7f78c5086dc4928e75ad89 +} diff --git a/src/main/java/io/papermc/paper/event/world/border/WorldBorderCenterChangeEvent.java b/src/main/java/io/papermc/paper/event/world/border/WorldBorderCenterChangeEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..a90f67e902c6ae35b2399e6f72a3ff8a5c15d05a +index 0000000000000000000000000000000000000000..dd96dcc0dd68d71bf27c758ed496153d434fb386 --- /dev/null +++ b/src/main/java/io/papermc/paper/event/world/border/WorldBorderCenterChangeEvent.java @@ -0,0 +1,79 @@ @@ -242,7 +242,7 @@ index 0000000000000000000000000000000000000000..a90f67e902c6ae35b2399e6f72a3ff8a + */ + @NotNull + public Location getOldCenter() { -+ return this.oldCenter; ++ return this.oldCenter.clone(); + } + + /** diff --git a/patches/api/0468-Clone-mutables-to-prevent-unexpected-issues.patch b/patches/api/0468-Clone-mutables-to-prevent-unexpected-issues.patch new file mode 100644 index 0000000000..e84ea7d3aa --- /dev/null +++ b/patches/api/0468-Clone-mutables-to-prevent-unexpected-issues.patch @@ -0,0 +1,151 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Sat, 16 Mar 2024 11:10:48 -0700 +Subject: [PATCH] Clone mutables to prevent unexpected issues + +There are lots of locations in the API where mutable +types are not cloned, either on return or when passed +as a parameter and assigned to a field, which can cause +unexpected behaviors. Let this be a lesson to use +immutable types for simple things Location, Vector, and +others. + +diff --git a/src/main/java/org/bukkit/event/block/BlockCanBuildEvent.java b/src/main/java/org/bukkit/event/block/BlockCanBuildEvent.java +index 08d09c2a92d8aa6adf6610cc05905d58a76fce1f..c74ac0cb004aa219ce2f761969a4bb46cb7c9160 100644 +--- a/src/main/java/org/bukkit/event/block/BlockCanBuildEvent.java ++++ b/src/main/java/org/bukkit/event/block/BlockCanBuildEvent.java +@@ -102,7 +102,7 @@ public class BlockCanBuildEvent extends BlockEvent { + */ + @NotNull + public BlockData getBlockData() { +- return blockData; ++ return blockData.clone(); // Paper - clone because mutation isn't used + } + + /** +diff --git a/src/main/java/org/bukkit/event/entity/EntityChangeBlockEvent.java b/src/main/java/org/bukkit/event/entity/EntityChangeBlockEvent.java +index 1a9575ad4c81aefa5ef0b927f6ac8f7064b55c49..24e1a49e48dd8f9eb2515b2ffe472a0c4d2bc09b 100644 +--- a/src/main/java/org/bukkit/event/entity/EntityChangeBlockEvent.java ++++ b/src/main/java/org/bukkit/event/entity/EntityChangeBlockEvent.java +@@ -61,7 +61,7 @@ public class EntityChangeBlockEvent extends EntityEvent implements Cancellable { + */ + @NotNull + public BlockData getBlockData() { +- return to; ++ return to.clone(); // Paper - clone because mutation isn't used + } + + @NotNull +diff --git a/src/main/java/org/bukkit/event/entity/EntityExplodeEvent.java b/src/main/java/org/bukkit/event/entity/EntityExplodeEvent.java +index 099efafa14c10910e4ed04abb1823f0c1a96b6a6..8506fa03293c575c35b55b052224807470fdbd98 100644 +--- a/src/main/java/org/bukkit/event/entity/EntityExplodeEvent.java ++++ b/src/main/java/org/bukkit/event/entity/EntityExplodeEvent.java +@@ -59,7 +59,7 @@ public class EntityExplodeEvent extends EntityEvent implements Cancellable { + */ + @NotNull + public Location getLocation() { +- return location; ++ return location.clone(); // Paper - clone to avoid changes + } + + /** +diff --git a/src/main/java/org/bukkit/event/entity/EntityPortalEnterEvent.java b/src/main/java/org/bukkit/event/entity/EntityPortalEnterEvent.java +index 6818e9f0ba32ca1a1e612703f7526b29f5a6438f..e4e3d2e22c28ef251d76c48ade267b4eb3749e7d 100644 +--- a/src/main/java/org/bukkit/event/entity/EntityPortalEnterEvent.java ++++ b/src/main/java/org/bukkit/event/entity/EntityPortalEnterEvent.java +@@ -24,7 +24,7 @@ public class EntityPortalEnterEvent extends EntityEvent { + */ + @NotNull + public Location getLocation() { +- return location; ++ return location.clone(); // Paper - clone to avoid changes + } + + @NotNull +diff --git a/src/main/java/org/bukkit/event/entity/ItemDespawnEvent.java b/src/main/java/org/bukkit/event/entity/ItemDespawnEvent.java +index 6fc66197eb2c5d59c70d8d028b7963748371edbe..2bb29fa449cd6c90b52d2786ed15b6154d591607 100644 +--- a/src/main/java/org/bukkit/event/entity/ItemDespawnEvent.java ++++ b/src/main/java/org/bukkit/event/entity/ItemDespawnEvent.java +@@ -46,7 +46,7 @@ public class ItemDespawnEvent extends EntityEvent implements Cancellable { + */ + @NotNull + public Location getLocation() { +- return location; ++ return location.clone(); // Paper - clone to avoid changes + } + + @NotNull +diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java +index d0a437bd8aeec18f800893f51ece06deb0c8972c..50fad23cf4d9f591b12a9eaebeb4e26f18e8528d 100644 +--- a/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java ++++ b/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java +@@ -31,7 +31,7 @@ public class VehicleBlockCollisionEvent extends VehicleCollisionEvent { + */ + @NotNull + public org.bukkit.util.Vector getVelocity() { +- return velocity; ++ return velocity.clone(); + } + // Paper end + +diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleMoveEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleMoveEvent.java +index 7bfb84d3948c773e943374316ea25a19288ec7d0..fc4cf7b21b24fe38617fa150f697bc29da76754e 100644 +--- a/src/main/java/org/bukkit/event/vehicle/VehicleMoveEvent.java ++++ b/src/main/java/org/bukkit/event/vehicle/VehicleMoveEvent.java +@@ -27,7 +27,7 @@ public class VehicleMoveEvent extends VehicleEvent { + */ + @NotNull + public Location getFrom() { +- return from; ++ return from.clone(); // Paper - clone to avoid changes + } + + /** +@@ -37,7 +37,7 @@ public class VehicleMoveEvent extends VehicleEvent { + */ + @NotNull + public Location getTo() { +- return to; ++ return to.clone(); // Paper - clone to avoid changes + } + + +diff --git a/src/main/java/org/bukkit/event/world/GenericGameEvent.java b/src/main/java/org/bukkit/event/world/GenericGameEvent.java +index 2a2a329877d8da45c2d6afecf78ce88d52635cad..fb975fefc74d8c9746cab4c02860f55654cf92f7 100644 +--- a/src/main/java/org/bukkit/event/world/GenericGameEvent.java ++++ b/src/main/java/org/bukkit/event/world/GenericGameEvent.java +@@ -49,7 +49,7 @@ public class GenericGameEvent extends WorldEvent implements Cancellable { + */ + @NotNull + public Location getLocation() { +- return location; ++ return location.clone(); // Paper - clone to avoid changes + } + + /** +diff --git a/src/main/java/org/bukkit/event/world/SpawnChangeEvent.java b/src/main/java/org/bukkit/event/world/SpawnChangeEvent.java +index 9ce93d00935446589cb2bb970cb540d109616e85..73997ae04ff39ac3984c59de32aaced9eb72ce16 100644 +--- a/src/main/java/org/bukkit/event/world/SpawnChangeEvent.java ++++ b/src/main/java/org/bukkit/event/world/SpawnChangeEvent.java +@@ -25,7 +25,7 @@ public class SpawnChangeEvent extends WorldEvent { + */ + @NotNull + public Location getPreviousLocation() { +- return previousLocation; ++ return previousLocation.clone(); // Paper - clone to avoid changes + } + + @NotNull +diff --git a/src/main/java/org/bukkit/event/world/StructureGrowEvent.java b/src/main/java/org/bukkit/event/world/StructureGrowEvent.java +index 7af8d6e51c824cf0592b722b834f1d4986e3cc08..783e74bc382f0f6d24203fde7b811f588a674731 100644 +--- a/src/main/java/org/bukkit/event/world/StructureGrowEvent.java ++++ b/src/main/java/org/bukkit/event/world/StructureGrowEvent.java +@@ -39,7 +39,7 @@ public class StructureGrowEvent extends WorldEvent implements Cancellable { + */ + @NotNull + public Location getLocation() { +- return location; ++ return location.clone(); // Paper - clone to avoid changes + } + + /** From 41ffa0cf8c26f6137a0d21d45067fee6d5896edf Mon Sep 17 00:00:00 2001 From: TonytheMacaroni Date: Wed, 20 Mar 2024 17:33:34 -0400 Subject: [PATCH 024/215] Expose power on fireballs (#10302) --- patches/api/0072-Add-PlayerJumpEvent.patch | 4 +- patches/api/0298-Missing-Entity-API.patch | 38 +++++++++++++++++++ patches/server/0586-Missing-Entity-API.patch | 26 +++++++++++++ ...48-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...-method-of-Fireballs-change-the-trav.patch | 30 --------------- ...> 0949-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 0 ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 0953-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...em-packets-with-collector-as-source.patch} | 0 ... => 0957-Expand-LingeringPotion-API.patch} | 0 ....patch => 0958-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...962-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 2 +- ...tch => 0966-Add-Structure-check-API.patch} | 0 ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 2 +- ...-Dont-resend-blocks-on-interactions.patch} | 0 ...tch => 0970-add-more-scoreboard-API.patch} | 0 ...stry.patch => 0971-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 0 ...h => 0973-Add-experience-points-API.patch} | 0 ...h => 0974-Add-drops-to-shear-events.patch} | 0 ...> 0975-Add-PlayerShieldDisableEvent.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 0 ...-experience-dropping-on-block-break.patch} | 0 ...> 0978-Fixup-NamespacedKey-handling.patch} | 0 ...79-Expose-LootTable-of-DecoratedPot.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 0 ...> 0981-Rewrite-dataconverter-system.patch} | 0 ...3-Starlight.patch => 0982-Starlight.patch} | 0 ....patch => 0983-Rewrite-chunk-system.patch} | 2 +- ...incremental-chunk-and-player-saving.patch} | 0 ...dBounds-and-getBlockState-for-inlin.patch} | 0 ...tem-frames-performance-and-bug-fixe.patch} | 0 ...ing-for-EntityLiving-hasLineOfSight.patch} | 0 ...Manager-and-add-advanced-packet-sup.patch} | 0 ...89-Allow-Saving-of-Oversized-Chunks.patch} | 0 ...90-Fix-World-isChunkGenerated-calls.patch} | 0 ...991-Flat-bedrock-generator-settings.patch} | 0 ...=> 0992-Entity-Activation-Range-2.0.patch} | 2 +- ...0993-Optional-per-player-mob-spawns.patch} | 0 ...5-Anti-Xray.patch => 0994-Anti-Xray.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 0 ...timize-Collision-to-not-load-chunks.patch} | 2 +- ...alSelector-Goal.Flag-Set-operations.patch} | 0 ...98-Entity-load-save-limit-per-chunk.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 0 ...h => 1000-Improved-Watchdog-Support.patch} | 2 +- ...> 1001-Optimize-Voxel-Shape-Merging.patch} | 0 ...ch => 1002-Write-SavedData-IO-async.patch} | 0 ...nd-End-Portal-Frames-from-being-des.patch} | 0 ...ance-map-to-optimise-entity-tracker.patch} | 2 +- ...Optimize-Bit-Operations-by-inlining.patch} | 0 ...> 1006-Remove-streams-from-hot-code.patch} | 0 ...-Eigencraft-redstone-implementation.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 0 ...-Improve-boat-collision-performance.patch} | 0 ...=> 1011-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...> 1013-Execute-chunk-tasks-mid-tick.patch} | 0 ... 1014-Optimise-random-block-ticking.patch} | 0 ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 2 +- ...tch => 1018-Collision-optimisations.patch} | 2 +- ...n-checking-in-player-move-packet-ha.patch} | 0 ...e-disarming-not-working-as-intended.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ate-Current-redstone-implementation.patch} | 0 ...23-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 1024-Properly-resend-entities.patch} | 0 ...pers.patch => 1025-Optimize-Hoppers.patch} | 2 +- ...-Improve-performance-of-mass-crafts.patch} | 0 ...> 1027-Actually-optimise-explosions.patch} | 0 ... 1028-Optimise-chunk-tick-iteration.patch} | 0 ...atch => 1029-Lag-compensation-ticks.patch} | 0 ...30-Optimise-nearby-player-retrieval.patch} | 0 ... 1031-Distance-manager-tick-timings.patch} | 0 ...-Oversized-block-entities-in-chunks.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...h => 1034-Add-ShulkerDuplicateEvent.patch} | 0 ...dd-api-for-spawn-egg-texture-colors.patch} | 0 ...6-Disable-memory-reserve-allocating.patch} | 0 ...=> 1037-Improve-tag-parser-handling.patch} | 0 ... => 1038-Add-Lifecycle-Event-system.patch} | 0 ...nduit-API.patch => 1039-Conduit-API.patch} | 0 ...patch => 1040-ItemStack-Tooltip-API.patch} | 0 ...ackOverflowError-for-some-dispenses.patch} | 0 ...e-changed-item-from-dispense-events.patch} | 0 ...Snapshot-includeLightData-parameter.patch} | 0 ...PI.patch => 1044-Add-FluidState-API.patch} | 0 ...patch => 1045-add-number-format-api.patch} | 0 ...eck-if-itemstack-is-stackable-first.patch} | 0 ...ByEntityEvent-for-unowned-wither-sk.patch} | 0 ...patch => 1048-improve-BanList-types.patch} | 0 ...-Configurable-max-block-fluid-ticks.patch} | 0 ...50-disable-forced-empty-world-ticks.patch} | 0 ...=> 1051-Suspicious-Effect-Entry-API.patch} | 0 ...-Per-world-ticks-per-spawn-settings.patch} | 0 ...ng-message-for-initial-server-start.patch} | 0 ....patch => 1054-Fix-DamageSource-API.patch} | 0 ...I.patch => 1055-Expanded-Hopper-API.patch} | 0 112 files changed, 76 insertions(+), 42 deletions(-) rename patches/server/{0949-Fix-UnsafeValues-loadAdvancement.patch => 0948-Fix-UnsafeValues-loadAdvancement.patch} (100%) delete mode 100644 patches/server/0948-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename patches/server/{0950-Add-player-idle-duration-API.patch => 0949-Add-player-idle-duration-API.patch} (100%) rename patches/server/{0951-Don-t-check-if-we-can-see-non-visible-entities.patch => 0950-Don-t-check-if-we-can-see-non-visible-entities.patch} (100%) rename patches/server/{0952-Fix-NPE-in-SculkBloomEvent-world-access.patch => 0951-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{0953-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 0952-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/server/{0954-Optimize-VarInts.patch => 0953-Optimize-VarInts.patch} (100%) rename patches/server/{0955-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0954-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{0956-Add-predicate-for-blocks-when-raytracing.patch => 0955-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/server/{0957-Broadcast-take-item-packets-with-collector-as-source.patch => 0956-Broadcast-take-item-packets-with-collector-as-source.patch} (100%) rename patches/server/{0958-Expand-LingeringPotion-API.patch => 0957-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{0959-Add-MaterialTagsTest.patch => 0958-Add-MaterialTagsTest.patch} (100%) rename patches/server/{0960-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 0959-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/server/{0961-Add-hand-to-fish-event-for-all-player-interactions.patch => 0960-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{0962-Fix-several-issues-with-EntityBreedEvent.patch => 0961-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{0963-Add-UUID-attribute-modifier-API.patch => 0962-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{0964-Fix-missing-event-call-for-entity-teleport-API.patch => 0963-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{0965-Lazily-create-LootContext-for-criterions.patch => 0964-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{0966-Don-t-fire-sync-events-during-worldgen.patch => 0965-Don-t-fire-sync-events-during-worldgen.patch} (99%) rename patches/server/{0967-Add-Structure-check-API.patch => 0966-Add-Structure-check-API.patch} (100%) rename patches/server/{0968-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 0967-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{0969-Restore-vanilla-entity-drops-behavior.patch => 0968-Restore-vanilla-entity-drops-behavior.patch} (99%) rename patches/server/{0970-Dont-resend-blocks-on-interactions.patch => 0969-Dont-resend-blocks-on-interactions.patch} (100%) rename patches/server/{0971-add-more-scoreboard-API.patch => 0970-add-more-scoreboard-API.patch} (100%) rename patches/server/{0972-Improve-Registry.patch => 0971-Improve-Registry.patch} (100%) rename patches/server/{0973-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 0972-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (100%) rename patches/server/{0974-Add-experience-points-API.patch => 0973-Add-experience-points-API.patch} (100%) rename patches/server/{0975-Add-drops-to-shear-events.patch => 0974-Add-drops-to-shear-events.patch} (100%) rename patches/server/{0976-Add-PlayerShieldDisableEvent.patch => 0975-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/server/{0977-Validate-ResourceLocation-in-NBT-reading.patch => 0976-Validate-ResourceLocation-in-NBT-reading.patch} (100%) rename patches/server/{0978-Properly-handle-experience-dropping-on-block-break.patch => 0977-Properly-handle-experience-dropping-on-block-break.patch} (100%) rename patches/server/{0979-Fixup-NamespacedKey-handling.patch => 0978-Fixup-NamespacedKey-handling.patch} (100%) rename patches/server/{0980-Expose-LootTable-of-DecoratedPot.patch => 0979-Expose-LootTable-of-DecoratedPot.patch} (100%) rename patches/server/{0981-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 0980-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (100%) rename patches/server/{0982-Rewrite-dataconverter-system.patch => 0981-Rewrite-dataconverter-system.patch} (100%) rename patches/server/{0983-Starlight.patch => 0982-Starlight.patch} (100%) rename patches/server/{0984-Rewrite-chunk-system.patch => 0983-Rewrite-chunk-system.patch} (99%) rename patches/server/{0985-incremental-chunk-and-player-saving.patch => 0984-incremental-chunk-and-player-saving.patch} (100%) rename patches/server/{0986-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch => 0985-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch} (100%) rename patches/server/{0987-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch => 0986-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch} (100%) rename patches/server/{0988-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch => 0987-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch} (100%) rename patches/server/{0989-Optimize-Network-Manager-and-add-advanced-packet-sup.patch => 0988-Optimize-Network-Manager-and-add-advanced-packet-sup.patch} (100%) rename patches/server/{0990-Allow-Saving-of-Oversized-Chunks.patch => 0989-Allow-Saving-of-Oversized-Chunks.patch} (100%) rename patches/server/{0991-Fix-World-isChunkGenerated-calls.patch => 0990-Fix-World-isChunkGenerated-calls.patch} (100%) rename patches/server/{0992-Flat-bedrock-generator-settings.patch => 0991-Flat-bedrock-generator-settings.patch} (100%) rename patches/server/{0993-Entity-Activation-Range-2.0.patch => 0992-Entity-Activation-Range-2.0.patch} (99%) rename patches/server/{0994-Optional-per-player-mob-spawns.patch => 0993-Optional-per-player-mob-spawns.patch} (100%) rename patches/server/{0995-Anti-Xray.patch => 0994-Anti-Xray.patch} (100%) rename patches/server/{0996-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0995-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (100%) rename patches/server/{0997-Optimize-Collision-to-not-load-chunks.patch => 0996-Optimize-Collision-to-not-load-chunks.patch} (98%) rename patches/server/{0998-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => 0997-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (100%) rename patches/server/{0999-Entity-load-save-limit-per-chunk.patch => 0998-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/server/{1000-Fix-and-optimise-world-force-upgrading.patch => 0999-Fix-and-optimise-world-force-upgrading.patch} (100%) rename patches/server/{1001-Improved-Watchdog-Support.patch => 1000-Improved-Watchdog-Support.patch} (99%) rename patches/server/{1002-Optimize-Voxel-Shape-Merging.patch => 1001-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/server/{1003-Write-SavedData-IO-async.patch => 1002-Write-SavedData-IO-async.patch} (100%) rename patches/server/{1004-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 1003-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (100%) rename patches/server/{1005-Use-distance-map-to-optimise-entity-tracker.patch => 1004-Use-distance-map-to-optimise-entity-tracker.patch} (99%) rename patches/server/{1006-Optimize-Bit-Operations-by-inlining.patch => 1005-Optimize-Bit-Operations-by-inlining.patch} (100%) rename patches/server/{1007-Remove-streams-from-hot-code.patch => 1006-Remove-streams-from-hot-code.patch} (100%) rename patches/server/{1008-Eigencraft-redstone-implementation.patch => 1007-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{1010-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 1009-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (100%) rename patches/server/{1011-Improve-boat-collision-performance.patch => 1010-Improve-boat-collision-performance.patch} (100%) rename patches/server/{1012-Optimise-general-POI-access.patch => 1011-Optimise-general-POI-access.patch} (100%) rename patches/server/{1013-Custom-table-implementation-for-blockstate-state-loo.patch => 1012-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{1014-Execute-chunk-tasks-mid-tick.patch => 1013-Execute-chunk-tasks-mid-tick.patch} (100%) rename patches/server/{1015-Optimise-random-block-ticking.patch => 1014-Optimise-random-block-ticking.patch} (100%) rename patches/server/{1016-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1015-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{1017-Use-Velocity-compression-and-cipher-natives.patch => 1016-Use-Velocity-compression-and-cipher-natives.patch} (100%) rename patches/server/{1018-Detail-more-information-in-watchdog-dumps.patch => 1017-Detail-more-information-in-watchdog-dumps.patch} (99%) rename patches/server/{1019-Collision-optimisations.patch => 1018-Collision-optimisations.patch} (99%) rename patches/server/{1020-Optimise-collision-checking-in-player-move-packet-ha.patch => 1019-Optimise-collision-checking-in-player-move-packet-ha.patch} (100%) rename patches/server/{1021-Fix-tripwire-disarming-not-working-as-intended.patch => 1020-Fix-tripwire-disarming-not-working-as-intended.patch} (100%) rename patches/server/{1022-Fix-entity-type-tags-suggestions-in-selectors.patch => 1021-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{1023-Add-Alternate-Current-redstone-implementation.patch => 1022-Add-Alternate-Current-redstone-implementation.patch} (100%) rename patches/server/{1024-optimize-dirt-and-snow-spreading.patch => 1023-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{1025-Properly-resend-entities.patch => 1024-Properly-resend-entities.patch} (100%) rename patches/server/{1026-Optimize-Hoppers.patch => 1025-Optimize-Hoppers.patch} (99%) rename patches/server/{1027-Improve-performance-of-mass-crafts.patch => 1026-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{1028-Actually-optimise-explosions.patch => 1027-Actually-optimise-explosions.patch} (100%) rename patches/server/{1029-Optimise-chunk-tick-iteration.patch => 1028-Optimise-chunk-tick-iteration.patch} (100%) rename patches/server/{1030-Lag-compensation-ticks.patch => 1029-Lag-compensation-ticks.patch} (100%) rename patches/server/{1031-Optimise-nearby-player-retrieval.patch => 1030-Optimise-nearby-player-retrieval.patch} (100%) rename patches/server/{1032-Distance-manager-tick-timings.patch => 1031-Distance-manager-tick-timings.patch} (100%) rename patches/server/{1033-Handle-Oversized-block-entities-in-chunks.patch => 1032-Handle-Oversized-block-entities-in-chunks.patch} (100%) rename patches/server/{1034-Send-full-pos-packets-for-hard-colliding-entities.patch => 1033-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{1035-Add-ShulkerDuplicateEvent.patch => 1034-Add-ShulkerDuplicateEvent.patch} (100%) rename patches/server/{1036-Add-api-for-spawn-egg-texture-colors.patch => 1035-Add-api-for-spawn-egg-texture-colors.patch} (100%) rename patches/server/{1037-Disable-memory-reserve-allocating.patch => 1036-Disable-memory-reserve-allocating.patch} (100%) rename patches/server/{1038-Improve-tag-parser-handling.patch => 1037-Improve-tag-parser-handling.patch} (100%) rename patches/server/{1039-Add-Lifecycle-Event-system.patch => 1038-Add-Lifecycle-Event-system.patch} (100%) rename patches/server/{1040-Conduit-API.patch => 1039-Conduit-API.patch} (100%) rename patches/server/{1041-ItemStack-Tooltip-API.patch => 1040-ItemStack-Tooltip-API.patch} (100%) rename patches/server/{1042-Fix-possible-StackOverflowError-for-some-dispenses.patch => 1041-Fix-possible-StackOverflowError-for-some-dispenses.patch} (100%) rename patches/server/{1043-Properly-track-the-changed-item-from-dispense-events.patch => 1042-Properly-track-the-changed-item-from-dispense-events.patch} (100%) rename patches/server/{1044-Add-getChunkSnapshot-includeLightData-parameter.patch => 1043-Add-getChunkSnapshot-includeLightData-parameter.patch} (100%) rename patches/server/{1045-Add-FluidState-API.patch => 1044-Add-FluidState-API.patch} (100%) rename patches/server/{1046-add-number-format-api.patch => 1045-add-number-format-api.patch} (100%) rename patches/server/{1047-check-if-itemstack-is-stackable-first.patch => 1046-check-if-itemstack-is-stackable-first.patch} (100%) rename patches/server/{1048-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch => 1047-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch} (100%) rename patches/server/{1049-improve-BanList-types.patch => 1048-improve-BanList-types.patch} (100%) rename patches/server/{1050-Configurable-max-block-fluid-ticks.patch => 1049-Configurable-max-block-fluid-ticks.patch} (100%) rename patches/server/{1051-disable-forced-empty-world-ticks.patch => 1050-disable-forced-empty-world-ticks.patch} (100%) rename patches/server/{1052-Suspicious-Effect-Entry-API.patch => 1051-Suspicious-Effect-Entry-API.patch} (100%) rename patches/server/{1053-Per-world-ticks-per-spawn-settings.patch => 1052-Per-world-ticks-per-spawn-settings.patch} (100%) rename patches/server/{1054-Add-onboarding-message-for-initial-server-start.patch => 1053-Add-onboarding-message-for-initial-server-start.patch} (100%) rename patches/server/{1055-Fix-DamageSource-API.patch => 1054-Fix-DamageSource-API.patch} (100%) rename patches/server/{1056-Expanded-Hopper-API.patch => 1055-Expanded-Hopper-API.patch} (100%) diff --git a/patches/api/0072-Add-PlayerJumpEvent.patch b/patches/api/0072-Add-PlayerJumpEvent.patch index a65192d7a1..fef1ccd347 100644 --- a/patches/api/0072-Add-PlayerJumpEvent.patch +++ b/patches/api/0072-Add-PlayerJumpEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add PlayerJumpEvent diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerJumpEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerJumpEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..d3c319298d360967b853cf0168c0a1833f094779 +index 0000000000000000000000000000000000000000..8c2fd2c1120d634052f9bc345365272ad3a67b6f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerJumpEvent.java @@ -0,0 +1,106 @@ @@ -102,7 +102,7 @@ index 0000000000000000000000000000000000000000..d3c319298d360967b853cf0168c0a183 + */ + @NotNull + public Location getTo() { -+ return this.to; ++ return this.to.clone(); + } + + @NotNull diff --git a/patches/api/0298-Missing-Entity-API.patch b/patches/api/0298-Missing-Entity-API.patch index 2e2d58e8f3..33d18a3ebe 100644 --- a/patches/api/0298-Missing-Entity-API.patch +++ b/patches/api/0298-Missing-Entity-API.patch @@ -9,6 +9,7 @@ Co-authored-by: William Blake Galbreath Co-authored-by: SoSeDiK Co-authored-by: booky10 Co-authored-by: Amin +Co-authored-by: TrollyLoki diff --git a/src/main/java/io/papermc/paper/entity/SchoolableFish.java b/src/main/java/io/papermc/paper/entity/SchoolableFish.java new file mode 100644 @@ -413,6 +414,43 @@ index 9e7f42caab1204036f4203354c115fd40c6def92..138d2530de2410f4a9424dabd3e5ce0c + int getLifetimeTicks(); + // Paper end } +diff --git a/src/main/java/org/bukkit/entity/Fireball.java b/src/main/java/org/bukkit/entity/Fireball.java +index 7a44707f2307dc4dbfea4de3f4baf3cc0490dc93..d0e82102425e54274be9c4769634d754319d6196 100644 +--- a/src/main/java/org/bukkit/entity/Fireball.java ++++ b/src/main/java/org/bukkit/entity/Fireball.java +@@ -23,4 +23,32 @@ public interface Fireball extends Projectile, Explosive { + @NotNull + public Vector getDirection(); + ++ // Paper start - Expose power on fireball projectiles ++ /** ++ * {@inheritDoc} ++ *

++ * Note: For fireball entities, their movement is also controlled by their power. ++ * ++ * @param velocity New velocity to travel with ++ * @see #setPower(Vector) ++ */ ++ @Override ++ public void setVelocity(@NotNull Vector velocity); ++ ++ /** ++ * Sets the power of a fireball. The power determines the direction and magnitude of its acceleration. ++ * ++ * @param power the power ++ */ ++ public void setPower(@NotNull Vector power); ++ ++ /** ++ * Gets the power of a fireball. The power determines the direction and magnitude of its acceleration. ++ * ++ * @return the power ++ */ ++ @NotNull ++ public Vector getPower(); ++ // Paper end - Expose power on fireball projectiles ++ + } diff --git a/src/main/java/org/bukkit/entity/Fox.java b/src/main/java/org/bukkit/entity/Fox.java index c61a473453f33f9d10c330fc46cfa9d52251fe49..473a7e36ad64f866d1d2e09e2ecb2e9881668faf 100644 --- a/src/main/java/org/bukkit/entity/Fox.java diff --git a/patches/server/0586-Missing-Entity-API.patch b/patches/server/0586-Missing-Entity-API.patch index 1d25ac6396..501d3329dd 100644 --- a/patches/server/0586-Missing-Entity-API.patch +++ b/patches/server/0586-Missing-Entity-API.patch @@ -36,6 +36,7 @@ Co-authored-by: William Blake Galbreath Co-authored-by: SoSeDiK Co-authored-by: booky10 Co-authored-by: Amin +Co-authored-by: TrollyLoki diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java index 8117578ced94aa6bf01871f6526a388385c4adf2..59699c59fdfc611177fdb3136f84ab539b17d9c9 100644 @@ -666,6 +667,31 @@ index fc0f0e841dc974d080e1abb9bbafb5165801131f..d657fd2c507a5b215aeab0a5f3e9c2ee + } + // Paper end } +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java +index 73cb7aa01af3eed71b05b1a539f082b26dcd8d60..e1a2f0924da6ebcdf332040f922226af5d8a2d45 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java +@@ -59,6 +59,20 @@ public class CraftFireball extends AbstractProjectile implements Fireball { + this.update(); // SPIGOT-6579 + } + ++ // Paper start - Expose power on fireball projectiles ++ @Override ++ public void setPower(final Vector power) { ++ this.getHandle().xPower = power.getX(); ++ this.getHandle().yPower = power.getY(); ++ this.getHandle().zPower = power.getZ(); ++ } ++ ++ @Override ++ public Vector getPower() { ++ return new Vector(this.getHandle().xPower, this.getHandle().yPower, this.getHandle().zPower); ++ } ++ // Paper end - Expose power on fireball projectiles ++ + @Override + public AbstractHurtingProjectile getHandle() { + return (AbstractHurtingProjectile) this.entity; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java index 17164811bbcf983bef62c47bc99330074762267b..c455deb4fd2a7684bcc01a8212c362a2375c190b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java diff --git a/patches/server/0949-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0948-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/0949-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/0948-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/0948-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/0948-Make-setVelocity-method-of-Fireballs-change-the-trav.patch deleted file mode 100644 index 3af04ed113..0000000000 --- a/patches/server/0948-Make-setVelocity-method-of-Fireballs-change-the-trav.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: TrollyLoki -Date: Tue, 10 Oct 2023 00:45:01 -0400 -Subject: [PATCH] Make setVelocity method of Fireballs change the travel - direction to an arbitrary vector - - -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -index 2783e218d5e5c24787429237974e196761f4d02b..1d8aab2fda18c6e2bb30f6ba4a6325263267b628 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -@@ -46,6 +46,18 @@ public class CraftFireball extends AbstractProjectile implements Fireball { - this.update(); // SPIGOT-6579 - } - -+ // Paper start - set direction without normalizing -+ @Override -+ public void setVelocity(Vector velocity) { -+ Preconditions.checkArgument(velocity != null, "Vector velocity cannot be null"); -+ velocity.checkFinite(); -+ this.getHandle().xPower = velocity.getX(); -+ this.getHandle().yPower = velocity.getY(); -+ this.getHandle().zPower = velocity.getZ(); -+ update(); -+ } -+ // Paper end - set direction without normalizing -+ - @Override - public AbstractHurtingProjectile getHandle() { - return (AbstractHurtingProjectile) this.entity; diff --git a/patches/server/0950-Add-player-idle-duration-API.patch b/patches/server/0949-Add-player-idle-duration-API.patch similarity index 100% rename from patches/server/0950-Add-player-idle-duration-API.patch rename to patches/server/0949-Add-player-idle-duration-API.patch diff --git a/patches/server/0951-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0950-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 100% rename from patches/server/0951-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/0950-Don-t-check-if-we-can-see-non-visible-entities.patch diff --git a/patches/server/0952-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0951-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/0952-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/0951-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/0953-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0952-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 100% rename from patches/server/0953-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/0952-Allow-null-itemstack-for-Player-sendEquipmentChange.patch diff --git a/patches/server/0954-Optimize-VarInts.patch b/patches/server/0953-Optimize-VarInts.patch similarity index 100% rename from patches/server/0954-Optimize-VarInts.patch rename to patches/server/0953-Optimize-VarInts.patch diff --git a/patches/server/0955-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0954-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/0955-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/0954-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/0956-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0955-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/server/0956-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/0955-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/server/0957-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0956-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 100% rename from patches/server/0957-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/0956-Broadcast-take-item-packets-with-collector-as-source.patch diff --git a/patches/server/0958-Expand-LingeringPotion-API.patch b/patches/server/0957-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/0958-Expand-LingeringPotion-API.patch rename to patches/server/0957-Expand-LingeringPotion-API.patch diff --git a/patches/server/0959-Add-MaterialTagsTest.patch b/patches/server/0958-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/0959-Add-MaterialTagsTest.patch rename to patches/server/0958-Add-MaterialTagsTest.patch diff --git a/patches/server/0960-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0959-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 100% rename from patches/server/0960-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/0959-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch diff --git a/patches/server/0961-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0960-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/0961-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/0960-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/0962-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/0962-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/0963-Add-UUID-attribute-modifier-API.patch b/patches/server/0962-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/0963-Add-UUID-attribute-modifier-API.patch rename to patches/server/0962-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/0964-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0963-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/server/0964-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/0963-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/0965-Lazily-create-LootContext-for-criterions.patch b/patches/server/0964-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/0965-Lazily-create-LootContext-for-criterions.patch rename to patches/server/0964-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/0966-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0965-Don-t-fire-sync-events-during-worldgen.patch similarity index 99% rename from patches/server/0966-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/0965-Don-t-fire-sync-events-during-worldgen.patch index 0200563077..2654c1f60d 100644 --- a/patches/server/0966-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/0965-Don-t-fire-sync-events-during-worldgen.patch @@ -31,7 +31,7 @@ index 8235dace0f4a1090dfbd403db34231ccafe5f30e..9816913ad729fd39c173364b92e5db06 if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bbc3f09105b19eabd3ebb8b9589412b8871739a1..67dfb7b6a8825a87ff69b8c33efd1c040db12bf0 100644 +index 919c9ff3dd97d4bd2d41631176f9671f1987ad91..1de77621f159608f572ab4935ceb78863bb82c59 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -637,7 +637,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0967-Add-Structure-check-API.patch b/patches/server/0966-Add-Structure-check-API.patch similarity index 100% rename from patches/server/0967-Add-Structure-check-API.patch rename to patches/server/0966-Add-Structure-check-API.patch diff --git a/patches/server/0968-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0967-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/0968-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/0967-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/0969-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0968-Restore-vanilla-entity-drops-behavior.patch similarity index 99% rename from patches/server/0969-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/0968-Restore-vanilla-entity-drops-behavior.patch index c2f0a406f7..e6db1df680 100644 --- a/patches/server/0969-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/0968-Restore-vanilla-entity-drops-behavior.patch @@ -50,7 +50,7 @@ index 7272dc058c575efee5ac2643ce41b7d12e346e89..ae5a2136a0e266d4c35190f5d3355299 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 67dfb7b6a8825a87ff69b8c33efd1c040db12bf0..198aeb71e958a3fa6f8eaa8f607120af483e597f 100644 +index 1de77621f159608f572ab4935ceb78863bb82c59..5ab9ca815cb324c47c3e25a4d84a1b432bb393be 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2496,6 +2496,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0970-Dont-resend-blocks-on-interactions.patch b/patches/server/0969-Dont-resend-blocks-on-interactions.patch similarity index 100% rename from patches/server/0970-Dont-resend-blocks-on-interactions.patch rename to patches/server/0969-Dont-resend-blocks-on-interactions.patch diff --git a/patches/server/0971-add-more-scoreboard-API.patch b/patches/server/0970-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/0971-add-more-scoreboard-API.patch rename to patches/server/0970-add-more-scoreboard-API.patch diff --git a/patches/server/0972-Improve-Registry.patch b/patches/server/0971-Improve-Registry.patch similarity index 100% rename from patches/server/0972-Improve-Registry.patch rename to patches/server/0971-Improve-Registry.patch diff --git a/patches/server/0973-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0972-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 100% rename from patches/server/0973-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/0972-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch diff --git a/patches/server/0974-Add-experience-points-API.patch b/patches/server/0973-Add-experience-points-API.patch similarity index 100% rename from patches/server/0974-Add-experience-points-API.patch rename to patches/server/0973-Add-experience-points-API.patch diff --git a/patches/server/0975-Add-drops-to-shear-events.patch b/patches/server/0974-Add-drops-to-shear-events.patch similarity index 100% rename from patches/server/0975-Add-drops-to-shear-events.patch rename to patches/server/0974-Add-drops-to-shear-events.patch diff --git a/patches/server/0976-Add-PlayerShieldDisableEvent.patch b/patches/server/0975-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/server/0976-Add-PlayerShieldDisableEvent.patch rename to patches/server/0975-Add-PlayerShieldDisableEvent.patch diff --git a/patches/server/0977-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0976-Validate-ResourceLocation-in-NBT-reading.patch similarity index 100% rename from patches/server/0977-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/0976-Validate-ResourceLocation-in-NBT-reading.patch diff --git a/patches/server/0978-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/0977-Properly-handle-experience-dropping-on-block-break.patch similarity index 100% rename from patches/server/0978-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/0977-Properly-handle-experience-dropping-on-block-break.patch diff --git a/patches/server/0979-Fixup-NamespacedKey-handling.patch b/patches/server/0978-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/0979-Fixup-NamespacedKey-handling.patch rename to patches/server/0978-Fixup-NamespacedKey-handling.patch diff --git a/patches/server/0980-Expose-LootTable-of-DecoratedPot.patch b/patches/server/0979-Expose-LootTable-of-DecoratedPot.patch similarity index 100% rename from patches/server/0980-Expose-LootTable-of-DecoratedPot.patch rename to patches/server/0979-Expose-LootTable-of-DecoratedPot.patch diff --git a/patches/server/0981-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0980-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 100% rename from patches/server/0981-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/0980-Reduce-allocation-of-Vec3D-by-entity-tracker.patch diff --git a/patches/server/0982-Rewrite-dataconverter-system.patch b/patches/server/0981-Rewrite-dataconverter-system.patch similarity index 100% rename from patches/server/0982-Rewrite-dataconverter-system.patch rename to patches/server/0981-Rewrite-dataconverter-system.patch diff --git a/patches/server/0983-Starlight.patch b/patches/server/0982-Starlight.patch similarity index 100% rename from patches/server/0983-Starlight.patch rename to patches/server/0982-Starlight.patch diff --git a/patches/server/0984-Rewrite-chunk-system.patch b/patches/server/0983-Rewrite-chunk-system.patch similarity index 99% rename from patches/server/0984-Rewrite-chunk-system.patch rename to patches/server/0983-Rewrite-chunk-system.patch index 0d4fc72669..2a35933def 100644 --- a/patches/server/0984-Rewrite-chunk-system.patch +++ b/patches/server/0983-Rewrite-chunk-system.patch @@ -19375,7 +19375,7 @@ index 640db9f71608310a64e09f1e3e677c01e6ccd98a..f2a7cb6ebed7a4b4019a09af2a025f62 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 198aeb71e958a3fa6f8eaa8f607120af483e597f..89db78c05118a64d1b73ac05381e24c825d3cf76 100644 +index 5ab9ca815cb324c47c3e25a4d84a1b432bb393be..42d01cec6eba11183409c9a93d068e61f5010153 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -480,6 +480,58 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0985-incremental-chunk-and-player-saving.patch b/patches/server/0984-incremental-chunk-and-player-saving.patch similarity index 100% rename from patches/server/0985-incremental-chunk-and-player-saving.patch rename to patches/server/0984-incremental-chunk-and-player-saving.patch diff --git a/patches/server/0986-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch b/patches/server/0985-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch similarity index 100% rename from patches/server/0986-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch rename to patches/server/0985-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch diff --git a/patches/server/0987-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0986-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch similarity index 100% rename from patches/server/0987-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch rename to patches/server/0986-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch diff --git a/patches/server/0988-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0987-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch similarity index 100% rename from patches/server/0988-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch rename to patches/server/0987-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch diff --git a/patches/server/0989-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/0988-Optimize-Network-Manager-and-add-advanced-packet-sup.patch similarity index 100% rename from patches/server/0989-Optimize-Network-Manager-and-add-advanced-packet-sup.patch rename to patches/server/0988-Optimize-Network-Manager-and-add-advanced-packet-sup.patch diff --git a/patches/server/0990-Allow-Saving-of-Oversized-Chunks.patch b/patches/server/0989-Allow-Saving-of-Oversized-Chunks.patch similarity index 100% rename from patches/server/0990-Allow-Saving-of-Oversized-Chunks.patch rename to patches/server/0989-Allow-Saving-of-Oversized-Chunks.patch diff --git a/patches/server/0991-Fix-World-isChunkGenerated-calls.patch b/patches/server/0990-Fix-World-isChunkGenerated-calls.patch similarity index 100% rename from patches/server/0991-Fix-World-isChunkGenerated-calls.patch rename to patches/server/0990-Fix-World-isChunkGenerated-calls.patch diff --git a/patches/server/0992-Flat-bedrock-generator-settings.patch b/patches/server/0991-Flat-bedrock-generator-settings.patch similarity index 100% rename from patches/server/0992-Flat-bedrock-generator-settings.patch rename to patches/server/0991-Flat-bedrock-generator-settings.patch diff --git a/patches/server/0993-Entity-Activation-Range-2.0.patch b/patches/server/0992-Entity-Activation-Range-2.0.patch similarity index 99% rename from patches/server/0993-Entity-Activation-Range-2.0.patch rename to patches/server/0992-Entity-Activation-Range-2.0.patch index c709e5d6cf..4bec5ca13e 100644 --- a/patches/server/0993-Entity-Activation-Range-2.0.patch +++ b/patches/server/0992-Entity-Activation-Range-2.0.patch @@ -111,7 +111,7 @@ index bd8c96e914b156284bdbb960f168e63e1f122920..abb4c32e8b35de332fa517523e8c598e } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 89db78c05118a64d1b73ac05381e24c825d3cf76..dd785d11461541e8a93544142f7a3b4e43b2173d 100644 +index 42d01cec6eba11183409c9a93d068e61f5010153..1f892783c16ab8fd863832255a2b03df381aa84e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -412,6 +412,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0994-Optional-per-player-mob-spawns.patch b/patches/server/0993-Optional-per-player-mob-spawns.patch similarity index 100% rename from patches/server/0994-Optional-per-player-mob-spawns.patch rename to patches/server/0993-Optional-per-player-mob-spawns.patch diff --git a/patches/server/0995-Anti-Xray.patch b/patches/server/0994-Anti-Xray.patch similarity index 100% rename from patches/server/0995-Anti-Xray.patch rename to patches/server/0994-Anti-Xray.patch diff --git a/patches/server/0996-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0995-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 100% rename from patches/server/0996-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/0995-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch diff --git a/patches/server/0997-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0996-Optimize-Collision-to-not-load-chunks.patch similarity index 98% rename from patches/server/0997-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/0996-Optimize-Collision-to-not-load-chunks.patch index 106d5bd3fb..2ad06277cb 100644 --- a/patches/server/0997-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/0996-Optimize-Collision-to-not-load-chunks.patch @@ -26,7 +26,7 @@ index 461c27292af06a5150de8ec263d0c8527e8c5278..37245ff682837e7e8c9647f4afe30f0d // CraftBukkit end entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index dd785d11461541e8a93544142f7a3b4e43b2173d..f8ce3c92597b9fb2b8743a08088f33a7bf237c5d 100644 +index 1f892783c16ab8fd863832255a2b03df381aa84e..720d08400915da9270ee4abf84bcb73f354ae2b4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -242,6 +242,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0998-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/0997-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 100% rename from patches/server/0998-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/server/0997-Optimize-GoalSelector-Goal.Flag-Set-operations.patch diff --git a/patches/server/0999-Entity-load-save-limit-per-chunk.patch b/patches/server/0998-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/server/0999-Entity-load-save-limit-per-chunk.patch rename to patches/server/0998-Entity-load-save-limit-per-chunk.patch diff --git a/patches/server/1000-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0999-Fix-and-optimise-world-force-upgrading.patch similarity index 100% rename from patches/server/1000-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0999-Fix-and-optimise-world-force-upgrading.patch diff --git a/patches/server/1001-Improved-Watchdog-Support.patch b/patches/server/1000-Improved-Watchdog-Support.patch similarity index 99% rename from patches/server/1001-Improved-Watchdog-Support.patch rename to patches/server/1000-Improved-Watchdog-Support.patch index 3614cf6564..bd43d6abe4 100644 --- a/patches/server/1001-Improved-Watchdog-Support.patch +++ b/patches/server/1000-Improved-Watchdog-Support.patch @@ -315,7 +315,7 @@ index 2eeb0c78f2b717b59542b6b668371558ae2fcc25..6ec3fc801453fd54c25b642e6fa71c19 final String msg = String.format("BlockEntity threw exception at %s:%s,%s,%s", LevelChunk.this.getLevel().getWorld().getName(), this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()); net.minecraft.server.MinecraftServer.LOGGER.error(msg, throwable); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index d931a4c6e633bf9c1b3e5e18e880e2ddbfe4aa2a..ce341f42b3a5e17fb6d1f7de8057e73137ae2a6e 100644 +index b131a84865d9160d1b5d411515b69e967dbda66c..8d626fadcd4743b6472a2954d2b1b2ec89669814 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -186,6 +186,36 @@ public class Main { diff --git a/patches/server/1002-Optimize-Voxel-Shape-Merging.patch b/patches/server/1001-Optimize-Voxel-Shape-Merging.patch similarity index 100% rename from patches/server/1002-Optimize-Voxel-Shape-Merging.patch rename to patches/server/1001-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/server/1003-Write-SavedData-IO-async.patch b/patches/server/1002-Write-SavedData-IO-async.patch similarity index 100% rename from patches/server/1003-Write-SavedData-IO-async.patch rename to patches/server/1002-Write-SavedData-IO-async.patch diff --git a/patches/server/1004-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/1003-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch similarity index 100% rename from patches/server/1004-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch rename to patches/server/1003-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch diff --git a/patches/server/1005-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/1004-Use-distance-map-to-optimise-entity-tracker.patch similarity index 99% rename from patches/server/1005-Use-distance-map-to-optimise-entity-tracker.patch rename to patches/server/1004-Use-distance-map-to-optimise-entity-tracker.patch index 395ef636c5..be6acff7e6 100644 --- a/patches/server/1005-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/1004-Use-distance-map-to-optimise-entity-tracker.patch @@ -236,7 +236,7 @@ index ac1a4ff5f83e53fa2983ff6e834775e51fba715e..284f9548d62f9230c668bb1adb8cb808 return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f8ce3c92597b9fb2b8743a08088f33a7bf237c5d..3282327f1a85155d671dd63f3e5bf9b636a3e893 100644 +index 720d08400915da9270ee4abf84bcb73f354ae2b4..28ca0aae8f8c755b558a03fc9283fa1a44697e1a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -56,6 +56,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; diff --git a/patches/server/1006-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1005-Optimize-Bit-Operations-by-inlining.patch similarity index 100% rename from patches/server/1006-Optimize-Bit-Operations-by-inlining.patch rename to patches/server/1005-Optimize-Bit-Operations-by-inlining.patch diff --git a/patches/server/1007-Remove-streams-from-hot-code.patch b/patches/server/1006-Remove-streams-from-hot-code.patch similarity index 100% rename from patches/server/1007-Remove-streams-from-hot-code.patch rename to patches/server/1006-Remove-streams-from-hot-code.patch diff --git a/patches/server/1008-Eigencraft-redstone-implementation.patch b/patches/server/1007-Eigencraft-redstone-implementation.patch similarity index 100% rename from patches/server/1008-Eigencraft-redstone-implementation.patch rename to patches/server/1007-Eigencraft-redstone-implementation.patch diff --git a/patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/server/1010-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/1009-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch similarity index 100% rename from patches/server/1010-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch rename to patches/server/1009-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch diff --git a/patches/server/1011-Improve-boat-collision-performance.patch b/patches/server/1010-Improve-boat-collision-performance.patch similarity index 100% rename from patches/server/1011-Improve-boat-collision-performance.patch rename to patches/server/1010-Improve-boat-collision-performance.patch diff --git a/patches/server/1012-Optimise-general-POI-access.patch b/patches/server/1011-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/1012-Optimise-general-POI-access.patch rename to patches/server/1011-Optimise-general-POI-access.patch diff --git a/patches/server/1013-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/1013-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/1014-Execute-chunk-tasks-mid-tick.patch b/patches/server/1013-Execute-chunk-tasks-mid-tick.patch similarity index 100% rename from patches/server/1014-Execute-chunk-tasks-mid-tick.patch rename to patches/server/1013-Execute-chunk-tasks-mid-tick.patch diff --git a/patches/server/1015-Optimise-random-block-ticking.patch b/patches/server/1014-Optimise-random-block-ticking.patch similarity index 100% rename from patches/server/1015-Optimise-random-block-ticking.patch rename to patches/server/1014-Optimise-random-block-ticking.patch diff --git a/patches/server/1016-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1015-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/1016-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/1015-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/1017-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch similarity index 100% rename from patches/server/1017-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch diff --git a/patches/server/1018-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1017-Detail-more-information-in-watchdog-dumps.patch similarity index 99% rename from patches/server/1018-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/1017-Detail-more-information-in-watchdog-dumps.patch index 4f06eee45b..710f25f69b 100644 --- a/patches/server/1018-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/1017-Detail-more-information-in-watchdog-dumps.patch @@ -122,7 +122,7 @@ index 9d18da228c6709e7665ba8babb6ee6d0b36b5dc5..af9f58328c09dddb2875f79128f906b8 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3282327f1a85155d671dd63f3e5bf9b636a3e893..2f3f1418b8ec765cfab5ece88972825d7d68cae5 100644 +index 28ca0aae8f8c755b558a03fc9283fa1a44697e1a..ec01a97cac653fb1a2065289fe5b0c6824732bcb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1063,8 +1063,43 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1019-Collision-optimisations.patch b/patches/server/1018-Collision-optimisations.patch similarity index 99% rename from patches/server/1019-Collision-optimisations.patch rename to patches/server/1018-Collision-optimisations.patch index 371f2b708c..c57de0cfdf 100644 --- a/patches/server/1019-Collision-optimisations.patch +++ b/patches/server/1018-Collision-optimisations.patch @@ -2214,7 +2214,7 @@ index 594cb6ce4bfa6c42212000a1ed983ea95ee2c4bf..97b0119ac71284b3a223c089bec26d87 entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2f3f1418b8ec765cfab5ece88972825d7d68cae5..51097f1d04d981db2823e8647b546658b8fd27c1 100644 +index ec01a97cac653fb1a2065289fe5b0c6824732bcb..be2220457e941803b14d78c550d0db777c79a886 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1250,9 +1250,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1020-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 100% rename from patches/server/1020-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch diff --git a/patches/server/1021-Fix-tripwire-disarming-not-working-as-intended.patch b/patches/server/1020-Fix-tripwire-disarming-not-working-as-intended.patch similarity index 100% rename from patches/server/1021-Fix-tripwire-disarming-not-working-as-intended.patch rename to patches/server/1020-Fix-tripwire-disarming-not-working-as-intended.patch diff --git a/patches/server/1022-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1021-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/1022-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/1021-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/1023-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1022-Add-Alternate-Current-redstone-implementation.patch similarity index 100% rename from patches/server/1023-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/1022-Add-Alternate-Current-redstone-implementation.patch diff --git a/patches/server/1024-optimize-dirt-and-snow-spreading.patch b/patches/server/1023-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/1024-optimize-dirt-and-snow-spreading.patch rename to patches/server/1023-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/1025-Properly-resend-entities.patch b/patches/server/1024-Properly-resend-entities.patch similarity index 100% rename from patches/server/1025-Properly-resend-entities.patch rename to patches/server/1024-Properly-resend-entities.patch diff --git a/patches/server/1026-Optimize-Hoppers.patch b/patches/server/1025-Optimize-Hoppers.patch similarity index 99% rename from patches/server/1026-Optimize-Hoppers.patch rename to patches/server/1025-Optimize-Hoppers.patch index 14afff5a29..b9cc3698c6 100644 --- a/patches/server/1026-Optimize-Hoppers.patch +++ b/patches/server/1025-Optimize-Hoppers.patch @@ -105,7 +105,7 @@ index 20201430ee8f28245aa845acb172d0f5d80458ff..9ea74d37cd951e0dc76d20ed8234b587 } diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index 4dda44608320c2a872b23053a1c3de63b79741c2..757edf74751dc7183454656fda9cecc4eb601e4c 100644 +index e3b6f2bf93710ea695b0c25c0b6968a8f24f0829..cdb739df2a285032d25d84f4464f202a7a3fa578 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java @@ -152,6 +152,43 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen diff --git a/patches/server/1027-Improve-performance-of-mass-crafts.patch b/patches/server/1026-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/1027-Improve-performance-of-mass-crafts.patch rename to patches/server/1026-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/1028-Actually-optimise-explosions.patch b/patches/server/1027-Actually-optimise-explosions.patch similarity index 100% rename from patches/server/1028-Actually-optimise-explosions.patch rename to patches/server/1027-Actually-optimise-explosions.patch diff --git a/patches/server/1029-Optimise-chunk-tick-iteration.patch b/patches/server/1028-Optimise-chunk-tick-iteration.patch similarity index 100% rename from patches/server/1029-Optimise-chunk-tick-iteration.patch rename to patches/server/1028-Optimise-chunk-tick-iteration.patch diff --git a/patches/server/1030-Lag-compensation-ticks.patch b/patches/server/1029-Lag-compensation-ticks.patch similarity index 100% rename from patches/server/1030-Lag-compensation-ticks.patch rename to patches/server/1029-Lag-compensation-ticks.patch diff --git a/patches/server/1031-Optimise-nearby-player-retrieval.patch b/patches/server/1030-Optimise-nearby-player-retrieval.patch similarity index 100% rename from patches/server/1031-Optimise-nearby-player-retrieval.patch rename to patches/server/1030-Optimise-nearby-player-retrieval.patch diff --git a/patches/server/1032-Distance-manager-tick-timings.patch b/patches/server/1031-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/1032-Distance-manager-tick-timings.patch rename to patches/server/1031-Distance-manager-tick-timings.patch diff --git a/patches/server/1033-Handle-Oversized-block-entities-in-chunks.patch b/patches/server/1032-Handle-Oversized-block-entities-in-chunks.patch similarity index 100% rename from patches/server/1033-Handle-Oversized-block-entities-in-chunks.patch rename to patches/server/1032-Handle-Oversized-block-entities-in-chunks.patch diff --git a/patches/server/1034-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/1033-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/1034-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/1033-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/1035-Add-ShulkerDuplicateEvent.patch b/patches/server/1034-Add-ShulkerDuplicateEvent.patch similarity index 100% rename from patches/server/1035-Add-ShulkerDuplicateEvent.patch rename to patches/server/1034-Add-ShulkerDuplicateEvent.patch diff --git a/patches/server/1036-Add-api-for-spawn-egg-texture-colors.patch b/patches/server/1035-Add-api-for-spawn-egg-texture-colors.patch similarity index 100% rename from patches/server/1036-Add-api-for-spawn-egg-texture-colors.patch rename to patches/server/1035-Add-api-for-spawn-egg-texture-colors.patch diff --git a/patches/server/1037-Disable-memory-reserve-allocating.patch b/patches/server/1036-Disable-memory-reserve-allocating.patch similarity index 100% rename from patches/server/1037-Disable-memory-reserve-allocating.patch rename to patches/server/1036-Disable-memory-reserve-allocating.patch diff --git a/patches/server/1038-Improve-tag-parser-handling.patch b/patches/server/1037-Improve-tag-parser-handling.patch similarity index 100% rename from patches/server/1038-Improve-tag-parser-handling.patch rename to patches/server/1037-Improve-tag-parser-handling.patch diff --git a/patches/server/1039-Add-Lifecycle-Event-system.patch b/patches/server/1038-Add-Lifecycle-Event-system.patch similarity index 100% rename from patches/server/1039-Add-Lifecycle-Event-system.patch rename to patches/server/1038-Add-Lifecycle-Event-system.patch diff --git a/patches/server/1040-Conduit-API.patch b/patches/server/1039-Conduit-API.patch similarity index 100% rename from patches/server/1040-Conduit-API.patch rename to patches/server/1039-Conduit-API.patch diff --git a/patches/server/1041-ItemStack-Tooltip-API.patch b/patches/server/1040-ItemStack-Tooltip-API.patch similarity index 100% rename from patches/server/1041-ItemStack-Tooltip-API.patch rename to patches/server/1040-ItemStack-Tooltip-API.patch diff --git a/patches/server/1042-Fix-possible-StackOverflowError-for-some-dispenses.patch b/patches/server/1041-Fix-possible-StackOverflowError-for-some-dispenses.patch similarity index 100% rename from patches/server/1042-Fix-possible-StackOverflowError-for-some-dispenses.patch rename to patches/server/1041-Fix-possible-StackOverflowError-for-some-dispenses.patch diff --git a/patches/server/1043-Properly-track-the-changed-item-from-dispense-events.patch b/patches/server/1042-Properly-track-the-changed-item-from-dispense-events.patch similarity index 100% rename from patches/server/1043-Properly-track-the-changed-item-from-dispense-events.patch rename to patches/server/1042-Properly-track-the-changed-item-from-dispense-events.patch diff --git a/patches/server/1044-Add-getChunkSnapshot-includeLightData-parameter.patch b/patches/server/1043-Add-getChunkSnapshot-includeLightData-parameter.patch similarity index 100% rename from patches/server/1044-Add-getChunkSnapshot-includeLightData-parameter.patch rename to patches/server/1043-Add-getChunkSnapshot-includeLightData-parameter.patch diff --git a/patches/server/1045-Add-FluidState-API.patch b/patches/server/1044-Add-FluidState-API.patch similarity index 100% rename from patches/server/1045-Add-FluidState-API.patch rename to patches/server/1044-Add-FluidState-API.patch diff --git a/patches/server/1046-add-number-format-api.patch b/patches/server/1045-add-number-format-api.patch similarity index 100% rename from patches/server/1046-add-number-format-api.patch rename to patches/server/1045-add-number-format-api.patch diff --git a/patches/server/1047-check-if-itemstack-is-stackable-first.patch b/patches/server/1046-check-if-itemstack-is-stackable-first.patch similarity index 100% rename from patches/server/1047-check-if-itemstack-is-stackable-first.patch rename to patches/server/1046-check-if-itemstack-is-stackable-first.patch diff --git a/patches/server/1048-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch b/patches/server/1047-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch similarity index 100% rename from patches/server/1048-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch rename to patches/server/1047-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch diff --git a/patches/server/1049-improve-BanList-types.patch b/patches/server/1048-improve-BanList-types.patch similarity index 100% rename from patches/server/1049-improve-BanList-types.patch rename to patches/server/1048-improve-BanList-types.patch diff --git a/patches/server/1050-Configurable-max-block-fluid-ticks.patch b/patches/server/1049-Configurable-max-block-fluid-ticks.patch similarity index 100% rename from patches/server/1050-Configurable-max-block-fluid-ticks.patch rename to patches/server/1049-Configurable-max-block-fluid-ticks.patch diff --git a/patches/server/1051-disable-forced-empty-world-ticks.patch b/patches/server/1050-disable-forced-empty-world-ticks.patch similarity index 100% rename from patches/server/1051-disable-forced-empty-world-ticks.patch rename to patches/server/1050-disable-forced-empty-world-ticks.patch diff --git a/patches/server/1052-Suspicious-Effect-Entry-API.patch b/patches/server/1051-Suspicious-Effect-Entry-API.patch similarity index 100% rename from patches/server/1052-Suspicious-Effect-Entry-API.patch rename to patches/server/1051-Suspicious-Effect-Entry-API.patch diff --git a/patches/server/1053-Per-world-ticks-per-spawn-settings.patch b/patches/server/1052-Per-world-ticks-per-spawn-settings.patch similarity index 100% rename from patches/server/1053-Per-world-ticks-per-spawn-settings.patch rename to patches/server/1052-Per-world-ticks-per-spawn-settings.patch diff --git a/patches/server/1054-Add-onboarding-message-for-initial-server-start.patch b/patches/server/1053-Add-onboarding-message-for-initial-server-start.patch similarity index 100% rename from patches/server/1054-Add-onboarding-message-for-initial-server-start.patch rename to patches/server/1053-Add-onboarding-message-for-initial-server-start.patch diff --git a/patches/server/1055-Fix-DamageSource-API.patch b/patches/server/1054-Fix-DamageSource-API.patch similarity index 100% rename from patches/server/1055-Fix-DamageSource-API.patch rename to patches/server/1054-Fix-DamageSource-API.patch diff --git a/patches/server/1056-Expanded-Hopper-API.patch b/patches/server/1055-Expanded-Hopper-API.patch similarity index 100% rename from patches/server/1056-Expanded-Hopper-API.patch rename to patches/server/1055-Expanded-Hopper-API.patch From 88419b207579533646ab011da886030ea9ea4862 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Wed, 20 Mar 2024 21:47:50 +0000 Subject: [PATCH 025/215] Do not copy profile data if profiles are the same (#10259) --- patches/server/0134-Basic-PlayerProfile-API.patch | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/patches/server/0134-Basic-PlayerProfile-API.patch b/patches/server/0134-Basic-PlayerProfile-API.patch index a41c0666bc..2a1ca07786 100644 --- a/patches/server/0134-Basic-PlayerProfile-API.patch +++ b/patches/server/0134-Basic-PlayerProfile-API.patch @@ -16,10 +16,10 @@ public org.bukkit.craftbukkit.profile.CraftPlayerProfile setProperty(Ljava/lang/ diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java new file mode 100644 -index 0000000000000000000000000000000000000000..daa157eaa021d039f9a092bea0b78f7c1f746e3b +index 0000000000000000000000000000000000000000..68c99e29450e318d2b6eb83099e3e4012b6f0c01 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java -@@ -0,0 +1,409 @@ +@@ -0,0 +1,412 @@ +package com.destroystokyo.paper.profile; + +import com.mojang.authlib.yggdrasil.ProfileResult; @@ -236,7 +236,7 @@ index 0000000000000000000000000000000000000000..daa157eaa021d039f9a092bea0b78f7c + // if old has it, assume its newer, so overwrite, else use cached if it was set and ours wasn't + copyProfileProperties(this.profile, profile); + this.profile = profile; -+ } else { ++ } else if (profile != this.profile) { + copyProfileProperties(profile, this.profile); + } + } @@ -267,6 +267,9 @@ index 0000000000000000000000000000000000000000..daa157eaa021d039f9a092bea0b78f7c + } + + private static void copyProfileProperties(GameProfile source, GameProfile target, boolean clearTarget) { ++ if (source == target) { ++ throw new IllegalArgumentException("Source and target profiles are the same (" + source + ")"); ++ } + PropertyMap sourceProperties = source.getProperties(); + PropertyMap targetProperties = target.getProperties(); + if (clearTarget) targetProperties.clear(); From 9ec7dfcbc41c6e625de0050b6997160a75df9f44 Mon Sep 17 00:00:00 2001 From: FireInstall <29309865+FireInstall@users.noreply.github.com> Date: Sat, 23 Mar 2024 20:27:30 +0100 Subject: [PATCH 026/215] Move invisible setting up to entities (#10346) --- patches/api/0298-Missing-Entity-API.patch | 52 ++++++++++++++++++- ...23-Add-Raw-Byte-Entity-Serialization.patch | 4 +- .../api/0329-Entity-powdered-snow-API.patch | 4 +- patches/api/0339-Freeze-Tick-Lock-API.patch | 8 +-- patches/api/0368-Collision-API.patch | 4 +- ...-swingHand-EquipmentSlot-convenience.patch | 4 +- .../api/0381-Add-entity-knockback-API.patch | 4 +- patches/api/0388-ItemStack-damage-API.patch | 4 +- .../0395-Add-Sneaking-API-for-Entities.patch | 6 +-- .../api/0401-Add-Entity-Body-Yaw-API.patch | 8 +-- ...Folia-scheduler-and-owned-region-API.patch | 4 +- ...-API-for-an-entity-s-scoreboard-name.patch | 4 +- patches/api/0426-Expand-Pose-API.patch | 4 +- patches/server/0586-Missing-Entity-API.patch | 42 +++++++++++++-- ...27-Add-Raw-Byte-Entity-Serialization.patch | 9 ++-- .../0677-Entity-powdered-snow-API.patch | 7 +-- patches/server/0772-Collision-API.patch | 9 ++-- .../0798-Add-entity-knockback-API.patch | 4 +- .../server/0816-ItemStack-damage-API.patch | 4 +- patches/server/0817-Friction-API.patch | 4 +- .../server/0843-Add-Entity-Body-Yaw-API.patch | 10 ++-- ...-API-for-an-entity-s-scoreboard-name.patch | 4 +- 22 files changed, 144 insertions(+), 59 deletions(-) diff --git a/patches/api/0298-Missing-Entity-API.patch b/patches/api/0298-Missing-Entity-API.patch index 33d18a3ebe..1a3f1b5e63 100644 --- a/patches/api/0298-Missing-Entity-API.patch +++ b/patches/api/0298-Missing-Entity-API.patch @@ -10,6 +10,7 @@ Co-authored-by: SoSeDiK Co-authored-by: booky10 Co-authored-by: Amin Co-authored-by: TrollyLoki +Co-authored-by: FireInstall diff --git a/src/main/java/io/papermc/paper/entity/SchoolableFish.java b/src/main/java/io/papermc/paper/entity/SchoolableFish.java new file mode 100644 @@ -414,6 +415,37 @@ index 9e7f42caab1204036f4203354c115fd40c6def92..138d2530de2410f4a9424dabd3e5ce0c + int getLifetimeTicks(); + // Paper end } +diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java +index d68ccecaadcf7a906058e66a750f4cfce5dd7b3f..efe812b4d47df6f8b5ba54ec4526f3dcd20f180f 100644 +--- a/src/main/java/org/bukkit/entity/Entity.java ++++ b/src/main/java/org/bukkit/entity/Entity.java +@@ -283,6 +283,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent + */ + boolean isFrozen(); + ++ // Paper start - move invisibility up to Entity ++ /** ++ * Sets whether the entity is invisible or not. ++ *

++ * This setting is undefined for non-living entities like boats or paintings. ++ * Non-living entities that are marked as invisible through this method may e.g. only hide their shadow. ++ * To hide such entities from players completely, see {@link Player#hideEntity(org.bukkit.plugin.Plugin, Entity)}. ++ * ++ * @param invisible If the entity is invisible ++ */ ++ void setInvisible(boolean invisible); ++ ++ /** ++ * Gets whether the entity is invisible or not. ++ * ++ * @return Whether the entity is invisible ++ */ ++ boolean isInvisible(); ++ // Paper end - move invisibility up to Entity ++ + /** + * Mark the entity's removal. + * diff --git a/src/main/java/org/bukkit/entity/Fireball.java b/src/main/java/org/bukkit/entity/Fireball.java index 7a44707f2307dc4dbfea4de3f4baf3cc0490dc93..d0e82102425e54274be9c4769634d754319d6196 100644 --- a/src/main/java/org/bukkit/entity/Fireball.java @@ -538,10 +570,26 @@ index 6b3c9bef9a8a34ddc6ff42cf358541a2665bf5e3..9c618a27d590f186f29c5d9094fc565e + // Paper end } diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index b1fb059fc2249814c9e509c219da2aed84d34fe0..6e6b80843a8669b422f93e98343e1da9f8546ee7 100644 +index b1fb059fc2249814c9e509c219da2aed84d34fe0..ff89fc699b7aaba982c59ace4effaffc5285ca17 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1016,6 +1016,57 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -960,6 +960,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + * + * @param invisible If the entity is invisible + */ ++ @Override // Paper - move invisibility up to Entity + public void setInvisible(boolean invisible); + + /** +@@ -967,6 +968,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + * + * @return Whether the entity is invisible + */ ++ @Override // Paper - move invisibility up to Entity + public boolean isInvisible(); + + // Paper start +@@ -1016,6 +1018,57 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource void clearActiveItem(); // Paper end diff --git a/patches/api/0323-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0323-Add-Raw-Byte-Entity-Serialization.patch index 6c33be9317..f378113a44 100644 --- a/patches/api/0323-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/api/0323-Add-Raw-Byte-Entity-Serialization.patch @@ -24,10 +24,10 @@ index 434fde52986ba07d7209ff47483f74fe31e8ebe7..0c7204e390f44b649fc26cd46152abeb * Creates and returns the next EntityId available. *

diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index d68ccecaadcf7a906058e66a750f4cfce5dd7b3f..2e2c8d7d2e2c27e2f1264a267d589b2c790f366b 100644 +index efe812b4d47df6f8b5ba54ec4526f3dcd20f180f..a09640dce6f61f808f516f5569e08e9e6a2f2b53 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -891,5 +891,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -911,5 +911,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @Deprecated @NotNull Set getTrackedPlayers(); diff --git a/patches/api/0329-Entity-powdered-snow-API.patch b/patches/api/0329-Entity-powdered-snow-API.patch index d31b58855c..b5b1dbedbd 100644 --- a/patches/api/0329-Entity-powdered-snow-API.patch +++ b/patches/api/0329-Entity-powdered-snow-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity powdered snow API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 2e2c8d7d2e2c27e2f1264a267d589b2c790f366b..bdc2bbeddc47587334a8e92f5e0728f3c50218f6 100644 +index a09640dce6f61f808f516f5569e08e9e6a2f2b53..336cd1830182d4aac0fc7b5be629da4fc78c5cf8 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -918,5 +918,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -938,5 +938,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return Whether the entity was successfully spawned. */ public boolean spawnAt(@NotNull Location location, @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason); diff --git a/patches/api/0339-Freeze-Tick-Lock-API.patch b/patches/api/0339-Freeze-Tick-Lock-API.patch index 8d16a0e1d3..ae7c328cc6 100644 --- a/patches/api/0339-Freeze-Tick-Lock-API.patch +++ b/patches/api/0339-Freeze-Tick-Lock-API.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index bdc2bbeddc47587334a8e92f5e0728f3c50218f6..e1fe5d93eb7a1f96954d907dbbe0758f25bd1ce7 100644 +index 336cd1830182d4aac0fc7b5be629da4fc78c5cf8..5be7daff9077f35aa1d3abf747f7d147a1532b55 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -283,6 +283,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent - */ - boolean isFrozen(); +@@ -303,6 +303,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent + boolean isInvisible(); + // Paper end - move invisibility up to Entity + // Paper start - Freeze Tick Lock API + /** diff --git a/patches/api/0368-Collision-API.patch b/patches/api/0368-Collision-API.patch index fc4f5486d9..61881abf50 100644 --- a/patches/api/0368-Collision-API.patch +++ b/patches/api/0368-Collision-API.patch @@ -25,10 +25,10 @@ index 44ee56a5956cc17194c767a0c1071a2abffe818a..43dd6c59cceba12f27e6b265acc3ad97 // Paper end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 948d6a08ff459afd5d4d5b151c41d94d1d5847b6..4ea16c106cfab12ebc753781fb7f406330c3f25c 100644 +index 82c9e07a059bc481d877c7fbb2fbf866bf607017..7ab1ffa2fa7a99ddf32f60ce4b48680eae698da9 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -968,4 +968,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -988,4 +988,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean isInPowderedSnow(); // Paper end diff --git a/patches/api/0380-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0380-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch index 6d0cf289d9..38a3a4452c 100644 --- a/patches/api/0380-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch +++ b/patches/api/0380-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add LivingEntity#swingHand(EquipmentSlot) convenience method diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index d083cffe0b61642bf4c4ea0fecc529090702042f..ab6ba48c76271f60fc51f758ff823e45be4bce93 100644 +index 41ca8fea2aede178bdbe87c05588bce4f2faf8e6..aa20ec645476b2cbb0330c206f163094aebf238e 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1201,5 +1201,23 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1203,5 +1203,23 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ @Deprecated void setHurtDirection(float hurtDirection); diff --git a/patches/api/0381-Add-entity-knockback-API.patch b/patches/api/0381-Add-entity-knockback-API.patch index 56310d9bef..cf91cd8304 100644 --- a/patches/api/0381-Add-entity-knockback-API.patch +++ b/patches/api/0381-Add-entity-knockback-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index ab6ba48c76271f60fc51f758ff823e45be4bce93..21ddbe3399b1b4a4d51c5a752fa72c5d8832b415 100644 +index aa20ec645476b2cbb0330c206f163094aebf238e..70953573a7bcfa682dbaeaa8e3db0c847b254fdd 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1219,5 +1219,17 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1221,5 +1221,17 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource this.swingOffHand(); } } diff --git a/patches/api/0388-ItemStack-damage-API.patch b/patches/api/0388-ItemStack-damage-API.patch index f0444dae84..f2c4cc4355 100644 --- a/patches/api/0388-ItemStack-damage-API.patch +++ b/patches/api/0388-ItemStack-damage-API.patch @@ -8,10 +8,10 @@ to simulate damage done to an itemstack and all the logic associated with damaging them diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 21ddbe3399b1b4a4d51c5a752fa72c5d8832b415..cb5ba5d115406d12a2af0811fcfbf510f836b03b 100644 +index 70953573a7bcfa682dbaeaa8e3db0c847b254fdd..041ff387a0f9e8037e2834118ef241ddb8970907 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1231,5 +1231,52 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1233,5 +1233,52 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * @param directionZ The relative z position of the knockback source direction */ void knockback(double strength, double directionX, double directionZ); diff --git a/patches/api/0395-Add-Sneaking-API-for-Entities.patch b/patches/api/0395-Add-Sneaking-API-for-Entities.patch index 224f784208..70178866ab 100644 --- a/patches/api/0395-Add-Sneaking-API-for-Entities.patch +++ b/patches/api/0395-Add-Sneaking-API-for-Entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Sneaking API for Entities diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 4ea16c106cfab12ebc753781fb7f406330c3f25c..b6f7aae6cd7d4364caf89c46e55c65961f8dae91 100644 +index 7ab1ffa2fa7a99ddf32f60ce4b48680eae698da9..e0e93cb945202890387c1dc3c32927525e40296c 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -779,6 +779,25 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -799,6 +799,25 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @NotNull Pose getPose(); @@ -35,7 +35,7 @@ index 4ea16c106cfab12ebc753781fb7f406330c3f25c..b6f7aae6cd7d4364caf89c46e55c6596 * 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 8a862dbf093ca0812aa1ce8def1e650380c303d0..bfa5a218576c9db147da75ec39cf8a8f6e9f6157 100644 +index e855cddf37c453ea3f8f0f4fc21dd2358258e28d..6afced1da637e4162972b0ff1f6c9cf42c256a02 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -417,6 +417,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0401-Add-Entity-Body-Yaw-API.patch b/patches/api/0401-Add-Entity-Body-Yaw-API.patch index ebcecf2aca..8d0776b93e 100644 --- a/patches/api/0401-Add-Entity-Body-Yaw-API.patch +++ b/patches/api/0401-Add-Entity-Body-Yaw-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index b6f7aae6cd7d4364caf89c46e55c65961f8dae91..04cf35bce80d5940dec2913ca74a0678be3c1c57 100644 +index e0e93cb945202890387c1dc3c32927525e40296c..18a2f82ecf9ca3ecb80053666d0de192e5185531 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -986,6 +986,43 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1006,6 +1006,43 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return true if in powdered snow. */ boolean isInPowderedSnow(); @@ -53,10 +53,10 @@ index b6f7aae6cd7d4364caf89c46e55c65961f8dae91..04cf35bce80d5940dec2913ca74a0678 // Paper start - Collision API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index b9f98279789fe26181aa9c7aa253877d916034be..2dbb61df25967739c5a8308d6d89be20136816ba 100644 +index 3a26b3c40f877a454c3c76b68b86776f05950002..b7b87b2962eabcf2e8864335e4da22c0b9da8e5c 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1278,5 +1278,21 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1280,5 +1280,21 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * @param amount the amount of damage to do */ void damageItemStack(org.bukkit.inventory.@NotNull EquipmentSlot slot, int amount); diff --git a/patches/api/0412-Folia-scheduler-and-owned-region-API.patch b/patches/api/0412-Folia-scheduler-and-owned-region-API.patch index 8d194d5375..71062196c9 100644 --- a/patches/api/0412-Folia-scheduler-and-owned-region-API.patch +++ b/patches/api/0412-Folia-scheduler-and-owned-region-API.patch @@ -769,10 +769,10 @@ index d433a9d2fe0bb487865fec33307cc4c45af475a0..f819de247080d58803a2851a4cab28d2 + // Paper end - Folia region threading API } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 04cf35bce80d5940dec2913ca74a0678be3c1c57..ef202ad243884c4254f45be760c42abf653cbc8e 100644 +index 18a2f82ecf9ca3ecb80053666d0de192e5185531..a5602bf27965a8aac97aa5279a23e785729a4921 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1046,4 +1046,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1066,4 +1066,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean wouldCollideUsing(@NotNull BoundingBox boundingBox); // Paper end - Collision API diff --git a/patches/api/0421-API-for-an-entity-s-scoreboard-name.patch b/patches/api/0421-API-for-an-entity-s-scoreboard-name.patch index 7be05d7421..85895ba202 100644 --- a/patches/api/0421-API-for-an-entity-s-scoreboard-name.patch +++ b/patches/api/0421-API-for-an-entity-s-scoreboard-name.patch @@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different methods depending on the implementation of Entity you were working with. diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index ef202ad243884c4254f45be760c42abf653cbc8e..d6e6d7140de4588f6b9469988749bccbe848f3ef 100644 +index a5602bf27965a8aac97aa5279a23e785729a4921..cbea8b9088fff5f08a47f6b26d7554d00710eb9f 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1057,4 +1057,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1077,4 +1077,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @NotNull io.papermc.paper.threadedregions.scheduler.EntityScheduler getScheduler(); // Paper end - Folia schedulers diff --git a/patches/api/0426-Expand-Pose-API.patch b/patches/api/0426-Expand-Pose-API.patch index 7548f51038..b016f55d9b 100644 --- a/patches/api/0426-Expand-Pose-API.patch +++ b/patches/api/0426-Expand-Pose-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index d6e6d7140de4588f6b9469988749bccbe848f3ef..d9929d9311e4b2b0ae13a8f6f13563257263f298 100644 +index cbea8b9088fff5f08a47f6b26d7554d00710eb9f..252ae4b7a002b34533988e0a574a24af8573a125 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -796,6 +796,42 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -816,6 +816,42 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @param sneak true if the entity should be sneaking */ void setSneaking(boolean sneak); diff --git a/patches/server/0586-Missing-Entity-API.patch b/patches/server/0586-Missing-Entity-API.patch index 501d3329dd..b2f850af74 100644 --- a/patches/server/0586-Missing-Entity-API.patch +++ b/patches/server/0586-Missing-Entity-API.patch @@ -29,6 +29,7 @@ public net.minecraft.world.entity.animal.AbstractSchoolingFish schoolSize public net.minecraft.world.entity.animal.Rabbit moreCarrotTicks public net.minecraft.world.entity.AreaEffectCloud ownerUUID public net.minecraft.world.entity.animal.MushroomCow stewEffects +public net.minecraft.world.entity.Entity FLAG_INVISIBLE Co-authored-by: Nassim Jahnke Co-authored-by: Jake Potrebic @@ -37,6 +38,7 @@ Co-authored-by: SoSeDiK Co-authored-by: booky10 Co-authored-by: Amin Co-authored-by: TrollyLoki +Co-authored-by: FireInstall diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java index 8117578ced94aa6bf01871f6526a388385c4adf2..59699c59fdfc611177fdb3136f84ab539b17d9c9 100644 @@ -667,6 +669,28 @@ index fc0f0e841dc974d080e1abb9bbafb5165801131f..d657fd2c507a5b215aeab0a5f3e9c2ee + } + // Paper end } +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +index 07158732dd6a5b7d622b7f2ea10ca87b50365b8a..dd1ca63d2d6e4c8606c28380f81b79b7ee211a35 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +@@ -1078,4 +1078,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + return set; + } + // Paper end ++ ++ // Paper start - move up invisibility ++ @Override ++ public boolean isInvisible() { ++ return this.getHandle().isInvisible(); ++ } ++ ++ @Override ++ public void setInvisible(boolean invisible) { ++ this.getHandle().persistentInvisibility = invisible; ++ this.getHandle().setSharedFlag(Entity.FLAG_INVISIBLE, invisible); ++ } ++ // Paper end - move up invisibility + } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java index 73cb7aa01af3eed71b05b1a539f082b26dcd8d60..e1a2f0924da6ebcdf332040f922226af5d8a2d45 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java @@ -761,12 +785,22 @@ index 2cec61a1bb050c1ef81c5fc3d0afafe9ff29d459..97fa4e1e70203194bd939618b2fad926 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 9ce82b203e37ff1f5a7618fe864ed7616bd8d52e..9a7a670c1e99674e8a554342165b7b77001083fc 100644 +index 9ce82b203e37ff1f5a7618fe864ed7616bd8d52e..6218f15194b7ae0b17f7f1dab78b1337779edb27 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -913,6 +913,22 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - this.getHandle().persistentInvisibility = invisible; - this.getHandle().setSharedFlag(5, invisible); +@@ -905,14 +905,29 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { + + @Override + public boolean isInvisible() { +- return this.getHandle().isInvisible(); ++ return super.isInvisible(); // Paper - move invisibility up to Entity - diff on change + } + + @Override + public void setInvisible(boolean invisible) { +- this.getHandle().persistentInvisibility = invisible; +- this.getHandle().setSharedFlag(5, invisible); ++ super.setInvisible(invisible); // Paper - move invisibility up to Entity } + // Paper start + @Override diff --git a/patches/server/0627-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0627-Add-Raw-Byte-Entity-Serialization.patch index 436c536f74..b57a9d9bb2 100644 --- a/patches/server/0627-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0627-Add-Raw-Byte-Entity-Serialization.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add Raw Byte Entity Serialization public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 822666e1199e0851136d88b2b556d8d17843d902..e6ef67a7a2eab5314c95e751895b4d4ce71c91b8 100644 +index 7dbbf0884b70acb37c3400364736fa8f6b68c964..5dce3d38ecd7b7639f02f3e1e92f3723f4a42c39 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2078,6 +2078,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -27,10 +27,10 @@ index 822666e1199e0851136d88b2b556d8d17843d902..e6ef67a7a2eab5314c95e751895b4d4c return this.isPassenger() ? false : this.saveAsPassenger(nbt); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 07158732dd6a5b7d622b7f2ea10ca87b50365b8a..411e2eed16d5b774900fc12f5ad782ab229dde97 100644 +index 08d63e104ddc079af6349b6b3665cadae1c619ad..6a31fb773798e911e731c35e2d52eb1073ed9f07 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1077,5 +1077,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1077,6 +1077,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } return set; } @@ -45,7 +45,8 @@ index 07158732dd6a5b7d622b7f2ea10ca87b50365b8a..411e2eed16d5b774900fc12f5ad782ab + return !this.entity.valid && this.entity.level().addFreshEntity(this.entity, reason); + } // Paper end - } + + // Paper start - move up invisibility diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java index 609b103cb9af3b0554bf1116306874fe98c8534c..3f582c5653e13875cce4ef8ecd279d8a3d2b2dc2 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java diff --git a/patches/server/0677-Entity-powdered-snow-API.patch b/patches/server/0677-Entity-powdered-snow-API.patch index 9976726fc5..e06e388df9 100644 --- a/patches/server/0677-Entity-powdered-snow-API.patch +++ b/patches/server/0677-Entity-powdered-snow-API.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Entity powdered snow API public net.minecraft.world.entity.monster.Skeleton inPowderSnowTime diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 411e2eed16d5b774900fc12f5ad782ab229dde97..71f9b7bbbabae9291fdb9f902f3f69c13e715c0e 100644 +index 6a31fb773798e911e731c35e2d52eb1073ed9f07..6a8251ae85f192925493b3e084c0e53820a9be97 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1087,5 +1087,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1087,6 +1087,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { this.entity.setRot(location.getYaw(), location.getPitch()); return !this.entity.valid && this.entity.level().addFreshEntity(this.entity, reason); } @@ -20,7 +20,8 @@ index 411e2eed16d5b774900fc12f5ad782ab229dde97..71f9b7bbbabae9291fdb9f902f3f69c1 + return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed. + } // Paper end - } + + // Paper start - move up invisibility diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java index a0ea54181de6c6685deef265cbe9f66aabbca42b..6f98da9be6aef35e3b5c940188b872459a383c8e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java diff --git a/patches/server/0772-Collision-API.patch b/patches/server/0772-Collision-API.patch index c4952054b5..da2d02ef43 100644 --- a/patches/server/0772-Collision-API.patch +++ b/patches/server/0772-Collision-API.patch @@ -22,13 +22,14 @@ index fbcf1320ef9c1817b24aa8724cd6cf07319c20b9..5680e9772a2d90e997d2d0aacdda9edd // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 9ea189c26c6a5fae84bcc7ed098426d8c001cd5e..b7fceba1c7138a5c1d78bf058c9f2d32dbc1d292 100644 +index a47e8994b52576d88fa90b7a86cbe0fb7493fa6d..3cdc8787c6a481da6cb294208eebce0636a58d4f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1125,4 +1125,19 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed. +@@ -1138,4 +1138,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + this.getHandle().setSharedFlag(Entity.FLAG_INVISIBLE, invisible); } - // Paper end + // Paper end - move up invisibility ++ + // Paper start - Collision API + @Override + public boolean collidesAt(@org.jetbrains.annotations.NotNull Location location) { diff --git a/patches/server/0798-Add-entity-knockback-API.patch b/patches/server/0798-Add-entity-knockback-API.patch index 7086303073..afe4ca229a 100644 --- a/patches/server/0798-Add-entity-knockback-API.patch +++ b/patches/server/0798-Add-entity-knockback-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index e559af05c58b7d9c940cea9f48c0f4bd0aad756c..cb585a82e52697d84f3da25a150b663c8c286f58 100644 +index 354c32f67d06228477c723f7e4dbe27116e59a9b..4363f55707101362c1df60b73ab23d3d4c9c0675 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1073,5 +1073,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1072,5 +1072,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } throw new IllegalArgumentException(entityCategory + " is an unrecognized entity category"); } diff --git a/patches/server/0816-ItemStack-damage-API.patch b/patches/server/0816-ItemStack-damage-API.patch index 933e8cf6e8..9525df8c4c 100644 --- a/patches/server/0816-ItemStack-damage-API.patch +++ b/patches/server/0816-ItemStack-damage-API.patch @@ -11,10 +11,10 @@ the logic associated with damaging them public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index cb585a82e52697d84f3da25a150b663c8c286f58..7ba726584ce4a58654b8a8b9604f0cca762b3f42 100644 +index 4363f55707101362c1df60b73ab23d3d4c9c0675..ed436eed7617665e77627dd05d17b8e5a7366f25 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1074,6 +1074,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1073,6 +1073,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { throw new IllegalArgumentException(entityCategory + " is an unrecognized entity category"); } diff --git a/patches/server/0817-Friction-API.patch b/patches/server/0817-Friction-API.patch index cb41b035bb..c7825d86c1 100644 --- a/patches/server/0817-Friction-API.patch +++ b/patches/server/0817-Friction-API.patch @@ -133,10 +133,10 @@ index 1a291dd8a287db30e71dcb315599fc4b038764c4..30d62ee4d5cd2ddacb8783b5bbbf475d public int getHealth() { return this.getHandle().health; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 7ba726584ce4a58654b8a8b9604f0cca762b3f42..d7492b969750fddca8bf09fdf2e91b146db03dc4 100644 +index ed436eed7617665e77627dd05d17b8e5a7366f25..e8ef40fed546608d995fd31dc8a9721c00537749 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1121,6 +1121,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1120,6 +1120,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { }); } diff --git a/patches/server/0843-Add-Entity-Body-Yaw-API.patch b/patches/server/0843-Add-Entity-Body-Yaw-API.patch index 1131f49d45..526a085ebb 100644 --- a/patches/server/0843-Add-Entity-Body-Yaw-API.patch +++ b/patches/server/0843-Add-Entity-Body-Yaw-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 69dc7d9cc9ebd681d842099e2de521fd11ff5242..ba915f1b3cd00c8afe39ece9c9e68737673777f5 100644 +index 034bfd80ea7d1958eba3e057010379bf4b3661c9..dbb463e8aabe4afce6e119f0d91caff96911384d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1136,6 +1136,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -38,13 +38,13 @@ index 69dc7d9cc9ebd681d842099e2de521fd11ff5242..ba915f1b3cd00c8afe39ece9c9e68737 + return this.entity.getBukkitYaw(); + } // Paper end - // Paper start - Collision API - @Override + + // Paper start - move up invisibility diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index d7492b969750fddca8bf09fdf2e91b146db03dc4..3302d8e9b7c2c48b20dd257f4699b263d3bc52dc 100644 +index e8ef40fed546608d995fd31dc8a9721c00537749..fbe1d5051f8767db240e4d0c256f4a1088c4339c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1113,6 +1113,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1112,6 +1112,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { this.damageItemStack0(this.getHandle().getItemBySlot(nmsSlot), amount, nmsSlot); } diff --git a/patches/server/0910-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0910-API-for-an-entity-s-scoreboard-name.patch index 1df4442214..a93b609b72 100644 --- a/patches/server/0910-API-for-an-entity-s-scoreboard-name.patch +++ b/patches/server/0910-API-for-an-entity-s-scoreboard-name.patch @@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different methods depending on the implementation of Entity you were working with. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 282a1cebc0cdb6253d024dd399ef794335883662..fec2f96cfc42559c44d5d2e907d0706c674dfda7 100644 +index 1de3a2ed64dcd222bc90d3917c08e12af56450b4..fd7a3176cdd07f50e4e56d98827672042cdf5944 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1192,4 +1192,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1206,4 +1206,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return !this.getHandle().level().noCollision(this.getHandle(), aabb); } // Paper end - Collision API From b6001403e9703cadaa6e8c8558e732b91c3c6d6e Mon Sep 17 00:00:00 2001 From: maxcom1 <46265094+maxcom1@users.noreply.github.com> Date: Sat, 23 Mar 2024 22:26:17 +0100 Subject: [PATCH 027/215] Add methods to change entity physics (#10334) --- ...mplement-PlayerRecipeBookClickEvent.patch} | 0 patches/api/0201-Improve-Arrow-API.patch | 43 ------------------- ...0202-Support-components-in-ItemMeta.patch} | 2 +- ...TargetReasons-for-1.16-mob-behavior.patch} | 0 ...patch => 0204-Add-entity-liquid-API.patch} | 0 ...eResultEvent-PrepareGrindstoneEvent.patch} | 0 ...ent.patch => 0206-Add-BellRingEvent.patch} | 0 ...support.patch => 0207-Brand-support.patch} | 0 ...PI.patch => 0208-Add-moon-phase-API.patch} | 0 ...PickupItemAnimation-to-LivingEntity.patch} | 2 +- ...I.patch => 0210-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 2 +- ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...l-open-container-api-to-HumanEntity.patch} | 0 ...-Counter-to-allow-plugins-to-use-va.patch} | 0 ...king.patch => 0215-Entity-isTicking.patch} | 0 ....patch => 0216-Villager-resetOffers.patch} | 0 ...tch => 0217-Player-elytra-boost-API.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 0 ...ch => 0219-Add-ignore-discounts-API.patch} | 0 ...> 0220-Item-no-age-no-player-pickup.patch} | 2 +- ...221-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0222-Add-API-for-quit-reason.patch} | 0 ...patch => 0223-Add-Destroy-Speed-API.patch} | 2 +- ...24-Add-LivingEntity-clearActiveItem.patch} | 2 +- ...=> 0225-Add-PlayerItemCooldownEvent.patch} | 0 ...PI.patch => 0226-More-lightning-API.patch} | 0 ...h => 0227-Add-PlayerShearBlockEvent.patch} | 0 ...228-Player-Chunk-Load-Unload-Events.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 2 +- ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 0 ...atch => 0231-Added-PlayerTradeEvent.patch} | 0 ...atch => 0232-Add-TargetHitEvent-API.patch} | 0 ...233-Additional-Block-Material-API-s.patch} | 2 +- ...t-Material-from-Boats-and-Minecarts.patch} | 0 ...-Add-PlayerFlowerPotManipulateEvent.patch} | 0 ...h => 0236-Zombie-API-breaking-doors.patch} | 0 ...=> 0237-Add-EntityLoadCrossbowEvent.patch} | 0 ...0238-Added-WorldGameRuleChangeEvent.patch} | 0 ...-Added-ServerResourcesReloadedEvent.patch} | 0 ...> 0240-Add-BlockFailedDispenseEvent.patch} | 0 ...-Added-PlayerLecternPageChangeEvent.patch} | 0 ...-Added-PlayerLoomPatternSelectEvent.patch} | 0 ...act-interaction-point-in-PlayerInte.patch} | 0 ...I.patch => 0244-Add-sendOpLevel-API.patch} | 0 ...try.patch => 0245-Add-PaperRegistry.patch} | 0 ...h => 0246-Add-StructuresLocateEvent.patch} | 0 ...h => 0247-Add-BlockPreDispenseEvent.patch} | 0 ...Added-PlayerChangeBeaconEffectEvent.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...eash-variable-to-EntityUnleashEvent.patch} | 0 ...atch => 0251-add-DragonEggFormEvent.patch} | 0 ...Event.patch => 0252-EntityMoveEvent.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 0 ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...s.patch => 0256-Add-missing-effects.patch} | 0 ...atch => 0257-Expose-Tracked-Players.patch} | 0 ...ache-the-result-of-Material-isBlock.patch} | 0 ...atch => 0259-Add-worldborder-events.patch} | 0 ...=> 0260-added-PlayerNameEntityEvent.patch} | 0 ...h => 0261-Add-recipe-to-cook-events.patch} | 0 ...patch => 0262-Add-Block-isValidTool.patch} | 0 ....patch => 0263-Expand-world-key-API.patch} | 0 ...y-API.patch => 0264-Item-Rarity-API.patch} | 0 ...tch => 0265-Expose-protocol-version.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ... => 0269-Added-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0270-More-World-API.patch} | 0 ... 0271-Added-PlayerBedFailEnterEvent.patch} | 0 ...acon-activation-deactivation-events.patch} | 0 ...> 0273-PlayerMoveEvent-Improvements.patch} | 0 ...-RespawnFlags-to-PlayerRespawnEvent.patch} | 0 ...> 0275-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...close.patch => 0278-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0280-Add-basic-Datapack-API.patch} | 0 ...itions-to-PlayerGameModeChangeEvent.patch} | 0 ... => 0282-ItemStack-repair-check-API.patch} | 0 ....patch => 0283-More-Enchantment-API.patch} | 0 ...PI.patch => 0284-Add-Mob-lookAt-API.patch} | 0 ...ta.patch => 0285-ItemStack-editMeta.patch} | 0 ... => 0286-Add-EntityInsideBlockEvent.patch} | 0 ...87-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0289-More-Lidded-Block-API.patch} | 0 ... => 0290-Add-PlayerKickEvent-causes.patch} | 2 +- ...0291-Add-PufferFishStateChangeEvent.patch} | 0 ...h => 0292-Add-BellRevealRaiderEvent.patch} | 0 ...93-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0294-Add-more-line-of-sight-methods.patch} | 0 ... => 0295-Add-WaterBottleSplashEvent.patch} | 0 ... => 0296-Add-more-LimitedRegion-API.patch} | 0 ...PI.patch => 0297-Missing-Entity-API.patch} | 27 +++++++++--- ...ch => 0298-Adds-PlayerArmSwingEvent.patch} | 0 ...dd-PlayerSignCommandPreprocessEvent.patch} | 0 ...array-elements-in-command-arguments.patch} | 0 ...inger-API.patch => 0301-Stinger-API.patch} | 2 +- ...-to-contain-the-source-jars-in-stac.patch} | 0 ...tch => 0303-Add-PlayerSetSpawnEvent.patch} | 0 ...=> 0304-Added-EntityDamageItemEvent.patch} | 0 ...Make-EntityUnleashEvent-cancellable.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0307-Add-BlockBreakBlockEvent.patch} | 0 ...pers-for-left-right-click-to-Action.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0310-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0312-add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 0 ... 0314-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0315-Left-handed-API.patch} | 0 ...tch => 0316-Add-critical-damage-API.patch} | 0 ...ch => 0317-Add-more-advancement-API.patch} | 0 ...0318-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0320-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...2-Add-Raw-Byte-Entity-Serialization.patch} | 4 +- ...0323-Add-PlayerItemFrameChangeEvent.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...patch => 0325-Add-more-Campfire-API.patch} | 0 ...eCollisionEvent-move-HandlerList-up.patch} | 0 ... => 0327-Improve-scoreboard-entries.patch} | 0 ...ch => 0328-Entity-powdered-snow-API.patch} | 4 +- ...0329-Add-API-for-item-entity-health.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...le-API.patch => 0331-Bucketable-API.patch} | 0 ...-for-default-config-comment-parsing.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ...4-Multiple-Entries-with-Scoreboards.patch} | 0 ...n-strange-EventHandler-return-types.patch} | 0 ...atch => 0336-Multi-Block-Change-API.patch} | 2 +- ...ent.patch => 0337-Fix-NotePlayEvent.patch} | 0 ....patch => 0338-Freeze-Tick-Lock-API.patch} | 8 ++-- ...lphin-API.patch => 0339-Dolphin-API.patch} | 0 ...h => 0340-More-PotionEffectType-API.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...h => 0342-Implement-regenerateChunk.patch} | 0 ...gs.patch => 0343-Add-GameEvent-tags.patch} | 0 ...tch => 0344-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...s.patch => 0347-Custom-Potion-Mixes.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...I.patch => 0349-More-Projectile-API.patch} | 25 +++++++---- ...ch => 0350-Add-getComputedBiome-API.patch} | 0 ...h => 0351-Add-enchantWithLevels-API.patch} | 0 ... 0352-Add-TameableDeathMessageEvent.patch} | 0 ...hange-the-podium-of-the-EnderDragon.patch} | 0 ...-blockstate-in-EntityBreakDoorEvent.patch} | 0 ...ing-amount-to-PlayerItemDamageEvent.patch} | 0 ...> 0356-WorldCreator-keepSpawnLoaded.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...> 0358-Add-PlayerStopUsingItemEvent.patch} | 0 ...tch => 0359-Expand-FallingBlock-API.patch} | 0 ...dd-method-isTickingWorlds-to-Bukkit.patch} | 0 ... => 0361-Add-WardenAngerChangeEvent.patch} | 0 ...I.patch => 0362-Nameable-Banner-API.patch} | 0 ...atch => 0363-Add-Player-getFishHook.patch} | 0 ...API.patch => 0364-More-Teleport-API.patch} | 2 +- ... => 0365-Add-EntityPortalReadyEvent.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...ion-API.patch => 0367-Collision-API.patch} | 4 +- ...API.patch => 0368-Block-Ticking-API.patch} | 0 ...369-Add-NamespacedKey-biome-methods.patch} | 0 ...o-load-resources-from-LibraryLoader.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...limit-in-YamlConfigOptions-and-incr.patch} | 0 ... => 0374-Add-getDrops-to-BlockState.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0376-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...d-EquipmentSlot-convenience-methods.patch} | 0 ...swingHand-EquipmentSlot-convenience.patch} | 0 ...ch => 0380-Add-entity-knockback-API.patch} | 0 ... => 0381-Added-EntityToggleSitEvent.patch} | 0 ...patch => 0382-Add-Moving-Piston-API.patch} | 0 ...0383-Add-PrePlayerAttackEntityEvent.patch} | 0 ... 0384-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...386-Add-paper-dumplisteners-command.patch} | 0 ....patch => 0387-ItemStack-damage-API.patch} | 0 ...patch => 0388-Add-Tick-TemporalUnit.patch} | 0 ...tion-API.patch => 0389-Friction-API.patch} | 2 +- ... 0390-Player-Entity-Tracking-Events.patch} | 0 ...atch => 0391-Add-missing-Fluid-type.patch} | 0 ...ments.patch => 0392-fix-Instruments.patch} | 0 ...tch => 0393-Add-BlockLockCheckEvent.patch} | 0 ... 0394-Add-Sneaking-API-for-Entities.patch} | 4 +- ....patch => 0395-Improve-PortalEvents.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...atch => 0397-Flying-Fall-Damage-API.patch} | 0 ...eplace-ItemFlag.HIDE_POTION_EFFECTS.patch} | 0 ...en-API.patch => 0399-Win-Screen-API.patch} | 2 +- ...tch => 0400-Add-Entity-Body-Yaw-API.patch} | 4 +- ...or-InventoryBlockStartEvent-subclas.patch} | 0 ...=> 0402-Add-EntityFertilizeEggEvent.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...API.patch => 0404-Add-Shearable-API.patch} | 2 +- ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ... 0406-Add-Mob-Experience-reward-API.patch} | 0 ... => 0407-Expand-PlayerItemMendEvent.patch} | 0 ... => 0408-Add-transient-modifier-API.patch} | 0 ...he-experimental-smithing-inventory-.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 2 +- ...olia-scheduler-and-owned-region-API.patch} | 4 +- ...2-Add-event-for-player-editing-sign.patch} | 0 ...413-Add-Sign-getInteractableSideFor.patch} | 0 ...t-API.patch => 0414-Fix-BanList-API.patch} | 0 ....patch => 0415-Add-whitelist-events.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 0 ...tch => 0417-Add-PlayerFailMoveEvent.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...tch => 0419-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 4 +- ...lace-methods-with-old-StructureType.patch} | 0 ... => 0422-Add-Listing-API-for-Player.patch} | 0 ...d-BlockFace-during-BlockDamageEvent.patch} | 0 ...h => 0424-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0425-Expand-Pose-API.patch} | 4 +- ...MerchantRecipe-add-copy-constructor.patch} | 0 ...patch => 0427-More-DragonBattle-API.patch} | 0 ...tch => 0428-Add-PlayerPickItemEvent.patch} | 0 ...=> 0429-Allow-trident-custom-damage.patch} | 0 ...pose-hand-during-BlockCanBuildEvent.patch} | 0 ...t-setBurnTime-to-valid-short-values.patch} | 0 ... 0432-Add-OfflinePlayer-isConnected.patch} | 2 +- ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...dItemsEvent-throwing-exception-when.patch} | 0 ...> 0436-Add-player-idle-duration-API.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...440-Add-UUID-attribute-modifier-API.patch} | 0 ... => 0441-Expand-LingeringPotion-API.patch} | 0 ...y-durability-check-in-ItemStack-isS.patch} | 0 ...tch => 0443-Add-Structure-check-API.patch} | 0 ...dd-missing-Experimental-annotations.patch} | 0 ...tch => 0445-Add-more-scoreboard-API.patch} | 0 ...stry.patch => 0446-Improve-Registry.patch} | 0 ...h => 0447-Add-experience-points-API.patch} | 0 ...h => 0448-Add-missing-InventoryType.patch} | 0 ...h => 0449-Add-drops-to-shear-events.patch} | 0 ... => 0450-Add-HiddenPotionEffect-API.patch} | 2 +- ...> 0451-Add-PlayerShieldDisableEvent.patch} | 0 ...mpty-String-in-NamespacedKey.fromSt.patch} | 0 ...-Add-BlockStateMeta-clearBlockState.patch} | 0 ...54-Expose-LootTable-of-DecoratedPot.patch} | 0 ...h => 0455-Add-ShulkerDuplicateEvent.patch} | 0 ...dd-api-for-spawn-egg-texture-colors.patch} | 0 ... => 0457-Add-Lifecycle-Event-system.patch} | 0 ...nduit-API.patch => 0458-Conduit-API.patch} | 0 ...patch => 0459-ItemStack-Tooltip-API.patch} | 0 ...Snapshot-includeLightData-parameter.patch} | 0 ...PI.patch => 0461-Add-FluidState-API.patch} | 0 ...patch => 0462-add-number-format-api.patch} | 0 ...patch => 0463-improve-BanList-types.patch} | 0 ...=> 0464-Suspicious-Effect-Entry-API.patch} | 0 ....patch => 0465-Fix-DamageSource-API.patch} | 0 ...I.patch => 0466-Expanded-Hopper-API.patch} | 0 ...tables-to-prevent-unexpected-issues.patch} | 0 ...0385-Add-PlayerRecipeBookClickEvent.patch} | 0 patches/server/0385-Improve-Arrow-API.patch | 38 ---------------- ...-Hide-sync-chunk-writes-behind-flag.patch} | 0 ...7-Add-permission-for-command-blocks.patch} | 0 ...position-and-AABB-are-never-invalid.patch} | 2 +- ...d-Difficulty-Remembering-Difficulty.patch} | 0 ...atch => 0390-Paper-dumpitem-command.patch} | 0 ...Legacy-Component-serialization-size.patch} | 0 ...Plugin-Tickets-to-API-Chunk-Methods.patch} | 0 ...-Add-BlockStateMeta-clearBlockState.patch} | 0 ...394-Support-old-UUID-format-for-NBT.patch} | 0 ...vert-legacy-attributes-in-Item-Meta.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 0 ...e-fix-EntityTargetLivingEntityEvent.patch} | 0 ...patch => 0398-Add-entity-liquid-API.patch} | 0 ...date-itemstack-legacy-name-and-lore.patch} | 0 ...atch => 0400-Add-PrepareResultEvent.patch} | 0 ...-for-portal-on-world-gen-entity-add.patch} | 0 ...x-arrows-never-despawning-MC-125757.patch} | 0 ...Vanilla-Command-permission-checking.patch} | 0 ...-5989.patch => 0404-Fix-SPIGOT-5989.patch} | 0 ...-Bukkit-world-container-is-not-used.patch} | 0 ...5885-Unable-to-disable-advancements.patch} | 0 ...taPlayer-leak-due-from-quitting-ear.patch} | 0 ...e-NetworkManager-Exception-Handling.patch} | 0 ...ix-some-rails-connecting-improperly.patch} | 0 ...stake-in-CB-NBT-int-deserialization.patch} | 0 ...support.patch => 0411-Brand-support.patch} | 0 ...PickupItemAnimation-to-LivingEntity.patch} | 0 ...h => 0413-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 0 ...PI.patch => 0415-Add-moon-phase-API.patch} | 0 ...rver-load-chunks-from-newer-version.patch} | 0 ...headless-pistons-from-being-created.patch} | 0 ...ent.patch => 0418-Add-BellRingEvent.patch} | 0 ...dd-zombie-targets-turtle-egg-config.patch} | 0 ...patch => 0420-Buffer-joins-to-world.patch} | 0 ...s-not-working-in-some-kick-messages.patch} | 0 ...reateEvent-needs-to-know-its-entity.patch} | 0 ...I.patch => 0423-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0426-Cache-block-data-strings.patch} | 0 ...rtation-and-cancel-velocity-if-tele.patch} | 2 +- ...l-open-container-api-to-HumanEntity.patch} | 0 ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 0 ...-Counter-to-allow-plugins-to-use-va.patch} | 2 +- ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0433-Entity-isTicking.patch} | 2 +- ...non-whitelisted-player-when-white-l.patch} | 0 ...-Concurrency-issue-in-ShufflingList.patch} | 0 ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 0 ...-large-move-vectors-crashing-server.patch} | 0 ...atch => 0438-Optimise-getType-calls.patch} | 0 ....patch => 0439-Villager-resetOffers.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 0 ...lockpos-allocation-from-pathfinding.patch} | 0 ...em-locations-dropped-from-campfires.patch} | 0 ...3-Fix-bell-block-entity-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 0 ...ch => 0446-Add-ignore-discounts-API.patch} | 0 ...Toggle-for-removing-existing-dragon.patch} | 0 ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0449-Item-no-age-no-player-pickup.patch} | 0 ...450-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0451-Add-API-for-quit-reason.patch} | 0 ...ng-Trader-spawn-rate-config-options.patch} | 0 ...ch => 0453-Expose-world-spawn-angle.patch} | 0 ...patch => 0454-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 0 ...56-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0457-Add-PlayerItemCooldownEvent.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...PI.patch => 0459-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 2 +- ...-missing-default-perms-for-commands.patch} | 0 ...h => 0462-Add-PlayerShearBlockEvent.patch} | 0 ....patch => 0463-Limit-recipe-packets.patch} | 0 ...-CraftSound-backwards-compatibility.patch} | 0 ...465-Player-Chunk-Load-Unload-Events.patch} | 0 ...6-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 0 ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 0 ...valid-ingredient-lists-in-VillagerA.patch} | 0 ...nt.patch => 0470-Add-TargetHitEvent.patch} | 0 ... 0471-MC-4-Fix-item-position-desync.patch} | 2 +- ... 0472-Additional-Block-Material-API.patch} | 0 ...tch => 0473-Fix-harming-potion-dupe.patch} | 0 ...t-Material-from-Boats-and-Minecarts.patch} | 0 ....patch => 0475-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 0 ...-Add-PlayerFlowerPotManipulateEvent.patch} | 0 ...ct-event-not-being-called-sometimes.patch} | 0 ...h => 0480-Zombie-API-breaking-doors.patch} | 0 ...481-Fix-nerfed-slime-when-splitting.patch} | 0 ...=> 0482-Add-EntityLoadCrossbowEvent.patch} | 0 ...> 0483-Add-WorldGameRuleChangeEvent.patch} | 0 ...84-Add-ServerResourcesReloadedEvent.patch} | 0 ...d-settings-for-mobs-picking-up-loot.patch} | 0 ...> 0486-Add-BlockFailedDispenseEvent.patch} | 0 ...87-Add-PlayerLecternPageChangeEvent.patch} | 0 ...88-Add-PlayerLoomPatternSelectEvent.patch} | 0 ...nfigurable-door-breaking-difficulty.patch} | 0 ...ty-commands-shall-not-be-dispatched.patch} | 0 ...OIs.patch => 0491-Remove-stale-POIs.patch} | 0 ...h => 0492-Fix-villager-boat-exploit.patch} | 0 ...I.patch => 0493-Add-sendOpLevel-API.patch} | 0 ...0494-TODO-Registry-Modification-API.patch} | 0 ...h => 0495-Add-StructuresLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 2 +- ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 0 ...499-Make-schedule-command-per-world.patch} | 0 ...500-Configurable-max-leash-distance.patch} | 0 ...h => 0501-Add-BlockPreDispenseEvent.patch} | 0 ...2-Add-PlayerChangeBeaconEffectEvent.patch} | 0 ...e-for-always-placing-the-dragon-egg.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...h => 0505-Expand-EntityUnleashEvent.patch} | 0 ...shield-blocking-on-dimension-change.patch} | 0 ...atch => 0507-Add-DragonEggFormEvent.patch} | 0 ...t.patch => 0508-Add-EntityMoveEvent.patch} | 0 ...isable-pathfinding-updates-on-block.patch} | 0 ... 0510-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 0 ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ...atch => 0516-Expose-Tracked-Players.patch} | 0 ...GUI.patch => 0517-Improve-ServerGUI.patch} | 0 ...518-fix-converting-txt-to-json-file.patch} | 0 ...atch => 0519-Add-worldborder-events.patch} | 0 ...h => 0520-Add-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 0 ...h => 0522-Add-recipe-to-cook-events.patch} | 0 ...patch => 0523-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 0 ....patch => 0525-Expand-world-key-API.patch} | 0 ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0527-Item-Rarity-API.patch} | 0 ...d-item-when-player-has-disconnected.patch} | 0 ...elist-use-configurable-kick-message.patch} | 0 ...gnore-result-of-PlayerEditBookEvent.patch} | 0 ...tch => 0531-Expose-protocol-version.patch} | 0 ...ab-completions-for-brigadier-comman.patch} | 0 ...temConsumeEvent-cancelling-properly.patch} | 0 ...patch => 0534-Add-bypass-host-check.patch} | 0 ...0535-Set-area-affect-cloud-rotation.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 0 ...ch => 0541-Add-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0542-More-World-API.patch} | 0 ...=> 0543-Add-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 0 ...awnEvent-fix-passed-parameter-issue.patch} | 0 ...acon-activation-deactivation-events.patch} | 0 ...dd-Channel-initialization-listeners.patch} | 0 ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0549-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ... => 0552-Add-HiddenPotionEffect-API.patch} | 0 ...close.patch => 0553-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0555-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 0 ...57-Expand-PlayerGameModeChangeEvent.patch} | 0 ... => 0558-ItemStack-repair-check-API.patch} | 0 ....patch => 0559-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 0 ...PI.patch => 0561-Add-Mob-lookAt-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...0563-Add-Unix-domain-socket-support.patch} | 0 ... => 0564-Add-EntityInsideBlockEvent.patch} | 0 ...65-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0567-More-Lidded-Block-API.patch} | 0 ...68-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0569-Add-PlayerKickEvent-causes.patch} | 0 ...0570-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0574-Add-BellRevealRaiderEvent.patch} | 0 ... 0575-Fix-invulnerable-end-crystals.patch} | 0 ...76-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0577-Fix-dangerous-end-portal-logic.patch} | 2 +- ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...patch => 0580-Line-Of-Sight-Changes.patch} | 0 ... => 0581-add-per-world-spawn-limits.patch} | 0 ...h => 0582-Fix-potions-splash-events.patch} | 0 ... => 0583-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 0 ...PI.patch => 0585-Missing-Entity-API.patch} | 23 +++++++--- ...ect-for-book-edit-is-called-on-main.patch} | 0 ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 0 ...rom-signs-not-firing-command-events.patch} | 0 ...tch => 0590-Add-PlayerArmSwingEvent.patch} | 0 ...-event-leave-message-not-being-sent.patch} | 0 ...-for-mobs-immune-to-default-effects.patch} | 0 ...-t-apply-cramming-damage-to-players.patch} | 0 ...d-timings-for-sensors-and-behaviors.patch} | 0 ... 0595-Add-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0596-Stinger-API.patch} | 2 +- ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0598-Add-System.out-err-catcher.patch} | 0 ...-to-contain-the-source-jars-in-stac.patch} | 0 ...AFK-kick-while-watching-end-credits.patch} | 0 ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0602-Add-PlayerSetSpawnEvent.patch} | 0 ...rs-respect-inventory-max-stack-size.patch} | 2 +- ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...h => 0606-Add-EntityDamageItemEvent.patch} | 0 ...timize-indirect-passenger-iteration.patch} | 2 +- ...em-frame-map-cursor-update-interval.patch} | 0 ...609-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0611-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0613-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0615-Add-back-EntityPortalExitEvent.patch} | 2 +- ...-find-targets-for-lightning-strikes.patch} | 0 ... 0617-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0618-Left-handed-API.patch} | 0 ...ch => 0619-Add-more-advancement-API.patch} | 0 ...620-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0621-Add-critical-damage-API.patch} | 0 ...0622-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0624-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...6-Add-Raw-Byte-Entity-Serialization.patch} | 4 +- ...27-Vanilla-command-permission-fixes.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 0 ...29-Fix-GameProfileCache-concurrency.patch} | 0 ...630-Improve-and-expand-AsyncCatcher.patch} | 2 +- ...per-mobcaps-and-paper-playermobcaps.patch} | 0 ...tize-ResourceLocation-error-logging.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 0 ...our-chunk-data-off-disk-when-conver.patch} | 0 ...d-state-when-raytracing-skip-air-bl.patch} | 0 ...atch => 0638-Time-scoreboard-search.patch} | 0 ...rimise-map-impl-for-tracked-players.patch} | 0 ...h => 0640-Add-missing-InventoryType.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 0 ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 0 ...h => 0645-Add-packet-limiter-config.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0647-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0652-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 2 +- ...unintended-light-block-manipulation.patch} | 0 ...0655-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 2 +- ... => 0657-Configurable-feature-seeds.patch} | 0 ... 0658-Add-root-admin-user-detection.patch} | 0 ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 2 +- ...ive-velocity-through-repeated-crits.patch} | 0 ...e-code-using-deprecated-for-removal.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 0 ...e-unnecessary-itemmeta-from-clients.patch} | 0 ...=> 0666-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0668-Add-PlayerItemFrameChangeEvent.patch} | 2 +- ...tch => 0669-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0672-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 2 +- ... => 0675-Improve-scoreboard-entries.patch} | 0 ...ch => 0676-Entity-powdered-snow-API.patch} | 4 +- ...0677-Add-API-for-item-entity-health.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0682-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0683-Bucketable-API.patch} | 0 ...es.patch => 0684-Validate-usernames.patch} | 0 ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...9-Multiple-Entries-with-Scoreboards.patch} | 0 ...690-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0692-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0694-Fix-NotePlayEvent.patch} | 0 ....patch => 0695-Freeze-Tick-Lock-API.patch} | 4 +- ...h => 0696-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0700-Implement-regenerateChunk.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 0 ...gs.patch => 0703-Add-GameEvent-tags.patch} | 0 ...ks-fairly-for-worlds-while-waiting-.patch} | 0 ...tch => 0705-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 0 ...-worldlist-before-initing-the-world.patch} | 0 ... => 0710-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0711-Custom-Potion-Mixes.patch} | 0 ...12-Force-close-world-loading-screen.patch} | 0 ...713-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0716-More-Projectile-API.patch} | 20 ++++++--- ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0719-Implement-getComputedBiome-API.patch} | 0 ...> 0720-Make-some-itemstacks-nonnull.patch} | 0 ...721-Implement-enchantWithLevels-API.patch} | 0 ...h => 0722-Fix-saving-in-unloadWorld.patch} | 0 ...h => 0723-Buffer-OOB-setBlock-calls.patch} | 0 ... 0724-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 2 +- ...s.patch => 0728-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 0 ...> 0733-Expand-PlayerItemDamageEvent.patch} | 0 ...> 0734-WorldCreator-keepSpawnLoaded.patch} | 0 ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0740-Add-PlayerStopUsingItemEvent.patch} | 0 ...rs.patch => 0741-Don-t-tick-markers.patch} | 0 ...tch => 0742-Expand-FallingBlock-API.patch} | 0 ...0743-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ...-read-and-store-sus-effect-duration.patch} | 0 ... 0747-Sanitize-sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 2 +- ...-on-world-create-while-being-ticked.patch} | 0 ...51-Dont-resent-entity-on-art-update.patch} | 0 ... => 0752-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0755-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 0 ...pty-items-from-being-added-to-world.patch} | 0 ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0759-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 2 +- ...PE.patch => 0762-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 0 ...API.patch => 0764-More-Teleport-API.patch} | 2 +- ... => 0765-Add-EntityPortalReadyEvent.patch} | 2 +- ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 0 ...on-plugins-accessing-faraway-chunks.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0771-Collision-API.patch} | 8 ++-- ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0773-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 0 ...775-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 2 +- ...ok-changes-from-crashing-the-server.patch} | 0 ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0779-Missing-eating-regain-reason.patch} | 0 ....patch => 0780-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 2 +- ...3-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0784-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0786-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0788-Add-getDrops-to-BlockState.patch} | 0 ...=> 0789-Fix-a-bunch-of-vanilla-bugs.patch} | 2 +- ...y-onTrackingStart-during-navigation.patch} | 0 ... 0791-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0792-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0795-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0797-Add-entity-knockback-API.patch} | 0 ....patch => 0798-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...ch => 0800-Add-EntityToggleSitEvent.patch} | 0 ... => 0801-Add-fire-tick-delay-option.patch} | 0 ...patch => 0802-Add-Moving-Piston-API.patch} | 0 ...> 0803-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 2 +- ...0807-Add-PrePlayerAttackEntityEvent.patch} | 0 ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 2 +- ... 0810-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...812-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 0 ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0815-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0816-Friction-API.patch} | 0 ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0818-Fix-player-kick-on-shutdown.patch} | 0 ... => 0819-Sync-offhand-slot-in-menus.patch} | 0 ... 0820-Player-Entity-Tracking-Events.patch} | 2 +- ...tch => 0821-Limit-pet-look-distance.patch} | 0 ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0823-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 0 ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0826-Add-BlockLockCheckEvent.patch} | 0 ... 0827-Add-Sneaking-API-for-Entities.patch} | 2 +- ... => 0828-Improve-logging-and-errors.patch} | 0 ....patch => 0829-Improve-PortalEvents.patch} | 2 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 0 ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0833-Flying-Fall-Damage.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...ion-moving-velocity-to-VehicleBlock.patch} | 2 +- ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 0 ...k-items-during-EntityResurrectEvent.patch} | 0 ...en-API.patch => 0839-Win-Screen-API.patch} | 0 ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0842-Add-Entity-Body-Yaw-API.patch} | 4 +- ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 0 ...=> 0845-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 0 ...850-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0852-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 0 ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 0 ...0859-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0862-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...65-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ... => 0867-Expand-PlayerItemMendEvent.patch} | 0 ...sh-ProjectileSource-for-projectiles.patch} | 2 +- ... => 0869-Add-transient-modifier-API.patch} | 0 ...patch => 0870-Fix-block-place-logic.patch} | 0 ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 0 ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 2 +- ...rafting-result-amount-for-fireworks.patch} | 0 ...8-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 0 ...882-Call-missing-BlockDispenseEvent.patch} | 0 ...-chunks-for-supporting-block-checks.patch} | 2 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...885-Add-Sign-getInteractableSideFor.patch} | 0 ...86-Array-backed-synched-entity-data.patch} | 0 ...7-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0888-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 0 ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0894-Add-whitelist-events.patch} | 0 ... 0895-Implement-PlayerFailMoveEvent.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 4 +- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 0 ...tion-when-spawning-display-entities.patch} | 0 ...900-Only-capture-actual-tree-growth.patch} | 0 ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 0 ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0905-Cache-map-ids-on-item-frames.patch} | 2 +- ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0907-Bandaid-fix-for-Effect.patch} | 0 ...tch => 0908-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 4 +- ...lace-methods-with-old-StructureType.patch} | 0 ...e-namespaced-commands-if-send-names.patch} | 0 ...-handle-BlockBreakEvent-isDropItems.patch} | 0 ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 0 ... => 0915-Add-Listing-API-for-Player.patch} | 0 ...figurable-Region-Compression-Format.patch} | 0 ...7-Add-BlockFace-to-BlockDamageEvent.patch} | 0 ...h => 0918-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0919-Expand-Pose-API.patch} | 4 +- ...patch => 0920-More-DragonBattle-API.patch} | 0 ... 0921-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0922-Add-PlayerPickItemEvent.patch} | 0 ...=> 0923-Allow-trident-custom-damage.patch} | 0 ...4-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 0 ....patch => 0927-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...29-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 0 ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0936-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 0 ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...47-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 0948-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 0 ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 0952-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...em-packets-with-collector-as-source.patch} | 0 ... => 0956-Expand-LingeringPotion-API.patch} | 0 ....patch => 0957-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...961-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 2 +- ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 2 +- ...tch => 0965-Add-Structure-check-API.patch} | 0 ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 2 +- ...-Dont-resend-blocks-on-interactions.patch} | 0 ...tch => 0969-add-more-scoreboard-API.patch} | 0 ...stry.patch => 0970-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 0 ...h => 0972-Add-experience-points-API.patch} | 0 ...h => 0973-Add-drops-to-shear-events.patch} | 0 ...> 0974-Add-PlayerShieldDisableEvent.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 0 ...-experience-dropping-on-block-break.patch} | 0 ...> 0977-Fixup-NamespacedKey-handling.patch} | 0 ...78-Expose-LootTable-of-DecoratedPot.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 0 ...> 0980-Rewrite-dataconverter-system.patch} | 0 ...2-Starlight.patch => 0981-Starlight.patch} | 0 ....patch => 0982-Rewrite-chunk-system.patch} | 2 +- ...incremental-chunk-and-player-saving.patch} | 0 ...dBounds-and-getBlockState-for-inlin.patch} | 0 ...tem-frames-performance-and-bug-fixe.patch} | 0 ...ing-for-EntityLiving-hasLineOfSight.patch} | 0 ...Manager-and-add-advanced-packet-sup.patch} | 0 ...88-Allow-Saving-of-Oversized-Chunks.patch} | 0 ...89-Fix-World-isChunkGenerated-calls.patch} | 0 ...990-Flat-bedrock-generator-settings.patch} | 0 ...=> 0991-Entity-Activation-Range-2.0.patch} | 2 +- ...0992-Optional-per-player-mob-spawns.patch} | 0 ...4-Anti-Xray.patch => 0993-Anti-Xray.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 0 ...timize-Collision-to-not-load-chunks.patch} | 2 +- ...alSelector-Goal.Flag-Set-operations.patch} | 0 ...97-Entity-load-save-limit-per-chunk.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 0 ...h => 0999-Improved-Watchdog-Support.patch} | 0 ...> 1000-Optimize-Voxel-Shape-Merging.patch} | 0 ...ch => 1001-Write-SavedData-IO-async.patch} | 0 ...nd-End-Portal-Frames-from-being-des.patch} | 0 ...ance-map-to-optimise-entity-tracker.patch} | 2 +- ...Optimize-Bit-Operations-by-inlining.patch} | 0 ...> 1005-Remove-streams-from-hot-code.patch} | 0 ...-Eigencraft-redstone-implementation.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 0 ...-Improve-boat-collision-performance.patch} | 0 ...=> 1010-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...> 1012-Execute-chunk-tasks-mid-tick.patch} | 0 ... 1013-Optimise-random-block-ticking.patch} | 0 ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 2 +- ...tch => 1017-Collision-optimisations.patch} | 2 +- ...n-checking-in-player-move-packet-ha.patch} | 0 ...e-disarming-not-working-as-intended.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ate-Current-redstone-implementation.patch} | 0 ...22-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 1023-Properly-resend-entities.patch} | 2 +- ...pers.patch => 1024-Optimize-Hoppers.patch} | 0 ...-Improve-performance-of-mass-crafts.patch} | 0 ...> 1026-Actually-optimise-explosions.patch} | 0 ... 1027-Optimise-chunk-tick-iteration.patch} | 0 ...atch => 1028-Lag-compensation-ticks.patch} | 0 ...29-Optimise-nearby-player-retrieval.patch} | 0 ... 1030-Distance-manager-tick-timings.patch} | 0 ...-Oversized-block-entities-in-chunks.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...h => 1033-Add-ShulkerDuplicateEvent.patch} | 0 ...dd-api-for-spawn-egg-texture-colors.patch} | 0 ...5-Disable-memory-reserve-allocating.patch} | 0 ...=> 1036-Improve-tag-parser-handling.patch} | 0 ... => 1037-Add-Lifecycle-Event-system.patch} | 0 ...nduit-API.patch => 1038-Conduit-API.patch} | 0 ...patch => 1039-ItemStack-Tooltip-API.patch} | 0 ...ackOverflowError-for-some-dispenses.patch} | 0 ...e-changed-item-from-dispense-events.patch} | 0 ...Snapshot-includeLightData-parameter.patch} | 0 ...PI.patch => 1043-Add-FluidState-API.patch} | 0 ...patch => 1044-add-number-format-api.patch} | 0 ...eck-if-itemstack-is-stackable-first.patch} | 0 ...ByEntityEvent-for-unowned-wither-sk.patch} | 0 ...patch => 1047-improve-BanList-types.patch} | 0 ...-Configurable-max-block-fluid-ticks.patch} | 0 ...49-disable-forced-empty-world-ticks.patch} | 0 ...=> 1050-Suspicious-Effect-Entry-API.patch} | 0 ...-Per-world-ticks-per-spawn-settings.patch} | 0 ...ng-message-for-initial-server-start.patch} | 0 ....patch => 1053-Fix-DamageSource-API.patch} | 2 +- ...I.patch => 1054-Expanded-Hopper-API.patch} | 0 939 files changed, 171 insertions(+), 211 deletions(-) rename patches/api/{0202-Add-and-implement-PlayerRecipeBookClickEvent.patch => 0201-Add-and-implement-PlayerRecipeBookClickEvent.patch} (100%) delete mode 100644 patches/api/0201-Improve-Arrow-API.patch rename patches/api/{0203-Support-components-in-ItemMeta.patch => 0202-Support-components-in-ItemMeta.patch} (96%) rename patches/api/{0204-added-2-new-TargetReasons-for-1.16-mob-behavior.patch => 0203-added-2-new-TargetReasons-for-1.16-mob-behavior.patch} (100%) rename patches/api/{0205-Add-entity-liquid-API.patch => 0204-Add-entity-liquid-API.patch} (100%) rename patches/api/{0206-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch => 0205-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch} (100%) rename patches/api/{0207-Add-BellRingEvent.patch => 0206-Add-BellRingEvent.patch} (100%) rename patches/api/{0208-Brand-support.patch => 0207-Brand-support.patch} (100%) rename patches/api/{0209-Add-moon-phase-API.patch => 0208-Add-moon-phase-API.patch} (100%) rename patches/api/{0210-Add-playPickupItemAnimation-to-LivingEntity.patch => 0209-Add-playPickupItemAnimation-to-LivingEntity.patch} (93%) rename patches/api/{0211-Add-more-Evoker-API.patch => 0210-Add-more-Evoker-API.patch} (100%) rename patches/api/{0212-Add-methods-to-get-translation-keys.patch => 0211-Add-methods-to-get-translation-keys.patch} (99%) rename patches/api/{0213-Create-HoverEvent-from-ItemStack-Entity.patch => 0212-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/api/{0214-Add-additional-open-container-api-to-HumanEntity.patch => 0213-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/api/{0215-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (100%) rename patches/api/{0216-Entity-isTicking.patch => 0215-Entity-isTicking.patch} (100%) rename patches/api/{0217-Villager-resetOffers.patch => 0216-Villager-resetOffers.patch} (100%) rename patches/api/{0218-Player-elytra-boost-API.patch => 0217-Player-elytra-boost-API.patch} (100%) rename patches/api/{0219-Add-getOfflinePlayerIfCached-String.patch => 0218-Add-getOfflinePlayerIfCached-String.patch} (100%) rename patches/api/{0220-Add-ignore-discounts-API.patch => 0219-Add-ignore-discounts-API.patch} (100%) rename patches/api/{0221-Item-no-age-no-player-pickup.patch => 0220-Item-no-age-no-player-pickup.patch} (93%) rename patches/api/{0222-Beacon-API-custom-effect-ranges.patch => 0221-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/api/{0223-Add-API-for-quit-reason.patch => 0222-Add-API-for-quit-reason.patch} (100%) rename patches/api/{0224-Add-Destroy-Speed-API.patch => 0223-Add-Destroy-Speed-API.patch} (97%) rename patches/api/{0225-Add-LivingEntity-clearActiveItem.patch => 0224-Add-LivingEntity-clearActiveItem.patch} (90%) rename patches/api/{0226-Add-PlayerItemCooldownEvent.patch => 0225-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/api/{0227-More-lightning-API.patch => 0226-More-lightning-API.patch} (100%) rename patches/api/{0228-Add-PlayerShearBlockEvent.patch => 0227-Add-PlayerShearBlockEvent.patch} (100%) rename patches/api/{0229-Player-Chunk-Load-Unload-Events.patch => 0228-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/api/{0230-Expose-LivingEntity-hurt-direction.patch => 0229-Expose-LivingEntity-hurt-direction.patch} (95%) rename patches/api/{0231-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (100%) rename patches/api/{0232-Added-PlayerTradeEvent.patch => 0231-Added-PlayerTradeEvent.patch} (100%) rename patches/api/{0233-Add-TargetHitEvent-API.patch => 0232-Add-TargetHitEvent-API.patch} (100%) rename patches/api/{0234-Additional-Block-Material-API-s.patch => 0233-Additional-Block-Material-API-s.patch} (95%) rename patches/api/{0235-Add-API-to-get-Material-from-Boats-and-Minecarts.patch => 0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch} (100%) rename patches/api/{0236-Add-PlayerFlowerPotManipulateEvent.patch => 0235-Add-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/api/{0237-Zombie-API-breaking-doors.patch => 0236-Zombie-API-breaking-doors.patch} (100%) rename patches/api/{0238-Add-EntityLoadCrossbowEvent.patch => 0237-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/api/{0239-Added-WorldGameRuleChangeEvent.patch => 0238-Added-WorldGameRuleChangeEvent.patch} (100%) rename patches/api/{0240-Added-ServerResourcesReloadedEvent.patch => 0239-Added-ServerResourcesReloadedEvent.patch} (100%) rename patches/api/{0241-Add-BlockFailedDispenseEvent.patch => 0240-Add-BlockFailedDispenseEvent.patch} (100%) rename patches/api/{0242-Added-PlayerLecternPageChangeEvent.patch => 0241-Added-PlayerLecternPageChangeEvent.patch} (100%) rename patches/api/{0243-Added-PlayerLoomPatternSelectEvent.patch => 0242-Added-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/api/{0244-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch => 0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch} (100%) rename patches/api/{0245-Add-sendOpLevel-API.patch => 0244-Add-sendOpLevel-API.patch} (100%) rename patches/api/{0246-Add-PaperRegistry.patch => 0245-Add-PaperRegistry.patch} (100%) rename patches/api/{0247-Add-StructuresLocateEvent.patch => 0246-Add-StructuresLocateEvent.patch} (100%) rename patches/api/{0248-Add-BlockPreDispenseEvent.patch => 0247-Add-BlockPreDispenseEvent.patch} (100%) rename patches/api/{0249-Added-PlayerChangeBeaconEffectEvent.patch => 0248-Added-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/api/{0250-Added-PlayerStonecutterRecipeSelectEvent.patch => 0249-Added-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/api/{0251-Add-dropLeash-variable-to-EntityUnleashEvent.patch => 0250-Add-dropLeash-variable-to-EntityUnleashEvent.patch} (100%) rename patches/api/{0252-add-DragonEggFormEvent.patch => 0251-add-DragonEggFormEvent.patch} (100%) rename patches/api/{0253-EntityMoveEvent.patch => 0252-EntityMoveEvent.patch} (100%) rename patches/api/{0254-Allow-adding-items-to-BlockDropItemEvent.patch => 0253-Allow-adding-items-to-BlockDropItemEvent.patch} (100%) rename patches/api/{0255-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0254-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/api/{0256-living-entity-allow-attribute-registration.patch => 0255-living-entity-allow-attribute-registration.patch} (100%) rename patches/api/{0257-Add-missing-effects.patch => 0256-Add-missing-effects.patch} (100%) rename patches/api/{0258-Expose-Tracked-Players.patch => 0257-Expose-Tracked-Players.patch} (100%) rename patches/api/{0259-Cache-the-result-of-Material-isBlock.patch => 0258-Cache-the-result-of-Material-isBlock.patch} (100%) rename patches/api/{0260-Add-worldborder-events.patch => 0259-Add-worldborder-events.patch} (100%) rename patches/api/{0261-added-PlayerNameEntityEvent.patch => 0260-added-PlayerNameEntityEvent.patch} (100%) rename patches/api/{0262-Add-recipe-to-cook-events.patch => 0261-Add-recipe-to-cook-events.patch} (100%) rename patches/api/{0263-Add-Block-isValidTool.patch => 0262-Add-Block-isValidTool.patch} (100%) rename patches/api/{0264-Expand-world-key-API.patch => 0263-Expand-world-key-API.patch} (100%) rename patches/api/{0265-Item-Rarity-API.patch => 0264-Item-Rarity-API.patch} (100%) rename patches/api/{0266-Expose-protocol-version.patch => 0265-Expose-protocol-version.patch} (100%) rename patches/api/{0267-add-isDeeplySleeping-to-HumanEntity.patch => 0266-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/api/{0268-add-consumeFuel-to-FurnaceBurnEvent.patch => 0267-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/api/{0269-add-get-set-drop-chance-to-EntityEquipment.patch => 0268-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/api/{0270-Added-PlayerDeepSleepEvent.patch => 0269-Added-PlayerDeepSleepEvent.patch} (100%) rename patches/api/{0271-More-World-API.patch => 0270-More-World-API.patch} (100%) rename patches/api/{0272-Added-PlayerBedFailEnterEvent.patch => 0271-Added-PlayerBedFailEnterEvent.patch} (100%) rename patches/api/{0273-Introduce-beacon-activation-deactivation-events.patch => 0272-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/api/{0274-PlayerMoveEvent-Improvements.patch => 0273-PlayerMoveEvent-Improvements.patch} (100%) rename patches/api/{0275-add-RespawnFlags-to-PlayerRespawnEvent.patch => 0274-add-RespawnFlags-to-PlayerRespawnEvent.patch} (100%) rename patches/api/{0276-Add-more-WanderingTrader-API.patch => 0275-Add-more-WanderingTrader-API.patch} (100%) rename patches/api/{0277-Add-EntityBlockStorage-clearEntities.patch => 0276-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/api/{0278-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0277-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/api/{0279-Inventory-close.patch => 0278-Inventory-close.patch} (100%) rename patches/api/{0280-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0279-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/api/{0281-Add-basic-Datapack-API.patch => 0280-Add-basic-Datapack-API.patch} (100%) rename patches/api/{0282-additions-to-PlayerGameModeChangeEvent.patch => 0281-additions-to-PlayerGameModeChangeEvent.patch} (100%) rename patches/api/{0283-ItemStack-repair-check-API.patch => 0282-ItemStack-repair-check-API.patch} (100%) rename patches/api/{0284-More-Enchantment-API.patch => 0283-More-Enchantment-API.patch} (100%) rename patches/api/{0285-Add-Mob-lookAt-API.patch => 0284-Add-Mob-lookAt-API.patch} (100%) rename patches/api/{0286-ItemStack-editMeta.patch => 0285-ItemStack-editMeta.patch} (100%) rename patches/api/{0287-Add-EntityInsideBlockEvent.patch => 0286-Add-EntityInsideBlockEvent.patch} (100%) rename patches/api/{0288-Attributes-API-for-item-defaults.patch => 0287-Attributes-API-for-item-defaults.patch} (100%) rename patches/api/{0289-Add-cause-to-Weather-ThunderChangeEvents.patch => 0288-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/api/{0290-More-Lidded-Block-API.patch => 0289-More-Lidded-Block-API.patch} (100%) rename patches/api/{0291-Add-PlayerKickEvent-causes.patch => 0290-Add-PlayerKickEvent-causes.patch} (97%) rename patches/api/{0292-Add-PufferFishStateChangeEvent.patch => 0291-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/api/{0293-Add-BellRevealRaiderEvent.patch => 0292-Add-BellRevealRaiderEvent.patch} (100%) rename patches/api/{0294-Add-ElderGuardianAppearanceEvent.patch => 0293-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/api/{0295-Add-more-line-of-sight-methods.patch => 0294-Add-more-line-of-sight-methods.patch} (100%) rename patches/api/{0296-Add-WaterBottleSplashEvent.patch => 0295-Add-WaterBottleSplashEvent.patch} (100%) rename patches/api/{0297-Add-more-LimitedRegion-API.patch => 0296-Add-more-LimitedRegion-API.patch} (100%) rename patches/api/{0298-Missing-Entity-API.patch => 0297-Missing-Entity-API.patch} (98%) rename patches/api/{0299-Adds-PlayerArmSwingEvent.patch => 0298-Adds-PlayerArmSwingEvent.patch} (100%) rename patches/api/{0300-Add-PlayerSignCommandPreprocessEvent.patch => 0299-Add-PlayerSignCommandPreprocessEvent.patch} (100%) rename patches/api/{0301-fix-empty-array-elements-in-command-arguments.patch => 0300-fix-empty-array-elements-in-command-arguments.patch} (100%) rename patches/api/{0302-Stinger-API.patch => 0301-Stinger-API.patch} (95%) rename patches/api/{0303-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0302-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/api/{0304-Add-PlayerSetSpawnEvent.patch => 0303-Add-PlayerSetSpawnEvent.patch} (100%) rename patches/api/{0305-Added-EntityDamageItemEvent.patch => 0304-Added-EntityDamageItemEvent.patch} (100%) rename patches/api/{0306-Make-EntityUnleashEvent-cancellable.patch => 0305-Make-EntityUnleashEvent-cancellable.patch} (100%) rename patches/api/{0307-Change-EnderEye-target-without-changing-other-things.patch => 0306-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/api/{0308-Add-BlockBreakBlockEvent.patch => 0307-Add-BlockBreakBlockEvent.patch} (100%) rename patches/api/{0309-Add-helpers-for-left-right-click-to-Action.patch => 0308-Add-helpers-for-left-right-click-to-Action.patch} (100%) rename patches/api/{0310-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0309-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/api/{0311-More-CommandBlock-API.patch => 0310-More-CommandBlock-API.patch} (100%) rename patches/api/{0312-Add-missing-team-sidebar-display-slots.patch => 0311-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/api/{0313-add-back-EntityPortalExitEvent.patch => 0312-add-back-EntityPortalExitEvent.patch} (100%) rename patches/api/{0314-Add-methods-to-find-targets-for-lightning-strikes.patch => 0313-Add-methods-to-find-targets-for-lightning-strikes.patch} (100%) rename patches/api/{0315-Get-entity-default-attributes.patch => 0314-Get-entity-default-attributes.patch} (100%) rename patches/api/{0316-Left-handed-API.patch => 0315-Left-handed-API.patch} (100%) rename patches/api/{0317-Add-critical-damage-API.patch => 0316-Add-critical-damage-API.patch} (100%) rename patches/api/{0318-Add-more-advancement-API.patch => 0317-Add-more-advancement-API.patch} (100%) rename patches/api/{0319-Fix-issues-with-mob-conversion.patch => 0318-Fix-issues-with-mob-conversion.patch} (100%) rename patches/api/{0320-Add-isCollidable-methods-to-various-places.patch => 0319-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/api/{0321-Goat-ram-API.patch => 0320-Goat-ram-API.patch} (100%) rename patches/api/{0322-Add-API-for-resetting-a-single-score.patch => 0321-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/api/{0323-Add-Raw-Byte-Entity-Serialization.patch => 0322-Add-Raw-Byte-Entity-Serialization.patch} (94%) rename patches/api/{0324-Add-PlayerItemFrameChangeEvent.patch => 0323-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/api/{0325-Allow-delegation-to-vanilla-chunk-gen.patch => 0324-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/api/{0326-Add-more-Campfire-API.patch => 0325-Add-more-Campfire-API.patch} (100%) rename patches/api/{0327-Extend-VehicleCollisionEvent-move-HandlerList-up.patch => 0326-Extend-VehicleCollisionEvent-move-HandlerList-up.patch} (100%) rename patches/api/{0328-Improve-scoreboard-entries.patch => 0327-Improve-scoreboard-entries.patch} (100%) rename patches/api/{0329-Entity-powdered-snow-API.patch => 0328-Entity-powdered-snow-API.patch} (90%) rename patches/api/{0330-Add-API-for-item-entity-health.patch => 0329-Add-API-for-item-entity-health.patch} (100%) rename patches/api/{0331-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0330-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/api/{0332-Bucketable-API.patch => 0331-Bucketable-API.patch} (100%) rename patches/api/{0333-System-prop-for-default-config-comment-parsing.patch => 0332-System-prop-for-default-config-comment-parsing.patch} (100%) rename patches/api/{0334-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0333-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/api/{0335-Multiple-Entries-with-Scoreboards.patch => 0334-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/api/{0336-Warn-on-strange-EventHandler-return-types.patch => 0335-Warn-on-strange-EventHandler-return-types.patch} (100%) rename patches/api/{0337-Multi-Block-Change-API.patch => 0336-Multi-Block-Change-API.patch} (95%) rename patches/api/{0338-Fix-NotePlayEvent.patch => 0337-Fix-NotePlayEvent.patch} (100%) rename patches/api/{0339-Freeze-Tick-Lock-API.patch => 0338-Freeze-Tick-Lock-API.patch} (81%) rename patches/api/{0340-Dolphin-API.patch => 0339-Dolphin-API.patch} (100%) rename patches/api/{0341-More-PotionEffectType-API.patch => 0340-More-PotionEffectType-API.patch} (100%) rename patches/api/{0342-API-for-creating-command-sender-which-forwards-feedb.patch => 0341-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/api/{0343-Implement-regenerateChunk.patch => 0342-Implement-regenerateChunk.patch} (100%) rename patches/api/{0344-Add-GameEvent-tags.patch => 0343-Add-GameEvent-tags.patch} (100%) rename patches/api/{0345-Furnace-RecipesUsed-API.patch => 0344-Furnace-RecipesUsed-API.patch} (100%) rename patches/api/{0346-Configurable-sculk-sensor-listener-range.patch => 0345-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/api/{0347-Add-missing-block-data-mins-and-maxes.patch => 0346-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/api/{0348-Custom-Potion-Mixes.patch => 0347-Custom-Potion-Mixes.patch} (100%) rename patches/api/{0349-Expose-furnace-minecart-push-values.patch => 0348-Expose-furnace-minecart-push-values.patch} (100%) rename patches/api/{0350-More-Projectile-API.patch => 0349-More-Projectile-API.patch} (97%) rename patches/api/{0351-Add-getComputedBiome-API.patch => 0350-Add-getComputedBiome-API.patch} (100%) rename patches/api/{0352-Add-enchantWithLevels-API.patch => 0351-Add-enchantWithLevels-API.patch} (100%) rename patches/api/{0353-Add-TameableDeathMessageEvent.patch => 0352-Add-TameableDeathMessageEvent.patch} (100%) rename patches/api/{0354-Allow-to-change-the-podium-of-the-EnderDragon.patch => 0353-Allow-to-change-the-podium-of-the-EnderDragon.patch} (100%) rename patches/api/{0355-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch => 0354-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch} (100%) rename patches/api/{0356-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch => 0355-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch} (100%) rename patches/api/{0357-WorldCreator-keepSpawnLoaded.patch => 0356-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/api/{0358-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0357-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/api/{0359-Add-PlayerStopUsingItemEvent.patch => 0358-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/api/{0360-Expand-FallingBlock-API.patch => 0359-Expand-FallingBlock-API.patch} (100%) rename patches/api/{0361-Add-method-isTickingWorlds-to-Bukkit.patch => 0360-Add-method-isTickingWorlds-to-Bukkit.patch} (100%) rename patches/api/{0362-Add-WardenAngerChangeEvent.patch => 0361-Add-WardenAngerChangeEvent.patch} (100%) rename patches/api/{0363-Nameable-Banner-API.patch => 0362-Nameable-Banner-API.patch} (100%) rename patches/api/{0364-Add-Player-getFishHook.patch => 0363-Add-Player-getFishHook.patch} (100%) rename patches/api/{0365-More-Teleport-API.patch => 0364-More-Teleport-API.patch} (99%) rename patches/api/{0366-Add-EntityPortalReadyEvent.patch => 0365-Add-EntityPortalReadyEvent.patch} (100%) rename patches/api/{0367-Custom-Chat-Completion-Suggestions-API.patch => 0366-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/api/{0368-Collision-API.patch => 0367-Collision-API.patch} (92%) rename patches/api/{0369-Block-Ticking-API.patch => 0368-Block-Ticking-API.patch} (100%) rename patches/api/{0370-Add-NamespacedKey-biome-methods.patch => 0369-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/api/{0371-Also-load-resources-from-LibraryLoader.patch => 0370-Also-load-resources-from-LibraryLoader.patch} (100%) rename patches/api/{0372-Added-byte-array-serialization-deserialization-for-P.patch => 0371-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/api/{0373-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0372-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/api/{0374-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch => 0373-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch} (100%) rename patches/api/{0375-Add-getDrops-to-BlockState.patch => 0374-Add-getDrops-to-BlockState.patch} (100%) rename patches/api/{0376-Add-PlayerInventorySlotChangeEvent.patch => 0375-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/api/{0377-Elder-Guardian-appearance-API.patch => 0376-Elder-Guardian-appearance-API.patch} (100%) rename patches/api/{0378-Allow-changing-bed-s-occupied-property.patch => 0377-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/api/{0379-Add-EquipmentSlot-convenience-methods.patch => 0378-Add-EquipmentSlot-convenience-methods.patch} (100%) rename patches/api/{0380-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch => 0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch} (100%) rename patches/api/{0381-Add-entity-knockback-API.patch => 0380-Add-entity-knockback-API.patch} (100%) rename patches/api/{0382-Added-EntityToggleSitEvent.patch => 0381-Added-EntityToggleSitEvent.patch} (100%) rename patches/api/{0383-Add-Moving-Piston-API.patch => 0382-Add-Moving-Piston-API.patch} (100%) rename patches/api/{0384-Add-PrePlayerAttackEntityEvent.patch => 0383-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/api/{0385-Add-Player-Warden-Warning-API.patch => 0384-Add-Player-Warden-Warning-API.patch} (100%) rename patches/api/{0386-More-vanilla-friendly-methods-to-update-trades.patch => 0385-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/api/{0387-Add-paper-dumplisteners-command.patch => 0386-Add-paper-dumplisteners-command.patch} (100%) rename patches/api/{0388-ItemStack-damage-API.patch => 0387-ItemStack-damage-API.patch} (100%) rename patches/api/{0389-Add-Tick-TemporalUnit.patch => 0388-Add-Tick-TemporalUnit.patch} (100%) rename patches/api/{0390-Friction-API.patch => 0389-Friction-API.patch} (96%) rename patches/api/{0391-Player-Entity-Tracking-Events.patch => 0390-Player-Entity-Tracking-Events.patch} (100%) rename patches/api/{0392-Add-missing-Fluid-type.patch => 0391-Add-missing-Fluid-type.patch} (100%) rename patches/api/{0393-fix-Instruments.patch => 0392-fix-Instruments.patch} (100%) rename patches/api/{0394-Add-BlockLockCheckEvent.patch => 0393-Add-BlockLockCheckEvent.patch} (100%) rename patches/api/{0395-Add-Sneaking-API-for-Entities.patch => 0394-Add-Sneaking-API-for-Entities.patch} (91%) rename patches/api/{0396-Improve-PortalEvents.patch => 0395-Improve-PortalEvents.patch} (100%) rename patches/api/{0397-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0396-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/api/{0398-Flying-Fall-Damage-API.patch => 0397-Flying-Fall-Damage-API.patch} (100%) rename patches/api/{0399-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch => 0398-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch} (100%) rename patches/api/{0400-Win-Screen-API.patch => 0399-Win-Screen-API.patch} (96%) rename patches/api/{0401-Add-Entity-Body-Yaw-API.patch => 0400-Add-Entity-Body-Yaw-API.patch} (93%) rename patches/api/{0402-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch => 0401-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch} (100%) rename patches/api/{0403-Add-EntityFertilizeEggEvent.patch => 0402-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/api/{0404-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0403-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/api/{0405-Add-Shearable-API.patch => 0404-Add-Shearable-API.patch} (97%) rename patches/api/{0406-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0405-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/api/{0407-Add-Mob-Experience-reward-API.patch => 0406-Add-Mob-Experience-reward-API.patch} (100%) rename patches/api/{0408-Expand-PlayerItemMendEvent.patch => 0407-Expand-PlayerItemMendEvent.patch} (100%) rename patches/api/{0409-Add-transient-modifier-API.patch => 0408-Add-transient-modifier-API.patch} (100%) rename patches/api/{0410-Properly-remove-the-experimental-smithing-inventory-.patch => 0409-Properly-remove-the-experimental-smithing-inventory-.patch} (100%) rename patches/api/{0411-Add-method-to-remove-all-active-potion-effects.patch => 0410-Add-method-to-remove-all-active-potion-effects.patch} (91%) rename patches/api/{0412-Folia-scheduler-and-owned-region-API.patch => 0411-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/api/{0413-Add-event-for-player-editing-sign.patch => 0412-Add-event-for-player-editing-sign.patch} (100%) rename patches/api/{0414-Add-Sign-getInteractableSideFor.patch => 0413-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/api/{0415-Fix-BanList-API.patch => 0414-Fix-BanList-API.patch} (100%) rename patches/api/{0416-Add-whitelist-events.patch => 0415-Add-whitelist-events.patch} (100%) rename patches/api/{0417-API-for-updating-recipes-on-clients.patch => 0416-API-for-updating-recipes-on-clients.patch} (100%) rename patches/api/{0418-Add-PlayerFailMoveEvent.patch => 0417-Add-PlayerFailMoveEvent.patch} (100%) rename patches/api/{0419-Fix-custom-statistic-criteria-creation.patch => 0418-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/api/{0420-SculkCatalyst-bloom-API.patch => 0419-SculkCatalyst-bloom-API.patch} (100%) rename patches/api/{0421-API-for-an-entity-s-scoreboard-name.patch => 0420-API-for-an-entity-s-scoreboard-name.patch} (88%) rename patches/api/{0422-Deprecate-and-replace-methods-with-old-StructureType.patch => 0421-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/api/{0423-Add-Listing-API-for-Player.patch => 0422-Add-Listing-API-for-Player.patch} (100%) rename patches/api/{0424-Expose-clicked-BlockFace-during-BlockDamageEvent.patch => 0423-Expose-clicked-BlockFace-during-BlockDamageEvent.patch} (100%) rename patches/api/{0425-Fix-NPE-on-Boat-getStatus.patch => 0424-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/api/{0426-Expand-Pose-API.patch => 0425-Expand-Pose-API.patch} (92%) rename patches/api/{0427-MerchantRecipe-add-copy-constructor.patch => 0426-MerchantRecipe-add-copy-constructor.patch} (100%) rename patches/api/{0428-More-DragonBattle-API.patch => 0427-More-DragonBattle-API.patch} (100%) rename patches/api/{0429-Add-PlayerPickItemEvent.patch => 0428-Add-PlayerPickItemEvent.patch} (100%) rename patches/api/{0430-Allow-trident-custom-damage.patch => 0429-Allow-trident-custom-damage.patch} (100%) rename patches/api/{0431-Expose-hand-during-BlockCanBuildEvent.patch => 0430-Expose-hand-during-BlockCanBuildEvent.patch} (100%) rename patches/api/{0432-Limit-setBurnTime-to-valid-short-values.patch => 0431-Limit-setBurnTime-to-valid-short-values.patch} (100%) rename patches/api/{0433-Add-OfflinePlayer-isConnected.patch => 0432-Add-OfflinePlayer-isConnected.patch} (95%) rename patches/api/{0434-Add-titleOverride-to-InventoryOpenEvent.patch => 0433-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/api/{0435-Allow-proper-checking-of-empty-item-stacks.patch => 0434-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/api/{0436-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch => 0435-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch} (100%) rename patches/api/{0437-Add-player-idle-duration-API.patch => 0436-Add-player-idle-duration-API.patch} (100%) rename patches/api/{0438-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0437-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/api/{0439-Add-predicate-for-blocks-when-raytracing.patch => 0438-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/api/{0440-Add-hand-to-fish-event-for-all-player-interactions.patch => 0439-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/api/{0441-Add-UUID-attribute-modifier-API.patch => 0440-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/api/{0442-Expand-LingeringPotion-API.patch => 0441-Expand-LingeringPotion-API.patch} (100%) rename patches/api/{0443-Remove-unnecessary-durability-check-in-ItemStack-isS.patch => 0442-Remove-unnecessary-durability-check-in-ItemStack-isS.patch} (100%) rename patches/api/{0444-Add-Structure-check-API.patch => 0443-Add-Structure-check-API.patch} (100%) rename patches/api/{0445-add-missing-Experimental-annotations.patch => 0444-add-missing-Experimental-annotations.patch} (100%) rename patches/api/{0446-Add-more-scoreboard-API.patch => 0445-Add-more-scoreboard-API.patch} (100%) rename patches/api/{0447-Improve-Registry.patch => 0446-Improve-Registry.patch} (100%) rename patches/api/{0448-Add-experience-points-API.patch => 0447-Add-experience-points-API.patch} (100%) rename patches/api/{0449-Add-missing-InventoryType.patch => 0448-Add-missing-InventoryType.patch} (100%) rename patches/api/{0450-Add-drops-to-shear-events.patch => 0449-Add-drops-to-shear-events.patch} (100%) rename patches/api/{0451-Add-HiddenPotionEffect-API.patch => 0450-Add-HiddenPotionEffect-API.patch} (98%) rename patches/api/{0452-Add-PlayerShieldDisableEvent.patch => 0451-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/api/{0453-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch => 0452-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch} (100%) rename patches/api/{0454-Add-BlockStateMeta-clearBlockState.patch => 0453-Add-BlockStateMeta-clearBlockState.patch} (100%) rename patches/api/{0455-Expose-LootTable-of-DecoratedPot.patch => 0454-Expose-LootTable-of-DecoratedPot.patch} (100%) rename patches/api/{0456-Add-ShulkerDuplicateEvent.patch => 0455-Add-ShulkerDuplicateEvent.patch} (100%) rename patches/api/{0457-Add-api-for-spawn-egg-texture-colors.patch => 0456-Add-api-for-spawn-egg-texture-colors.patch} (100%) rename patches/api/{0458-Add-Lifecycle-Event-system.patch => 0457-Add-Lifecycle-Event-system.patch} (100%) rename patches/api/{0459-Conduit-API.patch => 0458-Conduit-API.patch} (100%) rename patches/api/{0460-ItemStack-Tooltip-API.patch => 0459-ItemStack-Tooltip-API.patch} (100%) rename patches/api/{0461-Add-getChunkSnapshot-includeLightData-parameter.patch => 0460-Add-getChunkSnapshot-includeLightData-parameter.patch} (100%) rename patches/api/{0462-Add-FluidState-API.patch => 0461-Add-FluidState-API.patch} (100%) rename patches/api/{0463-add-number-format-api.patch => 0462-add-number-format-api.patch} (100%) rename patches/api/{0464-improve-BanList-types.patch => 0463-improve-BanList-types.patch} (100%) rename patches/api/{0465-Suspicious-Effect-Entry-API.patch => 0464-Suspicious-Effect-Entry-API.patch} (100%) rename patches/api/{0466-Fix-DamageSource-API.patch => 0465-Fix-DamageSource-API.patch} (100%) rename patches/api/{0467-Expanded-Hopper-API.patch => 0466-Expanded-Hopper-API.patch} (100%) rename patches/api/{0468-Clone-mutables-to-prevent-unexpected-issues.patch => 0467-Clone-mutables-to-prevent-unexpected-issues.patch} (100%) rename patches/server/{0386-Add-PlayerRecipeBookClickEvent.patch => 0385-Add-PlayerRecipeBookClickEvent.patch} (100%) delete mode 100644 patches/server/0385-Improve-Arrow-API.patch rename patches/server/{0387-Hide-sync-chunk-writes-behind-flag.patch => 0386-Hide-sync-chunk-writes-behind-flag.patch} (100%) rename patches/server/{0388-Add-permission-for-command-blocks.patch => 0387-Add-permission-for-command-blocks.patch} (100%) rename patches/server/{0389-Ensure-Entity-position-and-AABB-are-never-invalid.patch => 0388-Ensure-Entity-position-and-AABB-are-never-invalid.patch} (97%) rename patches/server/{0390-Fix-Per-World-Difficulty-Remembering-Difficulty.patch => 0389-Fix-Per-World-Difficulty-Remembering-Difficulty.patch} (100%) rename patches/server/{0391-Paper-dumpitem-command.patch => 0390-Paper-dumpitem-command.patch} (100%) rename patches/server/{0392-Improve-Legacy-Component-serialization-size.patch => 0391-Improve-Legacy-Component-serialization-size.patch} (100%) rename patches/server/{0393-Add-Plugin-Tickets-to-API-Chunk-Methods.patch => 0392-Add-Plugin-Tickets-to-API-Chunk-Methods.patch} (100%) rename patches/server/{0394-Add-BlockStateMeta-clearBlockState.patch => 0393-Add-BlockStateMeta-clearBlockState.patch} (100%) rename patches/server/{0395-Support-old-UUID-format-for-NBT.patch => 0394-Support-old-UUID-format-for-NBT.patch} (100%) rename patches/server/{0396-Convert-legacy-attributes-in-Item-Meta.patch => 0395-Convert-legacy-attributes-in-Item-Meta.patch} (100%) rename patches/server/{0397-Do-not-accept-invalid-client-settings.patch => 0396-Do-not-accept-invalid-client-settings.patch} (100%) rename patches/server/{0398-Improve-fix-EntityTargetLivingEntityEvent.patch => 0397-Improve-fix-EntityTargetLivingEntityEvent.patch} (100%) rename patches/server/{0399-Add-entity-liquid-API.patch => 0398-Add-entity-liquid-API.patch} (100%) rename patches/server/{0400-Update-itemstack-legacy-name-and-lore.patch => 0399-Update-itemstack-legacy-name-and-lore.patch} (100%) rename patches/server/{0401-Add-PrepareResultEvent.patch => 0400-Add-PrepareResultEvent.patch} (100%) rename patches/server/{0402-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch => 0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch} (100%) rename patches/server/{0403-Fix-arrows-never-despawning-MC-125757.patch => 0402-Fix-arrows-never-despawning-MC-125757.patch} (100%) rename patches/server/{0404-Thread-Safe-Vanilla-Command-permission-checking.patch => 0403-Thread-Safe-Vanilla-Command-permission-checking.patch} (100%) rename patches/server/{0405-Fix-SPIGOT-5989.patch => 0404-Fix-SPIGOT-5989.patch} (100%) rename patches/server/{0406-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (100%) rename patches/server/{0407-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (100%) rename patches/server/{0408-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (100%) rename patches/server/{0409-Optimize-NetworkManager-Exception-Handling.patch => 0408-Optimize-NetworkManager-Exception-Handling.patch} (100%) rename patches/server/{0410-Fix-some-rails-connecting-improperly.patch => 0409-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/server/{0411-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0410-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/server/{0412-Brand-support.patch => 0411-Brand-support.patch} (100%) rename patches/server/{0413-Add-playPickupItemAnimation-to-LivingEntity.patch => 0412-Add-playPickupItemAnimation-to-LivingEntity.patch} (100%) rename patches/server/{0414-Don-t-require-FACING-data.patch => 0413-Don-t-require-FACING-data.patch} (100%) rename patches/server/{0415-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (100%) rename patches/server/{0416-Add-moon-phase-API.patch => 0415-Add-moon-phase-API.patch} (100%) rename patches/server/{0417-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0416-Do-not-let-the-server-load-chunks-from-newer-version.patch} (100%) rename patches/server/{0418-Prevent-headless-pistons-from-being-created.patch => 0417-Prevent-headless-pistons-from-being-created.patch} (100%) rename patches/server/{0419-Add-BellRingEvent.patch => 0418-Add-BellRingEvent.patch} (100%) rename patches/server/{0420-Add-zombie-targets-turtle-egg-config.patch => 0419-Add-zombie-targets-turtle-egg-config.patch} (100%) rename patches/server/{0421-Buffer-joins-to-world.patch => 0420-Buffer-joins-to-world.patch} (100%) rename patches/server/{0422-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0421-Fix-hex-colors-not-working-in-some-kick-messages.patch} (100%) rename patches/server/{0423-PortalCreateEvent-needs-to-know-its-entity.patch => 0422-PortalCreateEvent-needs-to-know-its-entity.patch} (100%) rename patches/server/{0424-Add-more-Evoker-API.patch => 0423-Add-more-Evoker-API.patch} (100%) rename patches/server/{0425-Add-methods-to-get-translation-keys.patch => 0424-Add-methods-to-get-translation-keys.patch} (100%) rename patches/server/{0426-Create-HoverEvent-from-ItemStack-Entity.patch => 0425-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0427-Cache-block-data-strings.patch => 0426-Cache-block-data-strings.patch} (100%) rename patches/server/{0428-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0427-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (98%) rename patches/server/{0429-Add-additional-open-container-api-to-HumanEntity.patch => 0428-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/server/{0430-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0429-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0431-Extend-block-drop-capture-to-capture-all-items-added.patch => 0430-Extend-block-drop-capture-to-capture-all-items-added.patch} (100%) rename patches/server/{0432-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (94%) rename patches/server/{0433-Lazily-track-plugin-scoreboards-by-default.patch => 0432-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0434-Entity-isTicking.patch => 0433-Entity-isTicking.patch} (94%) rename patches/server/{0435-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0434-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (100%) rename patches/server/{0436-Fix-Concurrency-issue-in-ShufflingList.patch => 0435-Fix-Concurrency-issue-in-ShufflingList.patch} (100%) rename patches/server/{0437-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0436-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (100%) rename patches/server/{0438-Fix-for-large-move-vectors-crashing-server.patch => 0437-Fix-for-large-move-vectors-crashing-server.patch} (100%) rename patches/server/{0439-Optimise-getType-calls.patch => 0438-Optimise-getType-calls.patch} (100%) rename patches/server/{0440-Villager-resetOffers.patch => 0439-Villager-resetOffers.patch} (100%) rename patches/server/{0441-Retain-block-place-order-when-capturing-blockstates.patch => 0440-Retain-block-place-order-when-capturing-blockstates.patch} (100%) rename patches/server/{0442-Reduce-blockpos-allocation-from-pathfinding.patch => 0441-Reduce-blockpos-allocation-from-pathfinding.patch} (100%) rename patches/server/{0443-Fix-item-locations-dropped-from-campfires.patch => 0442-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0444-Fix-bell-block-entity-memory-leak.patch => 0443-Fix-bell-block-entity-memory-leak.patch} (100%) rename patches/server/{0445-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0444-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0446-Add-getOfflinePlayerIfCached-String.patch => 0445-Add-getOfflinePlayerIfCached-String.patch} (100%) rename patches/server/{0447-Add-ignore-discounts-API.patch => 0446-Add-ignore-discounts-API.patch} (100%) rename patches/server/{0448-Toggle-for-removing-existing-dragon.patch => 0447-Toggle-for-removing-existing-dragon.patch} (100%) rename patches/server/{0449-Fix-client-lag-on-advancement-loading.patch => 0448-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/server/{0450-Item-no-age-no-player-pickup.patch => 0449-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0451-Beacon-API-custom-effect-ranges.patch => 0450-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0452-Add-API-for-quit-reason.patch => 0451-Add-API-for-quit-reason.patch} (100%) rename patches/server/{0453-Add-Wandering-Trader-spawn-rate-config-options.patch => 0452-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/server/{0454-Expose-world-spawn-angle.patch => 0453-Expose-world-spawn-angle.patch} (100%) rename patches/server/{0455-Add-Destroy-Speed-API.patch => 0454-Add-Destroy-Speed-API.patch} (100%) rename patches/server/{0456-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0455-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (100%) rename patches/server/{0457-Add-LivingEntity-clearActiveItem.patch => 0456-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/server/{0458-Add-PlayerItemCooldownEvent.patch => 0457-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0459-Significantly-improve-performance-of-the-end-generat.patch => 0458-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0460-More-lightning-API.patch => 0459-More-lightning-API.patch} (100%) rename patches/server/{0461-Climbing-should-not-bypass-cramming-gamerule.patch => 0460-Climbing-should-not-bypass-cramming-gamerule.patch} (98%) rename patches/server/{0462-Add-missing-default-perms-for-commands.patch => 0461-Add-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0463-Add-PlayerShearBlockEvent.patch => 0462-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0464-Limit-recipe-packets.patch => 0463-Limit-recipe-packets.patch} (100%) rename patches/server/{0465-Fix-CraftSound-backwards-compatibility.patch => 0464-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0466-Player-Chunk-Load-Unload-Events.patch => 0465-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/server/{0467-Optimize-Dynamic-get-Missing-Keys.patch => 0466-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0468-Expose-LivingEntity-hurt-direction.patch => 0467-Expose-LivingEntity-hurt-direction.patch} (100%) rename patches/server/{0469-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0468-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (100%) rename patches/server/{0470-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch => 0469-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch} (100%) rename patches/server/{0471-Add-TargetHitEvent.patch => 0470-Add-TargetHitEvent.patch} (100%) rename patches/server/{0472-MC-4-Fix-item-position-desync.patch => 0471-MC-4-Fix-item-position-desync.patch} (96%) rename patches/server/{0473-Additional-Block-Material-API.patch => 0472-Additional-Block-Material-API.patch} (100%) rename patches/server/{0474-Fix-harming-potion-dupe.patch => 0473-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0475-API-to-get-Material-from-Boats-and-Minecarts.patch => 0474-API-to-get-Material-from-Boats-and-Minecarts.patch} (100%) rename patches/server/{0476-Cache-burn-durations.patch => 0475-Cache-burn-durations.patch} (100%) rename patches/server/{0477-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0476-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/server/{0478-Fix-Not-a-string-Map-Conversion-spam.patch => 0477-Fix-Not-a-string-Map-Conversion-spam.patch} (100%) rename patches/server/{0479-Add-PlayerFlowerPotManipulateEvent.patch => 0478-Add-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0480-Fix-interact-event-not-being-called-sometimes.patch => 0479-Fix-interact-event-not-being-called-sometimes.patch} (100%) rename patches/server/{0481-Zombie-API-breaking-doors.patch => 0480-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0482-Fix-nerfed-slime-when-splitting.patch => 0481-Fix-nerfed-slime-when-splitting.patch} (100%) rename patches/server/{0483-Add-EntityLoadCrossbowEvent.patch => 0482-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0484-Add-WorldGameRuleChangeEvent.patch => 0483-Add-WorldGameRuleChangeEvent.patch} (100%) rename patches/server/{0485-Add-ServerResourcesReloadedEvent.patch => 0484-Add-ServerResourcesReloadedEvent.patch} (100%) rename patches/server/{0486-Add-world-settings-for-mobs-picking-up-loot.patch => 0485-Add-world-settings-for-mobs-picking-up-loot.patch} (100%) rename patches/server/{0487-Add-BlockFailedDispenseEvent.patch => 0486-Add-BlockFailedDispenseEvent.patch} (100%) rename patches/server/{0488-Add-PlayerLecternPageChangeEvent.patch => 0487-Add-PlayerLecternPageChangeEvent.patch} (100%) rename patches/server/{0489-Add-PlayerLoomPatternSelectEvent.patch => 0488-Add-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/server/{0490-Configurable-door-breaking-difficulty.patch => 0489-Configurable-door-breaking-difficulty.patch} (100%) rename patches/server/{0491-Empty-commands-shall-not-be-dispatched.patch => 0490-Empty-commands-shall-not-be-dispatched.patch} (100%) rename patches/server/{0492-Remove-stale-POIs.patch => 0491-Remove-stale-POIs.patch} (100%) rename patches/server/{0493-Fix-villager-boat-exploit.patch => 0492-Fix-villager-boat-exploit.patch} (100%) rename patches/server/{0494-Add-sendOpLevel-API.patch => 0493-Add-sendOpLevel-API.patch} (100%) rename patches/server/{0495-TODO-Registry-Modification-API.patch => 0494-TODO-Registry-Modification-API.patch} (100%) rename patches/server/{0496-Add-StructuresLocateEvent.patch => 0495-Add-StructuresLocateEvent.patch} (100%) rename patches/server/{0497-Collision-option-for-requiring-a-player-participant.patch => 0496-Collision-option-for-requiring-a-player-participant.patch} (97%) rename patches/server/{0498-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0497-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0499-Return-chat-component-with-empty-text-instead-of-thr.patch => 0498-Return-chat-component-with-empty-text-instead-of-thr.patch} (100%) rename patches/server/{0500-Make-schedule-command-per-world.patch => 0499-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0501-Configurable-max-leash-distance.patch => 0500-Configurable-max-leash-distance.patch} (100%) rename patches/server/{0502-Add-BlockPreDispenseEvent.patch => 0501-Add-BlockPreDispenseEvent.patch} (100%) rename patches/server/{0503-Add-PlayerChangeBeaconEffectEvent.patch => 0502-Add-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/server/{0504-Add-toggle-for-always-placing-the-dragon-egg.patch => 0503-Add-toggle-for-always-placing-the-dragon-egg.patch} (100%) rename patches/server/{0505-Add-PlayerStonecutterRecipeSelectEvent.patch => 0504-Add-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/server/{0506-Expand-EntityUnleashEvent.patch => 0505-Expand-EntityUnleashEvent.patch} (100%) rename patches/server/{0507-Reset-shield-blocking-on-dimension-change.patch => 0506-Reset-shield-blocking-on-dimension-change.patch} (100%) rename patches/server/{0508-Add-DragonEggFormEvent.patch => 0507-Add-DragonEggFormEvent.patch} (100%) rename patches/server/{0509-Add-EntityMoveEvent.patch => 0508-Add-EntityMoveEvent.patch} (100%) rename patches/server/{0510-added-option-to-disable-pathfinding-updates-on-block.patch => 0509-added-option-to-disable-pathfinding-updates-on-block.patch} (100%) rename patches/server/{0511-Inline-shift-direction-fields.patch => 0510-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0512-Allow-adding-items-to-BlockDropItemEvent.patch => 0511-Allow-adding-items-to-BlockDropItemEvent.patch} (100%) rename patches/server/{0513-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0512-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0514-living-entity-allow-attribute-registration.patch => 0513-living-entity-allow-attribute-registration.patch} (100%) rename patches/server/{0515-fix-dead-slime-setSize-invincibility.patch => 0514-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0516-Merchant-getRecipes-should-return-an-immutable-list.patch => 0515-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0517-Expose-Tracked-Players.patch => 0516-Expose-Tracked-Players.patch} (100%) rename patches/server/{0518-Improve-ServerGUI.patch => 0517-Improve-ServerGUI.patch} (100%) rename patches/server/{0519-fix-converting-txt-to-json-file.patch => 0518-fix-converting-txt-to-json-file.patch} (100%) rename patches/server/{0520-Add-worldborder-events.patch => 0519-Add-worldborder-events.patch} (100%) rename patches/server/{0521-Add-PlayerNameEntityEvent.patch => 0520-Add-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0522-Prevent-grindstones-from-overstacking-items.patch => 0521-Prevent-grindstones-from-overstacking-items.patch} (100%) rename patches/server/{0523-Add-recipe-to-cook-events.patch => 0522-Add-recipe-to-cook-events.patch} (100%) rename patches/server/{0524-Add-Block-isValidTool.patch => 0523-Add-Block-isValidTool.patch} (100%) rename patches/server/{0525-Allow-using-signs-inside-spawn-protection.patch => 0524-Allow-using-signs-inside-spawn-protection.patch} (100%) rename patches/server/{0526-Expand-world-key-API.patch => 0525-Expand-world-key-API.patch} (100%) rename patches/server/{0527-Add-fast-alternative-constructor-for-Rotations.patch => 0526-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0528-Item-Rarity-API.patch => 0527-Item-Rarity-API.patch} (100%) rename patches/server/{0529-Drop-carried-item-when-player-has-disconnected.patch => 0528-Drop-carried-item-when-player-has-disconnected.patch} (100%) rename patches/server/{0530-forced-whitelist-use-configurable-kick-message.patch => 0529-forced-whitelist-use-configurable-kick-message.patch} (100%) rename patches/server/{0531-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0530-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (100%) rename patches/server/{0532-Expose-protocol-version.patch => 0531-Expose-protocol-version.patch} (100%) rename patches/server/{0533-Enhance-console-tab-completions-for-brigadier-comman.patch => 0532-Enhance-console-tab-completions-for-brigadier-comman.patch} (100%) rename patches/server/{0534-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0533-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (100%) rename patches/server/{0535-Add-bypass-host-check.patch => 0534-Add-bypass-host-check.patch} (100%) rename patches/server/{0536-Set-area-affect-cloud-rotation.patch => 0535-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0537-add-isDeeplySleeping-to-HumanEntity.patch => 0536-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/server/{0538-add-consumeFuel-to-FurnaceBurnEvent.patch => 0537-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0539-add-get-set-drop-chance-to-EntityEquipment.patch => 0538-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0540-fix-PigZombieAngerEvent-cancellation.patch => 0539-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0541-fix-PlayerItemHeldEvent-firing-twice.patch => 0540-fix-PlayerItemHeldEvent-firing-twice.patch} (100%) rename patches/server/{0542-Add-PlayerDeepSleepEvent.patch => 0541-Add-PlayerDeepSleepEvent.patch} (100%) rename patches/server/{0543-More-World-API.patch => 0542-More-World-API.patch} (100%) rename patches/server/{0544-Add-PlayerBedFailEnterEvent.patch => 0543-Add-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0545-Implement-methods-to-convert-between-Component-and-B.patch => 0544-Implement-methods-to-convert-between-Component-and-B.patch} (100%) rename patches/server/{0546-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch => 0545-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch} (100%) rename patches/server/{0547-Introduce-beacon-activation-deactivation-events.patch => 0546-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0548-Add-Channel-initialization-listeners.patch => 0547-Add-Channel-initialization-listeners.patch} (100%) rename patches/server/{0549-Send-empty-commands-if-tab-completion-is-disabled.patch => 0548-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0550-Add-more-WanderingTrader-API.patch => 0549-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0551-Add-EntityBlockStorage-clearEntities.patch => 0550-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0552-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0553-Add-HiddenPotionEffect-API.patch => 0552-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{0554-Inventory-close.patch => 0553-Inventory-close.patch} (100%) rename patches/server/{0555-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0556-Add-basic-Datapack-API.patch => 0555-Add-basic-Datapack-API.patch} (100%) rename patches/server/{0557-Add-environment-variable-to-disable-server-gui.patch => 0556-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0558-Expand-PlayerGameModeChangeEvent.patch => 0557-Expand-PlayerGameModeChangeEvent.patch} (100%) rename patches/server/{0559-ItemStack-repair-check-API.patch => 0558-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0560-More-Enchantment-API.patch => 0559-More-Enchantment-API.patch} (100%) rename patches/server/{0561-Move-range-check-for-block-placing-up.patch => 0560-Move-range-check-for-block-placing-up.patch} (100%) rename patches/server/{0562-Add-Mob-lookAt-API.patch => 0561-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0563-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{0564-Add-Unix-domain-socket-support.patch => 0563-Add-Unix-domain-socket-support.patch} (100%) rename patches/server/{0565-Add-EntityInsideBlockEvent.patch => 0564-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0566-Attributes-API-for-item-defaults.patch => 0565-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0567-Add-cause-to-Weather-ThunderChangeEvents.patch => 0566-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/server/{0568-More-Lidded-Block-API.patch => 0567-More-Lidded-Block-API.patch} (100%) rename patches/server/{0569-Limit-item-frame-cursors-on-maps.patch => 0568-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0570-Add-PlayerKickEvent-causes.patch => 0569-Add-PlayerKickEvent-causes.patch} (100%) rename patches/server/{0571-Add-PufferFishStateChangeEvent.patch => 0570-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0572-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0573-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/server/{0574-Add-option-to-fix-items-merging-through-walls.patch => 0573-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0575-Add-BellRevealRaiderEvent.patch => 0574-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0576-Fix-invulnerable-end-crystals.patch => 0575-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0577-Add-ElderGuardianAppearanceEvent.patch => 0576-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0578-Fix-dangerous-end-portal-logic.patch => 0577-Fix-dangerous-end-portal-logic.patch} (97%) rename patches/server/{0579-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0580-Make-item-validations-configurable.patch => 0579-Make-item-validations-configurable.patch} (100%) rename patches/server/{0581-Line-Of-Sight-Changes.patch => 0580-Line-Of-Sight-Changes.patch} (100%) rename patches/server/{0582-add-per-world-spawn-limits.patch => 0581-add-per-world-spawn-limits.patch} (100%) rename patches/server/{0583-Fix-potions-splash-events.patch => 0582-Fix-potions-splash-events.patch} (100%) rename patches/server/{0584-Add-more-LimitedRegion-API.patch => 0583-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0585-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0584-Fix-PlayerDropItemEvent-using-wrong-item.patch} (100%) rename patches/server/{0586-Missing-Entity-API.patch => 0585-Missing-Entity-API.patch} (98%) rename patches/server/{0587-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (100%) rename patches/server/{0588-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0589-Use-getChunkIfLoadedImmediately-in-places.patch => 0588-Use-getChunkIfLoadedImmediately-in-places.patch} (100%) rename patches/server/{0590-Fix-commands-from-signs-not-firing-command-events.patch => 0589-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0591-Add-PlayerArmSwingEvent.patch => 0590-Add-PlayerArmSwingEvent.patch} (100%) rename patches/server/{0592-Fix-kick-event-leave-message-not-being-sent.patch => 0591-Fix-kick-event-leave-message-not-being-sent.patch} (100%) rename patches/server/{0593-Add-config-for-mobs-immune-to-default-effects.patch => 0592-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/server/{0594-Don-t-apply-cramming-damage-to-players.patch => 0593-Don-t-apply-cramming-damage-to-players.patch} (100%) rename patches/server/{0595-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0594-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0596-Add-missing-forceDrop-toggles.patch => 0595-Add-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0597-Stinger-API.patch => 0596-Stinger-API.patch} (95%) rename patches/server/{0598-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0599-Add-System.out-err-catcher.patch => 0598-Add-System.out-err-catcher.patch} (100%) rename patches/server/{0600-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0601-Prevent-AFK-kick-while-watching-end-credits.patch => 0600-Prevent-AFK-kick-while-watching-end-credits.patch} (100%) rename patches/server/{0602-Allow-skipping-writing-of-comments-to-server.propert.patch => 0601-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0603-Add-PlayerSetSpawnEvent.patch => 0602-Add-PlayerSetSpawnEvent.patch} (100%) rename patches/server/{0604-Make-hoppers-respect-inventory-max-stack-size.patch => 0603-Make-hoppers-respect-inventory-max-stack-size.patch} (94%) rename patches/server/{0605-Optimize-entity-tracker-passenger-checks.patch => 0604-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0606-Config-option-for-Piglins-guarding-chests.patch => 0605-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0607-Add-EntityDamageItemEvent.patch => 0606-Add-EntityDamageItemEvent.patch} (100%) rename patches/server/{0608-Optimize-indirect-passenger-iteration.patch => 0607-Optimize-indirect-passenger-iteration.patch} (96%) rename patches/server/{0609-Configurable-item-frame-map-cursor-update-interval.patch => 0608-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0610-Clear-bucket-NBT-after-dispense.patch => 0609-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0611-Change-EnderEye-target-without-changing-other-things.patch => 0610-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0612-Add-BlockBreakBlockEvent.patch => 0611-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0613-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0614-More-CommandBlock-API.patch => 0613-More-CommandBlock-API.patch} (100%) rename patches/server/{0615-Add-missing-team-sidebar-display-slots.patch => 0614-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0616-Add-back-EntityPortalExitEvent.patch => 0615-Add-back-EntityPortalExitEvent.patch} (97%) rename patches/server/{0617-Add-methods-to-find-targets-for-lightning-strikes.patch => 0616-Add-methods-to-find-targets-for-lightning-strikes.patch} (100%) rename patches/server/{0618-Get-entity-default-attributes.patch => 0617-Get-entity-default-attributes.patch} (100%) rename patches/server/{0619-Left-handed-API.patch => 0618-Left-handed-API.patch} (100%) rename patches/server/{0620-Add-more-advancement-API.patch => 0619-Add-more-advancement-API.patch} (100%) rename patches/server/{0621-Add-ItemFactory-getSpawnEgg-API.patch => 0620-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0622-Add-critical-damage-API.patch => 0621-Add-critical-damage-API.patch} (100%) rename patches/server/{0623-Fix-issues-with-mob-conversion.patch => 0622-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0624-Add-isCollidable-methods-to-various-places.patch => 0623-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0625-Goat-ram-API.patch => 0624-Goat-ram-API.patch} (100%) rename patches/server/{0626-Add-API-for-resetting-a-single-score.patch => 0625-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0627-Add-Raw-Byte-Entity-Serialization.patch => 0626-Add-Raw-Byte-Entity-Serialization.patch} (97%) rename patches/server/{0628-Vanilla-command-permission-fixes.patch => 0627-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0629-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (100%) rename patches/server/{0630-Fix-GameProfileCache-concurrency.patch => 0629-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0631-Improve-and-expand-AsyncCatcher.patch => 0630-Improve-and-expand-AsyncCatcher.patch} (99%) rename patches/server/{0632-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0631-Add-paper-mobcaps-and-paper-playermobcaps.patch} (100%) rename patches/server/{0633-Sanitize-ResourceLocation-error-logging.patch => 0632-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0634-Manually-inline-methods-in-BlockPosition.patch => 0633-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0635-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0634-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0636-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (100%) rename patches/server/{0637-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0638-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch => 0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (100%) rename patches/server/{0639-Time-scoreboard-search.patch => 0638-Time-scoreboard-search.patch} (100%) rename patches/server/{0640-Oprimise-map-impl-for-tracked-players.patch => 0639-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/server/{0641-Add-missing-InventoryType.patch => 0640-Add-missing-InventoryType.patch} (100%) rename patches/server/{0642-Optimise-BlockSoil-nearby-water-lookup.patch => 0641-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0643-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (100%) rename patches/server/{0644-Check-requirement-before-suggesting-root-nodes.patch => 0643-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0645-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/server/{0646-Add-packet-limiter-config.patch => 0645-Add-packet-limiter-config.patch} (100%) rename patches/server/{0647-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0648-Ensure-valid-vehicle-status.patch => 0647-Ensure-valid-vehicle-status.patch} (100%) rename patches/server/{0649-Prevent-softlocked-end-exit-portal-generation.patch => 0648-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0650-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0651-Don-t-log-debug-logging-being-disabled.patch => 0650-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0652-fix-various-menus-with-empty-level-accesses.patch => 0651-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0653-Preserve-overstacked-loot.patch => 0652-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0654-Update-head-rotation-in-missing-places.patch => 0653-Update-head-rotation-in-missing-places.patch} (93%) rename patches/server/{0655-prevent-unintended-light-block-manipulation.patch => 0654-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0656-Fix-CraftCriteria-defaults-map.patch => 0655-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0657-Fix-upstreams-block-state-factories.patch => 0656-Fix-upstreams-block-state-factories.patch} (99%) rename patches/server/{0658-Configurable-feature-seeds.patch => 0657-Configurable-feature-seeds.patch} (100%) rename patches/server/{0659-Add-root-admin-user-detection.patch => 0658-Add-root-admin-user-detection.patch} (100%) rename patches/server/{0660-Always-allow-item-changing-in-Fireball.patch => 0659-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0661-don-t-attempt-to-teleport-dead-entities.patch => 0660-don-t-attempt-to-teleport-dead-entities.patch} (91%) rename patches/server/{0662-Prevent-excessive-velocity-through-repeated-crits.patch => 0661-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/server/{0663-Remove-client-side-code-using-deprecated-for-removal.patch => 0662-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0664-Fix-removing-recipes-from-RecipeIterator.patch => 0663-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0665-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0664-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/server/{0666-Hide-unnecessary-itemmeta-from-clients.patch => 0665-Hide-unnecessary-itemmeta-from-clients.patch} (100%) rename patches/server/{0667-Fix-Spigot-growth-modifiers.patch => 0666-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0668-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0669-Add-PlayerItemFrameChangeEvent.patch => 0668-Add-PlayerItemFrameChangeEvent.patch} (97%) rename patches/server/{0670-Optimize-HashMapPalette.patch => 0669-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0671-Allow-delegation-to-vanilla-chunk-gen.patch => 0670-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/server/{0672-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0673-Add-more-Campfire-API.patch => 0672-Add-more-Campfire-API.patch} (100%) rename patches/server/{0674-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0675-Forward-CraftEntity-in-teleport-command.patch => 0674-Forward-CraftEntity-in-teleport-command.patch} (95%) rename patches/server/{0676-Improve-scoreboard-entries.patch => 0675-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0677-Entity-powdered-snow-API.patch => 0676-Entity-powdered-snow-API.patch} (92%) rename patches/server/{0678-Add-API-for-item-entity-health.patch => 0677-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0679-Configurable-max-block-light-for-monster-spawning.patch => 0678-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0680-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0681-Load-effect-amplifiers-greater-than-127-correctly.patch => 0680-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0682-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0683-Fix-bees-aging-inside-hives.patch => 0682-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0684-Bucketable-API.patch => 0683-Bucketable-API.patch} (100%) rename patches/server/{0685-Validate-usernames.patch => 0684-Validate-usernames.patch} (100%) rename patches/server/{0686-Make-water-animal-spawn-height-configurable.patch => 0685-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0687-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/server/{0688-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0687-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0689-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0688-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0690-Multiple-Entries-with-Scoreboards.patch => 0689-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0691-Reset-placed-block-on-exception.patch => 0690-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0692-Add-configurable-height-for-slime-spawn.patch => 0691-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0693-Fix-xp-reward-for-baby-zombies.patch => 0692-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0694-Multi-Block-Change-API-Implementation.patch => 0693-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0695-Fix-NotePlayEvent.patch => 0694-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0696-Freeze-Tick-Lock-API.patch => 0695-Freeze-Tick-Lock-API.patch} (95%) rename patches/server/{0697-More-PotionEffectType-API.patch => 0696-More-PotionEffectType-API.patch} (100%) rename patches/server/{0698-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0697-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0699-API-for-creating-command-sender-which-forwards-feedb.patch => 0698-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/server/{0700-Add-missing-structure-set-seed-configs.patch => 0699-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0701-Implement-regenerateChunk.patch => 0700-Implement-regenerateChunk.patch} (100%) rename patches/server/{0702-Fix-cancelled-powdered-snow-bucket-placement.patch => 0701-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0703-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (100%) rename patches/server/{0704-Add-GameEvent-tags.patch => 0703-Add-GameEvent-tags.patch} (100%) rename patches/server/{0705-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (100%) rename patches/server/{0706-Furnace-RecipesUsed-API.patch => 0705-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0707-Configurable-sculk-sensor-listener-range.patch => 0706-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0708-Add-missing-block-data-mins-and-maxes.patch => 0707-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0709-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (100%) rename patches/server/{0710-Put-world-into-worldlist-before-initing-the-world.patch => 0709-Put-world-into-worldlist-before-initing-the-world.patch} (100%) rename patches/server/{0711-Fix-Entity-Position-Desync.patch => 0710-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0712-Custom-Potion-Mixes.patch => 0711-Custom-Potion-Mixes.patch} (100%) rename patches/server/{0713-Force-close-world-loading-screen.patch => 0712-Force-close-world-loading-screen.patch} (100%) rename patches/server/{0714-Fix-falling-block-spawn-methods.patch => 0713-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0715-Expose-furnace-minecart-push-values.patch => 0714-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0716-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0715-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0717-More-Projectile-API.patch => 0716-More-Projectile-API.patch} (97%) rename patches/server/{0718-Fix-swamp-hut-cat-generation-deadlock.patch => 0717-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0719-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0718-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/server/{0720-Implement-getComputedBiome-API.patch => 0719-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0721-Make-some-itemstacks-nonnull.patch => 0720-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0722-Implement-enchantWithLevels-API.patch => 0721-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0723-Fix-saving-in-unloadWorld.patch => 0722-Fix-saving-in-unloadWorld.patch} (100%) rename patches/server/{0724-Buffer-OOB-setBlock-calls.patch => 0723-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0725-Add-TameableDeathMessageEvent.patch => 0724-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0726-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (100%) rename patches/server/{0727-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0726-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/server/{0728-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0727-Ensure-entity-passenger-world-matches-ridden-entity.patch} (91%) rename patches/server/{0729-cache-resource-keys.patch => 0728-cache-resource-keys.patch} (100%) rename patches/server/{0730-Allow-changing-the-EnderDragon-podium.patch => 0729-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/server/{0731-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0730-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0732-Prevent-tile-entity-copies-loading-chunks.patch => 0731-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/server/{0733-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0732-Use-username-instead-of-display-name-in-PlayerList-g.patch} (100%) rename patches/server/{0734-Expand-PlayerItemDamageEvent.patch => 0733-Expand-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0735-WorldCreator-keepSpawnLoaded.patch => 0734-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/server/{0736-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0737-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0736-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0738-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0737-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0739-Fire-CauldronLevelChange-on-initial-fill.patch => 0738-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0740-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0739-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0741-Add-PlayerStopUsingItemEvent.patch => 0740-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/server/{0742-Don-t-tick-markers.patch => 0741-Don-t-tick-markers.patch} (100%) rename patches/server/{0743-Expand-FallingBlock-API.patch => 0742-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0744-Add-support-for-Proxy-Protocol.patch => 0743-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0745-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0744-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0746-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0745-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0747-properly-read-and-store-sus-effect-duration.patch => 0746-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{0748-Sanitize-sent-BlockEntity-NBT.patch => 0747-Sanitize-sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0749-Disable-component-selector-resolving-in-books-by-def.patch => 0748-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0750-Prevent-entity-loading-causing-async-lookups.patch => 0749-Prevent-entity-loading-causing-async-lookups.patch} (97%) rename patches/server/{0751-Throw-exception-on-world-create-while-being-ticked.patch => 0750-Throw-exception-on-world-create-while-being-ticked.patch} (100%) rename patches/server/{0752-Dont-resent-entity-on-art-update.patch => 0751-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0753-Add-WardenAngerChangeEvent.patch => 0752-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0754-Add-option-for-strict-advancement-dimension-checks.patch => 0753-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/server/{0755-Add-missing-important-BlockStateListPopulator-method.patch => 0754-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0756-Nameable-Banner-API.patch => 0755-Nameable-Banner-API.patch} (100%) rename patches/server/{0757-Don-t-broadcast-messages-to-command-blocks.patch => 0756-Don-t-broadcast-messages-to-command-blocks.patch} (100%) rename patches/server/{0758-Prevent-empty-items-from-being-added-to-world.patch => 0757-Prevent-empty-items-from-being-added-to-world.patch} (100%) rename patches/server/{0759-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0758-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0760-Add-Player-getFishHook.patch => 0759-Add-Player-getFishHook.patch} (100%) rename patches/server/{0761-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0762-Add-various-missing-EntityDropItemEvent-calls.patch => 0761-Add-various-missing-EntityDropItemEvent-calls.patch} (98%) rename patches/server/{0763-Fix-Bee-flower-NPE.patch => 0762-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0764-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0763-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (100%) rename patches/server/{0765-More-Teleport-API.patch => 0764-More-Teleport-API.patch} (99%) rename patches/server/{0766-Add-EntityPortalReadyEvent.patch => 0765-Add-EntityPortalReadyEvent.patch} (95%) rename patches/server/{0767-Don-t-use-level-random-in-entity-constructors.patch => 0766-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0768-Send-block-entities-after-destroy-prediction.patch => 0767-Send-block-entities-after-destroy-prediction.patch} (100%) rename patches/server/{0769-Warn-on-plugins-accessing-faraway-chunks.patch => 0768-Warn-on-plugins-accessing-faraway-chunks.patch} (100%) rename patches/server/{0770-Custom-Chat-Completion-Suggestions-API.patch => 0769-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0771-Add-and-fix-missing-BlockFadeEvents.patch => 0770-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0772-Collision-API.patch => 0771-Collision-API.patch} (90%) rename patches/server/{0773-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0772-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/server/{0774-Block-Ticking-API.patch => 0773-Block-Ticking-API.patch} (100%) rename patches/server/{0775-Add-Velocity-IP-Forwarding-Support.patch => 0774-Add-Velocity-IP-Forwarding-Support.patch} (100%) rename patches/server/{0776-Add-NamespacedKey-biome-methods.patch => 0775-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0777-Fix-plugin-loggers-on-server-shutdown.patch => 0776-Fix-plugin-loggers-on-server-shutdown.patch} (96%) rename patches/server/{0778-Stop-large-look-changes-from-crashing-the-server.patch => 0777-Stop-large-look-changes-from-crashing-the-server.patch} (100%) rename patches/server/{0779-Fire-EntityChangeBlockEvent-in-more-places.patch => 0778-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0780-Missing-eating-regain-reason.patch => 0779-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0781-Missing-effect-cause.patch => 0780-Missing-effect-cause.patch} (100%) rename patches/server/{0782-Added-byte-array-serialization-deserialization-for-P.patch => 0781-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0783-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (97%) rename patches/server/{0784-Call-BlockPhysicsEvent-more-often.patch => 0783-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0785-Configurable-chat-thread-limit.patch => 0784-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0786-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0785-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0787-fix-Jigsaw-block-kicking-user.patch => 0786-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0788-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0787-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0789-Add-getDrops-to-BlockState.patch => 0788-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0790-Fix-a-bunch-of-vanilla-bugs.patch => 0789-Fix-a-bunch-of-vanilla-bugs.patch} (99%) rename patches/server/{0791-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0790-Remove-unnecessary-onTrackingStart-during-navigation.patch} (100%) rename patches/server/{0792-Fix-custom-piglin-loved-items.patch => 0791-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0793-EntityPickupItemEvent-fixes.patch => 0792-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0794-Correctly-handle-interactions-with-items-on-cooldown.patch => 0793-Correctly-handle-interactions-with-items-on-cooldown.patch} (100%) rename patches/server/{0795-Add-PlayerInventorySlotChangeEvent.patch => 0794-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/server/{0796-Elder-Guardian-appearance-API.patch => 0795-Elder-Guardian-appearance-API.patch} (100%) rename patches/server/{0797-Allow-changing-bed-s-occupied-property.patch => 0796-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0798-Add-entity-knockback-API.patch => 0797-Add-entity-knockback-API.patch} (100%) rename patches/server/{0799-Detect-headless-JREs.patch => 0798-Detect-headless-JREs.patch} (100%) rename patches/server/{0800-fix-entity-vehicle-collision-event-not-called.patch => 0799-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0801-Add-EntityToggleSitEvent.patch => 0800-Add-EntityToggleSitEvent.patch} (100%) rename patches/server/{0802-Add-fire-tick-delay-option.patch => 0801-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0803-Add-Moving-Piston-API.patch => 0802-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0804-Ignore-impossible-spawn-tick.patch => 0803-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0805-Track-projectile-source-for-fireworks-from-dispenser.patch => 0804-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0806-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0805-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0807-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (95%) rename patches/server/{0808-Add-PrePlayerAttackEntityEvent.patch => 0807-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/server/{0809-ensure-reset-EnderDragon-boss-event-name.patch => 0808-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0810-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0809-fix-MC-252817-green-map-markers-do-not-disappear.patch} (94%) rename patches/server/{0811-Add-Player-Warden-Warning-API.patch => 0810-Add-Player-Warden-Warning-API.patch} (100%) rename patches/server/{0812-More-vanilla-friendly-methods-to-update-trades.patch => 0811-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0813-Add-paper-dumplisteners-command.patch => 0812-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0814-check-global-player-list-where-appropriate.patch => 0813-check-global-player-list-where-appropriate.patch} (100%) rename patches/server/{0815-Fix-async-entity-add-due-to-fungus-trees.patch => 0814-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0816-ItemStack-damage-API.patch => 0815-ItemStack-damage-API.patch} (100%) rename patches/server/{0817-Friction-API.patch => 0816-Friction-API.patch} (100%) rename patches/server/{0818-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0817-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0819-Fix-player-kick-on-shutdown.patch => 0818-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0820-Sync-offhand-slot-in-menus.patch => 0819-Sync-offhand-slot-in-menus.patch} (100%) rename patches/server/{0821-Player-Entity-Tracking-Events.patch => 0820-Player-Entity-Tracking-Events.patch} (96%) rename patches/server/{0822-Limit-pet-look-distance.patch => 0821-Limit-pet-look-distance.patch} (100%) rename patches/server/{0823-Fixes-and-additions-to-the-SpawnReason-API.patch => 0822-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0824-fix-Instruments.patch => 0823-fix-Instruments.patch} (100%) rename patches/server/{0825-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (100%) rename patches/server/{0826-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0825-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0827-Add-BlockLockCheckEvent.patch => 0826-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0828-Add-Sneaking-API-for-Entities.patch => 0827-Add-Sneaking-API-for-Entities.patch} (91%) rename patches/server/{0829-Improve-logging-and-errors.patch => 0828-Improve-logging-and-errors.patch} (100%) rename patches/server/{0830-Improve-PortalEvents.patch => 0829-Improve-PortalEvents.patch} (93%) rename patches/server/{0831-Add-config-option-for-spider-worldborder-climbing.patch => 0830-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0832-Add-missing-SpigotConfig-logCommands-check.patch => 0831-Add-missing-SpigotConfig-logCommands-check.patch} (100%) rename patches/server/{0833-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0832-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0834-Flying-Fall-Damage.patch => 0833-Flying-Fall-Damage.patch} (100%) rename patches/server/{0835-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/server/{0836-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (94%) rename patches/server/{0837-config-for-disabling-entity-tag-tags.patch => 0836-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0838-Use-single-player-info-update-packet-on-join.patch => 0837-Use-single-player-info-update-packet-on-join.patch} (100%) rename patches/server/{0839-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0838-Correctly-shrink-items-during-EntityResurrectEvent.patch} (100%) rename patches/server/{0840-Win-Screen-API.patch => 0839-Win-Screen-API.patch} (100%) rename patches/server/{0841-Remove-CraftItemStack-setAmount-null-assignment.patch => 0840-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0842-Fix-force-opening-enchantment-tables.patch => 0841-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0843-Add-Entity-Body-Yaw-API.patch => 0842-Add-Entity-Body-Yaw-API.patch} (94%) rename patches/server/{0844-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0845-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0844-Update-the-flag-when-a-captured-block-state-is-outda.patch} (100%) rename patches/server/{0846-Add-EntityFertilizeEggEvent.patch => 0845-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/server/{0847-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0846-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0848-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0847-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0849-Correctly-handle-ArmorStand-invisibility.patch => 0848-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0850-Fix-advancement-triggers-for-entity-damage.patch => 0849-Fix-advancement-triggers-for-entity-damage.patch} (100%) rename patches/server/{0851-Fix-text-display-error-on-spawn.patch => 0850-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0852-Fix-inventories-returning-null-Locations.patch => 0851-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0853-Add-Shearable-API.patch => 0852-Add-Shearable-API.patch} (100%) rename patches/server/{0854-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0853-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0855-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0854-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0856-Treat-sequence-violations-like-they-should-be.patch => 0855-Treat-sequence-violations-like-they-should-be.patch} (100%) rename patches/server/{0857-remove-duplicate-animate-packet-for-records.patch => 0856-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0858-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0857-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/server/{0859-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0858-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (100%) rename patches/server/{0860-Use-array-for-gamerule-storage.patch => 0859-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0861-Fix-a-couple-of-upstream-bed-issues.patch => 0860-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0862-Fix-demo-flag-not-enabling-demo-mode.patch => 0861-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0863-Add-Mob-Experience-reward-API.patch => 0862-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0864-Break-redstone-on-top-of-trap-doors-early.patch => 0863-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0865-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0864-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0866-More-accurate-isInOpenWater-impl.patch => 0865-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0867-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0866-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0868-Expand-PlayerItemMendEvent.patch => 0867-Expand-PlayerItemMendEvent.patch} (100%) rename patches/server/{0869-Refresh-ProjectileSource-for-projectiles.patch => 0868-Refresh-ProjectileSource-for-projectiles.patch} (97%) rename patches/server/{0870-Add-transient-modifier-API.patch => 0869-Add-transient-modifier-API.patch} (100%) rename patches/server/{0871-Fix-block-place-logic.patch => 0870-Fix-block-place-logic.patch} (100%) rename patches/server/{0872-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0871-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0873-Call-BlockGrowEvent-for-missing-blocks.patch => 0872-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0874-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0873-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (100%) rename patches/server/{0875-fix-MapLike-spam-for-missing-key-selector.patch => 0874-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0876-Fix-sniffer-removeExploredLocation.patch => 0875-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0877-Add-method-to-remove-all-active-potion-effects.patch => 0876-Add-method-to-remove-all-active-potion-effects.patch} (91%) rename patches/server/{0878-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0877-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0879-Add-event-for-player-editing-sign.patch => 0878-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0880-Only-tick-item-frames-if-players-can-see-it.patch => 0879-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0881-Fix-cmd-permission-levels-for-command-blocks.patch => 0880-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/server/{0882-Add-option-to-disable-block-updates.patch => 0881-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0883-Call-missing-BlockDispenseEvent.patch => 0882-Call-missing-BlockDispenseEvent.patch} (100%) rename patches/server/{0884-Don-t-load-chunks-for-supporting-block-checks.patch => 0883-Don-t-load-chunks-for-supporting-block-checks.patch} (90%) rename patches/server/{0885-Optimize-player-lookups-for-beacons.patch => 0884-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0886-Add-Sign-getInteractableSideFor.patch => 0885-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0887-Array-backed-synched-entity-data.patch => 0886-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0888-fix-item-meta-for-tadpole-buckets.patch => 0887-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0889-Fix-BanList-API.patch => 0888-Fix-BanList-API.patch} (100%) rename patches/server/{0890-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0889-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0891-Fix-possible-NPE-on-painting-creation.patch => 0890-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0892-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0891-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0893-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0892-ExperienceOrb-should-call-EntitySpawnEvent.patch} (100%) rename patches/server/{0894-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0893-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0895-Add-whitelist-events.patch => 0894-Add-whitelist-events.patch} (100%) rename patches/server/{0896-Implement-PlayerFailMoveEvent.patch => 0895-Implement-PlayerFailMoveEvent.patch} (100%) rename patches/server/{0897-Folia-scheduler-and-owned-region-API.patch => 0896-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0898-Only-erase-allay-memory-on-non-item-targets.patch => 0897-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0899-API-for-updating-recipes-on-clients.patch => 0898-API-for-updating-recipes-on-clients.patch} (100%) rename patches/server/{0900-Fix-rotation-when-spawning-display-entities.patch => 0899-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0901-Only-capture-actual-tree-growth.patch => 0900-Only-capture-actual-tree-growth.patch} (100%) rename patches/server/{0902-Use-correct-source-for-mushroom-block-spread-event.patch => 0901-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0903-Respect-randomizeData-on-more-entities-when-spawning.patch => 0902-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0904-Use-correct-seed-on-api-world-load.patch => 0903-Use-correct-seed-on-api-world-load.patch} (100%) rename patches/server/{0905-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0904-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0906-Cache-map-ids-on-item-frames.patch => 0905-Cache-map-ids-on-item-frames.patch} (96%) rename patches/server/{0907-Fix-custom-statistic-criteria-creation.patch => 0906-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0908-Bandaid-fix-for-Effect.patch => 0907-Bandaid-fix-for-Effect.patch} (100%) rename patches/server/{0909-SculkCatalyst-bloom-API.patch => 0908-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0910-API-for-an-entity-s-scoreboard-name.patch => 0909-API-for-an-entity-s-scoreboard-name.patch} (86%) rename patches/server/{0911-Deprecate-and-replace-methods-with-old-StructureType.patch => 0910-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/server/{0912-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0911-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (100%) rename patches/server/{0913-Properly-handle-BlockBreakEvent-isDropItems.patch => 0912-Properly-handle-BlockBreakEvent-isDropItems.patch} (100%) rename patches/server/{0914-Fire-entity-death-event-for-ender-dragon.patch => 0913-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0915-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0914-Configurable-entity-tracking-range-by-Y-coordinate.patch} (100%) rename patches/server/{0916-Add-Listing-API-for-Player.patch => 0915-Add-Listing-API-for-Player.patch} (100%) rename patches/server/{0917-Configurable-Region-Compression-Format.patch => 0916-Configurable-Region-Compression-Format.patch} (100%) rename patches/server/{0918-Add-BlockFace-to-BlockDamageEvent.patch => 0917-Add-BlockFace-to-BlockDamageEvent.patch} (100%) rename patches/server/{0919-Fix-NPE-on-Boat-getStatus.patch => 0918-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0920-Expand-Pose-API.patch => 0919-Expand-Pose-API.patch} (91%) rename patches/server/{0921-More-DragonBattle-API.patch => 0920-More-DragonBattle-API.patch} (100%) rename patches/server/{0922-Deep-clone-unhandled-nbt-tags.patch => 0921-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0923-Add-PlayerPickItemEvent.patch => 0922-Add-PlayerPickItemEvent.patch} (100%) rename patches/server/{0924-Allow-trident-custom-damage.patch => 0923-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0925-Expose-hand-in-BlockCanBuildEvent.patch => 0924-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0926-Optimize-nearest-structure-border-iteration.patch => 0925-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0927-Implement-OfflinePlayer-isConnected.patch => 0926-Implement-OfflinePlayer-isConnected.patch} (100%) rename patches/server/{0928-Fix-inventory-desync.patch => 0927-Fix-inventory-desync.patch} (100%) rename patches/server/{0929-Add-titleOverride-to-InventoryOpenEvent.patch => 0928-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/server/{0930-Configure-sniffer-egg-hatch-time.patch => 0929-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0931-Do-crystal-portal-proximity-check-before-entity-look.patch => 0930-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0932-Skip-POI-finding-if-stuck-in-vehicle.patch => 0931-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0933-Add-slot-sanity-checks-in-container-clicks.patch => 0932-Add-slot-sanity-checks-in-container-clicks.patch} (100%) rename patches/server/{0934-Call-BlockRedstoneEvents-for-lecterns.patch => 0933-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0935-Allow-proper-checking-of-empty-item-stacks.patch => 0934-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0936-Fix-silent-equipment-change-for-mobs.patch => 0935-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{0937-Fix-spigot-s-Forced-Stats.patch => 0936-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0938-Add-missing-InventoryHolders-to-inventories.patch => 0937-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/server/{0939-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0938-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{0940-Add-missing-logs-for-log-ips-config-option.patch => 0939-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0941-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0940-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{0942-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0941-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{0943-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0942-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{0944-Fix-team-sidebar-objectives-not-being-cleared.patch => 0943-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{0945-Fix-missing-map-initialize-event-call.patch => 0944-Fix-missing-map-initialize-event-call.patch} (100%) rename patches/server/{0946-Update-entity-data-when-attaching-firework-to-entity.patch => 0945-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{0947-Use-correct-variable-for-initializing-CraftLootTable.patch => 0946-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{0948-Fix-UnsafeValues-loadAdvancement.patch => 0947-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{0949-Add-player-idle-duration-API.patch => 0948-Add-player-idle-duration-API.patch} (100%) rename patches/server/{0950-Don-t-check-if-we-can-see-non-visible-entities.patch => 0949-Don-t-check-if-we-can-see-non-visible-entities.patch} (100%) rename patches/server/{0951-Fix-NPE-in-SculkBloomEvent-world-access.patch => 0950-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{0952-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 0951-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/server/{0953-Optimize-VarInts.patch => 0952-Optimize-VarInts.patch} (100%) rename patches/server/{0954-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0953-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{0955-Add-predicate-for-blocks-when-raytracing.patch => 0954-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/server/{0956-Broadcast-take-item-packets-with-collector-as-source.patch => 0955-Broadcast-take-item-packets-with-collector-as-source.patch} (100%) rename patches/server/{0957-Expand-LingeringPotion-API.patch => 0956-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{0958-Add-MaterialTagsTest.patch => 0957-Add-MaterialTagsTest.patch} (100%) rename patches/server/{0959-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 0958-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/server/{0960-Add-hand-to-fish-event-for-all-player-interactions.patch => 0959-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{0961-Fix-several-issues-with-EntityBreedEvent.patch => 0960-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{0962-Add-UUID-attribute-modifier-API.patch => 0961-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{0963-Fix-missing-event-call-for-entity-teleport-API.patch => 0962-Fix-missing-event-call-for-entity-teleport-API.patch} (93%) rename patches/server/{0964-Lazily-create-LootContext-for-criterions.patch => 0963-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{0965-Don-t-fire-sync-events-during-worldgen.patch => 0964-Don-t-fire-sync-events-during-worldgen.patch} (99%) rename patches/server/{0966-Add-Structure-check-API.patch => 0965-Add-Structure-check-API.patch} (100%) rename patches/server/{0967-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 0966-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{0968-Restore-vanilla-entity-drops-behavior.patch => 0967-Restore-vanilla-entity-drops-behavior.patch} (99%) rename patches/server/{0969-Dont-resend-blocks-on-interactions.patch => 0968-Dont-resend-blocks-on-interactions.patch} (100%) rename patches/server/{0970-add-more-scoreboard-API.patch => 0969-add-more-scoreboard-API.patch} (100%) rename patches/server/{0971-Improve-Registry.patch => 0970-Improve-Registry.patch} (100%) rename patches/server/{0972-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 0971-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (100%) rename patches/server/{0973-Add-experience-points-API.patch => 0972-Add-experience-points-API.patch} (100%) rename patches/server/{0974-Add-drops-to-shear-events.patch => 0973-Add-drops-to-shear-events.patch} (100%) rename patches/server/{0975-Add-PlayerShieldDisableEvent.patch => 0974-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/server/{0976-Validate-ResourceLocation-in-NBT-reading.patch => 0975-Validate-ResourceLocation-in-NBT-reading.patch} (100%) rename patches/server/{0977-Properly-handle-experience-dropping-on-block-break.patch => 0976-Properly-handle-experience-dropping-on-block-break.patch} (100%) rename patches/server/{0978-Fixup-NamespacedKey-handling.patch => 0977-Fixup-NamespacedKey-handling.patch} (100%) rename patches/server/{0979-Expose-LootTable-of-DecoratedPot.patch => 0978-Expose-LootTable-of-DecoratedPot.patch} (100%) rename patches/server/{0980-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 0979-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (100%) rename patches/server/{0981-Rewrite-dataconverter-system.patch => 0980-Rewrite-dataconverter-system.patch} (100%) rename patches/server/{0982-Starlight.patch => 0981-Starlight.patch} (100%) rename patches/server/{0983-Rewrite-chunk-system.patch => 0982-Rewrite-chunk-system.patch} (99%) rename patches/server/{0984-incremental-chunk-and-player-saving.patch => 0983-incremental-chunk-and-player-saving.patch} (100%) rename patches/server/{0985-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch => 0984-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch} (100%) rename patches/server/{0986-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch => 0985-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch} (100%) rename patches/server/{0987-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch => 0986-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch} (100%) rename patches/server/{0988-Optimize-Network-Manager-and-add-advanced-packet-sup.patch => 0987-Optimize-Network-Manager-and-add-advanced-packet-sup.patch} (100%) rename patches/server/{0989-Allow-Saving-of-Oversized-Chunks.patch => 0988-Allow-Saving-of-Oversized-Chunks.patch} (100%) rename patches/server/{0990-Fix-World-isChunkGenerated-calls.patch => 0989-Fix-World-isChunkGenerated-calls.patch} (100%) rename patches/server/{0991-Flat-bedrock-generator-settings.patch => 0990-Flat-bedrock-generator-settings.patch} (100%) rename patches/server/{0992-Entity-Activation-Range-2.0.patch => 0991-Entity-Activation-Range-2.0.patch} (99%) rename patches/server/{0993-Optional-per-player-mob-spawns.patch => 0992-Optional-per-player-mob-spawns.patch} (100%) rename patches/server/{0994-Anti-Xray.patch => 0993-Anti-Xray.patch} (100%) rename patches/server/{0995-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0994-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (100%) rename patches/server/{0996-Optimize-Collision-to-not-load-chunks.patch => 0995-Optimize-Collision-to-not-load-chunks.patch} (98%) rename patches/server/{0997-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => 0996-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (100%) rename patches/server/{0998-Entity-load-save-limit-per-chunk.patch => 0997-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/server/{0999-Fix-and-optimise-world-force-upgrading.patch => 0998-Fix-and-optimise-world-force-upgrading.patch} (100%) rename patches/server/{1000-Improved-Watchdog-Support.patch => 0999-Improved-Watchdog-Support.patch} (100%) rename patches/server/{1001-Optimize-Voxel-Shape-Merging.patch => 1000-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/server/{1002-Write-SavedData-IO-async.patch => 1001-Write-SavedData-IO-async.patch} (100%) rename patches/server/{1003-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 1002-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (100%) rename patches/server/{1004-Use-distance-map-to-optimise-entity-tracker.patch => 1003-Use-distance-map-to-optimise-entity-tracker.patch} (99%) rename patches/server/{1005-Optimize-Bit-Operations-by-inlining.patch => 1004-Optimize-Bit-Operations-by-inlining.patch} (100%) rename patches/server/{1006-Remove-streams-from-hot-code.patch => 1005-Remove-streams-from-hot-code.patch} (100%) rename patches/server/{1007-Eigencraft-redstone-implementation.patch => 1006-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 1007-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{1009-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 1008-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (100%) rename patches/server/{1010-Improve-boat-collision-performance.patch => 1009-Improve-boat-collision-performance.patch} (100%) rename patches/server/{1011-Optimise-general-POI-access.patch => 1010-Optimise-general-POI-access.patch} (100%) rename patches/server/{1012-Custom-table-implementation-for-blockstate-state-loo.patch => 1011-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{1013-Execute-chunk-tasks-mid-tick.patch => 1012-Execute-chunk-tasks-mid-tick.patch} (100%) rename patches/server/{1014-Optimise-random-block-ticking.patch => 1013-Optimise-random-block-ticking.patch} (100%) rename patches/server/{1015-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1014-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{1016-Use-Velocity-compression-and-cipher-natives.patch => 1015-Use-Velocity-compression-and-cipher-natives.patch} (100%) rename patches/server/{1017-Detail-more-information-in-watchdog-dumps.patch => 1016-Detail-more-information-in-watchdog-dumps.patch} (99%) rename patches/server/{1018-Collision-optimisations.patch => 1017-Collision-optimisations.patch} (99%) rename patches/server/{1019-Optimise-collision-checking-in-player-move-packet-ha.patch => 1018-Optimise-collision-checking-in-player-move-packet-ha.patch} (100%) rename patches/server/{1020-Fix-tripwire-disarming-not-working-as-intended.patch => 1019-Fix-tripwire-disarming-not-working-as-intended.patch} (100%) rename patches/server/{1021-Fix-entity-type-tags-suggestions-in-selectors.patch => 1020-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{1022-Add-Alternate-Current-redstone-implementation.patch => 1021-Add-Alternate-Current-redstone-implementation.patch} (100%) rename patches/server/{1023-optimize-dirt-and-snow-spreading.patch => 1022-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{1024-Properly-resend-entities.patch => 1023-Properly-resend-entities.patch} (99%) rename patches/server/{1025-Optimize-Hoppers.patch => 1024-Optimize-Hoppers.patch} (100%) rename patches/server/{1026-Improve-performance-of-mass-crafts.patch => 1025-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{1027-Actually-optimise-explosions.patch => 1026-Actually-optimise-explosions.patch} (100%) rename patches/server/{1028-Optimise-chunk-tick-iteration.patch => 1027-Optimise-chunk-tick-iteration.patch} (100%) rename patches/server/{1029-Lag-compensation-ticks.patch => 1028-Lag-compensation-ticks.patch} (100%) rename patches/server/{1030-Optimise-nearby-player-retrieval.patch => 1029-Optimise-nearby-player-retrieval.patch} (100%) rename patches/server/{1031-Distance-manager-tick-timings.patch => 1030-Distance-manager-tick-timings.patch} (100%) rename patches/server/{1032-Handle-Oversized-block-entities-in-chunks.patch => 1031-Handle-Oversized-block-entities-in-chunks.patch} (100%) rename patches/server/{1033-Send-full-pos-packets-for-hard-colliding-entities.patch => 1032-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{1034-Add-ShulkerDuplicateEvent.patch => 1033-Add-ShulkerDuplicateEvent.patch} (100%) rename patches/server/{1035-Add-api-for-spawn-egg-texture-colors.patch => 1034-Add-api-for-spawn-egg-texture-colors.patch} (100%) rename patches/server/{1036-Disable-memory-reserve-allocating.patch => 1035-Disable-memory-reserve-allocating.patch} (100%) rename patches/server/{1037-Improve-tag-parser-handling.patch => 1036-Improve-tag-parser-handling.patch} (100%) rename patches/server/{1038-Add-Lifecycle-Event-system.patch => 1037-Add-Lifecycle-Event-system.patch} (100%) rename patches/server/{1039-Conduit-API.patch => 1038-Conduit-API.patch} (100%) rename patches/server/{1040-ItemStack-Tooltip-API.patch => 1039-ItemStack-Tooltip-API.patch} (100%) rename patches/server/{1041-Fix-possible-StackOverflowError-for-some-dispenses.patch => 1040-Fix-possible-StackOverflowError-for-some-dispenses.patch} (100%) rename patches/server/{1042-Properly-track-the-changed-item-from-dispense-events.patch => 1041-Properly-track-the-changed-item-from-dispense-events.patch} (100%) rename patches/server/{1043-Add-getChunkSnapshot-includeLightData-parameter.patch => 1042-Add-getChunkSnapshot-includeLightData-parameter.patch} (100%) rename patches/server/{1044-Add-FluidState-API.patch => 1043-Add-FluidState-API.patch} (100%) rename patches/server/{1045-add-number-format-api.patch => 1044-add-number-format-api.patch} (100%) rename patches/server/{1046-check-if-itemstack-is-stackable-first.patch => 1045-check-if-itemstack-is-stackable-first.patch} (100%) rename patches/server/{1047-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch => 1046-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch} (100%) rename patches/server/{1048-improve-BanList-types.patch => 1047-improve-BanList-types.patch} (100%) rename patches/server/{1049-Configurable-max-block-fluid-ticks.patch => 1048-Configurable-max-block-fluid-ticks.patch} (100%) rename patches/server/{1050-disable-forced-empty-world-ticks.patch => 1049-disable-forced-empty-world-ticks.patch} (100%) rename patches/server/{1051-Suspicious-Effect-Entry-API.patch => 1050-Suspicious-Effect-Entry-API.patch} (100%) rename patches/server/{1052-Per-world-ticks-per-spawn-settings.patch => 1051-Per-world-ticks-per-spawn-settings.patch} (100%) rename patches/server/{1053-Add-onboarding-message-for-initial-server-start.patch => 1052-Add-onboarding-message-for-initial-server-start.patch} (100%) rename patches/server/{1054-Fix-DamageSource-API.patch => 1053-Fix-DamageSource-API.patch} (99%) rename patches/server/{1055-Expanded-Hopper-API.patch => 1054-Expanded-Hopper-API.patch} (100%) diff --git a/patches/api/0202-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/api/0201-Add-and-implement-PlayerRecipeBookClickEvent.patch similarity index 100% rename from patches/api/0202-Add-and-implement-PlayerRecipeBookClickEvent.patch rename to patches/api/0201-Add-and-implement-PlayerRecipeBookClickEvent.patch diff --git a/patches/api/0201-Improve-Arrow-API.patch b/patches/api/0201-Improve-Arrow-API.patch deleted file mode 100644 index 1c70418e98..0000000000 --- a/patches/api/0201-Improve-Arrow-API.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nesaak <52047222+Nesaak@users.noreply.github.com> -Date: Fri, 22 May 2020 13:35:21 -0400 -Subject: [PATCH] Improve Arrow API - -Add method to get the arrow's itemstack and a method -to set the arrow's "noclip" status - -Co-authored-by: Jake Potrebic - -diff --git a/src/main/java/org/bukkit/entity/AbstractArrow.java b/src/main/java/org/bukkit/entity/AbstractArrow.java -index e8e56e89e32d84af0639fe2e9b0eeabd747b6007..225a24898acd25038ea2a8448f9f3b57643d3026 100644 ---- a/src/main/java/org/bukkit/entity/AbstractArrow.java -+++ b/src/main/java/org/bukkit/entity/AbstractArrow.java -@@ -143,6 +143,28 @@ public interface AbstractArrow extends Projectile { - } - - // Paper start -+ /** -+ * Gets the ItemStack for this arrow. -+ * -+ * @return The ItemStack, as if a player picked up the arrow -+ */ -+ @NotNull -+ org.bukkit.inventory.ItemStack getItemStack(); -+ -+ /** -+ * Sets this arrow to "noclip" status. -+ * -+ * @param noPhysics true to set "noclip" -+ */ -+ void setNoPhysics(boolean noPhysics); -+ -+ /** -+ * Gets if this arrow has "noclip". -+ * -+ * @return true if noclip is active -+ */ -+ boolean hasNoPhysics(); -+ - /** - * Gets the {@link PickupRule} for this arrow. - * diff --git a/patches/api/0203-Support-components-in-ItemMeta.patch b/patches/api/0202-Support-components-in-ItemMeta.patch similarity index 96% rename from patches/api/0203-Support-components-in-ItemMeta.patch rename to patches/api/0202-Support-components-in-ItemMeta.patch index 00f7942262..dc804cc5b2 100644 --- a/patches/api/0203-Support-components-in-ItemMeta.patch +++ b/patches/api/0202-Support-components-in-ItemMeta.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Support components in ItemMeta diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -index 420a91a834016d3af95efd79ca92ae45c4f081c4..ea64d5b1ebaa652785ddbc7b515808174f636a62 100644 +index f23c0c942f200a68d2620f225ab90399a9057dfc..478b6d2acbc5788f72db81f387daa08df7837a5d 100644 --- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java @@ -5,6 +5,7 @@ import java.util.Collection; diff --git a/patches/api/0204-added-2-new-TargetReasons-for-1.16-mob-behavior.patch b/patches/api/0203-added-2-new-TargetReasons-for-1.16-mob-behavior.patch similarity index 100% rename from patches/api/0204-added-2-new-TargetReasons-for-1.16-mob-behavior.patch rename to patches/api/0203-added-2-new-TargetReasons-for-1.16-mob-behavior.patch diff --git a/patches/api/0205-Add-entity-liquid-API.patch b/patches/api/0204-Add-entity-liquid-API.patch similarity index 100% rename from patches/api/0205-Add-entity-liquid-API.patch rename to patches/api/0204-Add-entity-liquid-API.patch diff --git a/patches/api/0206-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch b/patches/api/0205-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch similarity index 100% rename from patches/api/0206-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch rename to patches/api/0205-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch diff --git a/patches/api/0207-Add-BellRingEvent.patch b/patches/api/0206-Add-BellRingEvent.patch similarity index 100% rename from patches/api/0207-Add-BellRingEvent.patch rename to patches/api/0206-Add-BellRingEvent.patch diff --git a/patches/api/0208-Brand-support.patch b/patches/api/0207-Brand-support.patch similarity index 100% rename from patches/api/0208-Brand-support.patch rename to patches/api/0207-Brand-support.patch diff --git a/patches/api/0209-Add-moon-phase-API.patch b/patches/api/0208-Add-moon-phase-API.patch similarity index 100% rename from patches/api/0209-Add-moon-phase-API.patch rename to patches/api/0208-Add-moon-phase-API.patch diff --git a/patches/api/0210-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 93% rename from patches/api/0210-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch index 2db07bbf4c..cc0b04bb45 100644 --- a/patches/api/0210-Add-playPickupItemAnimation-to-LivingEntity.patch +++ b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 3f062e0fe9cb632dece9ce3fdc985ab1bf5a425f..590d69f57722a40addf73131fa60e952f303230b 100644 +index 10d76fcd509702042c528fab96b963e9c6d210a5..3969f3c188211838cb576465bd64c0f63ae85080 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1045,5 +1045,28 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0211-Add-more-Evoker-API.patch b/patches/api/0210-Add-more-Evoker-API.patch similarity index 100% rename from patches/api/0211-Add-more-Evoker-API.patch rename to patches/api/0210-Add-more-Evoker-API.patch diff --git a/patches/api/0212-Add-methods-to-get-translation-keys.patch b/patches/api/0211-Add-methods-to-get-translation-keys.patch similarity index 99% rename from patches/api/0212-Add-methods-to-get-translation-keys.patch rename to patches/api/0211-Add-methods-to-get-translation-keys.patch index f203ee5d2c..5af19e4030 100644 --- a/patches/api/0212-Add-methods-to-get-translation-keys.patch +++ b/patches/api/0211-Add-methods-to-get-translation-keys.patch @@ -282,7 +282,7 @@ index d3087d60378822cdd7cea25fd63d3f496e3cd2fb..5d8fa5b39a5d50cca48ba63af3a84b80 + // Paper end } diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index a7c58adb6404e04a673bf91d491d7fef56dc890e..85a5e9a3b41798cb3cb6687ed379a5e3eedd698a 100644 +index bf29d9b733afc7c62725d259f4920c4f211cc6d0..1d3812db989a55b6f31bb30dffe70323eb592a15 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -32,7 +32,7 @@ import org.jetbrains.annotations.Nullable; diff --git a/patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/api/0214-Add-additional-open-container-api-to-HumanEntity.patch b/patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/api/0214-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/api/0215-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 100% rename from patches/api/0215-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch diff --git a/patches/api/0216-Entity-isTicking.patch b/patches/api/0215-Entity-isTicking.patch similarity index 100% rename from patches/api/0216-Entity-isTicking.patch rename to patches/api/0215-Entity-isTicking.patch diff --git a/patches/api/0217-Villager-resetOffers.patch b/patches/api/0216-Villager-resetOffers.patch similarity index 100% rename from patches/api/0217-Villager-resetOffers.patch rename to patches/api/0216-Villager-resetOffers.patch diff --git a/patches/api/0218-Player-elytra-boost-API.patch b/patches/api/0217-Player-elytra-boost-API.patch similarity index 100% rename from patches/api/0218-Player-elytra-boost-API.patch rename to patches/api/0217-Player-elytra-boost-API.patch diff --git a/patches/api/0219-Add-getOfflinePlayerIfCached-String.patch b/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch similarity index 100% rename from patches/api/0219-Add-getOfflinePlayerIfCached-String.patch rename to patches/api/0218-Add-getOfflinePlayerIfCached-String.patch diff --git a/patches/api/0220-Add-ignore-discounts-API.patch b/patches/api/0219-Add-ignore-discounts-API.patch similarity index 100% rename from patches/api/0220-Add-ignore-discounts-API.patch rename to patches/api/0219-Add-ignore-discounts-API.patch diff --git a/patches/api/0221-Item-no-age-no-player-pickup.patch b/patches/api/0220-Item-no-age-no-player-pickup.patch similarity index 93% rename from patches/api/0221-Item-no-age-no-player-pickup.patch rename to patches/api/0220-Item-no-age-no-player-pickup.patch index 5dd7572120..d3be2301af 100644 --- a/patches/api/0221-Item-no-age-no-player-pickup.patch +++ b/patches/api/0220-Item-no-age-no-player-pickup.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item no age & no player pickup diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java -index ab06c640cef1309ab44b0fae8d95df48cdc869a7..48858e1c58c13d786bbc935abedb0f059837833c 100644 +index bfecd0633458586c0352eeb1a95bb57b12f9101e..6239aec4f6c625a814fa4fd610cdc5ab1a9f6e0f 100644 --- a/src/main/java/org/bukkit/entity/Item.java +++ b/src/main/java/org/bukkit/entity/Item.java @@ -104,5 +104,34 @@ public interface Item extends Entity { diff --git a/patches/api/0222-Beacon-API-custom-effect-ranges.patch b/patches/api/0221-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/api/0222-Beacon-API-custom-effect-ranges.patch rename to patches/api/0221-Beacon-API-custom-effect-ranges.patch diff --git a/patches/api/0223-Add-API-for-quit-reason.patch b/patches/api/0222-Add-API-for-quit-reason.patch similarity index 100% rename from patches/api/0223-Add-API-for-quit-reason.patch rename to patches/api/0222-Add-API-for-quit-reason.patch diff --git a/patches/api/0224-Add-Destroy-Speed-API.patch b/patches/api/0223-Add-Destroy-Speed-API.patch similarity index 97% rename from patches/api/0224-Add-Destroy-Speed-API.patch rename to patches/api/0223-Add-Destroy-Speed-API.patch index d3bcb47524..cdf304d00b 100644 --- a/patches/api/0224-Add-Destroy-Speed-API.patch +++ b/patches/api/0223-Add-Destroy-Speed-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add Destroy Speed API Co-authored-by: Jake Potrebic diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index 85a5e9a3b41798cb3cb6687ed379a5e3eedd698a..c1705e518af08841e8154caf183bc808366feb2e 100644 +index 1d3812db989a55b6f31bb30dffe70323eb592a15..4aea4be0677d93e17a4ce98dd340dd9921f996a0 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -690,4 +690,31 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr diff --git a/patches/api/0225-Add-LivingEntity-clearActiveItem.patch b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch similarity index 90% rename from patches/api/0225-Add-LivingEntity-clearActiveItem.patch rename to patches/api/0224-Add-LivingEntity-clearActiveItem.patch index efb08addcb..aa60fb7335 100644 --- a/patches/api/0225-Add-LivingEntity-clearActiveItem.patch +++ b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 590d69f57722a40addf73131fa60e952f303230b..191a3c3ee46649d2a539597258485752b34fac02 100644 +index 3969f3c188211838cb576465bd64c0f63ae85080..9d58da4686a22893455b9cc75fb8e73a87d2d06d 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -996,6 +996,13 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0226-Add-PlayerItemCooldownEvent.patch b/patches/api/0225-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/api/0226-Add-PlayerItemCooldownEvent.patch rename to patches/api/0225-Add-PlayerItemCooldownEvent.patch diff --git a/patches/api/0227-More-lightning-API.patch b/patches/api/0226-More-lightning-API.patch similarity index 100% rename from patches/api/0227-More-lightning-API.patch rename to patches/api/0226-More-lightning-API.patch diff --git a/patches/api/0228-Add-PlayerShearBlockEvent.patch b/patches/api/0227-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/api/0228-Add-PlayerShearBlockEvent.patch rename to patches/api/0227-Add-PlayerShearBlockEvent.patch diff --git a/patches/api/0229-Player-Chunk-Load-Unload-Events.patch b/patches/api/0228-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/api/0229-Player-Chunk-Load-Unload-Events.patch rename to patches/api/0228-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/api/0230-Expose-LivingEntity-hurt-direction.patch b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch similarity index 95% rename from patches/api/0230-Expose-LivingEntity-hurt-direction.patch rename to patches/api/0229-Expose-LivingEntity-hurt-direction.patch index 948b10631f..e99a7ce6bb 100644 --- a/patches/api/0230-Expose-LivingEntity-hurt-direction.patch +++ b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch @@ -26,7 +26,7 @@ index 94f2c3167f4ce7f5f2b4ecc067739c64af0a2508..4054d2c836342f0e4bcbd33adb13f50d * Get the sleep ticks of the player. This value may be capped. * diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 191a3c3ee46649d2a539597258485752b34fac02..62d0d2fe3c6dfc9faaa821bde074b623914e4a44 100644 +index 9d58da4686a22893455b9cc75fb8e73a87d2d06d..e9919fce380ec1d0d48b3ac706e7fd31af0be26b 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1075,5 +1075,21 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0231-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/api/0231-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/api/0232-Added-PlayerTradeEvent.patch b/patches/api/0231-Added-PlayerTradeEvent.patch similarity index 100% rename from patches/api/0232-Added-PlayerTradeEvent.patch rename to patches/api/0231-Added-PlayerTradeEvent.patch diff --git a/patches/api/0233-Add-TargetHitEvent-API.patch b/patches/api/0232-Add-TargetHitEvent-API.patch similarity index 100% rename from patches/api/0233-Add-TargetHitEvent-API.patch rename to patches/api/0232-Add-TargetHitEvent-API.patch diff --git a/patches/api/0234-Additional-Block-Material-API-s.patch b/patches/api/0233-Additional-Block-Material-API-s.patch similarity index 95% rename from patches/api/0234-Additional-Block-Material-API-s.patch rename to patches/api/0233-Additional-Block-Material-API-s.patch index f20f4d9d39..ab3e6f9ac6 100644 --- a/patches/api/0234-Additional-Block-Material-API-s.patch +++ b/patches/api/0233-Additional-Block-Material-API-s.patch @@ -9,7 +9,7 @@ process to do this in the Bukkit API Adds API for buildable, replaceable, burnable too. diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index 137a40c708bb67de4608447975867a07240ddc88..3fd364e5875f95296e75dede4c610d3dd3e0038e 100644 +index 4aea4be0677d93e17a4ce98dd340dd9921f996a0..c68ed7de2d50da4105dd38c0986f237e8c56b2d6 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -439,6 +439,42 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr diff --git a/patches/api/0235-Add-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/api/0235-Add-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/api/0236-Add-PlayerFlowerPotManipulateEvent.patch b/patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/api/0236-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/api/0237-Zombie-API-breaking-doors.patch b/patches/api/0236-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/api/0237-Zombie-API-breaking-doors.patch rename to patches/api/0236-Zombie-API-breaking-doors.patch diff --git a/patches/api/0238-Add-EntityLoadCrossbowEvent.patch b/patches/api/0237-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/api/0238-Add-EntityLoadCrossbowEvent.patch rename to patches/api/0237-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/api/0239-Added-WorldGameRuleChangeEvent.patch b/patches/api/0238-Added-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/api/0239-Added-WorldGameRuleChangeEvent.patch rename to patches/api/0238-Added-WorldGameRuleChangeEvent.patch diff --git a/patches/api/0240-Added-ServerResourcesReloadedEvent.patch b/patches/api/0239-Added-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/api/0240-Added-ServerResourcesReloadedEvent.patch rename to patches/api/0239-Added-ServerResourcesReloadedEvent.patch diff --git a/patches/api/0241-Add-BlockFailedDispenseEvent.patch b/patches/api/0240-Add-BlockFailedDispenseEvent.patch similarity index 100% rename from patches/api/0241-Add-BlockFailedDispenseEvent.patch rename to patches/api/0240-Add-BlockFailedDispenseEvent.patch diff --git a/patches/api/0242-Added-PlayerLecternPageChangeEvent.patch b/patches/api/0241-Added-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/api/0242-Added-PlayerLecternPageChangeEvent.patch rename to patches/api/0241-Added-PlayerLecternPageChangeEvent.patch diff --git a/patches/api/0243-Added-PlayerLoomPatternSelectEvent.patch b/patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/api/0243-Added-PlayerLoomPatternSelectEvent.patch rename to patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch diff --git a/patches/api/0244-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch b/patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch similarity index 100% rename from patches/api/0244-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch rename to patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch diff --git a/patches/api/0245-Add-sendOpLevel-API.patch b/patches/api/0244-Add-sendOpLevel-API.patch similarity index 100% rename from patches/api/0245-Add-sendOpLevel-API.patch rename to patches/api/0244-Add-sendOpLevel-API.patch diff --git a/patches/api/0246-Add-PaperRegistry.patch b/patches/api/0245-Add-PaperRegistry.patch similarity index 100% rename from patches/api/0246-Add-PaperRegistry.patch rename to patches/api/0245-Add-PaperRegistry.patch diff --git a/patches/api/0247-Add-StructuresLocateEvent.patch b/patches/api/0246-Add-StructuresLocateEvent.patch similarity index 100% rename from patches/api/0247-Add-StructuresLocateEvent.patch rename to patches/api/0246-Add-StructuresLocateEvent.patch diff --git a/patches/api/0248-Add-BlockPreDispenseEvent.patch b/patches/api/0247-Add-BlockPreDispenseEvent.patch similarity index 100% rename from patches/api/0248-Add-BlockPreDispenseEvent.patch rename to patches/api/0247-Add-BlockPreDispenseEvent.patch diff --git a/patches/api/0249-Added-PlayerChangeBeaconEffectEvent.patch b/patches/api/0248-Added-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/api/0249-Added-PlayerChangeBeaconEffectEvent.patch rename to patches/api/0248-Added-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/api/0250-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/api/0249-Added-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/api/0250-Added-PlayerStonecutterRecipeSelectEvent.patch rename to patches/api/0249-Added-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/api/0251-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/api/0250-Add-dropLeash-variable-to-EntityUnleashEvent.patch similarity index 100% rename from patches/api/0251-Add-dropLeash-variable-to-EntityUnleashEvent.patch rename to patches/api/0250-Add-dropLeash-variable-to-EntityUnleashEvent.patch diff --git a/patches/api/0252-add-DragonEggFormEvent.patch b/patches/api/0251-add-DragonEggFormEvent.patch similarity index 100% rename from patches/api/0252-add-DragonEggFormEvent.patch rename to patches/api/0251-add-DragonEggFormEvent.patch diff --git a/patches/api/0253-EntityMoveEvent.patch b/patches/api/0252-EntityMoveEvent.patch similarity index 100% rename from patches/api/0253-EntityMoveEvent.patch rename to patches/api/0252-EntityMoveEvent.patch diff --git a/patches/api/0254-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/api/0253-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/api/0254-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/api/0253-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/api/0255-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/api/0254-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/api/0255-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/api/0254-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/api/0256-living-entity-allow-attribute-registration.patch b/patches/api/0255-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/api/0256-living-entity-allow-attribute-registration.patch rename to patches/api/0255-living-entity-allow-attribute-registration.patch diff --git a/patches/api/0257-Add-missing-effects.patch b/patches/api/0256-Add-missing-effects.patch similarity index 100% rename from patches/api/0257-Add-missing-effects.patch rename to patches/api/0256-Add-missing-effects.patch diff --git a/patches/api/0258-Expose-Tracked-Players.patch b/patches/api/0257-Expose-Tracked-Players.patch similarity index 100% rename from patches/api/0258-Expose-Tracked-Players.patch rename to patches/api/0257-Expose-Tracked-Players.patch diff --git a/patches/api/0259-Cache-the-result-of-Material-isBlock.patch b/patches/api/0258-Cache-the-result-of-Material-isBlock.patch similarity index 100% rename from patches/api/0259-Cache-the-result-of-Material-isBlock.patch rename to patches/api/0258-Cache-the-result-of-Material-isBlock.patch diff --git a/patches/api/0260-Add-worldborder-events.patch b/patches/api/0259-Add-worldborder-events.patch similarity index 100% rename from patches/api/0260-Add-worldborder-events.patch rename to patches/api/0259-Add-worldborder-events.patch diff --git a/patches/api/0261-added-PlayerNameEntityEvent.patch b/patches/api/0260-added-PlayerNameEntityEvent.patch similarity index 100% rename from patches/api/0261-added-PlayerNameEntityEvent.patch rename to patches/api/0260-added-PlayerNameEntityEvent.patch diff --git a/patches/api/0262-Add-recipe-to-cook-events.patch b/patches/api/0261-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/api/0262-Add-recipe-to-cook-events.patch rename to patches/api/0261-Add-recipe-to-cook-events.patch diff --git a/patches/api/0263-Add-Block-isValidTool.patch b/patches/api/0262-Add-Block-isValidTool.patch similarity index 100% rename from patches/api/0263-Add-Block-isValidTool.patch rename to patches/api/0262-Add-Block-isValidTool.patch diff --git a/patches/api/0264-Expand-world-key-API.patch b/patches/api/0263-Expand-world-key-API.patch similarity index 100% rename from patches/api/0264-Expand-world-key-API.patch rename to patches/api/0263-Expand-world-key-API.patch diff --git a/patches/api/0265-Item-Rarity-API.patch b/patches/api/0264-Item-Rarity-API.patch similarity index 100% rename from patches/api/0265-Item-Rarity-API.patch rename to patches/api/0264-Item-Rarity-API.patch diff --git a/patches/api/0266-Expose-protocol-version.patch b/patches/api/0265-Expose-protocol-version.patch similarity index 100% rename from patches/api/0266-Expose-protocol-version.patch rename to patches/api/0265-Expose-protocol-version.patch diff --git a/patches/api/0267-add-isDeeplySleeping-to-HumanEntity.patch b/patches/api/0266-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/api/0267-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/api/0266-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/api/0268-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/api/0267-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/api/0268-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/api/0267-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/api/0269-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/api/0268-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/api/0269-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/api/0268-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/api/0270-Added-PlayerDeepSleepEvent.patch b/patches/api/0269-Added-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/api/0270-Added-PlayerDeepSleepEvent.patch rename to patches/api/0269-Added-PlayerDeepSleepEvent.patch diff --git a/patches/api/0271-More-World-API.patch b/patches/api/0270-More-World-API.patch similarity index 100% rename from patches/api/0271-More-World-API.patch rename to patches/api/0270-More-World-API.patch diff --git a/patches/api/0272-Added-PlayerBedFailEnterEvent.patch b/patches/api/0271-Added-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/api/0272-Added-PlayerBedFailEnterEvent.patch rename to patches/api/0271-Added-PlayerBedFailEnterEvent.patch diff --git a/patches/api/0273-Introduce-beacon-activation-deactivation-events.patch b/patches/api/0272-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/api/0273-Introduce-beacon-activation-deactivation-events.patch rename to patches/api/0272-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/api/0274-PlayerMoveEvent-Improvements.patch b/patches/api/0273-PlayerMoveEvent-Improvements.patch similarity index 100% rename from patches/api/0274-PlayerMoveEvent-Improvements.patch rename to patches/api/0273-PlayerMoveEvent-Improvements.patch diff --git a/patches/api/0275-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/api/0274-add-RespawnFlags-to-PlayerRespawnEvent.patch similarity index 100% rename from patches/api/0275-add-RespawnFlags-to-PlayerRespawnEvent.patch rename to patches/api/0274-add-RespawnFlags-to-PlayerRespawnEvent.patch diff --git a/patches/api/0276-Add-more-WanderingTrader-API.patch b/patches/api/0275-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/api/0276-Add-more-WanderingTrader-API.patch rename to patches/api/0275-Add-more-WanderingTrader-API.patch diff --git a/patches/api/0277-Add-EntityBlockStorage-clearEntities.patch b/patches/api/0276-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/api/0277-Add-EntityBlockStorage-clearEntities.patch rename to patches/api/0276-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/api/0278-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/api/0277-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/api/0278-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/api/0277-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/api/0279-Inventory-close.patch b/patches/api/0278-Inventory-close.patch similarity index 100% rename from patches/api/0279-Inventory-close.patch rename to patches/api/0278-Inventory-close.patch diff --git a/patches/api/0280-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/api/0279-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/api/0280-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/api/0279-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/api/0281-Add-basic-Datapack-API.patch b/patches/api/0280-Add-basic-Datapack-API.patch similarity index 100% rename from patches/api/0281-Add-basic-Datapack-API.patch rename to patches/api/0280-Add-basic-Datapack-API.patch diff --git a/patches/api/0282-additions-to-PlayerGameModeChangeEvent.patch b/patches/api/0281-additions-to-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/api/0282-additions-to-PlayerGameModeChangeEvent.patch rename to patches/api/0281-additions-to-PlayerGameModeChangeEvent.patch diff --git a/patches/api/0283-ItemStack-repair-check-API.patch b/patches/api/0282-ItemStack-repair-check-API.patch similarity index 100% rename from patches/api/0283-ItemStack-repair-check-API.patch rename to patches/api/0282-ItemStack-repair-check-API.patch diff --git a/patches/api/0284-More-Enchantment-API.patch b/patches/api/0283-More-Enchantment-API.patch similarity index 100% rename from patches/api/0284-More-Enchantment-API.patch rename to patches/api/0283-More-Enchantment-API.patch diff --git a/patches/api/0285-Add-Mob-lookAt-API.patch b/patches/api/0284-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/api/0285-Add-Mob-lookAt-API.patch rename to patches/api/0284-Add-Mob-lookAt-API.patch diff --git a/patches/api/0286-ItemStack-editMeta.patch b/patches/api/0285-ItemStack-editMeta.patch similarity index 100% rename from patches/api/0286-ItemStack-editMeta.patch rename to patches/api/0285-ItemStack-editMeta.patch diff --git a/patches/api/0287-Add-EntityInsideBlockEvent.patch b/patches/api/0286-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/api/0287-Add-EntityInsideBlockEvent.patch rename to patches/api/0286-Add-EntityInsideBlockEvent.patch diff --git a/patches/api/0288-Attributes-API-for-item-defaults.patch b/patches/api/0287-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/api/0288-Attributes-API-for-item-defaults.patch rename to patches/api/0287-Attributes-API-for-item-defaults.patch diff --git a/patches/api/0289-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/api/0288-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/api/0289-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/api/0288-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/api/0290-More-Lidded-Block-API.patch b/patches/api/0289-More-Lidded-Block-API.patch similarity index 100% rename from patches/api/0290-More-Lidded-Block-API.patch rename to patches/api/0289-More-Lidded-Block-API.patch diff --git a/patches/api/0291-Add-PlayerKickEvent-causes.patch b/patches/api/0290-Add-PlayerKickEvent-causes.patch similarity index 97% rename from patches/api/0291-Add-PlayerKickEvent-causes.patch rename to patches/api/0290-Add-PlayerKickEvent-causes.patch index 39657e4039..b23128c57d 100644 --- a/patches/api/0291-Add-PlayerKickEvent-causes.patch +++ b/patches/api/0290-Add-PlayerKickEvent-causes.patch @@ -5,7 +5,7 @@ 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 59821aba66edbef2644bdd21646f556e773a898b..793df7533096efb0f60bddcb3e4e1575cbcc1069 100644 +index d735ed635022d170c6b1080ed87f3c2a799202f6..4906bec154d0f60420fbe2cffa8c7df0918ca61b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -277,6 +277,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0292-Add-PufferFishStateChangeEvent.patch b/patches/api/0291-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/api/0292-Add-PufferFishStateChangeEvent.patch rename to patches/api/0291-Add-PufferFishStateChangeEvent.patch diff --git a/patches/api/0293-Add-BellRevealRaiderEvent.patch b/patches/api/0292-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/api/0293-Add-BellRevealRaiderEvent.patch rename to patches/api/0292-Add-BellRevealRaiderEvent.patch diff --git a/patches/api/0294-Add-ElderGuardianAppearanceEvent.patch b/patches/api/0293-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/api/0294-Add-ElderGuardianAppearanceEvent.patch rename to patches/api/0293-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/api/0295-Add-more-line-of-sight-methods.patch b/patches/api/0294-Add-more-line-of-sight-methods.patch similarity index 100% rename from patches/api/0295-Add-more-line-of-sight-methods.patch rename to patches/api/0294-Add-more-line-of-sight-methods.patch diff --git a/patches/api/0296-Add-WaterBottleSplashEvent.patch b/patches/api/0295-Add-WaterBottleSplashEvent.patch similarity index 100% rename from patches/api/0296-Add-WaterBottleSplashEvent.patch rename to patches/api/0295-Add-WaterBottleSplashEvent.patch diff --git a/patches/api/0297-Add-more-LimitedRegion-API.patch b/patches/api/0296-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/api/0297-Add-more-LimitedRegion-API.patch rename to patches/api/0296-Add-more-LimitedRegion-API.patch diff --git a/patches/api/0298-Missing-Entity-API.patch b/patches/api/0297-Missing-Entity-API.patch similarity index 98% rename from patches/api/0298-Missing-Entity-API.patch rename to patches/api/0297-Missing-Entity-API.patch index 1a3f1b5e63..f9455519bb 100644 --- a/patches/api/0298-Missing-Entity-API.patch +++ b/patches/api/0297-Missing-Entity-API.patch @@ -11,6 +11,7 @@ Co-authored-by: booky10 Co-authored-by: Amin Co-authored-by: TrollyLoki Co-authored-by: FireInstall +Co-authored-by: maxcom1 <46265094+maxcom1@users.noreply.github.com> diff --git a/src/main/java/io/papermc/paper/entity/SchoolableFish.java b/src/main/java/io/papermc/paper/entity/SchoolableFish.java new file mode 100644 @@ -416,14 +417,14 @@ index 9e7f42caab1204036f4203354c115fd40c6def92..138d2530de2410f4a9424dabd3e5ce0c + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index d68ccecaadcf7a906058e66a750f4cfce5dd7b3f..efe812b4d47df6f8b5ba54ec4526f3dcd20f180f 100644 +index d68ccecaadcf7a906058e66a750f4cfce5dd7b3f..578c22b0aef9c89a3c33b75c33bcdc60bdab6b49 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -283,6 +283,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -283,6 +283,40 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean isFrozen(); -+ // Paper start - move invisibility up to Entity ++ // Paper start - missing entity api + /** + * Sets whether the entity is invisible or not. + *

@@ -433,15 +434,29 @@ index d68ccecaadcf7a906058e66a750f4cfce5dd7b3f..efe812b4d47df6f8b5ba54ec4526f3dc + * + * @param invisible If the entity is invisible + */ -+ void setInvisible(boolean invisible); ++ void setInvisible(boolean invisible); // Paper - moved up from LivingEntity + + /** + * Gets whether the entity is invisible or not. + * + * @return Whether the entity is invisible + */ -+ boolean isInvisible(); -+ // Paper end - move invisibility up to Entity ++ boolean isInvisible(); // Paper - moved up from LivingEntity ++ ++ /** ++ * Sets this entities no physics status. ++ * ++ * @param noPhysics boolean indicating if the entity should not have physics. ++ */ ++ void setNoPhysics(boolean noPhysics); ++ ++ /** ++ * Gets if this entity has no physics. ++ * ++ * @return true if the entity does not have physics. ++ */ ++ boolean hasNoPhysics(); ++ // Paper end - missing entity api + /** * Mark the entity's removal. diff --git a/patches/api/0299-Adds-PlayerArmSwingEvent.patch b/patches/api/0298-Adds-PlayerArmSwingEvent.patch similarity index 100% rename from patches/api/0299-Adds-PlayerArmSwingEvent.patch rename to patches/api/0298-Adds-PlayerArmSwingEvent.patch diff --git a/patches/api/0300-Add-PlayerSignCommandPreprocessEvent.patch b/patches/api/0299-Add-PlayerSignCommandPreprocessEvent.patch similarity index 100% rename from patches/api/0300-Add-PlayerSignCommandPreprocessEvent.patch rename to patches/api/0299-Add-PlayerSignCommandPreprocessEvent.patch diff --git a/patches/api/0301-fix-empty-array-elements-in-command-arguments.patch b/patches/api/0300-fix-empty-array-elements-in-command-arguments.patch similarity index 100% rename from patches/api/0301-fix-empty-array-elements-in-command-arguments.patch rename to patches/api/0300-fix-empty-array-elements-in-command-arguments.patch diff --git a/patches/api/0302-Stinger-API.patch b/patches/api/0301-Stinger-API.patch similarity index 95% rename from patches/api/0302-Stinger-API.patch rename to patches/api/0301-Stinger-API.patch index d2dc349f90..4966f6d228 100644 --- a/patches/api/0302-Stinger-API.patch +++ b/patches/api/0301-Stinger-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stinger API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 6e6b80843a8669b422f93e98343e1da9f8546ee7..d083cffe0b61642bf4c4ea0fecc529090702042f 100644 +index ff89fc699b7aaba982c59ace4effaffc5285ca17..41ca8fea2aede178bdbe87c05588bce4f2faf8e6 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -419,6 +419,52 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0303-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/api/0302-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/api/0303-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/api/0302-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/api/0304-Add-PlayerSetSpawnEvent.patch b/patches/api/0303-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/api/0304-Add-PlayerSetSpawnEvent.patch rename to patches/api/0303-Add-PlayerSetSpawnEvent.patch diff --git a/patches/api/0305-Added-EntityDamageItemEvent.patch b/patches/api/0304-Added-EntityDamageItemEvent.patch similarity index 100% rename from patches/api/0305-Added-EntityDamageItemEvent.patch rename to patches/api/0304-Added-EntityDamageItemEvent.patch diff --git a/patches/api/0306-Make-EntityUnleashEvent-cancellable.patch b/patches/api/0305-Make-EntityUnleashEvent-cancellable.patch similarity index 100% rename from patches/api/0306-Make-EntityUnleashEvent-cancellable.patch rename to patches/api/0305-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/api/0307-Change-EnderEye-target-without-changing-other-things.patch b/patches/api/0306-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/api/0307-Change-EnderEye-target-without-changing-other-things.patch rename to patches/api/0306-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/api/0308-Add-BlockBreakBlockEvent.patch b/patches/api/0307-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/api/0308-Add-BlockBreakBlockEvent.patch rename to patches/api/0307-Add-BlockBreakBlockEvent.patch diff --git a/patches/api/0309-Add-helpers-for-left-right-click-to-Action.patch b/patches/api/0308-Add-helpers-for-left-right-click-to-Action.patch similarity index 100% rename from patches/api/0309-Add-helpers-for-left-right-click-to-Action.patch rename to patches/api/0308-Add-helpers-for-left-right-click-to-Action.patch diff --git a/patches/api/0310-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/api/0309-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/api/0310-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/api/0309-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/api/0311-More-CommandBlock-API.patch b/patches/api/0310-More-CommandBlock-API.patch similarity index 100% rename from patches/api/0311-More-CommandBlock-API.patch rename to patches/api/0310-More-CommandBlock-API.patch diff --git a/patches/api/0312-Add-missing-team-sidebar-display-slots.patch b/patches/api/0311-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/api/0312-Add-missing-team-sidebar-display-slots.patch rename to patches/api/0311-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/api/0313-add-back-EntityPortalExitEvent.patch b/patches/api/0312-add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/api/0313-add-back-EntityPortalExitEvent.patch rename to patches/api/0312-add-back-EntityPortalExitEvent.patch diff --git a/patches/api/0314-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/api/0313-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/api/0314-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/api/0313-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/api/0315-Get-entity-default-attributes.patch b/patches/api/0314-Get-entity-default-attributes.patch similarity index 100% rename from patches/api/0315-Get-entity-default-attributes.patch rename to patches/api/0314-Get-entity-default-attributes.patch diff --git a/patches/api/0316-Left-handed-API.patch b/patches/api/0315-Left-handed-API.patch similarity index 100% rename from patches/api/0316-Left-handed-API.patch rename to patches/api/0315-Left-handed-API.patch diff --git a/patches/api/0317-Add-critical-damage-API.patch b/patches/api/0316-Add-critical-damage-API.patch similarity index 100% rename from patches/api/0317-Add-critical-damage-API.patch rename to patches/api/0316-Add-critical-damage-API.patch diff --git a/patches/api/0318-Add-more-advancement-API.patch b/patches/api/0317-Add-more-advancement-API.patch similarity index 100% rename from patches/api/0318-Add-more-advancement-API.patch rename to patches/api/0317-Add-more-advancement-API.patch diff --git a/patches/api/0319-Fix-issues-with-mob-conversion.patch b/patches/api/0318-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/api/0319-Fix-issues-with-mob-conversion.patch rename to patches/api/0318-Fix-issues-with-mob-conversion.patch diff --git a/patches/api/0320-Add-isCollidable-methods-to-various-places.patch b/patches/api/0319-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/api/0320-Add-isCollidable-methods-to-various-places.patch rename to patches/api/0319-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/api/0321-Goat-ram-API.patch b/patches/api/0320-Goat-ram-API.patch similarity index 100% rename from patches/api/0321-Goat-ram-API.patch rename to patches/api/0320-Goat-ram-API.patch diff --git a/patches/api/0322-Add-API-for-resetting-a-single-score.patch b/patches/api/0321-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/api/0322-Add-API-for-resetting-a-single-score.patch rename to patches/api/0321-Add-API-for-resetting-a-single-score.patch diff --git a/patches/api/0323-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch similarity index 94% rename from patches/api/0323-Add-Raw-Byte-Entity-Serialization.patch rename to patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch index f378113a44..0f3a5bae4e 100644 --- a/patches/api/0323-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch @@ -24,10 +24,10 @@ index 434fde52986ba07d7209ff47483f74fe31e8ebe7..0c7204e390f44b649fc26cd46152abeb * Creates and returns the next EntityId available. *

diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index efe812b4d47df6f8b5ba54ec4526f3dcd20f180f..a09640dce6f61f808f516f5569e08e9e6a2f2b53 100644 +index 9272c15619f623dc39d9c9046fd6463674c37264..9cb84eababf159b04618a605ff03cdaee72c9502 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -911,5 +911,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -925,5 +925,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @Deprecated @NotNull Set getTrackedPlayers(); diff --git a/patches/api/0324-Add-PlayerItemFrameChangeEvent.patch b/patches/api/0323-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/api/0324-Add-PlayerItemFrameChangeEvent.patch rename to patches/api/0323-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/api/0325-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0324-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/api/0325-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/api/0324-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/api/0326-Add-more-Campfire-API.patch b/patches/api/0325-Add-more-Campfire-API.patch similarity index 100% rename from patches/api/0326-Add-more-Campfire-API.patch rename to patches/api/0325-Add-more-Campfire-API.patch diff --git a/patches/api/0327-Extend-VehicleCollisionEvent-move-HandlerList-up.patch b/patches/api/0326-Extend-VehicleCollisionEvent-move-HandlerList-up.patch similarity index 100% rename from patches/api/0327-Extend-VehicleCollisionEvent-move-HandlerList-up.patch rename to patches/api/0326-Extend-VehicleCollisionEvent-move-HandlerList-up.patch diff --git a/patches/api/0328-Improve-scoreboard-entries.patch b/patches/api/0327-Improve-scoreboard-entries.patch similarity index 100% rename from patches/api/0328-Improve-scoreboard-entries.patch rename to patches/api/0327-Improve-scoreboard-entries.patch diff --git a/patches/api/0329-Entity-powdered-snow-API.patch b/patches/api/0328-Entity-powdered-snow-API.patch similarity index 90% rename from patches/api/0329-Entity-powdered-snow-API.patch rename to patches/api/0328-Entity-powdered-snow-API.patch index b5b1dbedbd..2b48461850 100644 --- a/patches/api/0329-Entity-powdered-snow-API.patch +++ b/patches/api/0328-Entity-powdered-snow-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity powdered snow API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index a09640dce6f61f808f516f5569e08e9e6a2f2b53..336cd1830182d4aac0fc7b5be629da4fc78c5cf8 100644 +index 9cb84eababf159b04618a605ff03cdaee72c9502..a7b37ba26d8999a78a747fe5a41e15327ae3a2ee 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -938,5 +938,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -952,5 +952,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return Whether the entity was successfully spawned. */ public boolean spawnAt(@NotNull Location location, @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason); diff --git a/patches/api/0330-Add-API-for-item-entity-health.patch b/patches/api/0329-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/api/0330-Add-API-for-item-entity-health.patch rename to patches/api/0329-Add-API-for-item-entity-health.patch diff --git a/patches/api/0331-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/api/0330-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/api/0331-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/api/0330-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/api/0332-Bucketable-API.patch b/patches/api/0331-Bucketable-API.patch similarity index 100% rename from patches/api/0332-Bucketable-API.patch rename to patches/api/0331-Bucketable-API.patch diff --git a/patches/api/0333-System-prop-for-default-config-comment-parsing.patch b/patches/api/0332-System-prop-for-default-config-comment-parsing.patch similarity index 100% rename from patches/api/0333-System-prop-for-default-config-comment-parsing.patch rename to patches/api/0332-System-prop-for-default-config-comment-parsing.patch diff --git a/patches/api/0334-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/api/0333-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/api/0334-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/api/0333-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/api/0335-Multiple-Entries-with-Scoreboards.patch b/patches/api/0334-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/api/0335-Multiple-Entries-with-Scoreboards.patch rename to patches/api/0334-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/api/0336-Warn-on-strange-EventHandler-return-types.patch b/patches/api/0335-Warn-on-strange-EventHandler-return-types.patch similarity index 100% rename from patches/api/0336-Warn-on-strange-EventHandler-return-types.patch rename to patches/api/0335-Warn-on-strange-EventHandler-return-types.patch diff --git a/patches/api/0337-Multi-Block-Change-API.patch b/patches/api/0336-Multi-Block-Change-API.patch similarity index 95% rename from patches/api/0337-Multi-Block-Change-API.patch rename to patches/api/0336-Multi-Block-Change-API.patch index 45664f22b3..8aa5be5a5c 100644 --- a/patches/api/0337-Multi-Block-Change-API.patch +++ b/patches/api/0336-Multi-Block-Change-API.patch @@ -5,7 +5,7 @@ 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 793df7533096efb0f60bddcb3e4e1575cbcc1069..c8a50647d34c70bc927c33c602f938a01bf6e7a9 100644 +index 4906bec154d0f60420fbe2cffa8c7df0918ca61b..2501533048e4de25672d9cc0a52fa1150e6d8adb 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -895,6 +895,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0338-Fix-NotePlayEvent.patch b/patches/api/0337-Fix-NotePlayEvent.patch similarity index 100% rename from patches/api/0338-Fix-NotePlayEvent.patch rename to patches/api/0337-Fix-NotePlayEvent.patch diff --git a/patches/api/0339-Freeze-Tick-Lock-API.patch b/patches/api/0338-Freeze-Tick-Lock-API.patch similarity index 81% rename from patches/api/0339-Freeze-Tick-Lock-API.patch rename to patches/api/0338-Freeze-Tick-Lock-API.patch index ae7c328cc6..f7ef909291 100644 --- a/patches/api/0339-Freeze-Tick-Lock-API.patch +++ b/patches/api/0338-Freeze-Tick-Lock-API.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 336cd1830182d4aac0fc7b5be629da4fc78c5cf8..5be7daff9077f35aa1d3abf747f7d147a1532b55 100644 +index a7b37ba26d8999a78a747fe5a41e15327ae3a2ee..9b5fe55399594c57c1b1521bea03781fd99fdf60 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -303,6 +303,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent - boolean isInvisible(); - // Paper end - move invisibility up to Entity +@@ -317,6 +317,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent + boolean hasNoPhysics(); + // Paper end - missing entity api + // Paper start - Freeze Tick Lock API + /** diff --git a/patches/api/0340-Dolphin-API.patch b/patches/api/0339-Dolphin-API.patch similarity index 100% rename from patches/api/0340-Dolphin-API.patch rename to patches/api/0339-Dolphin-API.patch diff --git a/patches/api/0341-More-PotionEffectType-API.patch b/patches/api/0340-More-PotionEffectType-API.patch similarity index 100% rename from patches/api/0341-More-PotionEffectType-API.patch rename to patches/api/0340-More-PotionEffectType-API.patch diff --git a/patches/api/0342-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/api/0341-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/api/0342-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/api/0341-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/api/0343-Implement-regenerateChunk.patch b/patches/api/0342-Implement-regenerateChunk.patch similarity index 100% rename from patches/api/0343-Implement-regenerateChunk.patch rename to patches/api/0342-Implement-regenerateChunk.patch diff --git a/patches/api/0344-Add-GameEvent-tags.patch b/patches/api/0343-Add-GameEvent-tags.patch similarity index 100% rename from patches/api/0344-Add-GameEvent-tags.patch rename to patches/api/0343-Add-GameEvent-tags.patch diff --git a/patches/api/0345-Furnace-RecipesUsed-API.patch b/patches/api/0344-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/api/0345-Furnace-RecipesUsed-API.patch rename to patches/api/0344-Furnace-RecipesUsed-API.patch diff --git a/patches/api/0346-Configurable-sculk-sensor-listener-range.patch b/patches/api/0345-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/api/0346-Configurable-sculk-sensor-listener-range.patch rename to patches/api/0345-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/api/0347-Add-missing-block-data-mins-and-maxes.patch b/patches/api/0346-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/api/0347-Add-missing-block-data-mins-and-maxes.patch rename to patches/api/0346-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/api/0348-Custom-Potion-Mixes.patch b/patches/api/0347-Custom-Potion-Mixes.patch similarity index 100% rename from patches/api/0348-Custom-Potion-Mixes.patch rename to patches/api/0347-Custom-Potion-Mixes.patch diff --git a/patches/api/0349-Expose-furnace-minecart-push-values.patch b/patches/api/0348-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/api/0349-Expose-furnace-minecart-push-values.patch rename to patches/api/0348-Expose-furnace-minecart-push-values.patch diff --git a/patches/api/0350-More-Projectile-API.patch b/patches/api/0349-More-Projectile-API.patch similarity index 97% rename from patches/api/0350-More-Projectile-API.patch rename to patches/api/0349-More-Projectile-API.patch index 569c337346..dcad065186 100644 --- a/patches/api/0350-More-Projectile-API.patch +++ b/patches/api/0349-More-Projectile-API.patch @@ -6,13 +6,22 @@ Subject: [PATCH] More Projectile API Co-authored-by: Nassim Jahnke diff --git a/src/main/java/org/bukkit/entity/AbstractArrow.java b/src/main/java/org/bukkit/entity/AbstractArrow.java -index 225a24898acd25038ea2a8448f9f3b57643d3026..d173010d51d05928c35bb4bf5fbc08ce221ec474 100644 +index e8e56e89e32d84af0639fe2e9b0eeabd747b6007..2d7521b71ec16e1b229bbe4c05d51673720df475 100644 --- a/src/main/java/org/bukkit/entity/AbstractArrow.java +++ b/src/main/java/org/bukkit/entity/AbstractArrow.java -@@ -151,6 +151,36 @@ public interface AbstractArrow extends Projectile { - @NotNull - org.bukkit.inventory.ItemStack getItemStack(); - +@@ -174,5 +174,43 @@ public interface AbstractArrow extends Projectile { + ALLOWED, + CREATIVE_ONLY; + } ++ ++ /** ++ * Gets the ItemStack for this arrow. ++ * ++ * @return The ItemStack, as if a player picked up the arrow ++ */ ++ @NotNull ++ org.bukkit.inventory.ItemStack getItemStack(); ++ + /** + * Sets the amount of ticks this arrow has been alive in the world + * This is used to determine when the arrow should be automatically despawned. @@ -42,10 +51,8 @@ index 225a24898acd25038ea2a8448f9f3b57643d3026..d173010d51d05928c35bb4bf5fbc08ce + * @param sound sound that is played + */ + void setHitSound(@NotNull org.bukkit.Sound sound); -+ - /** - * Sets this arrow to "noclip" status. - * + // Paper end + } diff --git a/src/main/java/org/bukkit/entity/Firework.java b/src/main/java/org/bukkit/entity/Firework.java index 0d31aa0b22cf1e849572294e2cfe38b48c9210af..217d348ad0bbef720b25d3b507a55ca8105b7731 100644 --- a/src/main/java/org/bukkit/entity/Firework.java diff --git a/patches/api/0351-Add-getComputedBiome-API.patch b/patches/api/0350-Add-getComputedBiome-API.patch similarity index 100% rename from patches/api/0351-Add-getComputedBiome-API.patch rename to patches/api/0350-Add-getComputedBiome-API.patch diff --git a/patches/api/0352-Add-enchantWithLevels-API.patch b/patches/api/0351-Add-enchantWithLevels-API.patch similarity index 100% rename from patches/api/0352-Add-enchantWithLevels-API.patch rename to patches/api/0351-Add-enchantWithLevels-API.patch diff --git a/patches/api/0353-Add-TameableDeathMessageEvent.patch b/patches/api/0352-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/api/0353-Add-TameableDeathMessageEvent.patch rename to patches/api/0352-Add-TameableDeathMessageEvent.patch diff --git a/patches/api/0354-Allow-to-change-the-podium-of-the-EnderDragon.patch b/patches/api/0353-Allow-to-change-the-podium-of-the-EnderDragon.patch similarity index 100% rename from patches/api/0354-Allow-to-change-the-podium-of-the-EnderDragon.patch rename to patches/api/0353-Allow-to-change-the-podium-of-the-EnderDragon.patch diff --git a/patches/api/0355-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch b/patches/api/0354-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch similarity index 100% rename from patches/api/0355-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch rename to patches/api/0354-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch diff --git a/patches/api/0356-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/api/0355-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch similarity index 100% rename from patches/api/0356-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch rename to patches/api/0355-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch diff --git a/patches/api/0357-WorldCreator-keepSpawnLoaded.patch b/patches/api/0356-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/api/0357-WorldCreator-keepSpawnLoaded.patch rename to patches/api/0356-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/api/0358-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/0357-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/api/0358-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/api/0357-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/api/0359-Add-PlayerStopUsingItemEvent.patch b/patches/api/0358-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/api/0359-Add-PlayerStopUsingItemEvent.patch rename to patches/api/0358-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/api/0360-Expand-FallingBlock-API.patch b/patches/api/0359-Expand-FallingBlock-API.patch similarity index 100% rename from patches/api/0360-Expand-FallingBlock-API.patch rename to patches/api/0359-Expand-FallingBlock-API.patch diff --git a/patches/api/0361-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0360-Add-method-isTickingWorlds-to-Bukkit.patch similarity index 100% rename from patches/api/0361-Add-method-isTickingWorlds-to-Bukkit.patch rename to patches/api/0360-Add-method-isTickingWorlds-to-Bukkit.patch diff --git a/patches/api/0362-Add-WardenAngerChangeEvent.patch b/patches/api/0361-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/api/0362-Add-WardenAngerChangeEvent.patch rename to patches/api/0361-Add-WardenAngerChangeEvent.patch diff --git a/patches/api/0363-Nameable-Banner-API.patch b/patches/api/0362-Nameable-Banner-API.patch similarity index 100% rename from patches/api/0363-Nameable-Banner-API.patch rename to patches/api/0362-Nameable-Banner-API.patch diff --git a/patches/api/0364-Add-Player-getFishHook.patch b/patches/api/0363-Add-Player-getFishHook.patch similarity index 100% rename from patches/api/0364-Add-Player-getFishHook.patch rename to patches/api/0363-Add-Player-getFishHook.patch diff --git a/patches/api/0365-More-Teleport-API.patch b/patches/api/0364-More-Teleport-API.patch similarity index 99% rename from patches/api/0365-More-Teleport-API.patch rename to patches/api/0364-More-Teleport-API.patch index e3595a1947..f158c47e4e 100644 --- a/patches/api/0365-More-Teleport-API.patch +++ b/patches/api/0364-More-Teleport-API.patch @@ -120,7 +120,7 @@ index 0000000000000000000000000000000000000000..c8b5b570d44da9524bfc59c7e11b2ae5 + +} diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index e1fe5d93eb7a1f96954d907dbbe0758f25bd1ce7..948d6a08ff459afd5d4d5b151c41d94d1d5847b6 100644 +index 9b5fe55399594c57c1b1521bea03781fd99fdf60..e2f315db8d137d7bc1b6fc83ed29032152f881f2 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -126,10 +126,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/api/0366-Add-EntityPortalReadyEvent.patch b/patches/api/0365-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/api/0366-Add-EntityPortalReadyEvent.patch rename to patches/api/0365-Add-EntityPortalReadyEvent.patch diff --git a/patches/api/0367-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0366-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/api/0367-Custom-Chat-Completion-Suggestions-API.patch rename to patches/api/0366-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/api/0368-Collision-API.patch b/patches/api/0367-Collision-API.patch similarity index 92% rename from patches/api/0368-Collision-API.patch rename to patches/api/0367-Collision-API.patch index 61881abf50..b7bf3a1ae3 100644 --- a/patches/api/0368-Collision-API.patch +++ b/patches/api/0367-Collision-API.patch @@ -25,10 +25,10 @@ index 44ee56a5956cc17194c767a0c1071a2abffe818a..43dd6c59cceba12f27e6b265acc3ad97 // Paper end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 82c9e07a059bc481d877c7fbb2fbf866bf607017..7ab1ffa2fa7a99ddf32f60ce4b48680eae698da9 100644 +index e2f315db8d137d7bc1b6fc83ed29032152f881f2..4951afd12de6145f671bae40a4df6e2222bc3fd8 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -988,4 +988,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1002,4 +1002,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean isInPowderedSnow(); // Paper end diff --git a/patches/api/0369-Block-Ticking-API.patch b/patches/api/0368-Block-Ticking-API.patch similarity index 100% rename from patches/api/0369-Block-Ticking-API.patch rename to patches/api/0368-Block-Ticking-API.patch diff --git a/patches/api/0370-Add-NamespacedKey-biome-methods.patch b/patches/api/0369-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/api/0370-Add-NamespacedKey-biome-methods.patch rename to patches/api/0369-Add-NamespacedKey-biome-methods.patch diff --git a/patches/api/0371-Also-load-resources-from-LibraryLoader.patch b/patches/api/0370-Also-load-resources-from-LibraryLoader.patch similarity index 100% rename from patches/api/0371-Also-load-resources-from-LibraryLoader.patch rename to patches/api/0370-Also-load-resources-from-LibraryLoader.patch diff --git a/patches/api/0372-Added-byte-array-serialization-deserialization-for-P.patch b/patches/api/0371-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/api/0372-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/api/0371-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/api/0373-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/api/0372-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/api/0373-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/api/0372-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/api/0374-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch b/patches/api/0373-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch similarity index 100% rename from patches/api/0374-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch rename to patches/api/0373-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch diff --git a/patches/api/0375-Add-getDrops-to-BlockState.patch b/patches/api/0374-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/api/0375-Add-getDrops-to-BlockState.patch rename to patches/api/0374-Add-getDrops-to-BlockState.patch diff --git a/patches/api/0376-Add-PlayerInventorySlotChangeEvent.patch b/patches/api/0375-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/api/0376-Add-PlayerInventorySlotChangeEvent.patch rename to patches/api/0375-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/api/0377-Elder-Guardian-appearance-API.patch b/patches/api/0376-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/api/0377-Elder-Guardian-appearance-API.patch rename to patches/api/0376-Elder-Guardian-appearance-API.patch diff --git a/patches/api/0378-Allow-changing-bed-s-occupied-property.patch b/patches/api/0377-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/api/0378-Allow-changing-bed-s-occupied-property.patch rename to patches/api/0377-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/api/0379-Add-EquipmentSlot-convenience-methods.patch b/patches/api/0378-Add-EquipmentSlot-convenience-methods.patch similarity index 100% rename from patches/api/0379-Add-EquipmentSlot-convenience-methods.patch rename to patches/api/0378-Add-EquipmentSlot-convenience-methods.patch diff --git a/patches/api/0380-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch similarity index 100% rename from patches/api/0380-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch rename to patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch diff --git a/patches/api/0381-Add-entity-knockback-API.patch b/patches/api/0380-Add-entity-knockback-API.patch similarity index 100% rename from patches/api/0381-Add-entity-knockback-API.patch rename to patches/api/0380-Add-entity-knockback-API.patch diff --git a/patches/api/0382-Added-EntityToggleSitEvent.patch b/patches/api/0381-Added-EntityToggleSitEvent.patch similarity index 100% rename from patches/api/0382-Added-EntityToggleSitEvent.patch rename to patches/api/0381-Added-EntityToggleSitEvent.patch diff --git a/patches/api/0383-Add-Moving-Piston-API.patch b/patches/api/0382-Add-Moving-Piston-API.patch similarity index 100% rename from patches/api/0383-Add-Moving-Piston-API.patch rename to patches/api/0382-Add-Moving-Piston-API.patch diff --git a/patches/api/0384-Add-PrePlayerAttackEntityEvent.patch b/patches/api/0383-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/api/0384-Add-PrePlayerAttackEntityEvent.patch rename to patches/api/0383-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/api/0385-Add-Player-Warden-Warning-API.patch b/patches/api/0384-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/api/0385-Add-Player-Warden-Warning-API.patch rename to patches/api/0384-Add-Player-Warden-Warning-API.patch diff --git a/patches/api/0386-More-vanilla-friendly-methods-to-update-trades.patch b/patches/api/0385-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/api/0386-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/api/0385-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/api/0387-Add-paper-dumplisteners-command.patch b/patches/api/0386-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/api/0387-Add-paper-dumplisteners-command.patch rename to patches/api/0386-Add-paper-dumplisteners-command.patch diff --git a/patches/api/0388-ItemStack-damage-API.patch b/patches/api/0387-ItemStack-damage-API.patch similarity index 100% rename from patches/api/0388-ItemStack-damage-API.patch rename to patches/api/0387-ItemStack-damage-API.patch diff --git a/patches/api/0389-Add-Tick-TemporalUnit.patch b/patches/api/0388-Add-Tick-TemporalUnit.patch similarity index 100% rename from patches/api/0389-Add-Tick-TemporalUnit.patch rename to patches/api/0388-Add-Tick-TemporalUnit.patch diff --git a/patches/api/0390-Friction-API.patch b/patches/api/0389-Friction-API.patch similarity index 96% rename from patches/api/0390-Friction-API.patch rename to patches/api/0389-Friction-API.patch index 013ab9a8d3..23fa01d063 100644 --- a/patches/api/0390-Friction-API.patch +++ b/patches/api/0389-Friction-API.patch @@ -59,7 +59,7 @@ index ced419f8655bff72f0257b639d5f7d73afe3c2e2..bcc6ba95bd21c7972865838c636a03f5 /** * Gets the item stack associated with this item drop. diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index cb5ba5d115406d12a2af0811fcfbf510f836b03b..b9f98279789fe26181aa9c7aa253877d916034be 100644 +index 041ff387a0f9e8037e2834118ef241ddb8970907..3a26b3c40f877a454c3c76b68b86776f05950002 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable; diff --git a/patches/api/0391-Player-Entity-Tracking-Events.patch b/patches/api/0390-Player-Entity-Tracking-Events.patch similarity index 100% rename from patches/api/0391-Player-Entity-Tracking-Events.patch rename to patches/api/0390-Player-Entity-Tracking-Events.patch diff --git a/patches/api/0392-Add-missing-Fluid-type.patch b/patches/api/0391-Add-missing-Fluid-type.patch similarity index 100% rename from patches/api/0392-Add-missing-Fluid-type.patch rename to patches/api/0391-Add-missing-Fluid-type.patch diff --git a/patches/api/0393-fix-Instruments.patch b/patches/api/0392-fix-Instruments.patch similarity index 100% rename from patches/api/0393-fix-Instruments.patch rename to patches/api/0392-fix-Instruments.patch diff --git a/patches/api/0394-Add-BlockLockCheckEvent.patch b/patches/api/0393-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/api/0394-Add-BlockLockCheckEvent.patch rename to patches/api/0393-Add-BlockLockCheckEvent.patch diff --git a/patches/api/0395-Add-Sneaking-API-for-Entities.patch b/patches/api/0394-Add-Sneaking-API-for-Entities.patch similarity index 91% rename from patches/api/0395-Add-Sneaking-API-for-Entities.patch rename to patches/api/0394-Add-Sneaking-API-for-Entities.patch index 70178866ab..be37d7f75d 100644 --- a/patches/api/0395-Add-Sneaking-API-for-Entities.patch +++ b/patches/api/0394-Add-Sneaking-API-for-Entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Sneaking API for Entities diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 7ab1ffa2fa7a99ddf32f60ce4b48680eae698da9..e0e93cb945202890387c1dc3c32927525e40296c 100644 +index 4951afd12de6145f671bae40a4df6e2222bc3fd8..909926485a66e09988f7787b1d5ee2cf9c012558 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -799,6 +799,25 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -813,6 +813,25 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @NotNull Pose getPose(); diff --git a/patches/api/0396-Improve-PortalEvents.patch b/patches/api/0395-Improve-PortalEvents.patch similarity index 100% rename from patches/api/0396-Improve-PortalEvents.patch rename to patches/api/0395-Improve-PortalEvents.patch diff --git a/patches/api/0397-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/api/0396-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/api/0397-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/api/0396-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/api/0398-Flying-Fall-Damage-API.patch b/patches/api/0397-Flying-Fall-Damage-API.patch similarity index 100% rename from patches/api/0398-Flying-Fall-Damage-API.patch rename to patches/api/0397-Flying-Fall-Damage-API.patch diff --git a/patches/api/0399-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/0398-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch similarity index 100% rename from patches/api/0399-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch rename to patches/api/0398-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch diff --git a/patches/api/0400-Win-Screen-API.patch b/patches/api/0399-Win-Screen-API.patch similarity index 96% rename from patches/api/0400-Win-Screen-API.patch rename to patches/api/0399-Win-Screen-API.patch index 3863beaa63..3741437041 100644 --- a/patches/api/0400-Win-Screen-API.patch +++ b/patches/api/0399-Win-Screen-API.patch @@ -5,7 +5,7 @@ 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 9d81aec1346d07faa47745a3cb79bac4a8a4ffa3..b49294027712e8d0b8aaaee1c041bc731b4cb184 100644 +index 6fc27c35f8533b37d82f0db5605d4d06e70af18b..0966eb33f0a1cf74a2f2fc3cbb74c756848e2eeb 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1205,6 +1205,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0401-Add-Entity-Body-Yaw-API.patch b/patches/api/0400-Add-Entity-Body-Yaw-API.patch similarity index 93% rename from patches/api/0401-Add-Entity-Body-Yaw-API.patch rename to patches/api/0400-Add-Entity-Body-Yaw-API.patch index 8d0776b93e..55b49feb0c 100644 --- a/patches/api/0401-Add-Entity-Body-Yaw-API.patch +++ b/patches/api/0400-Add-Entity-Body-Yaw-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index e0e93cb945202890387c1dc3c32927525e40296c..18a2f82ecf9ca3ecb80053666d0de192e5185531 100644 +index 909926485a66e09988f7787b1d5ee2cf9c012558..17d5a5458ee51d8db243326745875ef31ba95fb3 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1006,6 +1006,43 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1020,6 +1020,43 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return true if in powdered snow. */ boolean isInPowderedSnow(); diff --git a/patches/api/0402-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0401-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch similarity index 100% rename from patches/api/0402-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch rename to patches/api/0401-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch diff --git a/patches/api/0403-Add-EntityFertilizeEggEvent.patch b/patches/api/0402-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/api/0403-Add-EntityFertilizeEggEvent.patch rename to patches/api/0402-Add-EntityFertilizeEggEvent.patch diff --git a/patches/api/0404-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/api/0403-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/api/0404-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/api/0403-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/api/0405-Add-Shearable-API.patch b/patches/api/0404-Add-Shearable-API.patch similarity index 97% rename from patches/api/0405-Add-Shearable-API.patch rename to patches/api/0404-Add-Shearable-API.patch index 4e49b17572..19ef9a4a36 100644 --- a/patches/api/0405-Add-Shearable-API.patch +++ b/patches/api/0404-Add-Shearable-API.patch @@ -54,7 +54,7 @@ index 0000000000000000000000000000000000000000..0d5793790ab6a47525ad330335173612 + boolean readyToBeSheared(); +} diff --git a/src/main/java/org/bukkit/entity/MushroomCow.java b/src/main/java/org/bukkit/entity/MushroomCow.java -index 794b7b4a870a0d289476074e3a3f46552604c954..2f9aefd38c43755c79b30abddd6643b26880bd0d 100644 +index cef1700834643fe28ed5737578d91ecefbe99e2f..86c0043ef4e1288b6fe2f68a9b6d01c3de2c3454 100644 --- a/src/main/java/org/bukkit/entity/MushroomCow.java +++ b/src/main/java/org/bukkit/entity/MushroomCow.java @@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; diff --git a/patches/api/0406-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/api/0405-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/api/0406-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/api/0405-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/api/0407-Add-Mob-Experience-reward-API.patch b/patches/api/0406-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/api/0407-Add-Mob-Experience-reward-API.patch rename to patches/api/0406-Add-Mob-Experience-reward-API.patch diff --git a/patches/api/0408-Expand-PlayerItemMendEvent.patch b/patches/api/0407-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/api/0408-Expand-PlayerItemMendEvent.patch rename to patches/api/0407-Expand-PlayerItemMendEvent.patch diff --git a/patches/api/0409-Add-transient-modifier-API.patch b/patches/api/0408-Add-transient-modifier-API.patch similarity index 100% rename from patches/api/0409-Add-transient-modifier-API.patch rename to patches/api/0408-Add-transient-modifier-API.patch diff --git a/patches/api/0410-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/api/0409-Properly-remove-the-experimental-smithing-inventory-.patch similarity index 100% rename from patches/api/0410-Properly-remove-the-experimental-smithing-inventory-.patch rename to patches/api/0409-Properly-remove-the-experimental-smithing-inventory-.patch diff --git a/patches/api/0411-Add-method-to-remove-all-active-potion-effects.patch b/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch similarity index 91% rename from patches/api/0411-Add-method-to-remove-all-active-potion-effects.patch rename to patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch index f9f5110086..33a8a647a9 100644 --- a/patches/api/0411-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 2dbb61df25967739c5a8308d6d89be20136816ba..12926d36a409448ce5aaae955968dbc89825a2c5 100644 +index b7b87b2962eabcf2e8864335e4da22c0b9da8e5c..65dab533a33433bdd79601df4f109d9de6998fb8 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -625,6 +625,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0412-Folia-scheduler-and-owned-region-API.patch b/patches/api/0411-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/api/0412-Folia-scheduler-and-owned-region-API.patch rename to patches/api/0411-Folia-scheduler-and-owned-region-API.patch index 71062196c9..b94a139667 100644 --- a/patches/api/0412-Folia-scheduler-and-owned-region-API.patch +++ b/patches/api/0411-Folia-scheduler-and-owned-region-API.patch @@ -769,10 +769,10 @@ index d433a9d2fe0bb487865fec33307cc4c45af475a0..f819de247080d58803a2851a4cab28d2 + // Paper end - Folia region threading API } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 18a2f82ecf9ca3ecb80053666d0de192e5185531..a5602bf27965a8aac97aa5279a23e785729a4921 100644 +index 17d5a5458ee51d8db243326745875ef31ba95fb3..05076e0648407d026b3adba43756e57f7e925abe 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1066,4 +1066,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1080,4 +1080,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean wouldCollideUsing(@NotNull BoundingBox boundingBox); // Paper end - Collision API diff --git a/patches/api/0413-Add-event-for-player-editing-sign.patch b/patches/api/0412-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/api/0413-Add-event-for-player-editing-sign.patch rename to patches/api/0412-Add-event-for-player-editing-sign.patch diff --git a/patches/api/0414-Add-Sign-getInteractableSideFor.patch b/patches/api/0413-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/api/0414-Add-Sign-getInteractableSideFor.patch rename to patches/api/0413-Add-Sign-getInteractableSideFor.patch diff --git a/patches/api/0415-Fix-BanList-API.patch b/patches/api/0414-Fix-BanList-API.patch similarity index 100% rename from patches/api/0415-Fix-BanList-API.patch rename to patches/api/0414-Fix-BanList-API.patch diff --git a/patches/api/0416-Add-whitelist-events.patch b/patches/api/0415-Add-whitelist-events.patch similarity index 100% rename from patches/api/0416-Add-whitelist-events.patch rename to patches/api/0415-Add-whitelist-events.patch diff --git a/patches/api/0417-API-for-updating-recipes-on-clients.patch b/patches/api/0416-API-for-updating-recipes-on-clients.patch similarity index 100% rename from patches/api/0417-API-for-updating-recipes-on-clients.patch rename to patches/api/0416-API-for-updating-recipes-on-clients.patch diff --git a/patches/api/0418-Add-PlayerFailMoveEvent.patch b/patches/api/0417-Add-PlayerFailMoveEvent.patch similarity index 100% rename from patches/api/0418-Add-PlayerFailMoveEvent.patch rename to patches/api/0417-Add-PlayerFailMoveEvent.patch diff --git a/patches/api/0419-Fix-custom-statistic-criteria-creation.patch b/patches/api/0418-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/api/0419-Fix-custom-statistic-criteria-creation.patch rename to patches/api/0418-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/api/0420-SculkCatalyst-bloom-API.patch b/patches/api/0419-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/api/0420-SculkCatalyst-bloom-API.patch rename to patches/api/0419-SculkCatalyst-bloom-API.patch diff --git a/patches/api/0421-API-for-an-entity-s-scoreboard-name.patch b/patches/api/0420-API-for-an-entity-s-scoreboard-name.patch similarity index 88% rename from patches/api/0421-API-for-an-entity-s-scoreboard-name.patch rename to patches/api/0420-API-for-an-entity-s-scoreboard-name.patch index 85895ba202..67e76951f0 100644 --- a/patches/api/0421-API-for-an-entity-s-scoreboard-name.patch +++ b/patches/api/0420-API-for-an-entity-s-scoreboard-name.patch @@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different methods depending on the implementation of Entity you were working with. diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index a5602bf27965a8aac97aa5279a23e785729a4921..cbea8b9088fff5f08a47f6b26d7554d00710eb9f 100644 +index 05076e0648407d026b3adba43756e57f7e925abe..a7045fdf70e7dac94034ed6727a4eb29f31a9cdf 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1077,4 +1077,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1091,4 +1091,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @NotNull io.papermc.paper.threadedregions.scheduler.EntityScheduler getScheduler(); // Paper end - Folia schedulers diff --git a/patches/api/0422-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/api/0421-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/api/0422-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/api/0421-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/api/0423-Add-Listing-API-for-Player.patch b/patches/api/0422-Add-Listing-API-for-Player.patch similarity index 100% rename from patches/api/0423-Add-Listing-API-for-Player.patch rename to patches/api/0422-Add-Listing-API-for-Player.patch diff --git a/patches/api/0424-Expose-clicked-BlockFace-during-BlockDamageEvent.patch b/patches/api/0423-Expose-clicked-BlockFace-during-BlockDamageEvent.patch similarity index 100% rename from patches/api/0424-Expose-clicked-BlockFace-during-BlockDamageEvent.patch rename to patches/api/0423-Expose-clicked-BlockFace-during-BlockDamageEvent.patch diff --git a/patches/api/0425-Fix-NPE-on-Boat-getStatus.patch b/patches/api/0424-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/api/0425-Fix-NPE-on-Boat-getStatus.patch rename to patches/api/0424-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/api/0426-Expand-Pose-API.patch b/patches/api/0425-Expand-Pose-API.patch similarity index 92% rename from patches/api/0426-Expand-Pose-API.patch rename to patches/api/0425-Expand-Pose-API.patch index b016f55d9b..0c88faca26 100644 --- a/patches/api/0426-Expand-Pose-API.patch +++ b/patches/api/0425-Expand-Pose-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index cbea8b9088fff5f08a47f6b26d7554d00710eb9f..252ae4b7a002b34533988e0a574a24af8573a125 100644 +index a7045fdf70e7dac94034ed6727a4eb29f31a9cdf..66f9e50d96710a41ac009271a499318fcf119c54 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -816,6 +816,42 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -830,6 +830,42 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @param sneak true if the entity should be sneaking */ void setSneaking(boolean sneak); diff --git a/patches/api/0427-MerchantRecipe-add-copy-constructor.patch b/patches/api/0426-MerchantRecipe-add-copy-constructor.patch similarity index 100% rename from patches/api/0427-MerchantRecipe-add-copy-constructor.patch rename to patches/api/0426-MerchantRecipe-add-copy-constructor.patch diff --git a/patches/api/0428-More-DragonBattle-API.patch b/patches/api/0427-More-DragonBattle-API.patch similarity index 100% rename from patches/api/0428-More-DragonBattle-API.patch rename to patches/api/0427-More-DragonBattle-API.patch diff --git a/patches/api/0429-Add-PlayerPickItemEvent.patch b/patches/api/0428-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/api/0429-Add-PlayerPickItemEvent.patch rename to patches/api/0428-Add-PlayerPickItemEvent.patch diff --git a/patches/api/0430-Allow-trident-custom-damage.patch b/patches/api/0429-Allow-trident-custom-damage.patch similarity index 100% rename from patches/api/0430-Allow-trident-custom-damage.patch rename to patches/api/0429-Allow-trident-custom-damage.patch diff --git a/patches/api/0431-Expose-hand-during-BlockCanBuildEvent.patch b/patches/api/0430-Expose-hand-during-BlockCanBuildEvent.patch similarity index 100% rename from patches/api/0431-Expose-hand-during-BlockCanBuildEvent.patch rename to patches/api/0430-Expose-hand-during-BlockCanBuildEvent.patch diff --git a/patches/api/0432-Limit-setBurnTime-to-valid-short-values.patch b/patches/api/0431-Limit-setBurnTime-to-valid-short-values.patch similarity index 100% rename from patches/api/0432-Limit-setBurnTime-to-valid-short-values.patch rename to patches/api/0431-Limit-setBurnTime-to-valid-short-values.patch diff --git a/patches/api/0433-Add-OfflinePlayer-isConnected.patch b/patches/api/0432-Add-OfflinePlayer-isConnected.patch similarity index 95% rename from patches/api/0433-Add-OfflinePlayer-isConnected.patch rename to patches/api/0432-Add-OfflinePlayer-isConnected.patch index f1e75ce3e4..fad59b6a54 100644 --- a/patches/api/0433-Add-OfflinePlayer-isConnected.patch +++ b/patches/api/0432-Add-OfflinePlayer-isConnected.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add OfflinePlayer#isConnected This adds an alternative to OfflinePlayer#isOnline that returns true only if the same instance of the player is still online. This is generally more useful than isOnline as it allows you to determine if you have an instance of a Player that still exists. If a player relogs an old Player instance becomes unlinked leading to e.g. messages sent to the old player no longer arriving despite isOnline returning true. Checking against isConnected is more useful there to discard invalid instances. diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java -index ef6cb124adc98cb5231dc44e243450a2340f74af..abb5109ed08a3a651c2c27d4d17a3d49eb06da1e 100644 +index 6a84c3d0d15251694bb7a05393b9ff7a4d8e0617..30298a629b39bd43ce14b414fc697b2dfcbea89c 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java @@ -24,10 +24,26 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio diff --git a/patches/api/0434-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/api/0433-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 100% rename from patches/api/0434-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/api/0433-Add-titleOverride-to-InventoryOpenEvent.patch diff --git a/patches/api/0435-Allow-proper-checking-of-empty-item-stacks.patch b/patches/api/0434-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/api/0435-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/api/0434-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/api/0436-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch b/patches/api/0435-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch similarity index 100% rename from patches/api/0436-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch rename to patches/api/0435-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch diff --git a/patches/api/0437-Add-player-idle-duration-API.patch b/patches/api/0436-Add-player-idle-duration-API.patch similarity index 100% rename from patches/api/0437-Add-player-idle-duration-API.patch rename to patches/api/0436-Add-player-idle-duration-API.patch diff --git a/patches/api/0438-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/api/0437-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/api/0438-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/api/0437-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/api/0439-Add-predicate-for-blocks-when-raytracing.patch b/patches/api/0438-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/api/0439-Add-predicate-for-blocks-when-raytracing.patch rename to patches/api/0438-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/api/0440-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/api/0439-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/api/0440-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/api/0439-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/api/0441-Add-UUID-attribute-modifier-API.patch b/patches/api/0440-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/api/0441-Add-UUID-attribute-modifier-API.patch rename to patches/api/0440-Add-UUID-attribute-modifier-API.patch diff --git a/patches/api/0442-Expand-LingeringPotion-API.patch b/patches/api/0441-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/api/0442-Expand-LingeringPotion-API.patch rename to patches/api/0441-Expand-LingeringPotion-API.patch diff --git a/patches/api/0443-Remove-unnecessary-durability-check-in-ItemStack-isS.patch b/patches/api/0442-Remove-unnecessary-durability-check-in-ItemStack-isS.patch similarity index 100% rename from patches/api/0443-Remove-unnecessary-durability-check-in-ItemStack-isS.patch rename to patches/api/0442-Remove-unnecessary-durability-check-in-ItemStack-isS.patch diff --git a/patches/api/0444-Add-Structure-check-API.patch b/patches/api/0443-Add-Structure-check-API.patch similarity index 100% rename from patches/api/0444-Add-Structure-check-API.patch rename to patches/api/0443-Add-Structure-check-API.patch diff --git a/patches/api/0445-add-missing-Experimental-annotations.patch b/patches/api/0444-add-missing-Experimental-annotations.patch similarity index 100% rename from patches/api/0445-add-missing-Experimental-annotations.patch rename to patches/api/0444-add-missing-Experimental-annotations.patch diff --git a/patches/api/0446-Add-more-scoreboard-API.patch b/patches/api/0445-Add-more-scoreboard-API.patch similarity index 100% rename from patches/api/0446-Add-more-scoreboard-API.patch rename to patches/api/0445-Add-more-scoreboard-API.patch diff --git a/patches/api/0447-Improve-Registry.patch b/patches/api/0446-Improve-Registry.patch similarity index 100% rename from patches/api/0447-Improve-Registry.patch rename to patches/api/0446-Improve-Registry.patch diff --git a/patches/api/0448-Add-experience-points-API.patch b/patches/api/0447-Add-experience-points-API.patch similarity index 100% rename from patches/api/0448-Add-experience-points-API.patch rename to patches/api/0447-Add-experience-points-API.patch diff --git a/patches/api/0449-Add-missing-InventoryType.patch b/patches/api/0448-Add-missing-InventoryType.patch similarity index 100% rename from patches/api/0449-Add-missing-InventoryType.patch rename to patches/api/0448-Add-missing-InventoryType.patch diff --git a/patches/api/0450-Add-drops-to-shear-events.patch b/patches/api/0449-Add-drops-to-shear-events.patch similarity index 100% rename from patches/api/0450-Add-drops-to-shear-events.patch rename to patches/api/0449-Add-drops-to-shear-events.patch diff --git a/patches/api/0451-Add-HiddenPotionEffect-API.patch b/patches/api/0450-Add-HiddenPotionEffect-API.patch similarity index 98% rename from patches/api/0451-Add-HiddenPotionEffect-API.patch rename to patches/api/0450-Add-HiddenPotionEffect-API.patch index 39585cefba..2c44d32af5 100644 --- a/patches/api/0451-Add-HiddenPotionEffect-API.patch +++ b/patches/api/0450-Add-HiddenPotionEffect-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add HiddenPotionEffect API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 12926d36a409448ce5aaae955968dbc89825a2c5..e67455efc84f1e06d3396291d104ce65fee4591b 100644 +index 65dab533a33433bdd79601df4f109d9de6998fb8..5cb82901a5d0c8ee673501fc53389d526d4a5b6f 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -559,6 +559,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0452-Add-PlayerShieldDisableEvent.patch b/patches/api/0451-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/api/0452-Add-PlayerShieldDisableEvent.patch rename to patches/api/0451-Add-PlayerShieldDisableEvent.patch diff --git a/patches/api/0453-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch b/patches/api/0452-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch similarity index 100% rename from patches/api/0453-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch rename to patches/api/0452-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch diff --git a/patches/api/0454-Add-BlockStateMeta-clearBlockState.patch b/patches/api/0453-Add-BlockStateMeta-clearBlockState.patch similarity index 100% rename from patches/api/0454-Add-BlockStateMeta-clearBlockState.patch rename to patches/api/0453-Add-BlockStateMeta-clearBlockState.patch diff --git a/patches/api/0455-Expose-LootTable-of-DecoratedPot.patch b/patches/api/0454-Expose-LootTable-of-DecoratedPot.patch similarity index 100% rename from patches/api/0455-Expose-LootTable-of-DecoratedPot.patch rename to patches/api/0454-Expose-LootTable-of-DecoratedPot.patch diff --git a/patches/api/0456-Add-ShulkerDuplicateEvent.patch b/patches/api/0455-Add-ShulkerDuplicateEvent.patch similarity index 100% rename from patches/api/0456-Add-ShulkerDuplicateEvent.patch rename to patches/api/0455-Add-ShulkerDuplicateEvent.patch diff --git a/patches/api/0457-Add-api-for-spawn-egg-texture-colors.patch b/patches/api/0456-Add-api-for-spawn-egg-texture-colors.patch similarity index 100% rename from patches/api/0457-Add-api-for-spawn-egg-texture-colors.patch rename to patches/api/0456-Add-api-for-spawn-egg-texture-colors.patch diff --git a/patches/api/0458-Add-Lifecycle-Event-system.patch b/patches/api/0457-Add-Lifecycle-Event-system.patch similarity index 100% rename from patches/api/0458-Add-Lifecycle-Event-system.patch rename to patches/api/0457-Add-Lifecycle-Event-system.patch diff --git a/patches/api/0459-Conduit-API.patch b/patches/api/0458-Conduit-API.patch similarity index 100% rename from patches/api/0459-Conduit-API.patch rename to patches/api/0458-Conduit-API.patch diff --git a/patches/api/0460-ItemStack-Tooltip-API.patch b/patches/api/0459-ItemStack-Tooltip-API.patch similarity index 100% rename from patches/api/0460-ItemStack-Tooltip-API.patch rename to patches/api/0459-ItemStack-Tooltip-API.patch diff --git a/patches/api/0461-Add-getChunkSnapshot-includeLightData-parameter.patch b/patches/api/0460-Add-getChunkSnapshot-includeLightData-parameter.patch similarity index 100% rename from patches/api/0461-Add-getChunkSnapshot-includeLightData-parameter.patch rename to patches/api/0460-Add-getChunkSnapshot-includeLightData-parameter.patch diff --git a/patches/api/0462-Add-FluidState-API.patch b/patches/api/0461-Add-FluidState-API.patch similarity index 100% rename from patches/api/0462-Add-FluidState-API.patch rename to patches/api/0461-Add-FluidState-API.patch diff --git a/patches/api/0463-add-number-format-api.patch b/patches/api/0462-add-number-format-api.patch similarity index 100% rename from patches/api/0463-add-number-format-api.patch rename to patches/api/0462-add-number-format-api.patch diff --git a/patches/api/0464-improve-BanList-types.patch b/patches/api/0463-improve-BanList-types.patch similarity index 100% rename from patches/api/0464-improve-BanList-types.patch rename to patches/api/0463-improve-BanList-types.patch diff --git a/patches/api/0465-Suspicious-Effect-Entry-API.patch b/patches/api/0464-Suspicious-Effect-Entry-API.patch similarity index 100% rename from patches/api/0465-Suspicious-Effect-Entry-API.patch rename to patches/api/0464-Suspicious-Effect-Entry-API.patch diff --git a/patches/api/0466-Fix-DamageSource-API.patch b/patches/api/0465-Fix-DamageSource-API.patch similarity index 100% rename from patches/api/0466-Fix-DamageSource-API.patch rename to patches/api/0465-Fix-DamageSource-API.patch diff --git a/patches/api/0467-Expanded-Hopper-API.patch b/patches/api/0466-Expanded-Hopper-API.patch similarity index 100% rename from patches/api/0467-Expanded-Hopper-API.patch rename to patches/api/0466-Expanded-Hopper-API.patch diff --git a/patches/api/0468-Clone-mutables-to-prevent-unexpected-issues.patch b/patches/api/0467-Clone-mutables-to-prevent-unexpected-issues.patch similarity index 100% rename from patches/api/0468-Clone-mutables-to-prevent-unexpected-issues.patch rename to patches/api/0467-Clone-mutables-to-prevent-unexpected-issues.patch diff --git a/patches/server/0386-Add-PlayerRecipeBookClickEvent.patch b/patches/server/0385-Add-PlayerRecipeBookClickEvent.patch similarity index 100% rename from patches/server/0386-Add-PlayerRecipeBookClickEvent.patch rename to patches/server/0385-Add-PlayerRecipeBookClickEvent.patch diff --git a/patches/server/0385-Improve-Arrow-API.patch b/patches/server/0385-Improve-Arrow-API.patch deleted file mode 100644 index cbf5d4d815..0000000000 --- a/patches/server/0385-Improve-Arrow-API.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nesaak <52047222+Nesaak@users.noreply.github.com> -Date: Sat, 23 May 2020 10:31:11 -0400 -Subject: [PATCH] Improve Arrow API - -Add method to get the arrow's itemstack and a method -to set the arrow's "noclip" status - -Co-authored-by: Jake Potrebic - -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java -index 35d8fbd9c5751568a1a3b8928017e23cd41bb163..762c395e45a681a11f3fe9d10e7f0ba310786e80 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java -@@ -99,6 +99,23 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { - this.getHandle().pickup = net.minecraft.world.entity.projectile.AbstractArrow.Pickup.byOrdinal(status.ordinal()); - } - -+ // Paper start -+ @Override -+ public org.bukkit.craftbukkit.inventory.CraftItemStack getItemStack() { -+ return org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(getHandle().getPickupItem()); -+ } -+ -+ @Override -+ public void setNoPhysics(boolean noPhysics) { -+ this.getHandle().setNoPhysics(noPhysics); -+ } -+ -+ @Override -+ public boolean hasNoPhysics() { -+ return this.getHandle().isNoPhysics(); -+ } -+ // Paper end -+ - @Override - public void setTicksLived(int value) { - super.setTicksLived(value); diff --git a/patches/server/0387-Hide-sync-chunk-writes-behind-flag.patch b/patches/server/0386-Hide-sync-chunk-writes-behind-flag.patch similarity index 100% rename from patches/server/0387-Hide-sync-chunk-writes-behind-flag.patch rename to patches/server/0386-Hide-sync-chunk-writes-behind-flag.patch diff --git a/patches/server/0388-Add-permission-for-command-blocks.patch b/patches/server/0387-Add-permission-for-command-blocks.patch similarity index 100% rename from patches/server/0388-Add-permission-for-command-blocks.patch rename to patches/server/0387-Add-permission-for-command-blocks.patch diff --git a/patches/server/0389-Ensure-Entity-position-and-AABB-are-never-invalid.patch b/patches/server/0388-Ensure-Entity-position-and-AABB-are-never-invalid.patch similarity index 97% rename from patches/server/0389-Ensure-Entity-position-and-AABB-are-never-invalid.patch rename to patches/server/0388-Ensure-Entity-position-and-AABB-are-never-invalid.patch index fb16bb47ac..ca8fc43bc6 100644 --- a/patches/server/0389-Ensure-Entity-position-and-AABB-are-never-invalid.patch +++ b/patches/server/0388-Ensure-Entity-position-and-AABB-are-never-invalid.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Ensure Entity position and AABB are never invalid Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9c9689f4deffed50df9aaca6e451228d17154b8c..11a9142962637af5e26939a5eb8f35ba5f205793 100644 +index 23ee63119d55b40829c03a855ae0f8b214674e10..0c6680bf15b57cf314638ab70d849e033719c0e1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -652,8 +652,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0390-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0389-Fix-Per-World-Difficulty-Remembering-Difficulty.patch similarity index 100% rename from patches/server/0390-Fix-Per-World-Difficulty-Remembering-Difficulty.patch rename to patches/server/0389-Fix-Per-World-Difficulty-Remembering-Difficulty.patch diff --git a/patches/server/0391-Paper-dumpitem-command.patch b/patches/server/0390-Paper-dumpitem-command.patch similarity index 100% rename from patches/server/0391-Paper-dumpitem-command.patch rename to patches/server/0390-Paper-dumpitem-command.patch diff --git a/patches/server/0392-Improve-Legacy-Component-serialization-size.patch b/patches/server/0391-Improve-Legacy-Component-serialization-size.patch similarity index 100% rename from patches/server/0392-Improve-Legacy-Component-serialization-size.patch rename to patches/server/0391-Improve-Legacy-Component-serialization-size.patch diff --git a/patches/server/0393-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0392-Add-Plugin-Tickets-to-API-Chunk-Methods.patch similarity index 100% rename from patches/server/0393-Add-Plugin-Tickets-to-API-Chunk-Methods.patch rename to patches/server/0392-Add-Plugin-Tickets-to-API-Chunk-Methods.patch diff --git a/patches/server/0394-Add-BlockStateMeta-clearBlockState.patch b/patches/server/0393-Add-BlockStateMeta-clearBlockState.patch similarity index 100% rename from patches/server/0394-Add-BlockStateMeta-clearBlockState.patch rename to patches/server/0393-Add-BlockStateMeta-clearBlockState.patch diff --git a/patches/server/0395-Support-old-UUID-format-for-NBT.patch b/patches/server/0394-Support-old-UUID-format-for-NBT.patch similarity index 100% rename from patches/server/0395-Support-old-UUID-format-for-NBT.patch rename to patches/server/0394-Support-old-UUID-format-for-NBT.patch diff --git a/patches/server/0396-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0395-Convert-legacy-attributes-in-Item-Meta.patch similarity index 100% rename from patches/server/0396-Convert-legacy-attributes-in-Item-Meta.patch rename to patches/server/0395-Convert-legacy-attributes-in-Item-Meta.patch diff --git a/patches/server/0397-Do-not-accept-invalid-client-settings.patch b/patches/server/0396-Do-not-accept-invalid-client-settings.patch similarity index 100% rename from patches/server/0397-Do-not-accept-invalid-client-settings.patch rename to patches/server/0396-Do-not-accept-invalid-client-settings.patch diff --git a/patches/server/0398-Improve-fix-EntityTargetLivingEntityEvent.patch b/patches/server/0397-Improve-fix-EntityTargetLivingEntityEvent.patch similarity index 100% rename from patches/server/0398-Improve-fix-EntityTargetLivingEntityEvent.patch rename to patches/server/0397-Improve-fix-EntityTargetLivingEntityEvent.patch diff --git a/patches/server/0399-Add-entity-liquid-API.patch b/patches/server/0398-Add-entity-liquid-API.patch similarity index 100% rename from patches/server/0399-Add-entity-liquid-API.patch rename to patches/server/0398-Add-entity-liquid-API.patch diff --git a/patches/server/0400-Update-itemstack-legacy-name-and-lore.patch b/patches/server/0399-Update-itemstack-legacy-name-and-lore.patch similarity index 100% rename from patches/server/0400-Update-itemstack-legacy-name-and-lore.patch rename to patches/server/0399-Update-itemstack-legacy-name-and-lore.patch diff --git a/patches/server/0401-Add-PrepareResultEvent.patch b/patches/server/0400-Add-PrepareResultEvent.patch similarity index 100% rename from patches/server/0401-Add-PrepareResultEvent.patch rename to patches/server/0400-Add-PrepareResultEvent.patch diff --git a/patches/server/0402-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch similarity index 100% rename from patches/server/0402-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch rename to patches/server/0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch diff --git a/patches/server/0403-Fix-arrows-never-despawning-MC-125757.patch b/patches/server/0402-Fix-arrows-never-despawning-MC-125757.patch similarity index 100% rename from patches/server/0403-Fix-arrows-never-despawning-MC-125757.patch rename to patches/server/0402-Fix-arrows-never-despawning-MC-125757.patch diff --git a/patches/server/0404-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0403-Thread-Safe-Vanilla-Command-permission-checking.patch similarity index 100% rename from patches/server/0404-Thread-Safe-Vanilla-Command-permission-checking.patch rename to patches/server/0403-Thread-Safe-Vanilla-Command-permission-checking.patch diff --git a/patches/server/0405-Fix-SPIGOT-5989.patch b/patches/server/0404-Fix-SPIGOT-5989.patch similarity index 100% rename from patches/server/0405-Fix-SPIGOT-5989.patch rename to patches/server/0404-Fix-SPIGOT-5989.patch diff --git a/patches/server/0406-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/patches/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch similarity index 100% rename from patches/server/0406-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch rename to patches/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch diff --git a/patches/server/0407-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch b/patches/server/0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch similarity index 100% rename from patches/server/0407-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch rename to patches/server/0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch diff --git a/patches/server/0408-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/patches/server/0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch similarity index 100% rename from patches/server/0408-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch rename to patches/server/0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch diff --git a/patches/server/0409-Optimize-NetworkManager-Exception-Handling.patch b/patches/server/0408-Optimize-NetworkManager-Exception-Handling.patch similarity index 100% rename from patches/server/0409-Optimize-NetworkManager-Exception-Handling.patch rename to patches/server/0408-Optimize-NetworkManager-Exception-Handling.patch diff --git a/patches/server/0410-Fix-some-rails-connecting-improperly.patch b/patches/server/0409-Fix-some-rails-connecting-improperly.patch similarity index 100% rename from patches/server/0410-Fix-some-rails-connecting-improperly.patch rename to patches/server/0409-Fix-some-rails-connecting-improperly.patch diff --git a/patches/server/0411-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch b/patches/server/0410-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch similarity index 100% rename from patches/server/0411-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch rename to patches/server/0410-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch diff --git a/patches/server/0412-Brand-support.patch b/patches/server/0411-Brand-support.patch similarity index 100% rename from patches/server/0412-Brand-support.patch rename to patches/server/0411-Brand-support.patch diff --git a/patches/server/0413-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 100% rename from patches/server/0413-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch diff --git a/patches/server/0414-Don-t-require-FACING-data.patch b/patches/server/0413-Don-t-require-FACING-data.patch similarity index 100% rename from patches/server/0414-Don-t-require-FACING-data.patch rename to patches/server/0413-Don-t-require-FACING-data.patch diff --git a/patches/server/0415-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 100% rename from patches/server/0415-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/server/0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch diff --git a/patches/server/0416-Add-moon-phase-API.patch b/patches/server/0415-Add-moon-phase-API.patch similarity index 100% rename from patches/server/0416-Add-moon-phase-API.patch rename to patches/server/0415-Add-moon-phase-API.patch diff --git a/patches/server/0417-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0416-Do-not-let-the-server-load-chunks-from-newer-version.patch similarity index 100% rename from patches/server/0417-Do-not-let-the-server-load-chunks-from-newer-version.patch rename to patches/server/0416-Do-not-let-the-server-load-chunks-from-newer-version.patch diff --git a/patches/server/0418-Prevent-headless-pistons-from-being-created.patch b/patches/server/0417-Prevent-headless-pistons-from-being-created.patch similarity index 100% rename from patches/server/0418-Prevent-headless-pistons-from-being-created.patch rename to patches/server/0417-Prevent-headless-pistons-from-being-created.patch diff --git a/patches/server/0419-Add-BellRingEvent.patch b/patches/server/0418-Add-BellRingEvent.patch similarity index 100% rename from patches/server/0419-Add-BellRingEvent.patch rename to patches/server/0418-Add-BellRingEvent.patch diff --git a/patches/server/0420-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0419-Add-zombie-targets-turtle-egg-config.patch similarity index 100% rename from patches/server/0420-Add-zombie-targets-turtle-egg-config.patch rename to patches/server/0419-Add-zombie-targets-turtle-egg-config.patch diff --git a/patches/server/0421-Buffer-joins-to-world.patch b/patches/server/0420-Buffer-joins-to-world.patch similarity index 100% rename from patches/server/0421-Buffer-joins-to-world.patch rename to patches/server/0420-Buffer-joins-to-world.patch diff --git a/patches/server/0422-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0421-Fix-hex-colors-not-working-in-some-kick-messages.patch similarity index 100% rename from patches/server/0422-Fix-hex-colors-not-working-in-some-kick-messages.patch rename to patches/server/0421-Fix-hex-colors-not-working-in-some-kick-messages.patch diff --git a/patches/server/0423-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0422-PortalCreateEvent-needs-to-know-its-entity.patch similarity index 100% rename from patches/server/0423-PortalCreateEvent-needs-to-know-its-entity.patch rename to patches/server/0422-PortalCreateEvent-needs-to-know-its-entity.patch diff --git a/patches/server/0424-Add-more-Evoker-API.patch b/patches/server/0423-Add-more-Evoker-API.patch similarity index 100% rename from patches/server/0424-Add-more-Evoker-API.patch rename to patches/server/0423-Add-more-Evoker-API.patch diff --git a/patches/server/0425-Add-methods-to-get-translation-keys.patch b/patches/server/0424-Add-methods-to-get-translation-keys.patch similarity index 100% rename from patches/server/0425-Add-methods-to-get-translation-keys.patch rename to patches/server/0424-Add-methods-to-get-translation-keys.patch diff --git a/patches/server/0426-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0425-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/server/0426-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/server/0425-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/server/0427-Cache-block-data-strings.patch b/patches/server/0426-Cache-block-data-strings.patch similarity index 100% rename from patches/server/0427-Cache-block-data-strings.patch rename to patches/server/0426-Cache-block-data-strings.patch diff --git a/patches/server/0428-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0427-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch similarity index 98% rename from patches/server/0428-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch rename to patches/server/0427-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch index 5fb2dcfe1f..8d60c2216a 100644 --- a/patches/server/0428-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch +++ b/patches/server/0427-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch @@ -31,7 +31,7 @@ index 789576f8b7b3001c243972b320b7dffbbf3baa5f..3b73565d295c09a5ab0d610338498f01 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 11a9142962637af5e26939a5eb8f35ba5f205793..f839ab6dea7f1efd59f22bcef91d4e279b1c232a 100644 +index 0c6680bf15b57cf314638ab70d849e033719c0e1..f45b148884b305628411d57f7662ea454fde3906 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -162,6 +162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0429-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0428-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/server/0429-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/server/0428-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/server/0430-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0429-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch similarity index 100% rename from patches/server/0430-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch rename to patches/server/0429-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch diff --git a/patches/server/0431-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0430-Extend-block-drop-capture-to-capture-all-items-added.patch similarity index 100% rename from patches/server/0431-Extend-block-drop-capture-to-capture-all-items-added.patch rename to patches/server/0430-Extend-block-drop-capture-to-capture-all-items-added.patch diff --git a/patches/server/0432-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 94% rename from patches/server/0432-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/server/0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index 0710aed1e5..b01c302702 100644 --- a/patches/server/0432-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f839ab6dea7f1efd59f22bcef91d4e279b1c232a..0281f4c4f7bc609ff7f35dcc8a7c13f6813d6548 100644 +index f45b148884b305628411d57f7662ea454fde3906..44610d4e3fb69e6cf5629d9e895e93d8dd5e09e9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4411,4 +4411,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0433-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0432-Lazily-track-plugin-scoreboards-by-default.patch similarity index 100% rename from patches/server/0433-Lazily-track-plugin-scoreboards-by-default.patch rename to patches/server/0432-Lazily-track-plugin-scoreboards-by-default.patch diff --git a/patches/server/0434-Entity-isTicking.patch b/patches/server/0433-Entity-isTicking.patch similarity index 94% rename from patches/server/0434-Entity-isTicking.patch rename to patches/server/0433-Entity-isTicking.patch index 2d53b98026..205f3da8d5 100644 --- a/patches/server/0434-Entity-isTicking.patch +++ b/patches/server/0433-Entity-isTicking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0281f4c4f7bc609ff7f35dcc8a7c13f6813d6548..f33067ea049793d898def3c83bff5b36490f8232 100644 +index 44610d4e3fb69e6cf5629d9e895e93d8dd5e09e9..2c0c41ae455ae5894e6bd85830741143c3d8aaa5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4416,5 +4416,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0435-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0434-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch similarity index 100% rename from patches/server/0435-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch rename to patches/server/0434-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch diff --git a/patches/server/0436-Fix-Concurrency-issue-in-ShufflingList.patch b/patches/server/0435-Fix-Concurrency-issue-in-ShufflingList.patch similarity index 100% rename from patches/server/0436-Fix-Concurrency-issue-in-ShufflingList.patch rename to patches/server/0435-Fix-Concurrency-issue-in-ShufflingList.patch diff --git a/patches/server/0437-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0436-Reset-Ender-Crystals-on-Dragon-Spawn.patch similarity index 100% rename from patches/server/0437-Reset-Ender-Crystals-on-Dragon-Spawn.patch rename to patches/server/0436-Reset-Ender-Crystals-on-Dragon-Spawn.patch diff --git a/patches/server/0438-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0437-Fix-for-large-move-vectors-crashing-server.patch similarity index 100% rename from patches/server/0438-Fix-for-large-move-vectors-crashing-server.patch rename to patches/server/0437-Fix-for-large-move-vectors-crashing-server.patch diff --git a/patches/server/0439-Optimise-getType-calls.patch b/patches/server/0438-Optimise-getType-calls.patch similarity index 100% rename from patches/server/0439-Optimise-getType-calls.patch rename to patches/server/0438-Optimise-getType-calls.patch diff --git a/patches/server/0440-Villager-resetOffers.patch b/patches/server/0439-Villager-resetOffers.patch similarity index 100% rename from patches/server/0440-Villager-resetOffers.patch rename to patches/server/0439-Villager-resetOffers.patch diff --git a/patches/server/0441-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0440-Retain-block-place-order-when-capturing-blockstates.patch similarity index 100% rename from patches/server/0441-Retain-block-place-order-when-capturing-blockstates.patch rename to patches/server/0440-Retain-block-place-order-when-capturing-blockstates.patch diff --git a/patches/server/0442-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0441-Reduce-blockpos-allocation-from-pathfinding.patch similarity index 100% rename from patches/server/0442-Reduce-blockpos-allocation-from-pathfinding.patch rename to patches/server/0441-Reduce-blockpos-allocation-from-pathfinding.patch diff --git a/patches/server/0443-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0442-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/server/0443-Fix-item-locations-dropped-from-campfires.patch rename to patches/server/0442-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/server/0444-Fix-bell-block-entity-memory-leak.patch b/patches/server/0443-Fix-bell-block-entity-memory-leak.patch similarity index 100% rename from patches/server/0444-Fix-bell-block-entity-memory-leak.patch rename to patches/server/0443-Fix-bell-block-entity-memory-leak.patch diff --git a/patches/server/0445-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0444-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/server/0445-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/server/0444-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/server/0446-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0445-Add-getOfflinePlayerIfCached-String.patch similarity index 100% rename from patches/server/0446-Add-getOfflinePlayerIfCached-String.patch rename to patches/server/0445-Add-getOfflinePlayerIfCached-String.patch diff --git a/patches/server/0447-Add-ignore-discounts-API.patch b/patches/server/0446-Add-ignore-discounts-API.patch similarity index 100% rename from patches/server/0447-Add-ignore-discounts-API.patch rename to patches/server/0446-Add-ignore-discounts-API.patch diff --git a/patches/server/0448-Toggle-for-removing-existing-dragon.patch b/patches/server/0447-Toggle-for-removing-existing-dragon.patch similarity index 100% rename from patches/server/0448-Toggle-for-removing-existing-dragon.patch rename to patches/server/0447-Toggle-for-removing-existing-dragon.patch diff --git a/patches/server/0449-Fix-client-lag-on-advancement-loading.patch b/patches/server/0448-Fix-client-lag-on-advancement-loading.patch similarity index 100% rename from patches/server/0449-Fix-client-lag-on-advancement-loading.patch rename to patches/server/0448-Fix-client-lag-on-advancement-loading.patch diff --git a/patches/server/0450-Item-no-age-no-player-pickup.patch b/patches/server/0449-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/server/0450-Item-no-age-no-player-pickup.patch rename to patches/server/0449-Item-no-age-no-player-pickup.patch diff --git a/patches/server/0451-Beacon-API-custom-effect-ranges.patch b/patches/server/0450-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/server/0451-Beacon-API-custom-effect-ranges.patch rename to patches/server/0450-Beacon-API-custom-effect-ranges.patch diff --git a/patches/server/0452-Add-API-for-quit-reason.patch b/patches/server/0451-Add-API-for-quit-reason.patch similarity index 100% rename from patches/server/0452-Add-API-for-quit-reason.patch rename to patches/server/0451-Add-API-for-quit-reason.patch diff --git a/patches/server/0453-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0452-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/server/0453-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0452-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/server/0454-Expose-world-spawn-angle.patch b/patches/server/0453-Expose-world-spawn-angle.patch similarity index 100% rename from patches/server/0454-Expose-world-spawn-angle.patch rename to patches/server/0453-Expose-world-spawn-angle.patch diff --git a/patches/server/0455-Add-Destroy-Speed-API.patch b/patches/server/0454-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/server/0455-Add-Destroy-Speed-API.patch rename to patches/server/0454-Add-Destroy-Speed-API.patch diff --git a/patches/server/0456-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0455-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 100% rename from patches/server/0456-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0455-Fix-Player-spawnParticle-x-y-z-precision-loss.patch diff --git a/patches/server/0457-Add-LivingEntity-clearActiveItem.patch b/patches/server/0456-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/server/0457-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0456-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/server/0458-Add-PlayerItemCooldownEvent.patch b/patches/server/0457-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0458-Add-PlayerItemCooldownEvent.patch rename to patches/server/0457-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0459-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0458-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0459-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0458-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0460-More-lightning-API.patch b/patches/server/0459-More-lightning-API.patch similarity index 100% rename from patches/server/0460-More-lightning-API.patch rename to patches/server/0459-More-lightning-API.patch diff --git a/patches/server/0461-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0460-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 98% rename from patches/server/0461-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0460-Climbing-should-not-bypass-cramming-gamerule.patch index e615ac322f..6d2f4c2108 100644 --- a/patches/server/0461-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0460-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f33067ea049793d898def3c83bff5b36490f8232..3b9c691973f11b7d4db8fb77d2b02aa0d07ed7b5 100644 +index 2c0c41ae455ae5894e6bd85830741143c3d8aaa5..82ccfd91dfd3cce35a35edf8f73ccdd1ddd1fd6a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1983,6 +1983,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0462-Add-missing-default-perms-for-commands.patch b/patches/server/0461-Add-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0462-Add-missing-default-perms-for-commands.patch rename to patches/server/0461-Add-missing-default-perms-for-commands.patch diff --git a/patches/server/0463-Add-PlayerShearBlockEvent.patch b/patches/server/0462-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0463-Add-PlayerShearBlockEvent.patch rename to patches/server/0462-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0464-Limit-recipe-packets.patch b/patches/server/0463-Limit-recipe-packets.patch similarity index 100% rename from patches/server/0464-Limit-recipe-packets.patch rename to patches/server/0463-Limit-recipe-packets.patch diff --git a/patches/server/0465-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0464-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0465-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0464-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0466-Player-Chunk-Load-Unload-Events.patch b/patches/server/0465-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/server/0466-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0465-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/server/0467-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0466-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0467-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0466-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0468-Expose-LivingEntity-hurt-direction.patch b/patches/server/0467-Expose-LivingEntity-hurt-direction.patch similarity index 100% rename from patches/server/0468-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0467-Expose-LivingEntity-hurt-direction.patch diff --git a/patches/server/0469-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0468-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/server/0469-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0468-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/server/0470-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch b/patches/server/0469-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch similarity index 100% rename from patches/server/0470-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch rename to patches/server/0469-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch diff --git a/patches/server/0471-Add-TargetHitEvent.patch b/patches/server/0470-Add-TargetHitEvent.patch similarity index 100% rename from patches/server/0471-Add-TargetHitEvent.patch rename to patches/server/0470-Add-TargetHitEvent.patch diff --git a/patches/server/0472-MC-4-Fix-item-position-desync.patch b/patches/server/0471-MC-4-Fix-item-position-desync.patch similarity index 96% rename from patches/server/0472-MC-4-Fix-item-position-desync.patch rename to patches/server/0471-MC-4-Fix-item-position-desync.patch index f1fa7d66d3..5b680e0dd0 100644 --- a/patches/server/0472-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0471-MC-4-Fix-item-position-desync.patch @@ -28,7 +28,7 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..3c4ac79c094dc2fff7de94150a34b7bf public Vec3 decode(long x, long y, long z) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3b9c691973f11b7d4db8fb77d2b02aa0d07ed7b5..df389ebaaef8ef307adb6c604ce22a192a522ba4 100644 +index 82ccfd91dfd3cce35a35edf8f73ccdd1ddd1fd6a..18cf11ddcf51e8b6251fd6df97f85e0ed15900c4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4186,6 +4186,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0473-Additional-Block-Material-API.patch b/patches/server/0472-Additional-Block-Material-API.patch similarity index 100% rename from patches/server/0473-Additional-Block-Material-API.patch rename to patches/server/0472-Additional-Block-Material-API.patch diff --git a/patches/server/0474-Fix-harming-potion-dupe.patch b/patches/server/0473-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0474-Fix-harming-potion-dupe.patch rename to patches/server/0473-Fix-harming-potion-dupe.patch diff --git a/patches/server/0475-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/server/0474-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/server/0475-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/server/0474-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/server/0476-Cache-burn-durations.patch b/patches/server/0475-Cache-burn-durations.patch similarity index 100% rename from patches/server/0476-Cache-burn-durations.patch rename to patches/server/0475-Cache-burn-durations.patch diff --git a/patches/server/0477-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0476-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/server/0477-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0476-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/server/0478-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0477-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 100% rename from patches/server/0478-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/server/0477-Fix-Not-a-string-Map-Conversion-spam.patch diff --git a/patches/server/0479-Add-PlayerFlowerPotManipulateEvent.patch b/patches/server/0478-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0479-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0478-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0480-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0479-Fix-interact-event-not-being-called-sometimes.patch similarity index 100% rename from patches/server/0480-Fix-interact-event-not-being-called-sometimes.patch rename to patches/server/0479-Fix-interact-event-not-being-called-sometimes.patch diff --git a/patches/server/0481-Zombie-API-breaking-doors.patch b/patches/server/0480-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0481-Zombie-API-breaking-doors.patch rename to patches/server/0480-Zombie-API-breaking-doors.patch diff --git a/patches/server/0482-Fix-nerfed-slime-when-splitting.patch b/patches/server/0481-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/server/0482-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0481-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/server/0483-Add-EntityLoadCrossbowEvent.patch b/patches/server/0482-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0483-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0482-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0484-Add-WorldGameRuleChangeEvent.patch b/patches/server/0483-Add-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/server/0484-Add-WorldGameRuleChangeEvent.patch rename to patches/server/0483-Add-WorldGameRuleChangeEvent.patch diff --git a/patches/server/0485-Add-ServerResourcesReloadedEvent.patch b/patches/server/0484-Add-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/server/0485-Add-ServerResourcesReloadedEvent.patch rename to patches/server/0484-Add-ServerResourcesReloadedEvent.patch diff --git a/patches/server/0486-Add-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0485-Add-world-settings-for-mobs-picking-up-loot.patch similarity index 100% rename from patches/server/0486-Add-world-settings-for-mobs-picking-up-loot.patch rename to patches/server/0485-Add-world-settings-for-mobs-picking-up-loot.patch diff --git a/patches/server/0487-Add-BlockFailedDispenseEvent.patch b/patches/server/0486-Add-BlockFailedDispenseEvent.patch similarity index 100% rename from patches/server/0487-Add-BlockFailedDispenseEvent.patch rename to patches/server/0486-Add-BlockFailedDispenseEvent.patch diff --git a/patches/server/0488-Add-PlayerLecternPageChangeEvent.patch b/patches/server/0487-Add-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/server/0488-Add-PlayerLecternPageChangeEvent.patch rename to patches/server/0487-Add-PlayerLecternPageChangeEvent.patch diff --git a/patches/server/0489-Add-PlayerLoomPatternSelectEvent.patch b/patches/server/0488-Add-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/server/0489-Add-PlayerLoomPatternSelectEvent.patch rename to patches/server/0488-Add-PlayerLoomPatternSelectEvent.patch diff --git a/patches/server/0490-Configurable-door-breaking-difficulty.patch b/patches/server/0489-Configurable-door-breaking-difficulty.patch similarity index 100% rename from patches/server/0490-Configurable-door-breaking-difficulty.patch rename to patches/server/0489-Configurable-door-breaking-difficulty.patch diff --git a/patches/server/0491-Empty-commands-shall-not-be-dispatched.patch b/patches/server/0490-Empty-commands-shall-not-be-dispatched.patch similarity index 100% rename from patches/server/0491-Empty-commands-shall-not-be-dispatched.patch rename to patches/server/0490-Empty-commands-shall-not-be-dispatched.patch diff --git a/patches/server/0492-Remove-stale-POIs.patch b/patches/server/0491-Remove-stale-POIs.patch similarity index 100% rename from patches/server/0492-Remove-stale-POIs.patch rename to patches/server/0491-Remove-stale-POIs.patch diff --git a/patches/server/0493-Fix-villager-boat-exploit.patch b/patches/server/0492-Fix-villager-boat-exploit.patch similarity index 100% rename from patches/server/0493-Fix-villager-boat-exploit.patch rename to patches/server/0492-Fix-villager-boat-exploit.patch diff --git a/patches/server/0494-Add-sendOpLevel-API.patch b/patches/server/0493-Add-sendOpLevel-API.patch similarity index 100% rename from patches/server/0494-Add-sendOpLevel-API.patch rename to patches/server/0493-Add-sendOpLevel-API.patch diff --git a/patches/server/0495-TODO-Registry-Modification-API.patch b/patches/server/0494-TODO-Registry-Modification-API.patch similarity index 100% rename from patches/server/0495-TODO-Registry-Modification-API.patch rename to patches/server/0494-TODO-Registry-Modification-API.patch diff --git a/patches/server/0496-Add-StructuresLocateEvent.patch b/patches/server/0495-Add-StructuresLocateEvent.patch similarity index 100% rename from patches/server/0496-Add-StructuresLocateEvent.patch rename to patches/server/0495-Add-StructuresLocateEvent.patch diff --git a/patches/server/0497-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0496-Collision-option-for-requiring-a-player-participant.patch similarity index 97% rename from patches/server/0497-Collision-option-for-requiring-a-player-participant.patch rename to patches/server/0496-Collision-option-for-requiring-a-player-participant.patch index c029c3a902..176ae99bc8 100644 --- a/patches/server/0497-Collision-option-for-requiring-a-player-participant.patch +++ b/patches/server/0496-Collision-option-for-requiring-a-player-participant.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Collision option for requiring a player participant diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index df389ebaaef8ef307adb6c604ce22a192a522ba4..fa5d634cefcf73afd3e090f91c4c589edb988352 100644 +index 18cf11ddcf51e8b6251fd6df97f85e0ed15900c4..2d8c476eb9f329ee6827340b6cec26a84901c56a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1848,6 +1848,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0498-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0497-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch similarity index 100% rename from patches/server/0498-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch rename to patches/server/0497-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch diff --git a/patches/server/0499-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0498-Return-chat-component-with-empty-text-instead-of-thr.patch similarity index 100% rename from patches/server/0499-Return-chat-component-with-empty-text-instead-of-thr.patch rename to patches/server/0498-Return-chat-component-with-empty-text-instead-of-thr.patch diff --git a/patches/server/0500-Make-schedule-command-per-world.patch b/patches/server/0499-Make-schedule-command-per-world.patch similarity index 100% rename from patches/server/0500-Make-schedule-command-per-world.patch rename to patches/server/0499-Make-schedule-command-per-world.patch diff --git a/patches/server/0501-Configurable-max-leash-distance.patch b/patches/server/0500-Configurable-max-leash-distance.patch similarity index 100% rename from patches/server/0501-Configurable-max-leash-distance.patch rename to patches/server/0500-Configurable-max-leash-distance.patch diff --git a/patches/server/0502-Add-BlockPreDispenseEvent.patch b/patches/server/0501-Add-BlockPreDispenseEvent.patch similarity index 100% rename from patches/server/0502-Add-BlockPreDispenseEvent.patch rename to patches/server/0501-Add-BlockPreDispenseEvent.patch diff --git a/patches/server/0503-Add-PlayerChangeBeaconEffectEvent.patch b/patches/server/0502-Add-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/server/0503-Add-PlayerChangeBeaconEffectEvent.patch rename to patches/server/0502-Add-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/server/0504-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0503-Add-toggle-for-always-placing-the-dragon-egg.patch similarity index 100% rename from patches/server/0504-Add-toggle-for-always-placing-the-dragon-egg.patch rename to patches/server/0503-Add-toggle-for-always-placing-the-dragon-egg.patch diff --git a/patches/server/0505-Add-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0504-Add-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/server/0505-Add-PlayerStonecutterRecipeSelectEvent.patch rename to patches/server/0504-Add-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/server/0506-Expand-EntityUnleashEvent.patch b/patches/server/0505-Expand-EntityUnleashEvent.patch similarity index 100% rename from patches/server/0506-Expand-EntityUnleashEvent.patch rename to patches/server/0505-Expand-EntityUnleashEvent.patch diff --git a/patches/server/0507-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0506-Reset-shield-blocking-on-dimension-change.patch similarity index 100% rename from patches/server/0507-Reset-shield-blocking-on-dimension-change.patch rename to patches/server/0506-Reset-shield-blocking-on-dimension-change.patch diff --git a/patches/server/0508-Add-DragonEggFormEvent.patch b/patches/server/0507-Add-DragonEggFormEvent.patch similarity index 100% rename from patches/server/0508-Add-DragonEggFormEvent.patch rename to patches/server/0507-Add-DragonEggFormEvent.patch diff --git a/patches/server/0509-Add-EntityMoveEvent.patch b/patches/server/0508-Add-EntityMoveEvent.patch similarity index 100% rename from patches/server/0509-Add-EntityMoveEvent.patch rename to patches/server/0508-Add-EntityMoveEvent.patch diff --git a/patches/server/0510-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0509-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 100% rename from patches/server/0510-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0509-added-option-to-disable-pathfinding-updates-on-block.patch diff --git a/patches/server/0511-Inline-shift-direction-fields.patch b/patches/server/0510-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0511-Inline-shift-direction-fields.patch rename to patches/server/0510-Inline-shift-direction-fields.patch diff --git a/patches/server/0512-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0511-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/server/0512-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0511-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/server/0513-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0512-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0513-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0512-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0514-living-entity-allow-attribute-registration.patch b/patches/server/0513-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/server/0514-living-entity-allow-attribute-registration.patch rename to patches/server/0513-living-entity-allow-attribute-registration.patch diff --git a/patches/server/0515-fix-dead-slime-setSize-invincibility.patch b/patches/server/0514-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0515-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0514-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0516-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0515-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0516-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0515-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0517-Expose-Tracked-Players.patch b/patches/server/0516-Expose-Tracked-Players.patch similarity index 100% rename from patches/server/0517-Expose-Tracked-Players.patch rename to patches/server/0516-Expose-Tracked-Players.patch diff --git a/patches/server/0518-Improve-ServerGUI.patch b/patches/server/0517-Improve-ServerGUI.patch similarity index 100% rename from patches/server/0518-Improve-ServerGUI.patch rename to patches/server/0517-Improve-ServerGUI.patch diff --git a/patches/server/0519-fix-converting-txt-to-json-file.patch b/patches/server/0518-fix-converting-txt-to-json-file.patch similarity index 100% rename from patches/server/0519-fix-converting-txt-to-json-file.patch rename to patches/server/0518-fix-converting-txt-to-json-file.patch diff --git a/patches/server/0520-Add-worldborder-events.patch b/patches/server/0519-Add-worldborder-events.patch similarity index 100% rename from patches/server/0520-Add-worldborder-events.patch rename to patches/server/0519-Add-worldborder-events.patch diff --git a/patches/server/0521-Add-PlayerNameEntityEvent.patch b/patches/server/0520-Add-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0521-Add-PlayerNameEntityEvent.patch rename to patches/server/0520-Add-PlayerNameEntityEvent.patch diff --git a/patches/server/0522-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0521-Prevent-grindstones-from-overstacking-items.patch similarity index 100% rename from patches/server/0522-Prevent-grindstones-from-overstacking-items.patch rename to patches/server/0521-Prevent-grindstones-from-overstacking-items.patch diff --git a/patches/server/0523-Add-recipe-to-cook-events.patch b/patches/server/0522-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/server/0523-Add-recipe-to-cook-events.patch rename to patches/server/0522-Add-recipe-to-cook-events.patch diff --git a/patches/server/0524-Add-Block-isValidTool.patch b/patches/server/0523-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0524-Add-Block-isValidTool.patch rename to patches/server/0523-Add-Block-isValidTool.patch diff --git a/patches/server/0525-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0524-Allow-using-signs-inside-spawn-protection.patch similarity index 100% rename from patches/server/0525-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0524-Allow-using-signs-inside-spawn-protection.patch diff --git a/patches/server/0526-Expand-world-key-API.patch b/patches/server/0525-Expand-world-key-API.patch similarity index 100% rename from patches/server/0526-Expand-world-key-API.patch rename to patches/server/0525-Expand-world-key-API.patch diff --git a/patches/server/0527-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0526-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0527-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0526-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0528-Item-Rarity-API.patch b/patches/server/0527-Item-Rarity-API.patch similarity index 100% rename from patches/server/0528-Item-Rarity-API.patch rename to patches/server/0527-Item-Rarity-API.patch diff --git a/patches/server/0529-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0528-Drop-carried-item-when-player-has-disconnected.patch similarity index 100% rename from patches/server/0529-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0528-Drop-carried-item-when-player-has-disconnected.patch diff --git a/patches/server/0530-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0529-forced-whitelist-use-configurable-kick-message.patch similarity index 100% rename from patches/server/0530-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0529-forced-whitelist-use-configurable-kick-message.patch diff --git a/patches/server/0531-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0530-Don-t-ignore-result-of-PlayerEditBookEvent.patch similarity index 100% rename from patches/server/0531-Don-t-ignore-result-of-PlayerEditBookEvent.patch rename to patches/server/0530-Don-t-ignore-result-of-PlayerEditBookEvent.patch diff --git a/patches/server/0532-Expose-protocol-version.patch b/patches/server/0531-Expose-protocol-version.patch similarity index 100% rename from patches/server/0532-Expose-protocol-version.patch rename to patches/server/0531-Expose-protocol-version.patch diff --git a/patches/server/0533-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0532-Enhance-console-tab-completions-for-brigadier-comman.patch similarity index 100% rename from patches/server/0533-Enhance-console-tab-completions-for-brigadier-comman.patch rename to patches/server/0532-Enhance-console-tab-completions-for-brigadier-comman.patch diff --git a/patches/server/0534-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0533-Fix-PlayerItemConsumeEvent-cancelling-properly.patch similarity index 100% rename from patches/server/0534-Fix-PlayerItemConsumeEvent-cancelling-properly.patch rename to patches/server/0533-Fix-PlayerItemConsumeEvent-cancelling-properly.patch diff --git a/patches/server/0535-Add-bypass-host-check.patch b/patches/server/0534-Add-bypass-host-check.patch similarity index 100% rename from patches/server/0535-Add-bypass-host-check.patch rename to patches/server/0534-Add-bypass-host-check.patch diff --git a/patches/server/0536-Set-area-affect-cloud-rotation.patch b/patches/server/0535-Set-area-affect-cloud-rotation.patch similarity index 100% rename from patches/server/0536-Set-area-affect-cloud-rotation.patch rename to patches/server/0535-Set-area-affect-cloud-rotation.patch diff --git a/patches/server/0537-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0536-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/server/0537-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/server/0536-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/server/0538-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0537-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/server/0538-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/server/0537-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/server/0539-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0538-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/server/0539-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/server/0538-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/server/0540-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0539-fix-PigZombieAngerEvent-cancellation.patch similarity index 100% rename from patches/server/0540-fix-PigZombieAngerEvent-cancellation.patch rename to patches/server/0539-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/server/0541-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0540-fix-PlayerItemHeldEvent-firing-twice.patch similarity index 100% rename from patches/server/0541-fix-PlayerItemHeldEvent-firing-twice.patch rename to patches/server/0540-fix-PlayerItemHeldEvent-firing-twice.patch diff --git a/patches/server/0542-Add-PlayerDeepSleepEvent.patch b/patches/server/0541-Add-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/server/0542-Add-PlayerDeepSleepEvent.patch rename to patches/server/0541-Add-PlayerDeepSleepEvent.patch diff --git a/patches/server/0543-More-World-API.patch b/patches/server/0542-More-World-API.patch similarity index 100% rename from patches/server/0543-More-World-API.patch rename to patches/server/0542-More-World-API.patch diff --git a/patches/server/0544-Add-PlayerBedFailEnterEvent.patch b/patches/server/0543-Add-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/server/0544-Add-PlayerBedFailEnterEvent.patch rename to patches/server/0543-Add-PlayerBedFailEnterEvent.patch diff --git a/patches/server/0545-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0544-Implement-methods-to-convert-between-Component-and-B.patch similarity index 100% rename from patches/server/0545-Implement-methods-to-convert-between-Component-and-B.patch rename to patches/server/0544-Implement-methods-to-convert-between-Component-and-B.patch diff --git a/patches/server/0546-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/server/0545-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch similarity index 100% rename from patches/server/0546-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch rename to patches/server/0545-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch diff --git a/patches/server/0547-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0546-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0547-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0546-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0548-Add-Channel-initialization-listeners.patch b/patches/server/0547-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/server/0548-Add-Channel-initialization-listeners.patch rename to patches/server/0547-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0549-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0548-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0549-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0548-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0550-Add-more-WanderingTrader-API.patch b/patches/server/0549-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0550-Add-more-WanderingTrader-API.patch rename to patches/server/0549-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0551-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0550-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0551-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0550-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0552-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0552-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0553-Add-HiddenPotionEffect-API.patch b/patches/server/0552-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/0553-Add-HiddenPotionEffect-API.patch rename to patches/server/0552-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/0554-Inventory-close.patch b/patches/server/0553-Inventory-close.patch similarity index 100% rename from patches/server/0554-Inventory-close.patch rename to patches/server/0553-Inventory-close.patch diff --git a/patches/server/0555-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0555-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0556-Add-basic-Datapack-API.patch b/patches/server/0555-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0556-Add-basic-Datapack-API.patch rename to patches/server/0555-Add-basic-Datapack-API.patch diff --git a/patches/server/0557-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0556-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0557-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0556-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0558-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0557-Expand-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/server/0558-Expand-PlayerGameModeChangeEvent.patch rename to patches/server/0557-Expand-PlayerGameModeChangeEvent.patch diff --git a/patches/server/0559-ItemStack-repair-check-API.patch b/patches/server/0558-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0559-ItemStack-repair-check-API.patch rename to patches/server/0558-ItemStack-repair-check-API.patch diff --git a/patches/server/0560-More-Enchantment-API.patch b/patches/server/0559-More-Enchantment-API.patch similarity index 100% rename from patches/server/0560-More-Enchantment-API.patch rename to patches/server/0559-More-Enchantment-API.patch diff --git a/patches/server/0561-Move-range-check-for-block-placing-up.patch b/patches/server/0560-Move-range-check-for-block-placing-up.patch similarity index 100% rename from patches/server/0561-Move-range-check-for-block-placing-up.patch rename to patches/server/0560-Move-range-check-for-block-placing-up.patch diff --git a/patches/server/0562-Add-Mob-lookAt-API.patch b/patches/server/0561-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0562-Add-Mob-lookAt-API.patch rename to patches/server/0561-Add-Mob-lookAt-API.patch diff --git a/patches/server/0563-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/0563-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/0564-Add-Unix-domain-socket-support.patch b/patches/server/0563-Add-Unix-domain-socket-support.patch similarity index 100% rename from patches/server/0564-Add-Unix-domain-socket-support.patch rename to patches/server/0563-Add-Unix-domain-socket-support.patch diff --git a/patches/server/0565-Add-EntityInsideBlockEvent.patch b/patches/server/0564-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0565-Add-EntityInsideBlockEvent.patch rename to patches/server/0564-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0566-Attributes-API-for-item-defaults.patch b/patches/server/0565-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0566-Attributes-API-for-item-defaults.patch rename to patches/server/0565-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0567-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0566-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/server/0567-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0566-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/server/0568-More-Lidded-Block-API.patch b/patches/server/0567-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0568-More-Lidded-Block-API.patch rename to patches/server/0567-More-Lidded-Block-API.patch diff --git a/patches/server/0569-Limit-item-frame-cursors-on-maps.patch b/patches/server/0568-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0569-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0568-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0570-Add-PlayerKickEvent-causes.patch b/patches/server/0569-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/server/0570-Add-PlayerKickEvent-causes.patch rename to patches/server/0569-Add-PlayerKickEvent-causes.patch diff --git a/patches/server/0571-Add-PufferFishStateChangeEvent.patch b/patches/server/0570-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0571-Add-PufferFishStateChangeEvent.patch rename to patches/server/0570-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0572-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0572-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0573-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/server/0573-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/server/0574-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0573-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0574-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0573-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0575-Add-BellRevealRaiderEvent.patch b/patches/server/0574-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0575-Add-BellRevealRaiderEvent.patch rename to patches/server/0574-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0576-Fix-invulnerable-end-crystals.patch b/patches/server/0575-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0576-Fix-invulnerable-end-crystals.patch rename to patches/server/0575-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0577-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0576-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0577-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0576-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0578-Fix-dangerous-end-portal-logic.patch b/patches/server/0577-Fix-dangerous-end-portal-logic.patch similarity index 97% rename from patches/server/0578-Fix-dangerous-end-portal-logic.patch rename to patches/server/0577-Fix-dangerous-end-portal-logic.patch index 3c92033da9..1b1c9918ec 100644 --- a/patches/server/0578-Fix-dangerous-end-portal-logic.patch +++ b/patches/server/0577-Fix-dangerous-end-portal-logic.patch @@ -11,7 +11,7 @@ Move the tick logic into the post tick, where portaling was designed to happen in the first place. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fa5d634cefcf73afd3e090f91c4c589edb988352..e9a12d9b7c8789f3d07ba5a799c941ca25eb3e63 100644 +index 2d8c476eb9f329ee6827340b6cec26a84901c56a..e3647763bcede42f06250550985e149e39f2b0b8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -421,6 +421,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0579-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0579-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0580-Make-item-validations-configurable.patch b/patches/server/0579-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0580-Make-item-validations-configurable.patch rename to patches/server/0579-Make-item-validations-configurable.patch diff --git a/patches/server/0581-Line-Of-Sight-Changes.patch b/patches/server/0580-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/server/0581-Line-Of-Sight-Changes.patch rename to patches/server/0580-Line-Of-Sight-Changes.patch diff --git a/patches/server/0582-add-per-world-spawn-limits.patch b/patches/server/0581-add-per-world-spawn-limits.patch similarity index 100% rename from patches/server/0582-add-per-world-spawn-limits.patch rename to patches/server/0581-add-per-world-spawn-limits.patch diff --git a/patches/server/0583-Fix-potions-splash-events.patch b/patches/server/0582-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0583-Fix-potions-splash-events.patch rename to patches/server/0582-Fix-potions-splash-events.patch diff --git a/patches/server/0584-Add-more-LimitedRegion-API.patch b/patches/server/0583-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0584-Add-more-LimitedRegion-API.patch rename to patches/server/0583-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0585-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 100% rename from patches/server/0585-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch diff --git a/patches/server/0586-Missing-Entity-API.patch b/patches/server/0585-Missing-Entity-API.patch similarity index 98% rename from patches/server/0586-Missing-Entity-API.patch rename to patches/server/0585-Missing-Entity-API.patch index b2f850af74..d12a12082a 100644 --- a/patches/server/0586-Missing-Entity-API.patch +++ b/patches/server/0585-Missing-Entity-API.patch @@ -39,6 +39,7 @@ Co-authored-by: booky10 Co-authored-by: Amin Co-authored-by: TrollyLoki Co-authored-by: FireInstall +Co-authored-by: maxcom1 <46265094+maxcom1@users.noreply.github.com> diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java index 8117578ced94aa6bf01871f6526a388385c4adf2..59699c59fdfc611177fdb3136f84ab539b17d9c9 100644 @@ -670,26 +671,36 @@ index fc0f0e841dc974d080e1abb9bbafb5165801131f..d657fd2c507a5b215aeab0a5f3e9c2ee + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 07158732dd6a5b7d622b7f2ea10ca87b50365b8a..dd1ca63d2d6e4c8606c28380f81b79b7ee211a35 100644 +index 07158732dd6a5b7d622b7f2ea10ca87b50365b8a..ebbefcdea6356384f27e964bd551bad2f9e696e8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1078,4 +1078,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1078,4 +1078,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return set; } // Paper end + -+ // Paper start - move up invisibility ++ // Paper start - missing entity api + @Override -+ public boolean isInvisible() { ++ public boolean isInvisible() { // Paper - moved up from LivingEntity + return this.getHandle().isInvisible(); + } + + @Override -+ public void setInvisible(boolean invisible) { ++ public void setInvisible(boolean invisible) { // Paper - moved up from LivingEntity + this.getHandle().persistentInvisibility = invisible; + this.getHandle().setSharedFlag(Entity.FLAG_INVISIBLE, invisible); + } -+ // Paper end - move up invisibility ++ ++ @Override ++ public void setNoPhysics(boolean noPhysics) { ++ this.getHandle().noPhysics = noPhysics; ++ } ++ ++ @Override ++ public boolean hasNoPhysics() { ++ return this.getHandle().noPhysics; ++ } ++ // Paper end - missing entity api } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java index 73cb7aa01af3eed71b05b1a539f082b26dcd8d60..e1a2f0924da6ebcdf332040f922226af5d8a2d45 100644 diff --git a/patches/server/0587-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 100% rename from patches/server/0587-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch diff --git a/patches/server/0588-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0588-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0589-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 100% rename from patches/server/0589-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch diff --git a/patches/server/0590-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0589-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0590-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0589-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0591-Add-PlayerArmSwingEvent.patch b/patches/server/0590-Add-PlayerArmSwingEvent.patch similarity index 100% rename from patches/server/0591-Add-PlayerArmSwingEvent.patch rename to patches/server/0590-Add-PlayerArmSwingEvent.patch diff --git a/patches/server/0592-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0591-Fix-kick-event-leave-message-not-being-sent.patch similarity index 100% rename from patches/server/0592-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/server/0591-Fix-kick-event-leave-message-not-being-sent.patch diff --git a/patches/server/0593-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0592-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/0593-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0592-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0594-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0593-Don-t-apply-cramming-damage-to-players.patch similarity index 100% rename from patches/server/0594-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0593-Don-t-apply-cramming-damage-to-players.patch diff --git a/patches/server/0595-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0595-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0596-Add-missing-forceDrop-toggles.patch b/patches/server/0595-Add-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0596-Add-missing-forceDrop-toggles.patch rename to patches/server/0595-Add-missing-forceDrop-toggles.patch diff --git a/patches/server/0597-Stinger-API.patch b/patches/server/0596-Stinger-API.patch similarity index 95% rename from patches/server/0597-Stinger-API.patch rename to patches/server/0596-Stinger-API.patch index 262a4a8481..d5e15af3c0 100644 --- a/patches/server/0597-Stinger-API.patch +++ b/patches/server/0596-Stinger-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stinger API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 9a7a670c1e99674e8a554342165b7b77001083fc..e1092bb514e01e978a8d624bd5a7cba5b4b5fe81 100644 +index 6218f15194b7ae0b17f7f1dab78b1337779edb27..9fed7d8500481493de32efd16de6b271b9ed446d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -338,6 +338,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0598-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0598-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0599-Add-System.out-err-catcher.patch b/patches/server/0598-Add-System.out-err-catcher.patch similarity index 100% rename from patches/server/0599-Add-System.out-err-catcher.patch rename to patches/server/0598-Add-System.out-err-catcher.patch diff --git a/patches/server/0600-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0600-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0601-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 100% rename from patches/server/0601-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch diff --git a/patches/server/0602-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0601-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0602-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0601-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0603-Add-PlayerSetSpawnEvent.patch b/patches/server/0602-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/server/0603-Add-PlayerSetSpawnEvent.patch rename to patches/server/0602-Add-PlayerSetSpawnEvent.patch diff --git a/patches/server/0604-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0603-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 94% rename from patches/server/0604-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0603-Make-hoppers-respect-inventory-max-stack-size.patch index 77dfd12340..0de1d33a58 100644 --- a/patches/server/0604-Make-hoppers-respect-inventory-max-stack-size.patch +++ b/patches/server/0603-Make-hoppers-respect-inventory-max-stack-size.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make hoppers respect inventory max stack size diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index 8aabefdcbeb3fc5fb7d11fe04ee629fe7bc612c2..4dda44608320c2a872b23053a1c3de63b79741c2 100644 +index f0b4b8eb5d2740cd73b4338fd0c2acc3b06df1f6..e3b6f2bf93710ea695b0c25c0b6968a8f24f0829 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java @@ -438,15 +438,17 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen diff --git a/patches/server/0605-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0604-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0605-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0604-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0606-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0605-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0606-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0605-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0607-Add-EntityDamageItemEvent.patch b/patches/server/0606-Add-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0607-Add-EntityDamageItemEvent.patch rename to patches/server/0606-Add-EntityDamageItemEvent.patch diff --git a/patches/server/0608-Optimize-indirect-passenger-iteration.patch b/patches/server/0607-Optimize-indirect-passenger-iteration.patch similarity index 96% rename from patches/server/0608-Optimize-indirect-passenger-iteration.patch rename to patches/server/0607-Optimize-indirect-passenger-iteration.patch index 92ffa35c2c..cdd80aa9b6 100644 --- a/patches/server/0608-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0607-Optimize-indirect-passenger-iteration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize indirect passenger iteration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e9a12d9b7c8789f3d07ba5a799c941ca25eb3e63..96ed3d345085c7d86643166fb4c124675e6b07d4 100644 +index e3647763bcede42f06250550985e149e39f2b0b8..f93e74226e3306a59e17dce1e4f8e72d61d75d49 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3842,20 +3842,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0609-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0608-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0609-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0608-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0610-Clear-bucket-NBT-after-dispense.patch b/patches/server/0609-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0610-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0609-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0611-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0610-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0611-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0610-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0612-Add-BlockBreakBlockEvent.patch b/patches/server/0611-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0612-Add-BlockBreakBlockEvent.patch rename to patches/server/0611-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0613-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0613-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0614-More-CommandBlock-API.patch b/patches/server/0613-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0614-More-CommandBlock-API.patch rename to patches/server/0613-More-CommandBlock-API.patch diff --git a/patches/server/0615-Add-missing-team-sidebar-display-slots.patch b/patches/server/0614-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0615-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0614-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0616-Add-back-EntityPortalExitEvent.patch b/patches/server/0615-Add-back-EntityPortalExitEvent.patch similarity index 97% rename from patches/server/0616-Add-back-EntityPortalExitEvent.patch rename to patches/server/0615-Add-back-EntityPortalExitEvent.patch index 5e091febda..566d9576da 100644 --- a/patches/server/0616-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0615-Add-back-EntityPortalExitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add back EntityPortalExitEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 96ed3d345085c7d86643166fb4c124675e6b07d4..822666e1199e0851136d88b2b556d8d17843d902 100644 +index f93e74226e3306a59e17dce1e4f8e72d61d75d49..7dbbf0884b70acb37c3400364736fa8f6b68c964 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3291,6 +3291,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0617-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0616-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/server/0617-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0616-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/server/0618-Get-entity-default-attributes.patch b/patches/server/0617-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0618-Get-entity-default-attributes.patch rename to patches/server/0617-Get-entity-default-attributes.patch diff --git a/patches/server/0619-Left-handed-API.patch b/patches/server/0618-Left-handed-API.patch similarity index 100% rename from patches/server/0619-Left-handed-API.patch rename to patches/server/0618-Left-handed-API.patch diff --git a/patches/server/0620-Add-more-advancement-API.patch b/patches/server/0619-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0620-Add-more-advancement-API.patch rename to patches/server/0619-Add-more-advancement-API.patch diff --git a/patches/server/0621-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0620-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0621-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0620-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0622-Add-critical-damage-API.patch b/patches/server/0621-Add-critical-damage-API.patch similarity index 100% rename from patches/server/0622-Add-critical-damage-API.patch rename to patches/server/0621-Add-critical-damage-API.patch diff --git a/patches/server/0623-Fix-issues-with-mob-conversion.patch b/patches/server/0622-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0623-Fix-issues-with-mob-conversion.patch rename to patches/server/0622-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0624-Add-isCollidable-methods-to-various-places.patch b/patches/server/0623-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0624-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0623-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0625-Goat-ram-API.patch b/patches/server/0624-Goat-ram-API.patch similarity index 100% rename from patches/server/0625-Goat-ram-API.patch rename to patches/server/0624-Goat-ram-API.patch diff --git a/patches/server/0626-Add-API-for-resetting-a-single-score.patch b/patches/server/0625-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0626-Add-API-for-resetting-a-single-score.patch rename to patches/server/0625-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0627-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch similarity index 97% rename from patches/server/0627-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch index b57a9d9bb2..ad5e5a0031 100644 --- a/patches/server/0627-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch @@ -27,7 +27,7 @@ index 7dbbf0884b70acb37c3400364736fa8f6b68c964..5dce3d38ecd7b7639f02f3e1e92f3723 return this.isPassenger() ? false : this.saveAsPassenger(nbt); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 08d63e104ddc079af6349b6b3665cadae1c619ad..6a31fb773798e911e731c35e2d52eb1073ed9f07 100644 +index ebbefcdea6356384f27e964bd551bad2f9e696e8..06febdb103f98dd16cca32d7345b0ca6b52dcade 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1077,6 +1077,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -46,7 +46,7 @@ index 08d63e104ddc079af6349b6b3665cadae1c619ad..6a31fb773798e911e731c35e2d52eb10 + } // Paper end - // Paper start - move up invisibility + // Paper start - missing entity api diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java index 609b103cb9af3b0554bf1116306874fe98c8534c..3f582c5653e13875cce4ef8ecd279d8a3d2b2dc2 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java diff --git a/patches/server/0628-Vanilla-command-permission-fixes.patch b/patches/server/0627-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0628-Vanilla-command-permission-fixes.patch rename to patches/server/0627-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0629-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 100% rename from patches/server/0629-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch diff --git a/patches/server/0630-Fix-GameProfileCache-concurrency.patch b/patches/server/0629-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0630-Fix-GameProfileCache-concurrency.patch rename to patches/server/0629-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0631-Improve-and-expand-AsyncCatcher.patch b/patches/server/0630-Improve-and-expand-AsyncCatcher.patch similarity index 99% rename from patches/server/0631-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0630-Improve-and-expand-AsyncCatcher.patch index 70908f281c..3da2f1c96b 100644 --- a/patches/server/0631-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0630-Improve-and-expand-AsyncCatcher.patch @@ -202,7 +202,7 @@ index ca68faef4232859e833adfd86a0ce13f7c2ad00e..df57157317fc6c84f69751fd8a120761 ClientboundSoundEntityPacket packet = new ClientboundSoundEntityPacket(Holder.direct(SoundEvent.createVariableRangeEvent(new ResourceLocation(sound))), net.minecraft.sounds.SoundSource.valueOf(category.name()), craftEntity.getHandle(), volume, pitch, seed); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index e1092bb514e01e978a8d624bd5a7cba5b4b5fe81..1170cf9b3b61fae099ed8574888187cf4f20ffd1 100644 +index 9fed7d8500481493de32efd16de6b271b9ed446d..a67570fedb8f09a118351b1b5c3d47bc568f5c0c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -501,6 +501,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0632-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 100% rename from patches/server/0632-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/server/0633-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0632-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0633-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0632-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0634-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0633-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0634-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0633-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0635-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0634-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0635-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0634-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0636-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 100% rename from patches/server/0636-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch diff --git a/patches/server/0637-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0637-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0638-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 100% rename from patches/server/0638-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/server/0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch diff --git a/patches/server/0639-Time-scoreboard-search.patch b/patches/server/0638-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0639-Time-scoreboard-search.patch rename to patches/server/0638-Time-scoreboard-search.patch diff --git a/patches/server/0640-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0639-Oprimise-map-impl-for-tracked-players.patch similarity index 100% rename from patches/server/0640-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0639-Oprimise-map-impl-for-tracked-players.patch diff --git a/patches/server/0641-Add-missing-InventoryType.patch b/patches/server/0640-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/0641-Add-missing-InventoryType.patch rename to patches/server/0640-Add-missing-InventoryType.patch diff --git a/patches/server/0642-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0641-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0642-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0641-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0643-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 100% rename from patches/server/0643-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch diff --git a/patches/server/0644-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0643-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0644-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0643-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0645-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 100% rename from patches/server/0645-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/server/0646-Add-packet-limiter-config.patch b/patches/server/0645-Add-packet-limiter-config.patch similarity index 100% rename from patches/server/0646-Add-packet-limiter-config.patch rename to patches/server/0645-Add-packet-limiter-config.patch diff --git a/patches/server/0647-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0647-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0648-Ensure-valid-vehicle-status.patch b/patches/server/0647-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/server/0648-Ensure-valid-vehicle-status.patch rename to patches/server/0647-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0649-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0648-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0649-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0648-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0650-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0650-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0651-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0650-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0651-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0650-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0652-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0651-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0652-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0651-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0653-Preserve-overstacked-loot.patch b/patches/server/0652-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0653-Preserve-overstacked-loot.patch rename to patches/server/0652-Preserve-overstacked-loot.patch diff --git a/patches/server/0654-Update-head-rotation-in-missing-places.patch b/patches/server/0653-Update-head-rotation-in-missing-places.patch similarity index 93% rename from patches/server/0654-Update-head-rotation-in-missing-places.patch rename to patches/server/0653-Update-head-rotation-in-missing-places.patch index d43abb0d8a..5fdcb1a6cb 100644 --- a/patches/server/0654-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0653-Update-head-rotation-in-missing-places.patch @@ -8,7 +8,7 @@ This is because bukkit uses a separate head rotation field for yaw. This issue only applies to players. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e6ef67a7a2eab5314c95e751895b4d4ce71c91b8..efdc94c6e57dcd5c122300f77ca0cc058651aa7e 100644 +index 5dce3d38ecd7b7639f02f3e1e92f3723f4a42c39..ec23aa4f86fed6890273d06b8cfb4000daf3c515 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1790,6 +1790,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0655-prevent-unintended-light-block-manipulation.patch b/patches/server/0654-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0655-prevent-unintended-light-block-manipulation.patch rename to patches/server/0654-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0656-Fix-CraftCriteria-defaults-map.patch b/patches/server/0655-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0656-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0655-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0657-Fix-upstreams-block-state-factories.patch b/patches/server/0656-Fix-upstreams-block-state-factories.patch similarity index 99% rename from patches/server/0657-Fix-upstreams-block-state-factories.patch rename to patches/server/0656-Fix-upstreams-block-state-factories.patch index cd44e53b99..b930948485 100644 --- a/patches/server/0657-Fix-upstreams-block-state-factories.patch +++ b/patches/server/0656-Fix-upstreams-block-state-factories.patch @@ -26,7 +26,7 @@ index 53443b472d21633f49c102b330c8406c92f09d8d..4893eaf93738da860014ddf3ad003334 if (state instanceof InventoryHolder) return (InventoryHolder) state; return null; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java -index f1f6d85399db86ce7aee1fccde51d6259b427e7e..53d466bfa66573f178fd0e0247bcefc04902c38f 100644 +index ff3f88f107a4c059688566b69dcdf48bc01210ab..7cd0fae59c497861063827eda4243cc6c11e7cff 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java @@ -13,7 +13,7 @@ import org.bukkit.persistence.PersistentDataContainer; diff --git a/patches/server/0658-Configurable-feature-seeds.patch b/patches/server/0657-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0658-Configurable-feature-seeds.patch rename to patches/server/0657-Configurable-feature-seeds.patch diff --git a/patches/server/0659-Add-root-admin-user-detection.patch b/patches/server/0658-Add-root-admin-user-detection.patch similarity index 100% rename from patches/server/0659-Add-root-admin-user-detection.patch rename to patches/server/0658-Add-root-admin-user-detection.patch diff --git a/patches/server/0660-Always-allow-item-changing-in-Fireball.patch b/patches/server/0659-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0660-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0659-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0661-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0660-don-t-attempt-to-teleport-dead-entities.patch similarity index 91% rename from patches/server/0661-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0660-don-t-attempt-to-teleport-dead-entities.patch index 5eff5788eb..96f8ca01bb 100644 --- a/patches/server/0661-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0660-don-t-attempt-to-teleport-dead-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index efdc94c6e57dcd5c122300f77ca0cc058651aa7e..5691ce8e654b05d466f179f87b17cc627de98fcb 100644 +index ec23aa4f86fed6890273d06b8cfb4000daf3c515..a89cd343bee7ea919c3ba5789e37b05e6a1cf334 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -718,7 +718,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0662-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/server/0662-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0663-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0663-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0664-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0663-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0664-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0663-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0665-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/server/0665-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0666-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0665-Hide-unnecessary-itemmeta-from-clients.patch similarity index 100% rename from patches/server/0666-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0665-Hide-unnecessary-itemmeta-from-clients.patch diff --git a/patches/server/0667-Fix-Spigot-growth-modifiers.patch b/patches/server/0666-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0667-Fix-Spigot-growth-modifiers.patch rename to patches/server/0666-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0668-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0668-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0669-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0668-Add-PlayerItemFrameChangeEvent.patch similarity index 97% rename from patches/server/0669-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0668-Add-PlayerItemFrameChangeEvent.patch index e46cc3be4c..7dd61945d1 100644 --- a/patches/server/0669-Add-PlayerItemFrameChangeEvent.patch +++ b/patches/server/0668-Add-PlayerItemFrameChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerItemFrameChangeEvent diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index 8289ea080aa297f75cdbc8d591d6efa6a0def0ea..3ff1ae5ae705cd8d5c8529e1dcdd5ccaed908830 100644 +index 5c507b1160835fd4beb3b2d5b621250540545d4e..ab85050a64d4897aff11d0780d8cb26660918ac7 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java @@ -3,6 +3,7 @@ package net.minecraft.world.entity.decoration; diff --git a/patches/server/0670-Optimize-HashMapPalette.patch b/patches/server/0669-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0670-Optimize-HashMapPalette.patch rename to patches/server/0669-Optimize-HashMapPalette.patch diff --git a/patches/server/0671-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0670-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/server/0671-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0670-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/server/0672-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0672-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0673-Add-more-Campfire-API.patch b/patches/server/0672-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0673-Add-more-Campfire-API.patch rename to patches/server/0672-Add-more-Campfire-API.patch diff --git a/patches/server/0674-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0674-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0675-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0674-Forward-CraftEntity-in-teleport-command.patch similarity index 95% rename from patches/server/0675-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0674-Forward-CraftEntity-in-teleport-command.patch index 493db169a4..18a8c45967 100644 --- a/patches/server/0675-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0674-Forward-CraftEntity-in-teleport-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5691ce8e654b05d466f179f87b17cc627de98fcb..653b5bedf9b6132a5410be5f9c36a36cf99b6f68 100644 +index a89cd343bee7ea919c3ba5789e37b05e6a1cf334..6c8478c9ad154b25e11085ac47552b5855b5e9d1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3263,6 +3263,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0676-Improve-scoreboard-entries.patch b/patches/server/0675-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0676-Improve-scoreboard-entries.patch rename to patches/server/0675-Improve-scoreboard-entries.patch diff --git a/patches/server/0677-Entity-powdered-snow-API.patch b/patches/server/0676-Entity-powdered-snow-API.patch similarity index 92% rename from patches/server/0677-Entity-powdered-snow-API.patch rename to patches/server/0676-Entity-powdered-snow-API.patch index e06e388df9..60a2d3839b 100644 --- a/patches/server/0677-Entity-powdered-snow-API.patch +++ b/patches/server/0676-Entity-powdered-snow-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Entity powdered snow API public net.minecraft.world.entity.monster.Skeleton inPowderSnowTime diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 6a31fb773798e911e731c35e2d52eb1073ed9f07..6a8251ae85f192925493b3e084c0e53820a9be97 100644 +index 06febdb103f98dd16cca32d7345b0ca6b52dcade..8f0df02a81c36244a3906efa6605f5eba030bfb9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1087,6 +1087,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -21,7 +21,7 @@ index 6a31fb773798e911e731c35e2d52eb1073ed9f07..6a8251ae85f192925493b3e084c0e538 + } // Paper end - // Paper start - move up invisibility + // Paper start - missing entity api diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java index a0ea54181de6c6685deef265cbe9f66aabbca42b..6f98da9be6aef35e3b5c940188b872459a383c8e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java diff --git a/patches/server/0678-Add-API-for-item-entity-health.patch b/patches/server/0677-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0678-Add-API-for-item-entity-health.patch rename to patches/server/0677-Add-API-for-item-entity-health.patch diff --git a/patches/server/0679-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0678-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0679-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0678-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0680-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0680-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0681-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0681-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0682-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0682-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0683-Fix-bees-aging-inside-hives.patch b/patches/server/0682-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0683-Fix-bees-aging-inside-hives.patch rename to patches/server/0682-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0684-Bucketable-API.patch b/patches/server/0683-Bucketable-API.patch similarity index 100% rename from patches/server/0684-Bucketable-API.patch rename to patches/server/0683-Bucketable-API.patch diff --git a/patches/server/0685-Validate-usernames.patch b/patches/server/0684-Validate-usernames.patch similarity index 100% rename from patches/server/0685-Validate-usernames.patch rename to patches/server/0684-Validate-usernames.patch diff --git a/patches/server/0686-Make-water-animal-spawn-height-configurable.patch b/patches/server/0685-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0686-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0685-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0687-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/server/0687-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/server/0688-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0687-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/server/0688-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0687-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/server/0689-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0688-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/server/0689-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/server/0688-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/server/0690-Multiple-Entries-with-Scoreboards.patch b/patches/server/0689-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/server/0690-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0689-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/server/0691-Reset-placed-block-on-exception.patch b/patches/server/0690-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/server/0691-Reset-placed-block-on-exception.patch rename to patches/server/0690-Reset-placed-block-on-exception.patch diff --git a/patches/server/0692-Add-configurable-height-for-slime-spawn.patch b/patches/server/0691-Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/server/0692-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0691-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/server/0693-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0692-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/server/0693-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0692-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/server/0694-Multi-Block-Change-API-Implementation.patch b/patches/server/0693-Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/server/0694-Multi-Block-Change-API-Implementation.patch rename to patches/server/0693-Multi-Block-Change-API-Implementation.patch diff --git a/patches/server/0695-Fix-NotePlayEvent.patch b/patches/server/0694-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0695-Fix-NotePlayEvent.patch rename to patches/server/0694-Fix-NotePlayEvent.patch diff --git a/patches/server/0696-Freeze-Tick-Lock-API.patch b/patches/server/0695-Freeze-Tick-Lock-API.patch similarity index 95% rename from patches/server/0696-Freeze-Tick-Lock-API.patch rename to patches/server/0695-Freeze-Tick-Lock-API.patch index 7ca49418f1..65e67e5965 100644 --- a/patches/server/0696-Freeze-Tick-Lock-API.patch +++ b/patches/server/0695-Freeze-Tick-Lock-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 653b5bedf9b6132a5410be5f9c36a36cf99b6f68..80d5a7a77fab3b978ee4a1a76b992eb666486792 100644 +index 6c8478c9ad154b25e11085ac47552b5855b5e9d1..7e6ea850078179f7c63b597a788ef105802a0260 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -405,6 +405,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -59,7 +59,7 @@ index 9af308ef5e55df9ce08b25e358e48d1c6f67d663..511e8e789932df77999689659d1efbe3 if (this.isInPowderSnow && this.canFreeze()) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 71f9b7bbbabae9291fdb9f902f3f69c13e715c0e..a5a9c34709d3bb716e2dc9bb6bd548992df74f46 100644 +index 8f0df02a81c36244a3906efa6605f5eba030bfb9..88e05b8ec5f442b3ad14e3b39a06beeca5c169ae 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -321,6 +321,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0697-More-PotionEffectType-API.patch b/patches/server/0696-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0697-More-PotionEffectType-API.patch rename to patches/server/0696-More-PotionEffectType-API.patch diff --git a/patches/server/0698-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0697-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0698-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0697-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0699-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0698-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/server/0699-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0698-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/server/0700-Add-missing-structure-set-seed-configs.patch b/patches/server/0699-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/server/0700-Add-missing-structure-set-seed-configs.patch rename to patches/server/0699-Add-missing-structure-set-seed-configs.patch diff --git a/patches/server/0701-Implement-regenerateChunk.patch b/patches/server/0700-Implement-regenerateChunk.patch similarity index 100% rename from patches/server/0701-Implement-regenerateChunk.patch rename to patches/server/0700-Implement-regenerateChunk.patch diff --git a/patches/server/0702-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0701-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0702-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0701-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0703-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/server/0703-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0704-Add-GameEvent-tags.patch b/patches/server/0703-Add-GameEvent-tags.patch similarity index 100% rename from patches/server/0704-Add-GameEvent-tags.patch rename to patches/server/0703-Add-GameEvent-tags.patch diff --git a/patches/server/0705-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/server/0705-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/server/0706-Furnace-RecipesUsed-API.patch b/patches/server/0705-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/server/0706-Furnace-RecipesUsed-API.patch rename to patches/server/0705-Furnace-RecipesUsed-API.patch diff --git a/patches/server/0707-Configurable-sculk-sensor-listener-range.patch b/patches/server/0706-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/server/0707-Configurable-sculk-sensor-listener-range.patch rename to patches/server/0706-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/server/0708-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0707-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/server/0708-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0707-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0709-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 100% rename from patches/server/0709-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch diff --git a/patches/server/0710-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0709-Put-world-into-worldlist-before-initing-the-world.patch similarity index 100% rename from patches/server/0710-Put-world-into-worldlist-before-initing-the-world.patch rename to patches/server/0709-Put-world-into-worldlist-before-initing-the-world.patch diff --git a/patches/server/0711-Fix-Entity-Position-Desync.patch b/patches/server/0710-Fix-Entity-Position-Desync.patch similarity index 100% rename from patches/server/0711-Fix-Entity-Position-Desync.patch rename to patches/server/0710-Fix-Entity-Position-Desync.patch diff --git a/patches/server/0712-Custom-Potion-Mixes.patch b/patches/server/0711-Custom-Potion-Mixes.patch similarity index 100% rename from patches/server/0712-Custom-Potion-Mixes.patch rename to patches/server/0711-Custom-Potion-Mixes.patch diff --git a/patches/server/0713-Force-close-world-loading-screen.patch b/patches/server/0712-Force-close-world-loading-screen.patch similarity index 100% rename from patches/server/0713-Force-close-world-loading-screen.patch rename to patches/server/0712-Force-close-world-loading-screen.patch diff --git a/patches/server/0714-Fix-falling-block-spawn-methods.patch b/patches/server/0713-Fix-falling-block-spawn-methods.patch similarity index 100% rename from patches/server/0714-Fix-falling-block-spawn-methods.patch rename to patches/server/0713-Fix-falling-block-spawn-methods.patch diff --git a/patches/server/0715-Expose-furnace-minecart-push-values.patch b/patches/server/0714-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0715-Expose-furnace-minecart-push-values.patch rename to patches/server/0714-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0716-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0715-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0716-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0715-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0717-More-Projectile-API.patch b/patches/server/0716-More-Projectile-API.patch similarity index 97% rename from patches/server/0717-More-Projectile-API.patch rename to patches/server/0716-More-Projectile-API.patch index ef828fda14..30d520d8be 100644 --- a/patches/server/0717-More-Projectile-API.patch +++ b/patches/server/0716-More-Projectile-API.patch @@ -133,7 +133,7 @@ index 91c2d0b40d3fca86938cd454e1415a4eea3df7c7..c1c52f4fc5f900fac4098e5e37c52dfc + // Paper end - More projectile API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java -index 762c395e45a681a11f3fe9d10e7f0ba310786e80..6d2fe30742f8b41d53dd2cbff120fcc042ea0e0c 100644 +index 35d8fbd9c5751568a1a3b8928017e23cd41bb163..3a749f78be3968e499e096196eaaa0b433a53c06 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java @@ -58,20 +58,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { @@ -158,10 +158,17 @@ index 762c395e45a681a11f3fe9d10e7f0ba310786e80..6d2fe30742f8b41d53dd2cbff120fcc0 @Override public boolean isInBlock() { -@@ -105,6 +92,27 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { - return org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(getHandle().getPickupItem()); +@@ -99,6 +86,35 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { + this.getHandle().pickup = net.minecraft.world.entity.projectile.AbstractArrow.Pickup.byOrdinal(status.ordinal()); } ++ // Paper start ++ @Override ++ @org.jetbrains.annotations.NotNull ++ public org.bukkit.craftbukkit.inventory.CraftItemStack getItemStack() { ++ return org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(getHandle().getPickupItem()); ++ } ++ + @Override + public void setLifetimeTicks(int ticks) { + this.getHandle().life = ticks; @@ -182,12 +189,13 @@ index 762c395e45a681a11f3fe9d10e7f0ba310786e80..6d2fe30742f8b41d53dd2cbff120fcc0 + public void setHitSound(@org.jetbrains.annotations.NotNull org.bukkit.Sound sound) { + this.getHandle().setSoundEvent(org.bukkit.craftbukkit.CraftSound.bukkitToMinecraft(sound)); + } ++ // Paper end + @Override - public void setNoPhysics(boolean noPhysics) { - this.getHandle().setNoPhysics(noPhysics); + public void setTicksLived(int value) { + super.setTicksLived(value); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -index 73cb7aa01af3eed71b05b1a539f082b26dcd8d60..2783e218d5e5c24787429237974e196761f4d02b 100644 +index e1a2f0924da6ebcdf332040f922226af5d8a2d45..a8699b274b51c5f6691557c3c3db88436f05e304 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java @@ -32,20 +32,7 @@ public class CraftFireball extends AbstractProjectile implements Fireball { diff --git a/patches/server/0718-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0717-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0718-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0717-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0719-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0718-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 100% rename from patches/server/0719-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0718-Don-t-allow-vehicle-movement-from-players-while-tele.patch diff --git a/patches/server/0720-Implement-getComputedBiome-API.patch b/patches/server/0719-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0720-Implement-getComputedBiome-API.patch rename to patches/server/0719-Implement-getComputedBiome-API.patch diff --git a/patches/server/0721-Make-some-itemstacks-nonnull.patch b/patches/server/0720-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0721-Make-some-itemstacks-nonnull.patch rename to patches/server/0720-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0722-Implement-enchantWithLevels-API.patch b/patches/server/0721-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0722-Implement-enchantWithLevels-API.patch rename to patches/server/0721-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0723-Fix-saving-in-unloadWorld.patch b/patches/server/0722-Fix-saving-in-unloadWorld.patch similarity index 100% rename from patches/server/0723-Fix-saving-in-unloadWorld.patch rename to patches/server/0722-Fix-saving-in-unloadWorld.patch diff --git a/patches/server/0724-Buffer-OOB-setBlock-calls.patch b/patches/server/0723-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0724-Buffer-OOB-setBlock-calls.patch rename to patches/server/0723-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0725-Add-TameableDeathMessageEvent.patch b/patches/server/0724-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0725-Add-TameableDeathMessageEvent.patch rename to patches/server/0724-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0726-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 100% rename from patches/server/0726-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch diff --git a/patches/server/0727-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0726-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 100% rename from patches/server/0727-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0726-fix-player-loottables-running-when-mob-loot-gamerule.patch diff --git a/patches/server/0728-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0727-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 91% rename from patches/server/0728-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0727-Ensure-entity-passenger-world-matches-ridden-entity.patch index 846f0c230c..a841c24fcd 100644 --- a/patches/server/0728-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0727-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 80d5a7a77fab3b978ee4a1a76b992eb666486792..3d0f7310840742a5b16f0c0a7115dc0c90202919 100644 +index 7e6ea850078179f7c63b597a788ef105802a0260..2476b3fa3ecd976c6f6fb27dc3ad815bbab0165f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2580,7 +2580,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0729-cache-resource-keys.patch b/patches/server/0728-cache-resource-keys.patch similarity index 100% rename from patches/server/0729-cache-resource-keys.patch rename to patches/server/0728-cache-resource-keys.patch diff --git a/patches/server/0730-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0729-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/server/0730-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0729-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/server/0731-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0730-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0731-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0730-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0732-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0731-Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/server/0732-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0731-Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/server/0733-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0732-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 100% rename from patches/server/0733-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0732-Use-username-instead-of-display-name-in-PlayerList-g.patch diff --git a/patches/server/0734-Expand-PlayerItemDamageEvent.patch b/patches/server/0733-Expand-PlayerItemDamageEvent.patch similarity index 100% rename from patches/server/0734-Expand-PlayerItemDamageEvent.patch rename to patches/server/0733-Expand-PlayerItemDamageEvent.patch diff --git a/patches/server/0735-WorldCreator-keepSpawnLoaded.patch b/patches/server/0734-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/server/0735-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0734-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/server/0736-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0736-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0737-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0736-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/server/0737-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0736-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/server/0738-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0737-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0738-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0737-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0739-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0738-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0739-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0738-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0740-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0739-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0740-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0739-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0741-Add-PlayerStopUsingItemEvent.patch b/patches/server/0740-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/server/0741-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0740-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/server/0742-Don-t-tick-markers.patch b/patches/server/0741-Don-t-tick-markers.patch similarity index 100% rename from patches/server/0742-Don-t-tick-markers.patch rename to patches/server/0741-Don-t-tick-markers.patch diff --git a/patches/server/0743-Expand-FallingBlock-API.patch b/patches/server/0742-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0743-Expand-FallingBlock-API.patch rename to patches/server/0742-Expand-FallingBlock-API.patch diff --git a/patches/server/0744-Add-support-for-Proxy-Protocol.patch b/patches/server/0743-Add-support-for-Proxy-Protocol.patch similarity index 100% rename from patches/server/0744-Add-support-for-Proxy-Protocol.patch rename to patches/server/0743-Add-support-for-Proxy-Protocol.patch diff --git a/patches/server/0745-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0744-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0745-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0744-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0746-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0745-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0746-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0745-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0747-properly-read-and-store-sus-effect-duration.patch b/patches/server/0746-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/0747-properly-read-and-store-sus-effect-duration.patch rename to patches/server/0746-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/0748-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0747-Sanitize-sent-BlockEntity-NBT.patch similarity index 100% rename from patches/server/0748-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0747-Sanitize-sent-BlockEntity-NBT.patch diff --git a/patches/server/0749-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0748-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0749-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0748-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0750-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0749-Prevent-entity-loading-causing-async-lookups.patch similarity index 97% rename from patches/server/0750-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0749-Prevent-entity-loading-causing-async-lookups.patch index c9ec6cc4c0..17a6ab001e 100644 --- a/patches/server/0750-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0749-Prevent-entity-loading-causing-async-lookups.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3d0f7310840742a5b16f0c0a7115dc0c90202919..45712b358e97b65396f63b34c09debc1d42fdbb9 100644 +index 2476b3fa3ecd976c6f6fb27dc3ad815bbab0165f..455cfdc2ce0960347605e149b88afab5ad8a3b05 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -727,6 +727,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0751-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0750-Throw-exception-on-world-create-while-being-ticked.patch similarity index 100% rename from patches/server/0751-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0750-Throw-exception-on-world-create-while-being-ticked.patch diff --git a/patches/server/0752-Dont-resent-entity-on-art-update.patch b/patches/server/0751-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/server/0752-Dont-resent-entity-on-art-update.patch rename to patches/server/0751-Dont-resent-entity-on-art-update.patch diff --git a/patches/server/0753-Add-WardenAngerChangeEvent.patch b/patches/server/0752-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/server/0753-Add-WardenAngerChangeEvent.patch rename to patches/server/0752-Add-WardenAngerChangeEvent.patch diff --git a/patches/server/0754-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0753-Add-option-for-strict-advancement-dimension-checks.patch similarity index 100% rename from patches/server/0754-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0753-Add-option-for-strict-advancement-dimension-checks.patch diff --git a/patches/server/0755-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0754-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/server/0755-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0754-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/0756-Nameable-Banner-API.patch b/patches/server/0755-Nameable-Banner-API.patch similarity index 100% rename from patches/server/0756-Nameable-Banner-API.patch rename to patches/server/0755-Nameable-Banner-API.patch diff --git a/patches/server/0757-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0756-Don-t-broadcast-messages-to-command-blocks.patch similarity index 100% rename from patches/server/0757-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0756-Don-t-broadcast-messages-to-command-blocks.patch diff --git a/patches/server/0758-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0757-Prevent-empty-items-from-being-added-to-world.patch similarity index 100% rename from patches/server/0758-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0757-Prevent-empty-items-from-being-added-to-world.patch diff --git a/patches/server/0759-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0758-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/server/0759-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0758-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/server/0760-Add-Player-getFishHook.patch b/patches/server/0759-Add-Player-getFishHook.patch similarity index 100% rename from patches/server/0760-Add-Player-getFishHook.patch rename to patches/server/0759-Add-Player-getFishHook.patch diff --git a/patches/server/0761-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/server/0761-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/server/0762-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0761-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 98% rename from patches/server/0762-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0761-Add-various-missing-EntityDropItemEvent-calls.patch index ad1ba5c540..a4e7c5b7d4 100644 --- a/patches/server/0762-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0761-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 45712b358e97b65396f63b34c09debc1d42fdbb9..e5b15ef69bedfd94398f1a8d7a84d0fbf3773919 100644 +index 455cfdc2ce0960347605e149b88afab5ad8a3b05..007e5fc95dd5cb3973f45fd6a435cc102d133728 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2491,6 +2491,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0763-Fix-Bee-flower-NPE.patch b/patches/server/0762-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/server/0763-Fix-Bee-flower-NPE.patch rename to patches/server/0762-Fix-Bee-flower-NPE.patch diff --git a/patches/server/0764-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0763-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 100% rename from patches/server/0764-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0763-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch diff --git a/patches/server/0765-More-Teleport-API.patch b/patches/server/0764-More-Teleport-API.patch similarity index 99% rename from patches/server/0765-More-Teleport-API.patch rename to patches/server/0764-More-Teleport-API.patch index aa88800118..c593fa72c5 100644 --- a/patches/server/0765-More-Teleport-API.patch +++ b/patches/server/0764-More-Teleport-API.patch @@ -29,7 +29,7 @@ index 5775d071f714e7b9d959bfa94510b865f489e68e..27eb4bc4d1276ea36b97d0faeed2acee d0 = to.getX(); d1 = to.getY(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index a5a9c34709d3bb716e2dc9bb6bd548992df74f46..9ea189c26c6a5fae84bcc7ed098426d8c001cd5e 100644 +index 88e05b8ec5f442b3ad14e3b39a06beeca5c169ae..70c1b20c2b25fbe53255f1753d86570c975767ab 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -219,15 +219,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0766-Add-EntityPortalReadyEvent.patch b/patches/server/0765-Add-EntityPortalReadyEvent.patch similarity index 95% rename from patches/server/0766-Add-EntityPortalReadyEvent.patch rename to patches/server/0765-Add-EntityPortalReadyEvent.patch index 1d064ea6c7..41d4a4e570 100644 --- a/patches/server/0766-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0765-Add-EntityPortalReadyEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e5b15ef69bedfd94398f1a8d7a84d0fbf3773919..45a7b217ab6ef3a7c4ad1c07824d7185d4847086 100644 +index 007e5fc95dd5cb3973f45fd6a435cc102d133728..06fbea11c20db3a1585b969b1578073821c5b316 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2832,6 +2832,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0767-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0766-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/server/0767-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0766-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/server/0768-Send-block-entities-after-destroy-prediction.patch b/patches/server/0767-Send-block-entities-after-destroy-prediction.patch similarity index 100% rename from patches/server/0768-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0767-Send-block-entities-after-destroy-prediction.patch diff --git a/patches/server/0769-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0768-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 100% rename from patches/server/0769-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0768-Warn-on-plugins-accessing-faraway-chunks.patch diff --git a/patches/server/0770-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0769-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/server/0770-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0769-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/server/0771-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0770-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0771-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0770-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0772-Collision-API.patch b/patches/server/0771-Collision-API.patch similarity index 90% rename from patches/server/0772-Collision-API.patch rename to patches/server/0771-Collision-API.patch index da2d02ef43..8cc69f84e5 100644 --- a/patches/server/0772-Collision-API.patch +++ b/patches/server/0771-Collision-API.patch @@ -22,13 +22,13 @@ index fbcf1320ef9c1817b24aa8724cd6cf07319c20b9..5680e9772a2d90e997d2d0aacdda9edd // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index a47e8994b52576d88fa90b7a86cbe0fb7493fa6d..3cdc8787c6a481da6cb294208eebce0636a58d4f 100644 +index 70c1b20c2b25fbe53255f1753d86570c975767ab..254df37281a358cc0ac99b46f34daf2fd9774d5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1138,4 +1138,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - this.getHandle().setSharedFlag(Entity.FLAG_INVISIBLE, invisible); +@@ -1148,4 +1148,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + return this.getHandle().noPhysics; } - // Paper end - move up invisibility + // Paper end - missing entity api + + // Paper start - Collision API + @Override diff --git a/patches/server/0773-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0772-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 100% rename from patches/server/0773-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0772-Fix-suggest-command-message-for-brigadier-syntax-exc.patch diff --git a/patches/server/0774-Block-Ticking-API.patch b/patches/server/0773-Block-Ticking-API.patch similarity index 100% rename from patches/server/0774-Block-Ticking-API.patch rename to patches/server/0773-Block-Ticking-API.patch diff --git a/patches/server/0775-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0774-Add-Velocity-IP-Forwarding-Support.patch similarity index 100% rename from patches/server/0775-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0774-Add-Velocity-IP-Forwarding-Support.patch diff --git a/patches/server/0776-Add-NamespacedKey-biome-methods.patch b/patches/server/0775-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0776-Add-NamespacedKey-biome-methods.patch rename to patches/server/0775-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0777-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0776-Fix-plugin-loggers-on-server-shutdown.patch similarity index 96% rename from patches/server/0777-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0776-Fix-plugin-loggers-on-server-shutdown.patch index f27e838474..4f2b23f29b 100644 --- a/patches/server/0777-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0776-Fix-plugin-loggers-on-server-shutdown.patch @@ -49,7 +49,7 @@ index ab1f4e62b2ffed99b47ae23cae172f20ed586b27..97dbe5a44d2791c6dee830654c3935f4 } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index db6398c1822f6ad499feddd6a915984ef9917777..d931a4c6e633bf9c1b3e5e18e880e2ddbfe4aa2a 100644 +index 44f49cc8b7800eebda426a1a04a311979e4516b9..b131a84865d9160d1b5d411515b69e967dbda66c 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -18,6 +18,12 @@ public class Main { diff --git a/patches/server/0778-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0777-Stop-large-look-changes-from-crashing-the-server.patch similarity index 100% rename from patches/server/0778-Stop-large-look-changes-from-crashing-the-server.patch rename to patches/server/0777-Stop-large-look-changes-from-crashing-the-server.patch diff --git a/patches/server/0779-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0779-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0780-Missing-eating-regain-reason.patch b/patches/server/0779-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0780-Missing-eating-regain-reason.patch rename to patches/server/0779-Missing-eating-regain-reason.patch diff --git a/patches/server/0781-Missing-effect-cause.patch b/patches/server/0780-Missing-effect-cause.patch similarity index 100% rename from patches/server/0781-Missing-effect-cause.patch rename to patches/server/0780-Missing-effect-cause.patch diff --git a/patches/server/0782-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0781-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0782-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0781-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0783-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 97% rename from patches/server/0783-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch index ff24a5400c..e097dea832 100644 --- a/patches/server/0783-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch +++ b/patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add a consumer parameter to ProjectileSource#launchProjectile diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 1170cf9b3b61fae099ed8574888187cf4f20ffd1..e559af05c58b7d9c940cea9f48c0f4bd0aad756c 100644 +index a67570fedb8f09a118351b1b5c3d47bc568f5c0c..354c32f67d06228477c723f7e4dbe27116e59a9b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -546,8 +546,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0784-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0783-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0784-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0783-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0785-Configurable-chat-thread-limit.patch b/patches/server/0784-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0785-Configurable-chat-thread-limit.patch rename to patches/server/0784-Configurable-chat-thread-limit.patch diff --git a/patches/server/0786-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0785-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0786-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0785-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0787-fix-Jigsaw-block-kicking-user.patch b/patches/server/0786-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0787-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0786-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0788-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0787-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0788-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0787-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0789-Add-getDrops-to-BlockState.patch b/patches/server/0788-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0789-Add-getDrops-to-BlockState.patch rename to patches/server/0788-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0790-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0789-Fix-a-bunch-of-vanilla-bugs.patch similarity index 99% rename from patches/server/0790-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0789-Fix-a-bunch-of-vanilla-bugs.patch index abd857f514..80d7e8f072 100644 --- a/patches/server/0790-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0789-Fix-a-bunch-of-vanilla-bugs.patch @@ -317,7 +317,7 @@ index 56cc6ecf7f95687db7c7c062b4ee979bfe49844b..94dd97662ba07689fbfa16ef5c7d99fe public void equipArmor(Player player, ItemStack stack) { diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index 3ff1ae5ae705cd8d5c8529e1dcdd5ccaed908830..0c952bfc01b367a297e81768cab436c5474830f1 100644 +index ab85050a64d4897aff11d0780d8cb26660918ac7..bfb9694087821de206fafe867f207e07a4a6a988 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java @@ -282,6 +282,14 @@ public class ItemFrame extends HangingEntity { diff --git a/patches/server/0791-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0790-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 100% rename from patches/server/0791-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0790-Remove-unnecessary-onTrackingStart-during-navigation.patch diff --git a/patches/server/0792-Fix-custom-piglin-loved-items.patch b/patches/server/0791-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0792-Fix-custom-piglin-loved-items.patch rename to patches/server/0791-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0793-EntityPickupItemEvent-fixes.patch b/patches/server/0792-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0793-EntityPickupItemEvent-fixes.patch rename to patches/server/0792-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0794-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0793-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 100% rename from patches/server/0794-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0793-Correctly-handle-interactions-with-items-on-cooldown.patch diff --git a/patches/server/0795-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0794-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/server/0795-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0794-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/server/0796-Elder-Guardian-appearance-API.patch b/patches/server/0795-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/server/0796-Elder-Guardian-appearance-API.patch rename to patches/server/0795-Elder-Guardian-appearance-API.patch diff --git a/patches/server/0797-Allow-changing-bed-s-occupied-property.patch b/patches/server/0796-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0797-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0796-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0798-Add-entity-knockback-API.patch b/patches/server/0797-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0798-Add-entity-knockback-API.patch rename to patches/server/0797-Add-entity-knockback-API.patch diff --git a/patches/server/0799-Detect-headless-JREs.patch b/patches/server/0798-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0799-Detect-headless-JREs.patch rename to patches/server/0798-Detect-headless-JREs.patch diff --git a/patches/server/0800-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0799-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0800-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0799-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0801-Add-EntityToggleSitEvent.patch b/patches/server/0800-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0801-Add-EntityToggleSitEvent.patch rename to patches/server/0800-Add-EntityToggleSitEvent.patch diff --git a/patches/server/0802-Add-fire-tick-delay-option.patch b/patches/server/0801-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0802-Add-fire-tick-delay-option.patch rename to patches/server/0801-Add-fire-tick-delay-option.patch diff --git a/patches/server/0803-Add-Moving-Piston-API.patch b/patches/server/0802-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0803-Add-Moving-Piston-API.patch rename to patches/server/0802-Add-Moving-Piston-API.patch diff --git a/patches/server/0804-Ignore-impossible-spawn-tick.patch b/patches/server/0803-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0804-Ignore-impossible-spawn-tick.patch rename to patches/server/0803-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0805-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0804-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0805-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0804-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0806-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0805-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0806-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0805-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0807-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 95% rename from patches/server/0807-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index efc81025ac..9908d15463 100644 --- a/patches/server/0807-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 45a7b217ab6ef3a7c4ad1c07824d7185d4847086..ea65396e55476dc4e91fe2c26a5c5bd658184d5e 100644 +index 06fbea11c20db3a1585b969b1578073821c5b316..3778d900c272a815e67f79c6d2827be2bbe8195f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3111,6 +3111,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0808-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0807-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/server/0808-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0807-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/server/0809-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0808-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0809-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0808-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0810-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0809-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 94% rename from patches/server/0810-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0809-fix-MC-252817-green-map-markers-do-not-disappear.patch index 6f61c88362..025e7cbcea 100644 --- a/patches/server/0810-fix-MC-252817-green-map-markers-do-not-disappear.patch +++ b/patches/server/0809-fix-MC-252817-green-map-markers-do-not-disappear.patch @@ -6,7 +6,7 @@ Subject: [PATCH] fix MC-252817 (green map markers do not disappear). this bug is caused by the fact that the itemframe's item is set to empty before the green marker is requested to be removed. this is fixed by getting the mapid from this method's parameter, rather than the air block now stored by the item frame. diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index 0c952bfc01b367a297e81768cab436c5474830f1..0cd57021cf308984415ca670f727ae61ac343fe7 100644 +index bfb9694087821de206fafe867f207e07a4a6a988..e875196824ef9618a52ca3f172f202d5584990df 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java @@ -291,7 +291,9 @@ public class ItemFrame extends HangingEntity { diff --git a/patches/server/0811-Add-Player-Warden-Warning-API.patch b/patches/server/0810-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/server/0811-Add-Player-Warden-Warning-API.patch rename to patches/server/0810-Add-Player-Warden-Warning-API.patch diff --git a/patches/server/0812-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0811-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0812-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0811-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0813-Add-paper-dumplisteners-command.patch b/patches/server/0812-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0813-Add-paper-dumplisteners-command.patch rename to patches/server/0812-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0814-check-global-player-list-where-appropriate.patch b/patches/server/0813-check-global-player-list-where-appropriate.patch similarity index 100% rename from patches/server/0814-check-global-player-list-where-appropriate.patch rename to patches/server/0813-check-global-player-list-where-appropriate.patch diff --git a/patches/server/0815-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0814-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0815-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0814-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0816-ItemStack-damage-API.patch b/patches/server/0815-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0816-ItemStack-damage-API.patch rename to patches/server/0815-ItemStack-damage-API.patch diff --git a/patches/server/0817-Friction-API.patch b/patches/server/0816-Friction-API.patch similarity index 100% rename from patches/server/0817-Friction-API.patch rename to patches/server/0816-Friction-API.patch diff --git a/patches/server/0818-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0817-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0818-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0817-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0819-Fix-player-kick-on-shutdown.patch b/patches/server/0818-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0819-Fix-player-kick-on-shutdown.patch rename to patches/server/0818-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0820-Sync-offhand-slot-in-menus.patch b/patches/server/0819-Sync-offhand-slot-in-menus.patch similarity index 100% rename from patches/server/0820-Sync-offhand-slot-in-menus.patch rename to patches/server/0819-Sync-offhand-slot-in-menus.patch diff --git a/patches/server/0821-Player-Entity-Tracking-Events.patch b/patches/server/0820-Player-Entity-Tracking-Events.patch similarity index 96% rename from patches/server/0821-Player-Entity-Tracking-Events.patch rename to patches/server/0820-Player-Entity-Tracking-Events.patch index 37d60f62c0..bcba3dec8b 100644 --- a/patches/server/0821-Player-Entity-Tracking-Events.patch +++ b/patches/server/0820-Player-Entity-Tracking-Events.patch @@ -21,7 +21,7 @@ index 43c8f6a0615f392cc560b2259b116cc9d5fba4e7..ca24463405f138deb882f319bf84696f } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ea65396e55476dc4e91fe2c26a5c5bd658184d5e..e7b260c85ce8054f612089be5d39c5df35ab2d88 100644 +index 3778d900c272a815e67f79c6d2827be2bbe8195f..cce640b055932e2fe26800107ad699743324ee4f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3837,7 +3837,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0822-Limit-pet-look-distance.patch b/patches/server/0821-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0822-Limit-pet-look-distance.patch rename to patches/server/0821-Limit-pet-look-distance.patch diff --git a/patches/server/0823-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0823-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0824-fix-Instruments.patch b/patches/server/0823-fix-Instruments.patch similarity index 100% rename from patches/server/0824-fix-Instruments.patch rename to patches/server/0823-fix-Instruments.patch diff --git a/patches/server/0825-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 100% rename from patches/server/0825-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch diff --git a/patches/server/0826-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0825-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0826-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0825-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0827-Add-BlockLockCheckEvent.patch b/patches/server/0826-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0827-Add-BlockLockCheckEvent.patch rename to patches/server/0826-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0828-Add-Sneaking-API-for-Entities.patch b/patches/server/0827-Add-Sneaking-API-for-Entities.patch similarity index 91% rename from patches/server/0828-Add-Sneaking-API-for-Entities.patch rename to patches/server/0827-Add-Sneaking-API-for-Entities.patch index 675c2e6539..3c82fcadf9 100644 --- a/patches/server/0828-Add-Sneaking-API-for-Entities.patch +++ b/patches/server/0827-Add-Sneaking-API-for-Entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Sneaking API for Entities diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index b7fceba1c7138a5c1d78bf058c9f2d32dbc1d292..69dc7d9cc9ebd681d842099e2de521fd11ff5242 100644 +index 254df37281a358cc0ac99b46f34daf2fd9774d5a..b4ed7612a019a3d4d473dfbfed2067ea437fee06 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -872,6 +872,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0829-Improve-logging-and-errors.patch b/patches/server/0828-Improve-logging-and-errors.patch similarity index 100% rename from patches/server/0829-Improve-logging-and-errors.patch rename to patches/server/0828-Improve-logging-and-errors.patch diff --git a/patches/server/0830-Improve-PortalEvents.patch b/patches/server/0829-Improve-PortalEvents.patch similarity index 93% rename from patches/server/0830-Improve-PortalEvents.patch rename to patches/server/0829-Improve-PortalEvents.patch index c8e1fcfb1f..5ba3f4895a 100644 --- a/patches/server/0830-Improve-PortalEvents.patch +++ b/patches/server/0829-Improve-PortalEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e7b260c85ce8054f612089be5d39c5df35ab2d88..c4b925eaa94e48ffa04fb6fb9a5fa61f1d391ec8 100644 +index cce640b055932e2fe26800107ad699743324ee4f..66266651194cca02bf3814594e6f43b77741808c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3495,7 +3495,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0831-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0830-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0831-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0830-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0832-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0831-Add-missing-SpigotConfig-logCommands-check.patch similarity index 100% rename from patches/server/0832-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0831-Add-missing-SpigotConfig-logCommands-check.patch diff --git a/patches/server/0833-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0832-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0833-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0832-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0834-Flying-Fall-Damage.patch b/patches/server/0833-Flying-Fall-Damage.patch similarity index 100% rename from patches/server/0834-Flying-Fall-Damage.patch rename to patches/server/0833-Flying-Fall-Damage.patch diff --git a/patches/server/0835-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/server/0835-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/server/0836-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 94% rename from patches/server/0836-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index 02a7125dd4..b9fa911513 100644 --- a/patches/server/0836-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c4b925eaa94e48ffa04fb6fb9a5fa61f1d391ec8..d24c2e23a12a196e1f6dc4f5c6d3c69472ddc704 100644 +index 66266651194cca02bf3814594e6f43b77741808c..cf2d4d56dfebeae2baa0712683102b163bdaa9ce 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -957,6 +957,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0837-config-for-disabling-entity-tag-tags.patch b/patches/server/0836-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0837-config-for-disabling-entity-tag-tags.patch rename to patches/server/0836-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0838-Use-single-player-info-update-packet-on-join.patch b/patches/server/0837-Use-single-player-info-update-packet-on-join.patch similarity index 100% rename from patches/server/0838-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0837-Use-single-player-info-update-packet-on-join.patch diff --git a/patches/server/0839-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0838-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 100% rename from patches/server/0839-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0838-Correctly-shrink-items-during-EntityResurrectEvent.patch diff --git a/patches/server/0840-Win-Screen-API.patch b/patches/server/0839-Win-Screen-API.patch similarity index 100% rename from patches/server/0840-Win-Screen-API.patch rename to patches/server/0839-Win-Screen-API.patch diff --git a/patches/server/0841-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0840-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0841-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0840-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0842-Fix-force-opening-enchantment-tables.patch b/patches/server/0841-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0842-Fix-force-opening-enchantment-tables.patch rename to patches/server/0841-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0843-Add-Entity-Body-Yaw-API.patch b/patches/server/0842-Add-Entity-Body-Yaw-API.patch similarity index 94% rename from patches/server/0843-Add-Entity-Body-Yaw-API.patch rename to patches/server/0842-Add-Entity-Body-Yaw-API.patch index 526a085ebb..87974f97d5 100644 --- a/patches/server/0843-Add-Entity-Body-Yaw-API.patch +++ b/patches/server/0842-Add-Entity-Body-Yaw-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 034bfd80ea7d1958eba3e057010379bf4b3661c9..dbb463e8aabe4afce6e119f0d91caff96911384d 100644 +index b4ed7612a019a3d4d473dfbfed2067ea437fee06..509550bbfb7c6bcff5dffa535f40af12aab898a8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1136,6 +1136,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -39,7 +39,7 @@ index 034bfd80ea7d1958eba3e057010379bf4b3661c9..dbb463e8aabe4afce6e119f0d91caff9 + } // Paper end - // Paper start - move up invisibility + // Paper start - missing entity api diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java index e8ef40fed546608d995fd31dc8a9721c00537749..fbe1d5051f8767db240e4d0c256f4a1088c4339c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java diff --git a/patches/server/0844-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0844-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0845-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0844-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 100% rename from patches/server/0845-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0844-Update-the-flag-when-a-captured-block-state-is-outda.patch diff --git a/patches/server/0846-Add-EntityFertilizeEggEvent.patch b/patches/server/0845-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/server/0846-Add-EntityFertilizeEggEvent.patch rename to patches/server/0845-Add-EntityFertilizeEggEvent.patch diff --git a/patches/server/0847-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0846-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0847-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0846-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0848-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0847-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0848-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0847-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0849-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0848-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0849-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0848-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0850-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0849-Fix-advancement-triggers-for-entity-damage.patch similarity index 100% rename from patches/server/0850-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0849-Fix-advancement-triggers-for-entity-damage.patch diff --git a/patches/server/0851-Fix-text-display-error-on-spawn.patch b/patches/server/0850-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0851-Fix-text-display-error-on-spawn.patch rename to patches/server/0850-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0852-Fix-inventories-returning-null-Locations.patch b/patches/server/0851-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0852-Fix-inventories-returning-null-Locations.patch rename to patches/server/0851-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0853-Add-Shearable-API.patch b/patches/server/0852-Add-Shearable-API.patch similarity index 100% rename from patches/server/0853-Add-Shearable-API.patch rename to patches/server/0852-Add-Shearable-API.patch diff --git a/patches/server/0854-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0853-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0854-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0853-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0855-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0854-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0855-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0854-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0856-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0855-Treat-sequence-violations-like-they-should-be.patch similarity index 100% rename from patches/server/0856-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0855-Treat-sequence-violations-like-they-should-be.patch diff --git a/patches/server/0857-remove-duplicate-animate-packet-for-records.patch b/patches/server/0856-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0857-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0856-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0858-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0857-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/server/0858-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0857-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/server/0859-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0858-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 100% rename from patches/server/0859-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0858-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch diff --git a/patches/server/0860-Use-array-for-gamerule-storage.patch b/patches/server/0859-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0860-Use-array-for-gamerule-storage.patch rename to patches/server/0859-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0861-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0860-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0861-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0860-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0862-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0861-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0862-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0861-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0863-Add-Mob-Experience-reward-API.patch b/patches/server/0862-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0863-Add-Mob-Experience-reward-API.patch rename to patches/server/0862-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0864-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0863-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0864-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0863-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0865-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0864-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0865-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0864-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0866-More-accurate-isInOpenWater-impl.patch b/patches/server/0865-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0866-More-accurate-isInOpenWater-impl.patch rename to patches/server/0865-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0867-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0866-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0867-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0866-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0868-Expand-PlayerItemMendEvent.patch b/patches/server/0867-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/server/0868-Expand-PlayerItemMendEvent.patch rename to patches/server/0867-Expand-PlayerItemMendEvent.patch diff --git a/patches/server/0869-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0868-Refresh-ProjectileSource-for-projectiles.patch similarity index 97% rename from patches/server/0869-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0868-Refresh-ProjectileSource-for-projectiles.patch index 1e23e270a4..1dabec492f 100644 --- a/patches/server/0869-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0868-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d24c2e23a12a196e1f6dc4f5c6d3c69472ddc704..c173ecd1283331afcf4db010e65764e5ed6e1eff 100644 +index cf2d4d56dfebeae2baa0712683102b163bdaa9ce..0479dbdf0da7a06735ee08d068ead5fa12fc9860 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -384,6 +384,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0870-Add-transient-modifier-API.patch b/patches/server/0869-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0870-Add-transient-modifier-API.patch rename to patches/server/0869-Add-transient-modifier-API.patch diff --git a/patches/server/0871-Fix-block-place-logic.patch b/patches/server/0870-Fix-block-place-logic.patch similarity index 100% rename from patches/server/0871-Fix-block-place-logic.patch rename to patches/server/0870-Fix-block-place-logic.patch diff --git a/patches/server/0872-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0871-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0872-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0871-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0873-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0872-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0873-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0872-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0874-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0873-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 100% rename from patches/server/0874-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0873-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch diff --git a/patches/server/0875-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0874-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0875-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0874-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0876-Fix-sniffer-removeExploredLocation.patch b/patches/server/0875-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0876-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0875-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0877-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0876-Add-method-to-remove-all-active-potion-effects.patch similarity index 91% rename from patches/server/0877-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0876-Add-method-to-remove-all-active-potion-effects.patch index 20554be569..d2aa5b28fd 100644 --- a/patches/server/0877-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/server/0876-Add-method-to-remove-all-active-potion-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 3302d8e9b7c2c48b20dd257f4699b263d3bc52dc..3f952d1409118535f325f614f1a6507c40efa4d6 100644 +index fbe1d5051f8767db240e4d0c256f4a1088c4339c..993844ee3d76591be38e8d27eba37ff8723443b1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -540,6 +540,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0878-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0877-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0878-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0877-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0879-Add-event-for-player-editing-sign.patch b/patches/server/0878-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0879-Add-event-for-player-editing-sign.patch rename to patches/server/0878-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0880-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0879-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0880-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0879-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0881-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0880-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0881-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0880-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0882-Add-option-to-disable-block-updates.patch b/patches/server/0881-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0882-Add-option-to-disable-block-updates.patch rename to patches/server/0881-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0883-Call-missing-BlockDispenseEvent.patch b/patches/server/0882-Call-missing-BlockDispenseEvent.patch similarity index 100% rename from patches/server/0883-Call-missing-BlockDispenseEvent.patch rename to patches/server/0882-Call-missing-BlockDispenseEvent.patch diff --git a/patches/server/0884-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0883-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 90% rename from patches/server/0884-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0883-Don-t-load-chunks-for-supporting-block-checks.patch index 2fc45560a6..925e5e90ff 100644 --- a/patches/server/0884-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0883-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c173ecd1283331afcf4db010e65764e5ed6e1eff..626f2180b87daa1c00e97dc24b1a78aec4d9f033 100644 +index 0479dbdf0da7a06735ee08d068ead5fa12fc9860..927c298c1922fdd1016ffc72d2ca196adaccd377 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1200,7 +1200,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0885-Optimize-player-lookups-for-beacons.patch b/patches/server/0884-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0885-Optimize-player-lookups-for-beacons.patch rename to patches/server/0884-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0886-Add-Sign-getInteractableSideFor.patch b/patches/server/0885-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0886-Add-Sign-getInteractableSideFor.patch rename to patches/server/0885-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0887-Array-backed-synched-entity-data.patch b/patches/server/0886-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0887-Array-backed-synched-entity-data.patch rename to patches/server/0886-Array-backed-synched-entity-data.patch diff --git a/patches/server/0888-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0887-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0888-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0887-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0889-Fix-BanList-API.patch b/patches/server/0888-Fix-BanList-API.patch similarity index 100% rename from patches/server/0889-Fix-BanList-API.patch rename to patches/server/0888-Fix-BanList-API.patch diff --git a/patches/server/0890-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0889-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0890-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0889-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0891-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0890-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0891-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0890-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0892-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0891-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0892-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0891-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0893-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0892-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 100% rename from patches/server/0893-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0892-ExperienceOrb-should-call-EntitySpawnEvent.patch diff --git a/patches/server/0894-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0893-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0894-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0893-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0895-Add-whitelist-events.patch b/patches/server/0894-Add-whitelist-events.patch similarity index 100% rename from patches/server/0895-Add-whitelist-events.patch rename to patches/server/0894-Add-whitelist-events.patch diff --git a/patches/server/0896-Implement-PlayerFailMoveEvent.patch b/patches/server/0895-Implement-PlayerFailMoveEvent.patch similarity index 100% rename from patches/server/0896-Implement-PlayerFailMoveEvent.patch rename to patches/server/0895-Implement-PlayerFailMoveEvent.patch diff --git a/patches/server/0897-Folia-scheduler-and-owned-region-API.patch b/patches/server/0896-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0897-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0896-Folia-scheduler-and-owned-region-API.patch index ec5f0abb4d..92d708382e 100644 --- a/patches/server/0897-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0896-Folia-scheduler-and-owned-region-API.patch @@ -1185,7 +1185,7 @@ index 0747b0042446271385371f1ca9c8fefdebd851b8..fade1e36037075aae968eb90bbfeac76 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 626f2180b87daa1c00e97dc24b1a78aec4d9f033..abbd6a866b666978ce29211e4027f2b08b0c2e3d 100644 +index 927c298c1922fdd1016ffc72d2ca196adaccd377..ecd7deadbddeb9571b2b8975214e4167c8333ce0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -247,11 +247,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1332,7 +1332,7 @@ index 56a6b3921c74bdeb27f8736302503bee1f731065..b5140b37d2161d89c6c5d6465949e96f ConfigurationSerialization.registerClass(CraftOfflinePlayer.class); ConfigurationSerialization.registerClass(CraftPlayerProfile.class); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index ba915f1b3cd00c8afe39ece9c9e68737673777f5..282a1cebc0cdb6253d024dd399ef794335883662 100644 +index 509550bbfb7c6bcff5dffa535f40af12aab898a8..8086eae45b03fd53bc7cac625b51fc10d8523f4f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -68,6 +68,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0898-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0897-Only-erase-allay-memory-on-non-item-targets.patch similarity index 100% rename from patches/server/0898-Only-erase-allay-memory-on-non-item-targets.patch rename to patches/server/0897-Only-erase-allay-memory-on-non-item-targets.patch diff --git a/patches/server/0899-API-for-updating-recipes-on-clients.patch b/patches/server/0898-API-for-updating-recipes-on-clients.patch similarity index 100% rename from patches/server/0899-API-for-updating-recipes-on-clients.patch rename to patches/server/0898-API-for-updating-recipes-on-clients.patch diff --git a/patches/server/0900-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0899-Fix-rotation-when-spawning-display-entities.patch similarity index 100% rename from patches/server/0900-Fix-rotation-when-spawning-display-entities.patch rename to patches/server/0899-Fix-rotation-when-spawning-display-entities.patch diff --git a/patches/server/0901-Only-capture-actual-tree-growth.patch b/patches/server/0900-Only-capture-actual-tree-growth.patch similarity index 100% rename from patches/server/0901-Only-capture-actual-tree-growth.patch rename to patches/server/0900-Only-capture-actual-tree-growth.patch diff --git a/patches/server/0902-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0901-Use-correct-source-for-mushroom-block-spread-event.patch similarity index 100% rename from patches/server/0902-Use-correct-source-for-mushroom-block-spread-event.patch rename to patches/server/0901-Use-correct-source-for-mushroom-block-spread-event.patch diff --git a/patches/server/0903-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0902-Respect-randomizeData-on-more-entities-when-spawning.patch similarity index 100% rename from patches/server/0903-Respect-randomizeData-on-more-entities-when-spawning.patch rename to patches/server/0902-Respect-randomizeData-on-more-entities-when-spawning.patch diff --git a/patches/server/0904-Use-correct-seed-on-api-world-load.patch b/patches/server/0903-Use-correct-seed-on-api-world-load.patch similarity index 100% rename from patches/server/0904-Use-correct-seed-on-api-world-load.patch rename to patches/server/0903-Use-correct-seed-on-api-world-load.patch diff --git a/patches/server/0905-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0904-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch similarity index 100% rename from patches/server/0905-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch rename to patches/server/0904-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch diff --git a/patches/server/0906-Cache-map-ids-on-item-frames.patch b/patches/server/0905-Cache-map-ids-on-item-frames.patch similarity index 96% rename from patches/server/0906-Cache-map-ids-on-item-frames.patch rename to patches/server/0905-Cache-map-ids-on-item-frames.patch index a65e4d7021..7966ccb012 100644 --- a/patches/server/0906-Cache-map-ids-on-item-frames.patch +++ b/patches/server/0905-Cache-map-ids-on-item-frames.patch @@ -18,7 +18,7 @@ index 1f0931bdd4d82c05d7b5f8b8e5c2cc6d23905c73..da45984c9b2d3a55256efddde9458050 if (worldmap != null) { diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index 0cd57021cf308984415ca670f727ae61ac343fe7..80303f9466b8c7097151be313afc9a383693d18a 100644 +index e875196824ef9618a52ca3f172f202d5584990df..c34701f95580e4cf45fe086115563127432a28c5 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java @@ -50,6 +50,7 @@ public class ItemFrame extends HangingEntity { diff --git a/patches/server/0907-Fix-custom-statistic-criteria-creation.patch b/patches/server/0906-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/server/0907-Fix-custom-statistic-criteria-creation.patch rename to patches/server/0906-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/server/0908-Bandaid-fix-for-Effect.patch b/patches/server/0907-Bandaid-fix-for-Effect.patch similarity index 100% rename from patches/server/0908-Bandaid-fix-for-Effect.patch rename to patches/server/0907-Bandaid-fix-for-Effect.patch diff --git a/patches/server/0909-SculkCatalyst-bloom-API.patch b/patches/server/0908-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/server/0909-SculkCatalyst-bloom-API.patch rename to patches/server/0908-SculkCatalyst-bloom-API.patch diff --git a/patches/server/0910-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0909-API-for-an-entity-s-scoreboard-name.patch similarity index 86% rename from patches/server/0910-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0909-API-for-an-entity-s-scoreboard-name.patch index a93b609b72..dbff93ae56 100644 --- a/patches/server/0910-API-for-an-entity-s-scoreboard-name.patch +++ b/patches/server/0909-API-for-an-entity-s-scoreboard-name.patch @@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different methods depending on the implementation of Entity you were working with. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 1de3a2ed64dcd222bc90d3917c08e12af56450b4..fd7a3176cdd07f50e4e56d98827672042cdf5944 100644 +index 8086eae45b03fd53bc7cac625b51fc10d8523f4f..d91d56175e91fb06138901bad56c1c2544b3d20e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1206,4 +1206,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1216,4 +1216,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return !this.getHandle().level().noCollision(this.getHandle(), aabb); } // Paper end - Collision API diff --git a/patches/server/0911-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0910-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/server/0911-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0910-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/server/0912-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0911-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 100% rename from patches/server/0912-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0911-Don-t-tab-complete-namespaced-commands-if-send-names.patch diff --git a/patches/server/0913-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0912-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 100% rename from patches/server/0913-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0912-Properly-handle-BlockBreakEvent-isDropItems.patch diff --git a/patches/server/0914-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0913-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/server/0914-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0913-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/server/0915-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0914-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 100% rename from patches/server/0915-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0914-Configurable-entity-tracking-range-by-Y-coordinate.patch diff --git a/patches/server/0916-Add-Listing-API-for-Player.patch b/patches/server/0915-Add-Listing-API-for-Player.patch similarity index 100% rename from patches/server/0916-Add-Listing-API-for-Player.patch rename to patches/server/0915-Add-Listing-API-for-Player.patch diff --git a/patches/server/0917-Configurable-Region-Compression-Format.patch b/patches/server/0916-Configurable-Region-Compression-Format.patch similarity index 100% rename from patches/server/0917-Configurable-Region-Compression-Format.patch rename to patches/server/0916-Configurable-Region-Compression-Format.patch diff --git a/patches/server/0918-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0917-Add-BlockFace-to-BlockDamageEvent.patch similarity index 100% rename from patches/server/0918-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/server/0917-Add-BlockFace-to-BlockDamageEvent.patch diff --git a/patches/server/0919-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0918-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/server/0919-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0918-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/server/0920-Expand-Pose-API.patch b/patches/server/0919-Expand-Pose-API.patch similarity index 91% rename from patches/server/0920-Expand-Pose-API.patch rename to patches/server/0919-Expand-Pose-API.patch index 660dffd43c..33bb7d2bc7 100644 --- a/patches/server/0920-Expand-Pose-API.patch +++ b/patches/server/0919-Expand-Pose-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index abbd6a866b666978ce29211e4027f2b08b0c2e3d..bbc3f09105b19eabd3ebb8b9589412b8871739a1 100644 +index ecd7deadbddeb9571b2b8975214e4167c8333ce0..4db254f76bc2fb9867441016b3ac4f45f19d3bea 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -419,6 +419,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -25,7 +25,7 @@ index abbd6a866b666978ce29211e4027f2b08b0c2e3d..bbc3f09105b19eabd3ebb8b9589412b8 if (pose == this.getPose()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index fec2f96cfc42559c44d5d2e907d0706c674dfda7..089eb25d532990773161063658f123f1e5bef2b3 100644 +index d91d56175e91fb06138901bad56c1c2544b3d20e..a81c8a9d76c1d9fdee19132a9a40ffc2ab4d107e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -897,6 +897,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0921-More-DragonBattle-API.patch b/patches/server/0920-More-DragonBattle-API.patch similarity index 100% rename from patches/server/0921-More-DragonBattle-API.patch rename to patches/server/0920-More-DragonBattle-API.patch diff --git a/patches/server/0922-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0921-Deep-clone-unhandled-nbt-tags.patch similarity index 100% rename from patches/server/0922-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0921-Deep-clone-unhandled-nbt-tags.patch diff --git a/patches/server/0923-Add-PlayerPickItemEvent.patch b/patches/server/0922-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/server/0923-Add-PlayerPickItemEvent.patch rename to patches/server/0922-Add-PlayerPickItemEvent.patch diff --git a/patches/server/0924-Allow-trident-custom-damage.patch b/patches/server/0923-Allow-trident-custom-damage.patch similarity index 100% rename from patches/server/0924-Allow-trident-custom-damage.patch rename to patches/server/0923-Allow-trident-custom-damage.patch diff --git a/patches/server/0925-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0924-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/server/0925-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/server/0924-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/server/0926-Optimize-nearest-structure-border-iteration.patch b/patches/server/0925-Optimize-nearest-structure-border-iteration.patch similarity index 100% rename from patches/server/0926-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0925-Optimize-nearest-structure-border-iteration.patch diff --git a/patches/server/0927-Implement-OfflinePlayer-isConnected.patch b/patches/server/0926-Implement-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/server/0927-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0926-Implement-OfflinePlayer-isConnected.patch diff --git a/patches/server/0928-Fix-inventory-desync.patch b/patches/server/0927-Fix-inventory-desync.patch similarity index 100% rename from patches/server/0928-Fix-inventory-desync.patch rename to patches/server/0927-Fix-inventory-desync.patch diff --git a/patches/server/0929-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0928-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 100% rename from patches/server/0929-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0928-Add-titleOverride-to-InventoryOpenEvent.patch diff --git a/patches/server/0930-Configure-sniffer-egg-hatch-time.patch b/patches/server/0929-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/server/0930-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0929-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/server/0931-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0930-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 100% rename from patches/server/0931-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0930-Do-crystal-portal-proximity-check-before-entity-look.patch diff --git a/patches/server/0932-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0931-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0932-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0931-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0933-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0932-Add-slot-sanity-checks-in-container-clicks.patch similarity index 100% rename from patches/server/0933-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0932-Add-slot-sanity-checks-in-container-clicks.patch diff --git a/patches/server/0934-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0933-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0934-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0933-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0935-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0934-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0935-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0934-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0936-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0935-Fix-silent-equipment-change-for-mobs.patch similarity index 100% rename from patches/server/0936-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0935-Fix-silent-equipment-change-for-mobs.patch diff --git a/patches/server/0937-Fix-spigot-s-Forced-Stats.patch b/patches/server/0936-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0937-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0936-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0938-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0937-Add-missing-InventoryHolders-to-inventories.patch similarity index 100% rename from patches/server/0938-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0937-Add-missing-InventoryHolders-to-inventories.patch diff --git a/patches/server/0939-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0938-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/server/0939-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0938-Do-not-read-tile-entities-in-chunks-that-are-positio.patch diff --git a/patches/server/0940-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0939-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0940-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0939-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0941-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0940-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 100% rename from patches/server/0941-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/0940-Remove-Spigot-Bug-Fix-for-MC-109346.patch diff --git a/patches/server/0942-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0941-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0942-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0941-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/0943-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0942-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/0943-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0942-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/0944-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0943-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/0944-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/0943-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/0945-Fix-missing-map-initialize-event-call.patch b/patches/server/0944-Fix-missing-map-initialize-event-call.patch similarity index 100% rename from patches/server/0945-Fix-missing-map-initialize-event-call.patch rename to patches/server/0944-Fix-missing-map-initialize-event-call.patch diff --git a/patches/server/0946-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/0945-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/0946-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/0945-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/0947-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/0946-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/0947-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/0946-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/0948-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0947-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/0948-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/0947-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/0949-Add-player-idle-duration-API.patch b/patches/server/0948-Add-player-idle-duration-API.patch similarity index 100% rename from patches/server/0949-Add-player-idle-duration-API.patch rename to patches/server/0948-Add-player-idle-duration-API.patch diff --git a/patches/server/0950-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0949-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 100% rename from patches/server/0950-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/0949-Don-t-check-if-we-can-see-non-visible-entities.patch diff --git a/patches/server/0951-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0950-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/0951-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/0950-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/0952-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0951-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 100% rename from patches/server/0952-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/0951-Allow-null-itemstack-for-Player-sendEquipmentChange.patch diff --git a/patches/server/0953-Optimize-VarInts.patch b/patches/server/0952-Optimize-VarInts.patch similarity index 100% rename from patches/server/0953-Optimize-VarInts.patch rename to patches/server/0952-Optimize-VarInts.patch diff --git a/patches/server/0954-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0953-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/0954-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/0953-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/0955-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0954-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/server/0955-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/0954-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/server/0956-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0955-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 100% rename from patches/server/0956-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/0955-Broadcast-take-item-packets-with-collector-as-source.patch diff --git a/patches/server/0957-Expand-LingeringPotion-API.patch b/patches/server/0956-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/0957-Expand-LingeringPotion-API.patch rename to patches/server/0956-Expand-LingeringPotion-API.patch diff --git a/patches/server/0958-Add-MaterialTagsTest.patch b/patches/server/0957-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/0958-Add-MaterialTagsTest.patch rename to patches/server/0957-Add-MaterialTagsTest.patch diff --git a/patches/server/0959-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0958-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 100% rename from patches/server/0959-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/0958-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch diff --git a/patches/server/0960-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0959-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/0960-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/0959-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0960-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/0960-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/0962-Add-UUID-attribute-modifier-API.patch b/patches/server/0961-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/0962-Add-UUID-attribute-modifier-API.patch rename to patches/server/0961-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/0963-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0962-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 93% rename from patches/server/0963-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/0962-Fix-missing-event-call-for-entity-teleport-API.patch index 1d122c2f15..7da83443f1 100644 --- a/patches/server/0963-Fix-missing-event-call-for-entity-teleport-API.patch +++ b/patches/server/0962-Fix-missing-event-call-for-entity-teleport-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix missing event call for entity teleport API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 089eb25d532990773161063658f123f1e5bef2b3..9f657dc4075ce01c3a8f871c4a60e5ca5d8eb535 100644 +index a81c8a9d76c1d9fdee19132a9a40ffc2ab4d107e..38c14e06bcada9678b64c6eacf351de10232ee56 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -256,6 +256,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0964-Lazily-create-LootContext-for-criterions.patch b/patches/server/0963-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/0964-Lazily-create-LootContext-for-criterions.patch rename to patches/server/0963-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/0965-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0964-Don-t-fire-sync-events-during-worldgen.patch similarity index 99% rename from patches/server/0965-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/0964-Don-t-fire-sync-events-during-worldgen.patch index 2654c1f60d..58ccbc1f04 100644 --- a/patches/server/0965-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/0964-Don-t-fire-sync-events-during-worldgen.patch @@ -31,7 +31,7 @@ index 8235dace0f4a1090dfbd403db34231ccafe5f30e..9816913ad729fd39c173364b92e5db06 if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 919c9ff3dd97d4bd2d41631176f9671f1987ad91..1de77621f159608f572ab4935ceb78863bb82c59 100644 +index 4db254f76bc2fb9867441016b3ac4f45f19d3bea..4125802dda07d79dd0e1f7e7dc3c0ee85fa0383c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -637,7 +637,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0966-Add-Structure-check-API.patch b/patches/server/0965-Add-Structure-check-API.patch similarity index 100% rename from patches/server/0966-Add-Structure-check-API.patch rename to patches/server/0965-Add-Structure-check-API.patch diff --git a/patches/server/0967-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0966-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/0967-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/0966-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/0968-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0967-Restore-vanilla-entity-drops-behavior.patch similarity index 99% rename from patches/server/0968-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/0967-Restore-vanilla-entity-drops-behavior.patch index e6db1df680..a82abb4271 100644 --- a/patches/server/0968-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/0967-Restore-vanilla-entity-drops-behavior.patch @@ -50,7 +50,7 @@ index 7272dc058c575efee5ac2643ce41b7d12e346e89..ae5a2136a0e266d4c35190f5d3355299 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1de77621f159608f572ab4935ceb78863bb82c59..5ab9ca815cb324c47c3e25a4d84a1b432bb393be 100644 +index 4125802dda07d79dd0e1f7e7dc3c0ee85fa0383c..7c99742e01e894bcc7d89a8588b2f128cf9b765d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2496,6 +2496,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0969-Dont-resend-blocks-on-interactions.patch b/patches/server/0968-Dont-resend-blocks-on-interactions.patch similarity index 100% rename from patches/server/0969-Dont-resend-blocks-on-interactions.patch rename to patches/server/0968-Dont-resend-blocks-on-interactions.patch diff --git a/patches/server/0970-add-more-scoreboard-API.patch b/patches/server/0969-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/0970-add-more-scoreboard-API.patch rename to patches/server/0969-add-more-scoreboard-API.patch diff --git a/patches/server/0971-Improve-Registry.patch b/patches/server/0970-Improve-Registry.patch similarity index 100% rename from patches/server/0971-Improve-Registry.patch rename to patches/server/0970-Improve-Registry.patch diff --git a/patches/server/0972-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0971-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 100% rename from patches/server/0972-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/0971-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch diff --git a/patches/server/0973-Add-experience-points-API.patch b/patches/server/0972-Add-experience-points-API.patch similarity index 100% rename from patches/server/0973-Add-experience-points-API.patch rename to patches/server/0972-Add-experience-points-API.patch diff --git a/patches/server/0974-Add-drops-to-shear-events.patch b/patches/server/0973-Add-drops-to-shear-events.patch similarity index 100% rename from patches/server/0974-Add-drops-to-shear-events.patch rename to patches/server/0973-Add-drops-to-shear-events.patch diff --git a/patches/server/0975-Add-PlayerShieldDisableEvent.patch b/patches/server/0974-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/server/0975-Add-PlayerShieldDisableEvent.patch rename to patches/server/0974-Add-PlayerShieldDisableEvent.patch diff --git a/patches/server/0976-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0975-Validate-ResourceLocation-in-NBT-reading.patch similarity index 100% rename from patches/server/0976-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/0975-Validate-ResourceLocation-in-NBT-reading.patch diff --git a/patches/server/0977-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/0976-Properly-handle-experience-dropping-on-block-break.patch similarity index 100% rename from patches/server/0977-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/0976-Properly-handle-experience-dropping-on-block-break.patch diff --git a/patches/server/0978-Fixup-NamespacedKey-handling.patch b/patches/server/0977-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/0978-Fixup-NamespacedKey-handling.patch rename to patches/server/0977-Fixup-NamespacedKey-handling.patch diff --git a/patches/server/0979-Expose-LootTable-of-DecoratedPot.patch b/patches/server/0978-Expose-LootTable-of-DecoratedPot.patch similarity index 100% rename from patches/server/0979-Expose-LootTable-of-DecoratedPot.patch rename to patches/server/0978-Expose-LootTable-of-DecoratedPot.patch diff --git a/patches/server/0980-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0979-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 100% rename from patches/server/0980-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/0979-Reduce-allocation-of-Vec3D-by-entity-tracker.patch diff --git a/patches/server/0981-Rewrite-dataconverter-system.patch b/patches/server/0980-Rewrite-dataconverter-system.patch similarity index 100% rename from patches/server/0981-Rewrite-dataconverter-system.patch rename to patches/server/0980-Rewrite-dataconverter-system.patch diff --git a/patches/server/0982-Starlight.patch b/patches/server/0981-Starlight.patch similarity index 100% rename from patches/server/0982-Starlight.patch rename to patches/server/0981-Starlight.patch diff --git a/patches/server/0983-Rewrite-chunk-system.patch b/patches/server/0982-Rewrite-chunk-system.patch similarity index 99% rename from patches/server/0983-Rewrite-chunk-system.patch rename to patches/server/0982-Rewrite-chunk-system.patch index 2a35933def..12bc4a8ec8 100644 --- a/patches/server/0983-Rewrite-chunk-system.patch +++ b/patches/server/0982-Rewrite-chunk-system.patch @@ -19375,7 +19375,7 @@ index 640db9f71608310a64e09f1e3e677c01e6ccd98a..f2a7cb6ebed7a4b4019a09af2a025f62 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 5ab9ca815cb324c47c3e25a4d84a1b432bb393be..42d01cec6eba11183409c9a93d068e61f5010153 100644 +index 7c99742e01e894bcc7d89a8588b2f128cf9b765d..3f620c4b8415f09a8d4664481b2d41d421ee836e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -480,6 +480,58 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0984-incremental-chunk-and-player-saving.patch b/patches/server/0983-incremental-chunk-and-player-saving.patch similarity index 100% rename from patches/server/0984-incremental-chunk-and-player-saving.patch rename to patches/server/0983-incremental-chunk-and-player-saving.patch diff --git a/patches/server/0985-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch b/patches/server/0984-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch similarity index 100% rename from patches/server/0985-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch rename to patches/server/0984-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch diff --git a/patches/server/0986-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0985-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch similarity index 100% rename from patches/server/0986-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch rename to patches/server/0985-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch diff --git a/patches/server/0987-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0986-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch similarity index 100% rename from patches/server/0987-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch rename to patches/server/0986-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch diff --git a/patches/server/0988-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/0987-Optimize-Network-Manager-and-add-advanced-packet-sup.patch similarity index 100% rename from patches/server/0988-Optimize-Network-Manager-and-add-advanced-packet-sup.patch rename to patches/server/0987-Optimize-Network-Manager-and-add-advanced-packet-sup.patch diff --git a/patches/server/0989-Allow-Saving-of-Oversized-Chunks.patch b/patches/server/0988-Allow-Saving-of-Oversized-Chunks.patch similarity index 100% rename from patches/server/0989-Allow-Saving-of-Oversized-Chunks.patch rename to patches/server/0988-Allow-Saving-of-Oversized-Chunks.patch diff --git a/patches/server/0990-Fix-World-isChunkGenerated-calls.patch b/patches/server/0989-Fix-World-isChunkGenerated-calls.patch similarity index 100% rename from patches/server/0990-Fix-World-isChunkGenerated-calls.patch rename to patches/server/0989-Fix-World-isChunkGenerated-calls.patch diff --git a/patches/server/0991-Flat-bedrock-generator-settings.patch b/patches/server/0990-Flat-bedrock-generator-settings.patch similarity index 100% rename from patches/server/0991-Flat-bedrock-generator-settings.patch rename to patches/server/0990-Flat-bedrock-generator-settings.patch diff --git a/patches/server/0992-Entity-Activation-Range-2.0.patch b/patches/server/0991-Entity-Activation-Range-2.0.patch similarity index 99% rename from patches/server/0992-Entity-Activation-Range-2.0.patch rename to patches/server/0991-Entity-Activation-Range-2.0.patch index 4bec5ca13e..fd890e7432 100644 --- a/patches/server/0992-Entity-Activation-Range-2.0.patch +++ b/patches/server/0991-Entity-Activation-Range-2.0.patch @@ -111,7 +111,7 @@ index bd8c96e914b156284bdbb960f168e63e1f122920..abb4c32e8b35de332fa517523e8c598e } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 42d01cec6eba11183409c9a93d068e61f5010153..1f892783c16ab8fd863832255a2b03df381aa84e 100644 +index 3f620c4b8415f09a8d4664481b2d41d421ee836e..703b32362cf6a23dfe9326aa4e0ee74511e0d2cb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -412,6 +412,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0993-Optional-per-player-mob-spawns.patch b/patches/server/0992-Optional-per-player-mob-spawns.patch similarity index 100% rename from patches/server/0993-Optional-per-player-mob-spawns.patch rename to patches/server/0992-Optional-per-player-mob-spawns.patch diff --git a/patches/server/0994-Anti-Xray.patch b/patches/server/0993-Anti-Xray.patch similarity index 100% rename from patches/server/0994-Anti-Xray.patch rename to patches/server/0993-Anti-Xray.patch diff --git a/patches/server/0995-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0994-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 100% rename from patches/server/0995-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/0994-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch diff --git a/patches/server/0996-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0995-Optimize-Collision-to-not-load-chunks.patch similarity index 98% rename from patches/server/0996-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/0995-Optimize-Collision-to-not-load-chunks.patch index 2ad06277cb..b992c3fadf 100644 --- a/patches/server/0996-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/0995-Optimize-Collision-to-not-load-chunks.patch @@ -26,7 +26,7 @@ index 461c27292af06a5150de8ec263d0c8527e8c5278..37245ff682837e7e8c9647f4afe30f0d // CraftBukkit end entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1f892783c16ab8fd863832255a2b03df381aa84e..720d08400915da9270ee4abf84bcb73f354ae2b4 100644 +index 703b32362cf6a23dfe9326aa4e0ee74511e0d2cb..8531304667a85436fd557d319fe36a37b3661ae5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -242,6 +242,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0997-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/0996-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 100% rename from patches/server/0997-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/server/0996-Optimize-GoalSelector-Goal.Flag-Set-operations.patch diff --git a/patches/server/0998-Entity-load-save-limit-per-chunk.patch b/patches/server/0997-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/server/0998-Entity-load-save-limit-per-chunk.patch rename to patches/server/0997-Entity-load-save-limit-per-chunk.patch diff --git a/patches/server/0999-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0998-Fix-and-optimise-world-force-upgrading.patch similarity index 100% rename from patches/server/0999-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0998-Fix-and-optimise-world-force-upgrading.patch diff --git a/patches/server/1000-Improved-Watchdog-Support.patch b/patches/server/0999-Improved-Watchdog-Support.patch similarity index 100% rename from patches/server/1000-Improved-Watchdog-Support.patch rename to patches/server/0999-Improved-Watchdog-Support.patch diff --git a/patches/server/1001-Optimize-Voxel-Shape-Merging.patch b/patches/server/1000-Optimize-Voxel-Shape-Merging.patch similarity index 100% rename from patches/server/1001-Optimize-Voxel-Shape-Merging.patch rename to patches/server/1000-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/server/1002-Write-SavedData-IO-async.patch b/patches/server/1001-Write-SavedData-IO-async.patch similarity index 100% rename from patches/server/1002-Write-SavedData-IO-async.patch rename to patches/server/1001-Write-SavedData-IO-async.patch diff --git a/patches/server/1003-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/1002-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch similarity index 100% rename from patches/server/1003-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch rename to patches/server/1002-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch diff --git a/patches/server/1004-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/1003-Use-distance-map-to-optimise-entity-tracker.patch similarity index 99% rename from patches/server/1004-Use-distance-map-to-optimise-entity-tracker.patch rename to patches/server/1003-Use-distance-map-to-optimise-entity-tracker.patch index be6acff7e6..986378b88f 100644 --- a/patches/server/1004-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/1003-Use-distance-map-to-optimise-entity-tracker.patch @@ -236,7 +236,7 @@ index ac1a4ff5f83e53fa2983ff6e834775e51fba715e..284f9548d62f9230c668bb1adb8cb808 return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 720d08400915da9270ee4abf84bcb73f354ae2b4..28ca0aae8f8c755b558a03fc9283fa1a44697e1a 100644 +index 8531304667a85436fd557d319fe36a37b3661ae5..f220e9ba35b07b690df93b1d733e9c666c772de9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -56,6 +56,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; diff --git a/patches/server/1005-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1004-Optimize-Bit-Operations-by-inlining.patch similarity index 100% rename from patches/server/1005-Optimize-Bit-Operations-by-inlining.patch rename to patches/server/1004-Optimize-Bit-Operations-by-inlining.patch diff --git a/patches/server/1006-Remove-streams-from-hot-code.patch b/patches/server/1005-Remove-streams-from-hot-code.patch similarity index 100% rename from patches/server/1006-Remove-streams-from-hot-code.patch rename to patches/server/1005-Remove-streams-from-hot-code.patch diff --git a/patches/server/1007-Eigencraft-redstone-implementation.patch b/patches/server/1006-Eigencraft-redstone-implementation.patch similarity index 100% rename from patches/server/1007-Eigencraft-redstone-implementation.patch rename to patches/server/1006-Eigencraft-redstone-implementation.patch diff --git a/patches/server/1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1007-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/server/1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/1007-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/server/1009-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/1008-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch similarity index 100% rename from patches/server/1009-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch rename to patches/server/1008-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch diff --git a/patches/server/1010-Improve-boat-collision-performance.patch b/patches/server/1009-Improve-boat-collision-performance.patch similarity index 100% rename from patches/server/1010-Improve-boat-collision-performance.patch rename to patches/server/1009-Improve-boat-collision-performance.patch diff --git a/patches/server/1011-Optimise-general-POI-access.patch b/patches/server/1010-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/1011-Optimise-general-POI-access.patch rename to patches/server/1010-Optimise-general-POI-access.patch diff --git a/patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/1013-Execute-chunk-tasks-mid-tick.patch b/patches/server/1012-Execute-chunk-tasks-mid-tick.patch similarity index 100% rename from patches/server/1013-Execute-chunk-tasks-mid-tick.patch rename to patches/server/1012-Execute-chunk-tasks-mid-tick.patch diff --git a/patches/server/1014-Optimise-random-block-ticking.patch b/patches/server/1013-Optimise-random-block-ticking.patch similarity index 100% rename from patches/server/1014-Optimise-random-block-ticking.patch rename to patches/server/1013-Optimise-random-block-ticking.patch diff --git a/patches/server/1015-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1014-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/1015-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/1014-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1015-Use-Velocity-compression-and-cipher-natives.patch similarity index 100% rename from patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/1015-Use-Velocity-compression-and-cipher-natives.patch diff --git a/patches/server/1017-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1016-Detail-more-information-in-watchdog-dumps.patch similarity index 99% rename from patches/server/1017-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/1016-Detail-more-information-in-watchdog-dumps.patch index 710f25f69b..bf520606cb 100644 --- a/patches/server/1017-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/1016-Detail-more-information-in-watchdog-dumps.patch @@ -122,7 +122,7 @@ index 9d18da228c6709e7665ba8babb6ee6d0b36b5dc5..af9f58328c09dddb2875f79128f906b8 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 28ca0aae8f8c755b558a03fc9283fa1a44697e1a..ec01a97cac653fb1a2065289fe5b0c6824732bcb 100644 +index f220e9ba35b07b690df93b1d733e9c666c772de9..c1a8de736ee39e4e177399bc51aedfd135a8100d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1063,8 +1063,43 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1018-Collision-optimisations.patch b/patches/server/1017-Collision-optimisations.patch similarity index 99% rename from patches/server/1018-Collision-optimisations.patch rename to patches/server/1017-Collision-optimisations.patch index c57de0cfdf..de992f75ee 100644 --- a/patches/server/1018-Collision-optimisations.patch +++ b/patches/server/1017-Collision-optimisations.patch @@ -2214,7 +2214,7 @@ index 594cb6ce4bfa6c42212000a1ed983ea95ee2c4bf..97b0119ac71284b3a223c089bec26d87 entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ec01a97cac653fb1a2065289fe5b0c6824732bcb..be2220457e941803b14d78c550d0db777c79a886 100644 +index c1a8de736ee39e4e177399bc51aedfd135a8100d..6de971aca46caad091271d125a079a1b7a5f163d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1250,9 +1250,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1018-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 100% rename from patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/1018-Optimise-collision-checking-in-player-move-packet-ha.patch diff --git a/patches/server/1020-Fix-tripwire-disarming-not-working-as-intended.patch b/patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch similarity index 100% rename from patches/server/1020-Fix-tripwire-disarming-not-working-as-intended.patch rename to patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch diff --git a/patches/server/1021-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1020-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/1021-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/1020-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/1022-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1021-Add-Alternate-Current-redstone-implementation.patch similarity index 100% rename from patches/server/1022-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/1021-Add-Alternate-Current-redstone-implementation.patch diff --git a/patches/server/1023-optimize-dirt-and-snow-spreading.patch b/patches/server/1022-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/1023-optimize-dirt-and-snow-spreading.patch rename to patches/server/1022-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/1024-Properly-resend-entities.patch b/patches/server/1023-Properly-resend-entities.patch similarity index 99% rename from patches/server/1024-Properly-resend-entities.patch rename to patches/server/1023-Properly-resend-entities.patch index a00f094df7..f0d407671b 100644 --- a/patches/server/1024-Properly-resend-entities.patch +++ b/patches/server/1023-Properly-resend-entities.patch @@ -180,7 +180,7 @@ index a1bfd700cd4c39e4bb1b9c140b54b7c82cd8b32c..205b52e486123aa23a1469de896ab1ec } entity.playSound(((Bucketable) entity).getPickupSound(), 1.0F, 1.0F); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 9f657dc4075ce01c3a8f871c4a60e5ca5d8eb535..0b5a31477e3b76833fb97a455842316193663c8e 100644 +index 38c14e06bcada9678b64c6eacf351de10232ee56..7cd7912cecbbbe2c32bfd9b85181115c6d316eb8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1000,7 +1000,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/1025-Optimize-Hoppers.patch b/patches/server/1024-Optimize-Hoppers.patch similarity index 100% rename from patches/server/1025-Optimize-Hoppers.patch rename to patches/server/1024-Optimize-Hoppers.patch diff --git a/patches/server/1026-Improve-performance-of-mass-crafts.patch b/patches/server/1025-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/1026-Improve-performance-of-mass-crafts.patch rename to patches/server/1025-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/1027-Actually-optimise-explosions.patch b/patches/server/1026-Actually-optimise-explosions.patch similarity index 100% rename from patches/server/1027-Actually-optimise-explosions.patch rename to patches/server/1026-Actually-optimise-explosions.patch diff --git a/patches/server/1028-Optimise-chunk-tick-iteration.patch b/patches/server/1027-Optimise-chunk-tick-iteration.patch similarity index 100% rename from patches/server/1028-Optimise-chunk-tick-iteration.patch rename to patches/server/1027-Optimise-chunk-tick-iteration.patch diff --git a/patches/server/1029-Lag-compensation-ticks.patch b/patches/server/1028-Lag-compensation-ticks.patch similarity index 100% rename from patches/server/1029-Lag-compensation-ticks.patch rename to patches/server/1028-Lag-compensation-ticks.patch diff --git a/patches/server/1030-Optimise-nearby-player-retrieval.patch b/patches/server/1029-Optimise-nearby-player-retrieval.patch similarity index 100% rename from patches/server/1030-Optimise-nearby-player-retrieval.patch rename to patches/server/1029-Optimise-nearby-player-retrieval.patch diff --git a/patches/server/1031-Distance-manager-tick-timings.patch b/patches/server/1030-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/1031-Distance-manager-tick-timings.patch rename to patches/server/1030-Distance-manager-tick-timings.patch diff --git a/patches/server/1032-Handle-Oversized-block-entities-in-chunks.patch b/patches/server/1031-Handle-Oversized-block-entities-in-chunks.patch similarity index 100% rename from patches/server/1032-Handle-Oversized-block-entities-in-chunks.patch rename to patches/server/1031-Handle-Oversized-block-entities-in-chunks.patch diff --git a/patches/server/1033-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/1032-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/1033-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/1032-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/1034-Add-ShulkerDuplicateEvent.patch b/patches/server/1033-Add-ShulkerDuplicateEvent.patch similarity index 100% rename from patches/server/1034-Add-ShulkerDuplicateEvent.patch rename to patches/server/1033-Add-ShulkerDuplicateEvent.patch diff --git a/patches/server/1035-Add-api-for-spawn-egg-texture-colors.patch b/patches/server/1034-Add-api-for-spawn-egg-texture-colors.patch similarity index 100% rename from patches/server/1035-Add-api-for-spawn-egg-texture-colors.patch rename to patches/server/1034-Add-api-for-spawn-egg-texture-colors.patch diff --git a/patches/server/1036-Disable-memory-reserve-allocating.patch b/patches/server/1035-Disable-memory-reserve-allocating.patch similarity index 100% rename from patches/server/1036-Disable-memory-reserve-allocating.patch rename to patches/server/1035-Disable-memory-reserve-allocating.patch diff --git a/patches/server/1037-Improve-tag-parser-handling.patch b/patches/server/1036-Improve-tag-parser-handling.patch similarity index 100% rename from patches/server/1037-Improve-tag-parser-handling.patch rename to patches/server/1036-Improve-tag-parser-handling.patch diff --git a/patches/server/1038-Add-Lifecycle-Event-system.patch b/patches/server/1037-Add-Lifecycle-Event-system.patch similarity index 100% rename from patches/server/1038-Add-Lifecycle-Event-system.patch rename to patches/server/1037-Add-Lifecycle-Event-system.patch diff --git a/patches/server/1039-Conduit-API.patch b/patches/server/1038-Conduit-API.patch similarity index 100% rename from patches/server/1039-Conduit-API.patch rename to patches/server/1038-Conduit-API.patch diff --git a/patches/server/1040-ItemStack-Tooltip-API.patch b/patches/server/1039-ItemStack-Tooltip-API.patch similarity index 100% rename from patches/server/1040-ItemStack-Tooltip-API.patch rename to patches/server/1039-ItemStack-Tooltip-API.patch diff --git a/patches/server/1041-Fix-possible-StackOverflowError-for-some-dispenses.patch b/patches/server/1040-Fix-possible-StackOverflowError-for-some-dispenses.patch similarity index 100% rename from patches/server/1041-Fix-possible-StackOverflowError-for-some-dispenses.patch rename to patches/server/1040-Fix-possible-StackOverflowError-for-some-dispenses.patch diff --git a/patches/server/1042-Properly-track-the-changed-item-from-dispense-events.patch b/patches/server/1041-Properly-track-the-changed-item-from-dispense-events.patch similarity index 100% rename from patches/server/1042-Properly-track-the-changed-item-from-dispense-events.patch rename to patches/server/1041-Properly-track-the-changed-item-from-dispense-events.patch diff --git a/patches/server/1043-Add-getChunkSnapshot-includeLightData-parameter.patch b/patches/server/1042-Add-getChunkSnapshot-includeLightData-parameter.patch similarity index 100% rename from patches/server/1043-Add-getChunkSnapshot-includeLightData-parameter.patch rename to patches/server/1042-Add-getChunkSnapshot-includeLightData-parameter.patch diff --git a/patches/server/1044-Add-FluidState-API.patch b/patches/server/1043-Add-FluidState-API.patch similarity index 100% rename from patches/server/1044-Add-FluidState-API.patch rename to patches/server/1043-Add-FluidState-API.patch diff --git a/patches/server/1045-add-number-format-api.patch b/patches/server/1044-add-number-format-api.patch similarity index 100% rename from patches/server/1045-add-number-format-api.patch rename to patches/server/1044-add-number-format-api.patch diff --git a/patches/server/1046-check-if-itemstack-is-stackable-first.patch b/patches/server/1045-check-if-itemstack-is-stackable-first.patch similarity index 100% rename from patches/server/1046-check-if-itemstack-is-stackable-first.patch rename to patches/server/1045-check-if-itemstack-is-stackable-first.patch diff --git a/patches/server/1047-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch b/patches/server/1046-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch similarity index 100% rename from patches/server/1047-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch rename to patches/server/1046-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch diff --git a/patches/server/1048-improve-BanList-types.patch b/patches/server/1047-improve-BanList-types.patch similarity index 100% rename from patches/server/1048-improve-BanList-types.patch rename to patches/server/1047-improve-BanList-types.patch diff --git a/patches/server/1049-Configurable-max-block-fluid-ticks.patch b/patches/server/1048-Configurable-max-block-fluid-ticks.patch similarity index 100% rename from patches/server/1049-Configurable-max-block-fluid-ticks.patch rename to patches/server/1048-Configurable-max-block-fluid-ticks.patch diff --git a/patches/server/1050-disable-forced-empty-world-ticks.patch b/patches/server/1049-disable-forced-empty-world-ticks.patch similarity index 100% rename from patches/server/1050-disable-forced-empty-world-ticks.patch rename to patches/server/1049-disable-forced-empty-world-ticks.patch diff --git a/patches/server/1051-Suspicious-Effect-Entry-API.patch b/patches/server/1050-Suspicious-Effect-Entry-API.patch similarity index 100% rename from patches/server/1051-Suspicious-Effect-Entry-API.patch rename to patches/server/1050-Suspicious-Effect-Entry-API.patch diff --git a/patches/server/1052-Per-world-ticks-per-spawn-settings.patch b/patches/server/1051-Per-world-ticks-per-spawn-settings.patch similarity index 100% rename from patches/server/1052-Per-world-ticks-per-spawn-settings.patch rename to patches/server/1051-Per-world-ticks-per-spawn-settings.patch diff --git a/patches/server/1053-Add-onboarding-message-for-initial-server-start.patch b/patches/server/1052-Add-onboarding-message-for-initial-server-start.patch similarity index 100% rename from patches/server/1053-Add-onboarding-message-for-initial-server-start.patch rename to patches/server/1052-Add-onboarding-message-for-initial-server-start.patch diff --git a/patches/server/1054-Fix-DamageSource-API.patch b/patches/server/1053-Fix-DamageSource-API.patch similarity index 99% rename from patches/server/1054-Fix-DamageSource-API.patch rename to patches/server/1053-Fix-DamageSource-API.patch index 3c80fe5209..b775177307 100644 --- a/patches/server/1054-Fix-DamageSource-API.patch +++ b/patches/server/1053-Fix-DamageSource-API.patch @@ -44,7 +44,7 @@ index 1561b85a45f52a8162f43553f8485bfe084b8f1f..b26e4d58ea1898a5e4b31c3d6ab33f38 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index be2220457e941803b14d78c550d0db777c79a886..f5a86c0fb1a7a313afc4c56ffc445a7fe7821428 100644 +index 6de971aca46caad091271d125a079a1b7a5f163d..b2eff51f1ad1e702525ef298807ea7d2083f6218 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3462,7 +3462,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1055-Expanded-Hopper-API.patch b/patches/server/1054-Expanded-Hopper-API.patch similarity index 100% rename from patches/server/1055-Expanded-Hopper-API.patch rename to patches/server/1054-Expanded-Hopper-API.patch From 00fd87a10fcdfa86db341c051b006303fe068b55 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 25 Mar 2024 13:26:01 +0100 Subject: [PATCH 028/215] Return dummy string instead of empty optional --- .../1036-Improve-tag-parser-handling.patch | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/patches/server/1036-Improve-tag-parser-handling.patch b/patches/server/1036-Improve-tag-parser-handling.patch index 7be702c88c..b5f2c9c42d 100644 --- a/patches/server/1036-Improve-tag-parser-handling.patch +++ b/patches/server/1036-Improve-tag-parser-handling.patch @@ -123,31 +123,32 @@ index 5bec54239a2b185284c10d58854e5a13e33daae5..94cb73e7f60171aa57bd1dbe7e91ef4d + } } diff --git a/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java b/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java -index d45e39bc009281c298f3dfae113dc87f2b3b1fbd..084ffde43447f6ff5e45e9fe3fc6a86bde65fd5a 100644 +index d45e39bc009281c298f3dfae113dc87f2b3b1fbd..981d34dd4cfbc0932b147688751b98552c8beea8 100644 --- a/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java +++ b/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java @@ -197,6 +197,15 @@ public class TranslatableContents implements ComponentContents { @Override public Optional visit(FormattedText.ContentConsumer visitor) { -+ // Paper start ++ // Paper start - Count visited parts + try { + return this.visit(new TranslatableContentConsumer<>(visitor)); -+ } catch (IllegalArgumentException var5) { -+ return Optional.empty(); ++ } catch (IllegalArgumentException ignored) { ++ return visitor.accept("..."); + } + } + private Optional visit(TranslatableContentConsumer visitor) { -+ // Paper end ++ // Paper end - Count visited parts this.decompose(); for(FormattedText formattedText : this.decomposedParts) { -@@ -208,6 +217,24 @@ public class TranslatableContents implements ComponentContents { +@@ -208,6 +217,25 @@ public class TranslatableContents implements ComponentContents { return Optional.empty(); } -+ // Paper start ++ // Paper start - Count visited parts + private static final class TranslatableContentConsumer implements FormattedText.ContentConsumer { ++ private static final IllegalArgumentException EX = new IllegalArgumentException("Too long"); + private final FormattedText.ContentConsumer visitor; + private int visited; + @@ -158,12 +159,12 @@ index d45e39bc009281c298f3dfae113dc87f2b3b1fbd..084ffde43447f6ff5e45e9fe3fc6a86b + @Override + public Optional accept(final String asString) { + if (visited++ > 32) { -+ throw new IllegalArgumentException("Too long"); ++ throw EX; + } + return this.visitor.accept(asString); + } + } -+ // Paper end ++ // Paper end - Count visited parts @Override public MutableComponent resolve(@Nullable CommandSourceStack source, @Nullable Entity sender, int depth) throws CommandSyntaxException { From 710dced8b70c995656a24479f9453676cf6164fc Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Tue, 26 Mar 2024 08:38:26 -0700 Subject: [PATCH 029/215] [ci skip] move custom brig exception to paper package --- .../1036-Improve-tag-parser-handling.patch | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/patches/server/1036-Improve-tag-parser-handling.patch b/patches/server/1036-Improve-tag-parser-handling.patch index b5f2c9c42d..e2c46e261e 100644 --- a/patches/server/1036-Improve-tag-parser-handling.patch +++ b/patches/server/1036-Improve-tag-parser-handling.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve tag parser handling diff --git a/src/main/java/com/mojang/brigadier/CommandDispatcher.java b/src/main/java/com/mojang/brigadier/CommandDispatcher.java -index 92848b64a78fce7a92e1657c2da6fc5ee53eea44..5d5562676a77259b875e15b744b53258533851a7 100644 +index 92848b64a78fce7a92e1657c2da6fc5ee53eea44..4b4f812eb13d5f03bcf3f8724d8aa8dbbc724e8b 100644 --- a/src/main/java/com/mojang/brigadier/CommandDispatcher.java +++ b/src/main/java/com/mojang/brigadier/CommandDispatcher.java @@ -304,9 +304,15 @@ public class CommandDispatcher { @@ -17,7 +17,7 @@ index 92848b64a78fce7a92e1657c2da6fc5ee53eea44..5d5562676a77259b875e15b744b53258 try { child.parse(reader, context); + // Paper start - Handle non-recoverable exceptions -+ } catch (final com.mojang.brigadier.exceptions.TagParseCommandSyntaxException e) { ++ } catch (final io.papermc.paper.brigadier.TagParseCommandSyntaxException e) { + stop = true; + throw e; + // Paper end - Handle non-recoverable exceptions @@ -32,15 +32,17 @@ index 92848b64a78fce7a92e1657c2da6fc5ee53eea44..5d5562676a77259b875e15b744b53258 continue; } -diff --git a/src/main/java/com/mojang/brigadier/exceptions/TagParseCommandSyntaxException.java b/src/main/java/com/mojang/brigadier/exceptions/TagParseCommandSyntaxException.java +diff --git a/src/main/java/io/papermc/paper/brigadier/TagParseCommandSyntaxException.java b/src/main/java/io/papermc/paper/brigadier/TagParseCommandSyntaxException.java new file mode 100644 -index 0000000000000000000000000000000000000000..bf248a215dc69bb303c836112309471aab687e23 +index 0000000000000000000000000000000000000000..a375ad4ba9db990b24a2b9ff366fcba66b753815 --- /dev/null -+++ b/src/main/java/com/mojang/brigadier/exceptions/TagParseCommandSyntaxException.java -@@ -0,0 +1,13 @@ -+package com.mojang.brigadier.exceptions; ++++ b/src/main/java/io/papermc/paper/brigadier/TagParseCommandSyntaxException.java +@@ -0,0 +1,15 @@ ++package io.papermc.paper.brigadier; + +import com.mojang.brigadier.LiteralMessage; ++import com.mojang.brigadier.exceptions.CommandSyntaxException; ++import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import net.minecraft.network.chat.Component; + +public final class TagParseCommandSyntaxException extends CommandSyntaxException { @@ -52,7 +54,7 @@ index 0000000000000000000000000000000000000000..bf248a215dc69bb303c836112309471a + } +} diff --git a/src/main/java/net/minecraft/nbt/TagParser.java b/src/main/java/net/minecraft/nbt/TagParser.java -index 5bec54239a2b185284c10d58854e5a13e33daae5..94cb73e7f60171aa57bd1dbe7e91ef4db94e70b7 100644 +index 5bec54239a2b185284c10d58854e5a13e33daae5..ef970428fe9fe36c242ce6588bb6843eb6179d59 100644 --- a/src/main/java/net/minecraft/nbt/TagParser.java +++ b/src/main/java/net/minecraft/nbt/TagParser.java @@ -48,6 +48,7 @@ public class TagParser { @@ -118,7 +120,7 @@ index 5bec54239a2b185284c10d58854e5a13e33daae5..94cb73e7f60171aa57bd1dbe7e91ef4d + private void increaseDepth() throws CommandSyntaxException { + this.depth++; + if (this.depth > 512) { -+ throw new com.mojang.brigadier.exceptions.TagParseCommandSyntaxException("NBT tag is too complex, depth > 512"); ++ throw new io.papermc.paper.brigadier.TagParseCommandSyntaxException("NBT tag is too complex, depth > 512"); + } + } } @@ -182,7 +184,7 @@ index a5e438a834826161c52ca9db57d234d9ff80a591..4766994cce060564370b0d24836a7da8 @Override diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 98496bcc7ab9adde3fdc8b2cd9eaeceee99e28b4..87e5ee042ab2c052d25ab4c2521a68cf2e2d67b6 100644 +index 98496bcc7ab9adde3fdc8b2cd9eaeceee99e28b4..860d33ac56680babd87358b1d7d2216dac3f7865 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -777,6 +777,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -205,7 +207,7 @@ index 98496bcc7ab9adde3fdc8b2cd9eaeceee99e28b4..87e5ee042ab2c052d25ab4c2521a68cf ParseResults parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); + // Paper start - Handle non-recoverable exceptions + if (!parseresults.getExceptions().isEmpty() -+ && parseresults.getExceptions().values().stream().anyMatch(e -> e instanceof com.mojang.brigadier.exceptions.TagParseCommandSyntaxException)) { ++ && parseresults.getExceptions().values().stream().anyMatch(e -> e instanceof io.papermc.paper.brigadier.TagParseCommandSyntaxException)) { + this.disconnect(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); + return; + } From 45d1486fecab6f50c193bea0fcf03727832f3091 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Fri, 29 Mar 2024 10:43:36 -0700 Subject: [PATCH 030/215] build: Update paperweight to 1.5.12 and Gradle Wrapper to 8.7 (#10361) --- .../re-add-asm-dependency.patch | 29 ------------------ build.gradle.kts | 4 +-- gradle/wrapper/gradle-wrapper.jar | Bin 43462 -> 43453 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew.bat | 20 ++++++------ .../server/0001-Setup-Gradle-project.patch | 10 ++---- settings.gradle.kts | 2 +- 7 files changed, 15 insertions(+), 52 deletions(-) delete mode 100644 build-data/spigot-server-patches/re-add-asm-dependency.patch diff --git a/build-data/spigot-server-patches/re-add-asm-dependency.patch b/build-data/spigot-server-patches/re-add-asm-dependency.patch deleted file mode 100644 index 6e33148caa..0000000000 --- a/build-data/spigot-server-patches/re-add-asm-dependency.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- /dev/null 2024-01-13 10:03:30.400485704 -0800 -+++ CraftBukkit-Patches/9999-re-add-asm-dependency.patch 2024-01-13 21:41:27.650692678 -0800 -@@ -0,0 +1,26 @@ -+From e5eb4fb3bfb61dfd2dc97411cfab5fa94033b90c Mon Sep 17 00:00:00 2001 -+From: Jake Potrebic -+Date: Sat, 13 Jan 2024 21:41:02 -0800 -+Subject: [PATCH] re add asm dependency -+ -+ -+diff --git a/pom.xml b/pom.xml -+index 266853a682..d18fdadf92 100644 -+--- a/pom.xml -++++ b/pom.xml -+@@ -58,6 +58,12 @@ -+ 2.19.0 -+ compile -+ -++ -++ org.ow2.asm -++ asm -++ 9.5 -++ compile -++ -+ -+ org.ow2.asm -+ asm-commons -+-- -+2.43.0 -+ diff --git a/build.gradle.kts b/build.gradle.kts index 2e1633818c..77c0f153a2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { java `maven-publish` id("com.github.johnrengelman.shadow") version "8.1.1" apply false - id("io.papermc.paperweight.core") version "1.5.11" + id("io.papermc.paperweight.core") version "1.5.12" } allprojects { @@ -93,8 +93,6 @@ paperweight { mappingsPatch = layout.projectDirectory.file("build-data/mappings-patch.tiny") reobfMappingsPatch = layout.projectDirectory.file("build-data/reobf-mappings-patch.tiny") - spigotServerPatchPatchesDir = layout.projectDirectory.dir("build-data/spigot-server-patches") - reobfPackagesToFix.addAll( "co.aikar.timings", "com.destroystokyo.paper", diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d64cd4917707c1f8861d8cb53dd15194d4248596..e6441136f3d4ba8a0da8d277868979cfbc8ad796 100644 GIT binary patch delta 34118 zcmY(qRX`kF)3u#IAjsf0xCD212@LM;?(PINyAue(f;$XO2=4Cg1P$=#e%|lo zKk1`B>Q#GH)wNd-&cJofz}3=WfYndTeo)CyX{fOHsQjGa<{e=jamMNwjdatD={CN3>GNchOE9OGPIqr)3v>RcKWR3Z zF-guIMjE2UF0Wqk1)21791y#}ciBI*bAenY*BMW_)AeSuM5}vz_~`+1i!Lo?XAEq{TlK5-efNFgHr6o zD>^vB&%3ZGEWMS>`?tu!@66|uiDvS5`?bF=gIq3rkK(j<_TybyoaDHg8;Y#`;>tXI z=tXo~e9{U!*hqTe#nZjW4z0mP8A9UUv1}C#R*@yu9G3k;`Me0-BA2&Aw6f`{Ozan2 z8c8Cs#dA-7V)ZwcGKH}jW!Ja&VaUc@mu5a@CObzNot?b{f+~+212lwF;!QKI16FDS zodx>XN$sk9;t;)maB^s6sr^L32EbMV(uvW%or=|0@U6cUkE`_!<=LHLlRGJx@gQI=B(nn z-GEjDE}*8>3U$n(t^(b^C$qSTI;}6q&ypp?-2rGpqg7b}pyT zOARu2x>0HB{&D(d3sp`+}ka+Pca5glh|c=M)Ujn_$ly^X6&u z%Q4Y*LtB_>i6(YR!?{Os-(^J`(70lZ&Hp1I^?t@~SFL1!m0x6j|NM!-JTDk)%Q^R< z@e?23FD&9_W{Bgtr&CG&*Oer3Z(Bu2EbV3T9FeQ|-vo5pwzwQ%g&=zFS7b{n6T2ZQ z*!H(=z<{D9@c`KmHO&DbUIzpg`+r5207}4D=_P$ONIc5lsFgn)UB-oUE#{r+|uHc^hzv_df zV`n8&qry%jXQ33}Bjqcim~BY1?KZ}x453Oh7G@fA(}+m(f$)TY%7n=MeLi{jJ7LMB zt(mE*vFnep?YpkT_&WPV9*f>uSi#n#@STJmV&SLZnlLsWYI@y+Bs=gzcqche=&cBH2WL)dkR!a95*Ri)JH_4c*- zl4pPLl^as5_y&6RDE@@7342DNyF&GLJez#eMJjI}#pZN{Y8io{l*D+|f_Y&RQPia@ zNDL;SBERA|B#cjlNC@VU{2csOvB8$HzU$01Q?y)KEfos>W46VMh>P~oQC8k=26-Ku)@C|n^zDP!hO}Y z_tF}0@*Ds!JMt>?4y|l3?`v#5*oV-=vL7}zehMON^=s1%q+n=^^Z{^mTs7}*->#YL z)x-~SWE{e?YCarwU$=cS>VzmUh?Q&7?#Xrcce+jeZ|%0!l|H_=D_`77hBfd4Zqk&! zq-Dnt_?5*$Wsw8zGd@?woEtfYZ2|9L8b>TO6>oMh%`B7iBb)-aCefM~q|S2Cc0t9T zlu-ZXmM0wd$!gd-dTtik{bqyx32%f;`XUvbUWWJmpHfk8^PQIEsByJm+@+-aj4J#D z4#Br3pO6z1eIC>X^yKk|PeVwX_4B+IYJyJyc3B`4 zPrM#raacGIzVOexcVB;fcsxS=s1e&V;Xe$tw&KQ`YaCkHTKe*Al#velxV{3wxx}`7@isG zp6{+s)CG%HF#JBAQ_jM%zCX5X;J%-*%&jVI?6KpYyzGbq7qf;&hFprh?E5Wyo=bZ) z8YNycvMNGp1836!-?nihm6jI`^C`EeGryoNZO1AFTQhzFJOA%Q{X(sMYlzABt!&f{ zoDENSuoJQIg5Q#@BUsNJX2h>jkdx4<+ipUymWKFr;w+s>$laIIkfP6nU}r+?J9bZg zUIxz>RX$kX=C4m(zh-Eg$BsJ4OL&_J38PbHW&7JmR27%efAkqqdvf)Am)VF$+U3WR z-E#I9H6^)zHLKCs7|Zs<7Bo9VCS3@CDQ;{UTczoEprCKL3ZZW!ffmZFkcWU-V|_M2 zUA9~8tE9<5`59W-UgUmDFp11YlORl3mS3*2#ZHjv{*-1#uMV_oVTy{PY(}AqZv#wF zJVks)%N6LaHF$$<6p8S8Lqn+5&t}DmLKiC~lE{jPZ39oj{wR&fe*LX-z0m}9ZnZ{U z>3-5Bh{KKN^n5i!M79Aw5eY=`6fG#aW1_ZG;fw7JM69qk^*(rmO{|Z6rXy?l=K=#_ zE-zd*P|(sskasO(cZ5L~_{Mz&Y@@@Q)5_8l<6vB$@226O+pDvkFaK8b>%2 zfMtgJ@+cN@w>3)(_uR;s8$sGONbYvoEZ3-)zZk4!`tNzd<0lwt{RAgplo*f@Z)uO` zzd`ljSqKfHJOLxya4_}T`k5Ok1Mpo#MSqf~&ia3uIy{zyuaF}pV6 z)@$ZG5LYh8Gge*LqM_|GiT1*J*uKes=Oku_gMj&;FS`*sfpM+ygN&yOla-^WtIU#$ zuw(_-?DS?6DY7IbON7J)p^IM?N>7x^3)(7wR4PZJu(teex%l>zKAUSNL@~{czc}bR z)I{XzXqZBU3a;7UQ~PvAx8g-3q-9AEd}1JrlfS8NdPc+!=HJ6Bs( zCG!0;e0z-22(Uzw>hkEmC&xj?{0p|kc zM}MMXCF%RLLa#5jG`+}{pDL3M&|%3BlwOi?dq!)KUdv5__zR>u^o|QkYiqr(m3HxF z6J*DyN#Jpooc$ok=b7{UAVM@nwGsr6kozSddwulf5g1{B=0#2)zv!zLXQup^BZ4sv*sEsn)+MA?t zEL)}3*R?4(J~CpeSJPM!oZ~8;8s_=@6o`IA%{aEA9!GELRvOuncE`s7sH91 zmF=+T!Q6%){?lJn3`5}oW31(^Of|$r%`~gT{eimT7R~*Mg@x+tWM3KE>=Q>nkMG$U za7r>Yz2LEaA|PsMafvJ(Y>Xzha?=>#B!sYfVob4k5Orb$INFdL@U0(J8Hj&kgWUlO zPm+R07E+oq^4f4#HvEPANGWLL_!uF{nkHYE&BCH%l1FL_r(Nj@M)*VOD5S42Gk-yT z^23oAMvpA57H(fkDGMx86Z}rtQhR^L!T2iS!788E z+^${W1V}J_NwdwdxpXAW8}#6o1(Uu|vhJvubFvQIH1bDl4J4iDJ+181KuDuHwvM?` z%1@Tnq+7>p{O&p=@QT}4wT;HCb@i)&7int<0#bj8j0sfN3s6|a(l7Bj#7$hxX@~iP z1HF8RFH}irky&eCN4T94VyKqGywEGY{Gt0Xl-`|dOU&{Q;Ao;sL>C6N zXx1y^RZSaL-pG|JN;j9ADjo^XR}gce#seM4QB1?S`L*aB&QlbBIRegMnTkTCks7JU z<0(b+^Q?HN1&$M1l&I@>HMS;!&bb()a}hhJzsmB?I`poqTrSoO>m_JE5U4=?o;OV6 zBZjt;*%1P>%2{UL=;a4(aI>PRk|mr&F^=v6Fr&xMj8fRCXE5Z2qdre&;$_RNid5!S zm^XiLK25G6_j4dWkFqjtU7#s;b8h?BYFxV?OE?c~&ME`n`$ix_`mb^AWr+{M9{^^Rl;~KREplwy2q;&xe zUR0SjHzKVYzuqQ84w$NKVPGVHL_4I)Uw<$uL2-Ml#+5r2X{LLqc*p13{;w#E*Kwb*1D|v?e;(<>vl@VjnFB^^Y;;b3 z=R@(uRj6D}-h6CCOxAdqn~_SG=bN%^9(Ac?zfRkO5x2VM0+@_qk?MDXvf=@q_* z3IM@)er6-OXyE1Z4sU3{8$Y$>8NcnU-nkyWD&2ZaqX1JF_JYL8y}>@V8A5%lX#U3E zet5PJM`z79q9u5v(OE~{by|Jzlw2<0h`hKpOefhw=fgLTY9M8h+?37k@TWpzAb2Fc zQMf^aVf!yXlK?@5d-re}!fuAWu0t57ZKSSacwRGJ$0uC}ZgxCTw>cjRk*xCt%w&hh zoeiIgdz__&u~8s|_TZsGvJ7sjvBW<(C@}Y%#l_ID2&C`0;Eg2Z+pk;IK}4T@W6X5H z`s?ayU-iF+aNr5--T-^~K~p;}D(*GWOAYDV9JEw!w8ZYzS3;W6*_`#aZw&9J ziXhBKU3~zd$kKzCAP-=t&cFDeQR*_e*(excIUxKuD@;-twSlP6>wWQU)$|H3Cy+`= z-#7OW!ZlYzZxkdQpfqVDFU3V2B_-eJS)Fi{fLtRz!K{~7TR~XilNCu=Z;{GIf9KYz zf3h=Jo+1#_s>z$lc~e)l93h&RqW1VHYN;Yjwg#Qi0yzjN^M4cuL>Ew`_-_wRhi*!f zLK6vTpgo^Bz?8AsU%#n}^EGigkG3FXen3M;hm#C38P@Zs4{!QZPAU=m7ZV&xKI_HWNt90Ef zxClm)ZY?S|n**2cNYy-xBlLAVZ=~+!|7y`(fh+M$#4zl&T^gV8ZaG(RBD!`3?9xcK zp2+aD(T%QIgrLx5au&TjG1AazI;`8m{K7^!@m>uGCSR;Ut{&?t%3AsF{>0Cm(Kf)2 z?4?|J+!BUg*P~C{?mwPQ#)gDMmro20YVNsVx5oWQMkzQ? zsQ%Y>%7_wkJqnSMuZjB9lBM(o zWut|B7w48cn}4buUBbdPBW_J@H7g=szrKEpb|aE>!4rLm+sO9K%iI75y~2HkUo^iw zJ3se$8$|W>3}?JU@3h@M^HEFNmvCp|+$-0M?RQ8SMoZ@38%!tz8f8-Ptb@106heiJ z^Bx!`0=Im z1!NUhO=9ICM*+||b3a7w*Y#5*Q}K^ar+oMMtekF0JnO>hzHqZKH0&PZ^^M(j;vwf_ z@^|VMBpcw8;4E-9J{(u7sHSyZpQbS&N{VQ%ZCh{c1UA5;?R} z+52*X_tkDQ(s~#-6`z4|Y}3N#a&dgP4S_^tsV=oZr4A1 zaSoPN1czE(UIBrC_r$0HM?RyBGe#lTBL4~JW#A`P^#0wuK)C-2$B6TvMi@@%K@JAT_IB^T7Zfqc8?{wHcSVG_?{(wUG%zhCm=%qP~EqeqKI$9UivF zv+5IUOs|%@ypo6b+i=xsZ=^G1yeWe)z6IX-EC`F=(|_GCNbHbNp(CZ*lpSu5n`FRA zhnrc4w+Vh?r>her@Ba_jv0Omp#-H7avZb=j_A~B%V0&FNi#!S8cwn0(Gg-Gi_LMI{ zCg=g@m{W@u?GQ|yp^yENd;M=W2s-k7Gw2Z(tsD5fTGF{iZ%Ccgjy6O!AB4x z%&=6jB7^}pyftW2YQpOY1w@%wZy%}-l0qJlOSKZXnN2wo3|hujU+-U~blRF!^;Tan z0w;Srh0|Q~6*tXf!5-rCD)OYE(%S|^WTpa1KHtpHZ{!;KdcM^#g8Z^+LkbiBHt85m z;2xv#83lWB(kplfgqv@ZNDcHizwi4-8+WHA$U-HBNqsZ`hKcUI3zV3d1ngJP-AMRET*A{> zb2A>Fk|L|WYV;Eu4>{a6ESi2r3aZL7x}eRc?cf|~bP)6b7%BnsR{Sa>K^0obn?yiJ zCVvaZ&;d_6WEk${F1SN0{_`(#TuOOH1as&#&xN~+JDzX(D-WU_nLEI}T_VaeLA=bc zl_UZS$nu#C1yH}YV>N2^9^zye{rDrn(rS99>Fh&jtNY7PP15q%g=RGnxACdCov47= zwf^9zfJaL{y`R#~tvVL#*<`=`Qe zj_@Me$6sIK=LMFbBrJps7vdaf_HeX?eC+P^{AgSvbEn?n<}NDWiQGQG4^ZOc|GskK z$Ve2_n8gQ-KZ=s(f`_X!+vM5)4+QmOP()2Fe#IL2toZBf+)8gTVgDSTN1CkP<}!j7 z0SEl>PBg{MnPHkj4wj$mZ?m5x!1ePVEYI(L_sb0OZ*=M%yQb?L{UL(2_*CTVbRxBe z@{)COwTK1}!*CK0Vi4~AB;HF(MmQf|dsoy(eiQ>WTKcEQlnKOri5xYsqi61Y=I4kzAjn5~{IWrz_l))|Ls zvq7xgQs?Xx@`N?f7+3XKLyD~6DRJw*uj*j?yvT3}a;(j_?YOe%hUFcPGWRVBXzpMJ zM43g6DLFqS9tcTLSg=^&N-y0dXL816v&-nqC0iXdg7kV|PY+js`F8dm z2PuHw&k+8*&9SPQ6f!^5q0&AH(i+z3I7a?8O+S5`g)>}fG|BM&ZnmL;rk)|u{1!aZ zEZHpAMmK_v$GbrrWNP|^2^s*!0waLW=-h5PZa-4jWYUt(Hr@EA(m3Mc3^uDxwt-me^55FMA9^>hpp26MhqjLg#^Y7OIJ5%ZLdNx&uDgIIqc zZRZl|n6TyV)0^DDyVtw*jlWkDY&Gw4q;k!UwqSL6&sW$B*5Rc?&)dt29bDB*b6IBY z6SY6Unsf6AOQdEf=P1inu6(6hVZ0~v-<>;LAlcQ2u?wRWj5VczBT$Op#8IhppP-1t zfz5H59Aa~yh7EN;BXJsLyjkjqARS5iIhDVPj<=4AJb}m6M@n{xYj3qsR*Q8;hVxDyC4vLI;;?^eENOb5QARj#nII5l$MtBCI@5u~(ylFi$ zw6-+$$XQ}Ca>FWT>q{k)g{Ml(Yv=6aDfe?m|5|kbGtWS}fKWI+})F6`x@||0oJ^(g|+xi zqlPdy5;`g*i*C=Q(aGeDw!eQg&w>UUj^{o?PrlFI=34qAU2u@BgwrBiaM8zoDTFJ< zh7nWpv>dr?q;4ZA?}V}|7qWz4W?6#S&m>hs4IwvCBe@-C>+oohsQZ^JC*RfDRm!?y zS4$7oxcI|##ga*y5hV>J4a%HHl^t$pjY%caL%-FlRb<$A$E!ws?8hf0@(4HdgQ!@> zds{&g$ocr9W4I84TMa9-(&^_B*&R%^=@?Ntxi|Ejnh;z=!|uVj&3fiTngDPg=0=P2 zB)3#%HetD84ayj??qrxsd9nqrBem(8^_u_UY{1@R_vK-0H9N7lBX5K(^O2=0#TtUUGSz{ z%g>qU8#a$DyZ~EMa|8*@`GOhCW3%DN%xuS91T7~iXRr)SG`%=Lfu%U~Z_`1b=lSi?qpD4$vLh$?HU6t0MydaowUpb zQr{>_${AMesCEffZo`}K0^~x>RY_ZIG{(r39MP>@=aiM@C;K)jUcfQV8#?SDvq>9D zI{XeKM%$$XP5`7p3K0T}x;qn)VMo>2t}Ib(6zui;k}<<~KibAb%p)**e>ln<=qyWU zrRDy|UXFi9y~PdEFIAXejLA{K)6<)Q`?;Q5!KsuEw({!#Rl8*5_F{TP?u|5(Hijv( ztAA^I5+$A*+*e0V0R~fc{ET-RAS3suZ}TRk3r)xqj~g_hxB`qIK5z(5wxYboz%46G zq{izIz^5xW1Vq#%lhXaZL&)FJWp0VZNO%2&ADd?+J%K$fM#T_Eke1{dQsx48dUPUY zLS+DWMJeUSjYL453f@HpRGU6Dv)rw+-c6xB>(=p4U%}_p>z^I@Ow9`nkUG21?cMIh9}hN?R-d)*6%pr6d@mcb*ixr7 z)>Lo<&2F}~>WT1ybm^9UO{6P9;m+fU^06_$o9gBWL9_}EMZFD=rLJ~&e?fhDnJNBI zKM=-WR6g7HY5tHf=V~6~QIQ~rakNvcsamU8m28YE=z8+G7K=h%)l6k zmCpiDInKL6*e#)#Pt;ANmjf`8h-nEt&d}(SBZMI_A{BI#ck-_V7nx)K9_D9K-p@?Zh81#b@{wS?wCcJ%og)8RF*-0z+~)6f#T` zWqF7_CBcnn=S-1QykC*F0YTsKMVG49BuKQBH%WuDkEy%E?*x&tt%0m>>5^HCOq|ux zuvFB)JPR-W|%$24eEC^AtG3Gp4qdK%pjRijF5Sg3X}uaKEE z-L5p5aVR!NTM8T`4|2QA@hXiLXRcJveWZ%YeFfV%mO5q#($TJ`*U>hicS+CMj%Ip# zivoL;dd*araeJK9EA<(tihD50FHWbITBgF9E<33A+eMr2;cgI3Gg6<-2o|_g9|> zv5}i932( zYfTE9?4#nQhP@a|zm#9FST2 z!y+p3B;p>KkUzH!K;GkBW}bWssz)9b>Ulg^)EDca;jDl+q=243BddS$hY^fC6lbpM z(q_bo4V8~eVeA?0LFD6ZtKcmOH^75#q$Eo%a&qvE8Zsqg=$p}u^|>DSWUP5i{6)LAYF4E2DfGZuMJ zMwxxmkxQf}Q$V3&2w|$`9_SQS^2NVbTHh;atB>=A%!}k-f4*i$X8m}Ni^ppZXk5_oYF>Gq(& z0wy{LjJOu}69}~#UFPc;$7ka+=gl(FZCy4xEsk);+he>Nnl>hb5Ud-lj!CNicgd^2 z_Qgr_-&S7*#nLAI7r()P$`x~fy)+y=W~6aNh_humoZr7MWGSWJPLk}$#w_1n%(@? z3FnHf1lbxKJbQ9c&i<$(wd{tUTX6DAKs@cXIOBv~!9i{wD@*|kwfX~sjKASrNFGvN zrFc=!0Bb^OhR2f`%hrp2ibv#KUxl)Np1aixD9{^o=)*U%n%rTHX?FSWL^UGpHpY@7 z74U}KoIRwxI#>)Pn4($A`nw1%-D}`sGRZD8Z#lF$6 zOeA5)+W2qvA%m^|$WluUU-O+KtMqd;Pd58?qZj})MbxYGO<{z9U&t4D{S2G>e+J9K ztFZ?}ya>SVOLp9hpW)}G%kTrg*KXXXsLkGdgHb+R-ZXqdkdQC0_)`?6mqo8(EU#d( zy;u&aVPe6C=YgCRPV!mJ6R6kdY*`e+VGM~`VtC>{k27!9vAZT)x2~AiX5|m1Rq}_= z;A9LX^nd$l-9&2%4s~p5r6ad-siV`HtxKF}l&xGSYJmP=z!?Mlwmwef$EQq~7;#OE z)U5eS6dB~~1pkj#9(}T3j!((8Uf%!W49FfUAozijoxInUE7z`~U3Y^}xc3xp){#9D z<^Tz2xw}@o@fdUZ@hnW#dX6gDOj4R8dV}Dw`u!h@*K)-NrxT8%2`T}EvOImNF_N1S zy?uo6_ZS>Qga4Xme3j#aX+1qdFFE{NT0Wfusa$^;eL5xGE_66!5_N8!Z~jCAH2=${ z*goHjl|z|kbmIE{cl-PloSTtD+2=CDm~ZHRgXJ8~1(g4W=1c3=2eF#3tah7ho`zm4 z05P&?nyqq$nC?iJ-nK_iBo=u5l#|Ka3H7{UZ&O`~t-=triw=SE7ynzMAE{Mv-{7E_ zViZtA(0^wD{iCCcg@c{54Ro@U5p1QZq_XlEGtdBAQ9@nT?(zLO0#)q55G8_Ug~Xnu zR-^1~hp|cy&52iogG@o?-^AD8Jb^;@&Ea5jEicDlze6%>?u$-eE};bQ`T6@(bED0J zKYtdc?%9*<<$2LCBzVx9CA4YV|q-qg*-{yQ;|0=KIgI6~z0DKTtajw2Oms3L zn{C%{P`duw!(F@*P)lFy11|Z&x`E2<=$Ln38>UR~z6~za(3r;45kQK_^QTX%!s zNzoIFFH8|Y>YVrUL5#mgA-Jh>j7)n)5}iVM4%_@^GSwEIBA2g-;43* z*)i7u*xc8jo2z8&=8t7qo|B-rsGw)b8UXnu`RgE4u!(J8yIJi(5m3~aYsADcfZ!GG zzqa7p=sg`V_KjiqI*LA-=T;uiNRB;BZZ)~88 z`C%p8%hIev2rxS12@doqsrjgMg3{A&N8A?%Ui5vSHh7!iC^ltF&HqG~;=16=h0{ygy^@HxixUb1XYcR36SB}}o3nxu z_IpEmGh_CK<+sUh@2zbK9MqO!S5cao=8LSQg0Zv4?ju%ww^mvc0WU$q@!oo#2bv24 z+?c}14L2vlDn%Y0!t*z=$*a!`*|uAVu&NO!z_arim$=btpUPR5XGCG0U3YU`v>yMr z^zmTdcEa!APX zYF>^Q-TP11;{VgtMqC}7>B^2gN-3KYl33gS-p%f!X<_Hr?`rG8{jb9jmuQA9U;BeG zHj6Pk(UB5c6zwX%SNi*Py*)gk^?+729$bAN-EUd*RKN7{CM4`Q65a1qF*-QWACA&m zrT)B(M}yih{2r!Tiv5Y&O&=H_OtaHUz96Npo_k0eN|!*s2mLe!Zkuv>^E8Xa43ZwH zOI058AZznYGrRJ+`*GmZzMi6yliFmGMge6^j?|PN%ARns!Eg$ufpcLc#1Ns!1@1 zvC7N8M$mRgnixwEtX{ypBS^n`k@t2cCh#_6L6WtQb8E~*Vu+Rr)YsKZRX~hzLG*BE zaeU#LPo?RLm(Wzltk79Jd1Y$|6aWz1)wf1K1RtqS;qyQMy@H@B805vQ%wfSJB?m&&=^m4i* zYVH`zTTFbFtNFkAI`Khe4e^CdGZw;O0 zqkQe2|NG_y6D%h(|EZNf&77_!NU%0y={^E=*gKGQ=)LdKPM3zUlM@otH2X07Awv8o zY8Y7a1^&Yy%b%m{mNQ5sWNMTIq96Wtr>a(hL>Qi&F(ckgKkyvM0IH<_}v~Fv-GqDapig=3*ZMOx!%cYY)SKzo7ECyem z9Mj3C)tCYM?C9YIlt1?zTJXNOo&oVxu&uXKJs7i+j8p*Qvu2PAnY}b`KStdpi`trk ztAO}T8eOC%x)mu+4ps8sYZ=vYJp16SVWEEgQyFKSfWQ@O5id6GfL`|2<}hMXLPszS zgK>NWOoR zBRyKeUPevpqKKShD|MZ`R;~#PdNMB3LWjqFKNvH9k+;(`;-pyXM55?qaji#nl~K8m z_MifoM*W*X9CQiXAOH{cZcP0;Bn10E1)T@62Um>et2ci!J2$5-_HPy(AGif+BJpJ^ ziHWynC_%-NlrFY+(f7HyVvbDIM$5ci_i3?22ZkF>Y8RPBhgx-7k3M2>6m5R24C|~I z&RPh9xpMGzhN4bii*ryWaN^d(`0 zTOADlU)g`1p+SVMNLztd)c+;XjXox(VHQwqzu>FROvf0`s&|NEv26}(TAe;@=FpZq zaVs6mp>W0rM3Qg*6x5f_bPJd!6dQGmh?&v0rpBNfS$DW-{4L7#_~-eA@7<2BsZV=X zow){3aATmLZOQrs>uzDkXOD=IiX;Ue*B(^4RF%H zeaZ^*MWn4tBDj(wj114r(`)P96EHq4th-;tWiHhkp2rDlrklX}I@ib-nel0slFoQO zOeTc;Rh7sMIebO`1%u)=GlEj+7HU;c|Nj>2j)J-kpR)s3#+9AiB zd$hAk6;3pu9(GCR#)#>aCGPYq%r&i02$0L9=7AlIGYdlUO5%eH&M!ZWD&6^NBAj0Y9ZDcPg@r@8Y&-}e!aq0S(`}NuQ({;aigCPnq75U9cBH&Y7 ze)W0aD>muAepOKgm7uPg3Dz7G%)nEqTUm_&^^3(>+eEI;$ia`m>m0QHEkTt^=cx^JsBC68#H(3zc~Z$E9I)oSrF$3 zUClHXhMBZ|^1ikm3nL$Z@v|JRhud*IhOvx!6X<(YSX(9LG#yYuZeB{=7-MyPF;?_8 zy2i3iVKG2q!=JHN>~!#Bl{cwa6-yB@b<;8LSj}`f9pw7#x3yTD>C=>1S@H)~(n_K4 z2-yr{2?|1b#lS`qG@+823j;&UE5|2+EdU4nVw5=m>o_gj#K>>(*t=xI7{R)lJhLU{ z4IO6!x@1f$aDVIE@1a0lraN9!(j~_uGlks)!&davUFRNYHflp<|ENwAxsp~4Hun$Q z$w>@YzXp#VX~)ZP8`_b_sTg(Gt7?oXJW%^Pf0UW%YM+OGjKS}X`yO~{7WH6nX8S6Z ztl!5AnM2Lo*_}ZLvo%?iV;D2z>#qdpMx*xY2*GGlRzmHCom`VedAoR=(A1nO)Y>;5 zCK-~a;#g5yDgf7_phlkM@)C8s!xOu)N2UnQhif-v5kL$*t=X}L9EyBRq$V(sI{90> z=ghTPGswRVbTW@dS2H|)QYTY&I$ljbpNPTc_T|FEJkSW7MV!JM4I(ksRqQ8)V5>}v z2Sf^Z9_v;dKSp_orZm09jb8;C(vzFFJgoYuWRc|Tt_&3k({wPKiD|*m!+za$(l*!gNRo{xtmqjy1=kGzFkTH=Nc>EL@1Um0BiN1)wBO$i z6rG={bRcT|%A3s3xh!Bw?=L&_-X+6}L9i~xRj2}-)7fsoq0|;;PS%mcn%_#oV#kAp zGw^23c8_0~ ze}v9(p};6HM0+qF5^^>BBEI3d=2DW&O#|(;wg}?3?uO=w+{*)+^l_-gE zSw8GV=4_%U4*OU^hibDV38{Qb7P#Y8zh@BM9pEM_o2FuFc2LWrW2jRRB<+IE)G=Vx zuu?cp2-`hgqlsn|$nx@I%TC!`>bX^G00_oKboOGGXLgyLKXoo$^@L7v;GWqfUFw3< zekKMWo0LR;TaFY}Tt4!O$3MU@pqcw!0w0 zA}SnJ6Lb597|P5W8$OsEHTku2Kw9y4V=hx*K%iSn!#LW9W#~OiWf^dXEP$^2 zaok=UyGwy3GRp)bm6Gqr>8-4h@3=2`Eto2|JE6Sufh?%U6;ut1v1d@#EfcQP2chCt z+mB{Bk5~()7G>wM3KYf7Xh?LGbwg1uWLotmc_}Z_o;XOUDyfU?{9atAT$={v82^w9 z(MW$gINHt4xB3{bdbhRR%T}L?McK?!zkLK3(e>zKyei(yq%Nsijm~LV|9mll-XHavFcc$teX7v);H>=oN-+E_Q{c|! zp

    JV~-9AH}jxf6IF!PxrB9is{_9s@PYth^`pb%DkwghLdAyDREz(csf9)HcVRq z+2Vn~>{(S&_;bq_qA{v7XbU?yR7;~JrLfo;g$Lkm#ufO1P`QW_`zWW+4+7xzQZnO$ z5&GyJs4-VGb5MEDBc5=zxZh9xEVoY(|2yRv&!T7LAlIs@tw+4n?v1T8M>;hBv}2n) zcqi+>M*U@uY>4N3eDSAH2Rg@dsl!1py>kO39GMP#qOHipL~*cCac2_vH^6x@xmO|E zkWeyvl@P$2Iy*mCgVF+b{&|FY*5Ygi8237i)9YW#Fp& z?TJTQW+7U)xCE*`Nsx^yaiJ0KSW}}jc-ub)8Z8x(|K7G>`&l{Y&~W=q#^4Gf{}aJ%6kLXsmv6cr=Hi*uB`V26;dr4C$WrPnHO>g zg1@A%DvIWPDtXzll39kY6#%j;aN7grYJP9AlJgs3FnC?crv$wC7S4_Z?<_s0j;MmE z75yQGul2=bY%`l__1X3jxju2$Ws%hNv75ywfAqjgFO7wFsFDOW^)q2%VIF~WhwEW0 z45z^+r+}sJ{q+>X-w(}OiD(!*&cy4X&yM`!L0Fe+_RUfs@=J{AH#K~gArqT=#DcGE z!FwY(h&+&811rVCVoOuK)Z<-$EX zp`TzcUQC256@YWZ*GkE@P_et4D@qpM92fWA6c$MV=^qTu7&g)U?O~-fUR&xFqNiY1 zRd=|zUs_rmFZhKI|H}dcKhy%Okl(#y#QuMi81zsY56Y@757xBQqDNkd+XhLQhp2BB zBF^aJ__D676wLu|yYo6jNJNw^B+Ce;DYK!f$!dNs1*?D^97u^jKS++7S z5qE%zG#HY-SMUn^_yru=T6v`)CM%K<>_Z>tPe|js`c<|y7?qol&)C=>uLWkg5 zmzNcSAG_sL)E9or;i+O}tY^70@h7+=bG1;YDlX{<4zF_?{)K5B&?^tKZ6<$SD%@>F zY0cl2H7)%zKeDX%Eo7`ky^mzS)s;842cP{_;dzFuyd~Npb4u!bwkkhf8-^C2e3`q8>MuPhgiv0VxHxvrN9_`rJv&GX0fWz-L-Jg^B zrTsm>)-~j0F1sV=^V?UUi{L2cp%YwpvHwwLaSsCIrGI#({{QfbgDxLKsUC6w@m?y} zg?l=7aMX-RnMxvLn_4oSB|9t;)Qf2%m-GKo_07?N1l^ahJ+Wf8C>h5~=-o1BJzV@5HBTB-ACNpsHnGt6_ku37M z{vIEB^tR=--4SEg{jfF=gEogtGwi&A$mwk7E+SV$$ZuU}#F3Y7t}o{!w4LJh8v4PW%8HfUK@dta#l*z@w*9Xzz(i)r#WXi`r1D#oBPtNM7M?Hkq zhhS1)ea5(6VY45|)tCTr*@yc$^Zc!zQzsNXU?aRN6mh7zVu~i=qTrX^>de+f6HYfDsW@6PBlw0CsDBcOWUmt&st>Z zYNJEsRCP1#g0+Htb=wITvexBY@fOpAmR7?szQNR~nM)?sPWIj)0)jG-EF8U@nnBaQZy z)ImpVYQL>lBejMDjlxA$#G4%y+^_>N;}r@Zoe2|u-9-x@vvD^ZWnV>Gm=pZa7REAf zOnomhCxBaGZgT+4kiE%aS&lH2sI1mSCM<%)Cr*Sli;#!aXcUb&@Z|Hj{VPsJyClqD%>hy`Y7z(GASs8Mqas3!D zSQE83*%uctlD|p%4)v`arra4y>yP5m25V*_+n)Ry1v>z_Fz!TV6t+N?x?#iH$q=m= z8&X{uW%LVRO87dVl=$Y*>dabJVq{o|Kx`7(D2$5DVX&}XGbg|Ua(*5b=;5qzW9;|w>m{hIO(Tu-z(ey8H=EMluJNyK4BJmGpX~ZM2O61 zk*O7js{-MBqwq>Urf0igN+6soGGc!Y?SP6hiXuJzZ1V4WZqE*?h;PG84gvG~dds6~484!kPM zMP87IP?dhdc;%|cS&LxY*Ib6P3%p|9)E3IgRmhhwtUR3eRK6iZ_6fiGW}jnL4(I|t ze`2yLvmuY42lNwO6>I#Son3$R4NOoP*WUm1R4jl#agtSLE}fSu-Z>{+*?pQIn7`s3LAzF#1pSxCAo?clr9 z9PUj#REq28*ZkJnxs$aK%8^5?P<_Q!#Z?%JH0FKVF;&zH3F#J^fz|ahl$Ycs~kFij_XP;U<`FcaDYyXYPM~&jEe1Xj1n;wyRdD;lmnq&FEro=;+Z$=v-&fYM9eK*S_D&oTXFW#b0 zRY}Y7R#bLzTfg9i7{s?=P9~qjA?$-U2p5;0?gPPu`1JY|*?*8IPO!eX>oiX=O#F!A zl`S%e5Y(csR1f)I(iKMf-;5%_rPP7h&}5Fc(8byKUH1*d7?9%QC|4aADj3L8yuo6GOv#%HDgU3bN(UHw1+(99&Om%f!DY(RYSf4&Uny% zH}*&rEXc$W5+eyeEg|I|E-HnkIO0!$1sV7Z&NXxiCZJ@`kH4eEi5}q~!Vv5qQq{MI zi4^`GYoUN-7Q(jy^SKXL4$G4K+FQXR)B}ee=pS0RyK=YC8c2bGnMA~rrOh&jd3_AT zxVaq37w^-;OU3+C`Kko-Z%l_2FC^maa=Ae0Fm@PEtXEg@cX*oka1Lt&h@jES<6?o1Oi1C9>}7+U(Ve zQ$=8RlzcnfCd59CsJ=gG^A!2Bb_PY~K2sSau{)?Ge03G7US&qrgV!3NUi>UHWZ*lo zS;~0--vn{ot+7UWMV{a(X3rZ8Z06Ps3$-sd|CWE(Y#l`swvcDbMjuReGsoA`rmZ`^ z=AaArdbeU0EtwnOuzq@u5P1rlZjH#gNgh6HIhG(>dX%4m{_!&DNTQE)8= zXD-vcpcSi|DSm3aUMnrV;DQY?svz?9*#GT$NXb~Hem=24iy>7xj367(!#RjnrHtrP-Q`T2W*PEvAR-=j ztY2|#<|JvHNVnM-tNdoS_yRSo=yFqukTZmB$|>Vclj)o=YzC9!ph8)ZOH5X=%Aq|9gNgc}^KFVLht!Lyw54v5u&D zW%vT%z`H{Ax>Ry+bD&QjHQke_wEA;oj(&E!s4|OURButQKSc7Ar-PzIiFa8F@ezkaY2J9&PH+VI1!G+{JgsQ7%da*_Gr!exT*OgJld)b-?cd)xI+|v_C`h(Cg`N~oj0`SQPTma z{@vc8L^D-rBXwS#00jT#@=-n1H-C3hvg61r2jx#ok&cr#BV~9JdPaVihyrGq*lb>bm$H6rIoc}ifaSn6mTD9% z$FRJxbNozOo6y}!OUci1VBv-7{TYZ4GkOM@46Y9?8%mSH9?l&lU59)T#Fjg(h%6I} z?ib zZ(xb8Rwr+vv>@$h{WglT2lL`#V=-9tP^c)cjvnz(g|VL^h8^CPVv12dE(o}WQ@0OP z^2-&ssBXP^#Oh`X5@F+~$PCB6kK-T7sFUK|>$lNDSkvAy%{y2qgq-&v zv}^&gm`wiYztWgMS<{^qQKYNV=>CQaOeglAY~EZvr}n~tW=yg)_+fzqF%~+*V_$3h z2hDW`e$qR;QMg?(wKE>%H_6ASS@6bkOi-m- zg6B7AzD;gBS1%OD7|47a%3BykN{w}P!Wn-nQOfpKUpx8Mk{$IO62D!%U9$kr!e%T> zlqQih?3(U&5%r!KZFZPdbwZ0laAJCj!c&pEFVzrH&_&i5m68Y_*J+-Qjlnz}Q{3oAD)`d14H zKUGmbwC|beC9Mtp>SbL~NVrlctU3WBpHz(UeIa~_{u^_4OaHs_LQt>bUwcyD`_Bbh zC=x|1vSjL)JvVHLw|xKynEvq2m)7O-6qdmjht7pZ*z|o%NA17v$9H*(5D5(MXiNo1 z72Tv}QASqr$!mY58s_Q{hHa9MY+QZ`2zX-FT@Kd?`8pczcV^9IeOKDG4WKqiP7N|S z+O977=VQTk8k5dafK`vd(4?_3pBdB?YG9*Z=R@y|$S+d%1sJf-Ka++I&v9hH)h#}} zw-MjQWJ?ME<7PR(G<1#*Z-&M?%=yzhQw$Lki(R+Pq$X~Q!9BO=fP9FyCIS8zE3n04 z8ScD%XmJnIv=pMTgt6VSxBXOZucndRE@7^aU0wefJYueY(Cb%?%0rz)zWEnsNsKhQ z+&o6d^x=R;Pt7fUa_`JVb1HPHYbXg{Jvux|atQ^bV#_|>7QZNC~P^IKUThB6{kvz2pr2*Cyxj zy37Nri8za8J!@Iw9rbt~#^<9zOaM8LOi$kPBcAGqPq-DB^-93Qeup{9@9&=zV6KQN zL)ic5S%n1!F(7b>MQ973$~<0|9MY-G!?wk?j-cQhMQlM2n{&7JoTBGsP;=fC6CBJn zxlpk^%x=B16rfb-W9pYV#9IRHQL9VG4?Uh>pN>2}0-MST2AB2pQjf*rT+TLCX-+&m z9I{ic2ogXoh=HwdI#igr(JC>>NUP|M>SA?-ux<2&>Jyx>Iko!B<3vS}{g*dKqxYW7 z0i`&U#*v)jot+keO#G&wowD!VvD(j`Z9a*-_RALKn0b(KnZ37d#Db7royLhBW~*7o zRa`=1fo9C4dgq;;R)JpP++a9^{xd)8``^fPW9!a%MCDYJc;3yicPs8IiQM>DhUX*; zeIrxE#JRrr|D$@bKgOm4C9D+e!_hQKj3LC`Js)|Aijx=J!rlgnpKeF>b+QlKhI^4* zf%Of^RmkW|xU|p#Lad44Y5LvIUIR>VGH8G zz7ZEIREG%UOy4)C!$muX6StM4@Fsh&Goa}cj10RL(#>oGtr6h~7tZDDQ_J>h)VmYlKK>9ns8w4tdx6LdN5xJQ9t-ABtTf_ zf1dKVv!mhhQFSN=ggf(#$)FtN-okyT&o6Ms+*u72Uf$5?4)78EErTECzweDUbbU)) zc*tt+9J~Pt%!M352Y5b`Mwrjn^Orp+)L_U1ORHJ}OUsB78YPcIRh4p5jzoDB7B*fb z4v`bouQeCAW#z9b1?4(M3dcwNn2F2plwC^RVHl#h&b-8n#5^o+Ll20OlJ^gOYiK2< z;MQuR!t!>`i}CAOa4a+Rh5IL|@kh4EdEL*O=3oGx4asg?XCTcUOQnmHs^6nLu6WcI zSt9q7nl*?2TIikKNb?3JZBo$cW6)b#;ZKzi+(~D-%0Ec+QW=bZZm@w|prGiThO3dy zU#TQ;RYQ+xU~*@Zj;Rf~z~iL8Da`RT!Z)b3ILBhnIl@VX9K0PSj5owH#*FJXX3vZ= zg_Zyn^G&l!WR6wN9GWvt)sM?g2^CA8&F#&t2z3_MiluRqvNbV{Me6yZ&X-_ zd6#Xdh%+6tCmSNTdCBusVkRwJ_A~<^Nd6~MNOvS;YDixM43`|8e_bmc*UWi7TLA})`T_F ztk&Nd=dgFUss#Ol$LXTRzP9l1JOSvAws~^X%(`ct$?2Im?UNpXjBec_-+8YK%rq#P zT9=h8&gCtgx?=Oj$Yr2jI3`VVuZ`lH>*N+*K11CD&>>F)?(`yr~54vHJftY*z?EorK zm`euBK<$(!XO%6-1=m>qqp6F`S@Pe3;pK5URT$8!Dd|;`eOWdmn916Ut5;iXWQoXE z0qtwxlH=m_NONP3EY2eW{Qwr-X1V3;5tV;g7tlL4BRilT#Y&~o_!f;*hWxWmvA;Pg zRb^Y$#PipnVlLXQIzKCuQP9IER0Ai4jZp+STb1Xq0w(nVn<3j(<#!vuc?7eJEZC<- zPhM7ObhgabN2`pm($tu^MaBkRLzx&jdh;>BP|^$TyD1UHt9Qvr{ZcBs^l!JI4~d-Py$P5QOYO&8eQOFe)&G zZm+?jOJioGs7MkkQBCzJSFJV6DiCav#kmdxc@IJ9j5m#&1)dhJt`y8{T!uxpBZ>&z zD^V~%GEaODak5qGj|@cA7HSH{#jHW;Q0KRdTp@PJO#Q1gGI=((a1o%X*{knz&_`ym zkRLikN^fQ%Gy1|~6%h^vx>ToJ(#aJDxoD8qyOD{CPbSvR*bC>Nm+mkw>6mD0mlD0X zGepCcS_x7+6X7dH;%e`aIfPr-NXSqlu&?$Br1R}3lSF2 zWOXDtG;v#EVLSQ!>4323VX-|E#qb+x%IxzUBDI~N23x? zXUHfTTV#_f9T$-2FPG@t)rpc9u9!@h^!4=fL^kg9 zVv%&KY3!?bU*V4X)wNT%Chr;YK()=~lc%$auOB_|oH`H)Xot@1cmk{^qdt&1C55>k zYnIkdoiAYW41zrRBfqR?9r^cpWIEqfS;|R#bIs4$cqA zoq~$yl8h{IXTSdSdH?;`ky6i%+Oc?HvwH+IS`%_a!d#CqQob9OTNIuhUnOQsX;nl_ z;1w99qO9lAb|guQ9?p4*9TmIZ5{su!h?v-jpOuShq!{AuHUYtmZ%brpgHl$BKLK_L z6q5vZodM$)RE^NNO>{ZWPb%Ce111V4wIX}?DHA=uzTu0$1h8zy!SID~m5t)(ov$!6 zB^@fP#vpx3enbrbX=vzol zj^Bg7V$Qa53#3Lptz<6Dz=!f+FvUBVIBtYPN{(%t(EcveSuxi3DI>XQ*$HX~O{KLK5Dh{H2ir87E^!(ye{9H&2U4kFxtKHkw zZPOTIa*29KbXx-U4hj&iH<9Z@0wh8B6+>qQJn{>F0mGnrj|0_{nwN}Vw_C!rm0!dC z>iRlEf}<+z&?Z4o3?C>QrLBhXP!MV0L#CgF{>;ydIBd5A{bd-S+VFn zLqq4a*HD%65IqQ5BxNz~vOGU=JJv|NG{OcW%2PU~MEfy6(bl#^TfT7+az5M-I`i&l z#g!HUfN}j#adA-21x7jbP6F;`99c8Qt|`_@u@fbhZF+Wkmr;IdVHj+F=pDb4MY?fU znDe##Hn){D}<>vVhYL#)+6p9eAT3T$?;-~bZU%l7MpPNh_mPc(h@79 z;LPOXk>e3nmIxl9lno5cI5G@Q!pE&hQ`s{$Ae4JhTebeTsj*|!6%0;g=wH?B1-p{P z`In#EP12q6=xXU)LiD+mLidPrYGHaKbe5%|vzApq9(PI6I5XjlGf<_uyy59iw8W;k zdLZ|8R8RWDc`#)n2?~}@5)vvksY9UaLW`FM=2s|vyg>Remm=QGthdNL87$nR&TKB*LB%*B}|HkG64 zZ|O4=Yq?Zwl>_KgIG@<8i{Zw#P3q_CVT7Dt zoMwoI)BkpQj8u(m!>1dfOwin(50}VNiLA>A2OG&TBXcP=H(3I;!WdPFe?r_e{%>bc6(Zk?6~Ew&;#ZxBJ| zAd1(sAHqlo_*rP;nTk)kAORe3cF&tj>m&LsvB)`-y9#$4XU=Dd^+CzvoAz%9216#f0cS`;kERxrtjbl^7pmO;_y zYBGOL7R1ne7%F9M2~0a7Srciz=MeaMU~ zV%Y#m_KV$XReYHtsraWLrdJItLtRiRo98T3J|x~(a>~)#>JHDJ z|4j!VO^qWQfCm9-$N29SpHUqvz62%#%98;2FNIF*?c9hZ7GAu$q>=0 zX_igPSK8Et(fmD)V=CvbtA-V(wS?z6WV|RX2`g=w=4D)+H|F_N(^ON!jHf72<2nCJ z^$hEygTAq7URR{Vq$)BsmFKTZ+i1i(D@SJuTGBN3W8{JpJ^J zkF=gBTz|P;Xxo1NIypGzJq8GK^#4tl)S%8$PP6E8c|GkkQ)vZ1OiB%mH#@hO1Z%Hp zv%2~Mlar^}7TRN-SscvQ*xVv+i1g8CwybQHCi3k;o$K@bmB%^-U8dILX)7b~#iPu@ z&D&W7YY2M3v`s(lNm2#^dCRFd;UYMUw1Rh2mto8laH1m`n0u;>okp5XmbsShOhQwo z@EYOehg-KNab)Rieib?m&NXls+&31)MB&H-zj_WmJsGjc1sCSOz0!2Cm1vV?y@kkQ z<1k6O$hvTQnGD*esux*aD3lEm$mUi0td0NiOtz3?7}h;Bt*vIC{tDBr@D)9rjhP^< zY*uKu^BiuSO%)&FL>C?Ng!HYZHLy`R>`rgq+lJhdXfo|df zmkzpQf{6o9%^|7Yb5v{Tu& zsP*Y~<#jK$S_}uEisRC;=y{zbq`4Owc@JyvB->nPzb#&vcMKi5n66PVV{Aub>*>q8 z=@u7jYA4Ziw2{fSED#t4QLD7Rt`au^y(Ggp3y(UcwIKtI(OMi@GHxs!bj$v~j(FZK zbdcP^gExtXQqQ8^Q#rHy1&W8q!@^aL>g1v2R45T(KErWB)1rB@rU`#n&-?g2Ti~xXCrexrLgajgzNy=N9|A6K=RZ zc3yk>w5sz1zsg~tO~-Ie?%Aplh#)l3`s632mi#CCl^75%i6IY;dzpuxu+2fliEjQn z&=~U+@fV4>{Fp=kk0oQIvBdqS#yY`Z+>Z|T&K{d;v3}=JqzKx05XU3M&@D5!uPTGydasyeZ5=1~IX-?HlM@AGB9|Mzb{{Dt@bUU8{KUPU@EX zv0fpQNvG~nD2WiOe{Vn=hE^rQD(5m+!$rs%s{w9;yg9oxRhqi0)rwsd245)igLmv* zJb@Xlet$+)oS1Ra#qTB@U|lix{Y4lGW-$5*4xOLY{9v9&RK<|K!fTd0wCKYZ)h&2f zEMcTCd+bj&YVmc#>&|?F!3?br3ChoMPTA{RH@NF(jmGMB2fMyW(<0jUT=8QFYD7-% zS0ydgp%;?W=>{V9>BOf=p$q5U511~Q0-|C!85)W0ov7eb35%XV;3mdUI@f5|x5C)R z$t?xLFZOv}A(ZjjSbF+8&%@RChpRvo>)sy>-IO8A@>i1A+8bZd^5J#(lgNH&A=V4V z*HUa0{zT{u-_FF$978RziwA@@*XkV{<-CE1N=Z!_!7;wq*xt3t((m+^$SZKaPim3K zO|Gq*w5r&7iqiQ!03SY{@*LKDkzhkHe*TzQaYAkz&jNxf^&A_-40(aGs53&}$dlKz zsel3=FvHqdeIf!UYwL&Mg3w_H?utbE_(PL9B|VAyaOo8k4qb>EvNYHrVmj^ocJQTf zL%4vl{qgmJf#@uWL@)WiB>Lm>?ivwB%uO|)i~;#--nFx4Kr6{TruZU0N_t_zqkg`? zwPFK|WiC4sI%o1H%$!1ANyq6_0OSPQJybh^vFriV=`S;kSsYkExZwB{68$dTODWJQ z@N57kBhwN(y~OHW_M}rX2W13cl@*i_tjW`TMfa~Y;I}1hzApXgWqag@(*@(|EMOg- z^qMk(s~dL#ps>>`oWZD=i1XI3(;gs7q#^Uj&L`gVu#4zn$i!BIHMoOZG!YoPO^=Gu z5`X-(KoSsHL77c<7^Y*IM2bI!dzg5j>;I@2-EeB$LgW|;csQTM&Z|R)q>yEjk@Sw% z6FQk*&zHWzcXalUJSoa&pgH24n`wKkg=2^ta$b1`(BBpBT2Ah9yQF&Kh+3jTaSE|=vChGz2_R^{$C;D`Ua(_=|OO11uLm;+3k%kO19EA`U065i;fRBoH z{Hq$cgHKRFPf0#%L?$*KeS@FDD;_TfJ#dwP7zzO5F>xntH(ONK{4)#jYUDQr6N(N< zp+fAS9l9)^c4Ss8628Zq5AzMq4zc(In_yJSXAT57Dtl}@= zvZoD7iq0cx7*#I{{r9m{%~g6@Hdr|*njKBb_5}mobCv=&X^`D9?;x6cHwRcwnlO^h zl;MiKr#LaoB*PELm8+8%btnC)b^E12!^ zMmVA!z>59e7n+^!P{PA?f9M^2FjKVw1%x~<`RY5FcXJE)AE}MTopGFDkyEjGiE|C6 z(ad%<3?v*?p;LJGopSEY18HPu2*}U!Nm|rfewc6(&y(&}B#j85d-5PeQ{}zg>>Rvl zDQ3H4E%q_P&kjuAQ>!0bqgAj){vzHpnn+h(AjQ6GO9v**l0|aCsCyXVE@uh?DU;Em zE*+7EU9tDH````D`|rM6WUlzBf1e{ht8$62#ilA6Dcw)qAzSRwu{czZJAcKv8w(Q6 zx)b$aq*=E=b5(UH-5*u)3iFlD;XQyklZrwHy}+=h6=aKtTriguHP@Inf+H@q32_LL z2tX|+X}4dMYB;*EW9~^5bydv)_!<%q#%Ocyh=1>FwL{rtZ?#2Scp{Q55%Fd-LgLU$ zM2u#|F{%vi%+O2^~uK3)?$6>9cc7_}F zWU72eFrzZ~x3ZIBH;~EMtD%51o*bnW;&QuzwWd$ds=O>Ev807cu%>Ac^ZK&7bCN;Ftk#eeQL4pG0p!W{Ri@tGw>nhIo`rC zi!Z6?70nYrNf92V{Y_i(a4DG=5>RktP=?%GcHEx?aKN$@{w{uj#Cqev$bXefo?yC6KI%Rol z%~$974WCymg;BBhd9Mv}_MeNro_8IB4!evgo*je4h?B-CAkEW-Wr-Q_V9~ef(znU& z{f-OHnj>@lZH(EcUb2TpOkc70@1BPiY0B#++1EPY5|UU?&^Vpw|C`k4ZWiB-3oAQM zgmG%M`2qDw5BMY|tG++34My2fE|^kvMSp(d+~P(Vk*d+RW1833i_bX^RYbg9tDtX` zox?y^YYfs-#fX|y7i(FN7js)66jN!`p9^r7oildEU#6J1(415H3h>W*p(p9@dI|c7 z&c*Aqzksg}o`D@i+o@WIw&jjvL!(`)JglV5zwMn)praO2M05H&CDeps0Wq8(8AkuE zPm|8MB6f0kOzg(gw}k>rzhQyo#<#sVdht~Wdk`y`=%0!jbd1&>Kxed8lS{Xq?Zw>* zU5;dM1tt``JH+A9@>H%-9f=EnW)UkRJe0+e^iqm0C5Z5?iEn#lbp}Xso ztleC}hl&*yPFcoCZ@sgvvjBA_Ew6msFml$cfLQY_(=h03WS_z+Leeh$M3#-?f9YT^Q($z z+pgaEv$rIa*9wST`WHASQio=9IaVS7l<87%;83~X*`{BX#@>>p=k`@FYo ze!K5_h8hOc`m0mK0p}LxsguM}w=9vw6Ku8y@RNrXSRPh&S`t4UQY=e-B8~3YCt1Fc zU$CtRW%hbcy{6K{>v0F*X<`rXVM3a{!muAeG$zBf`a(^l${EA9w3>J{aPwJT?mKVN2ba+v)Mp*~gQ_+Ws6= zy@D?85!U@VY0z9T=E9LMbe$?7_KIg)-R$tD)9NqIt84fb{B;f7C)n+B8)Cvo*F0t! zva6LeeC}AK4gL#d#N_HvvD& z0;mdU3@7%d5>h(xX-NBmJAOChtb(pX-qUtRLF5f$ z`X?Kpu?ENMc88>O&ym_$Jc7LZ> z#73|xJ|aa@l}PawS4Mpt9n)38w#q^P1w2N|rYKdcG;nb!_nHMZA_09L!j)pBK~e+j?tb-_A`wF8 zIyh>&%v=|n?+~h}%i1#^9UqZ?E9W!qJ0d0EHmioSt@%v7FzF`eM$X==#oaPESHBm@ zYzTXVo*y|C0~l_)|NF|F(If~YWJVkQAEMf5IbH{}#>PZpbXZU;+b^P8LWmlmDJ%Zu)4CajvRL!g_Faph`g0hpA2)D0|h zYy0h5+@4T81(s0D=crojdj|dYa{Y=<2zKp@xl&{sHO;#|!uTHtTey25f1U z#=Nyz{rJy#@SPk3_U|aALcg%vEjwIqSO$LZI59^;Mu~Swb53L+>oxWiN7J{;P*(2b@ao*aU~}-_j10 z@fQiaWnb}fRrHhNKrxKmi{aC#34BRP(a#0K>-J8D+v_2!~(V-6J%M@L{s?fU5ChwFfqn)2$siOUKw z?SmIRlbE8ot5P^z0J&G+rQ5}H=JE{FNsg`^jab7g-c}o`s{JS{-#}CRdW@hO`HfEp z1eR0DsN! zt5xmsYt{Uu;ZM`CgW)VYk=!$}N;w+Ct$Wf!*Z-7}@pA62F^1e$Ojz9O5H;TyT&rV( zr#IBM8te~-2t2;kv2xm&z%tt3pyt|s#vg2EOx1XkfsB*RM;D>ab$W-D6#Jdf zJ3{yD;P4=pFNk2GL$g~+5x;f9m*U2!ovWMK^U5`mAgBRhGpu)e`?#4vsE1aofu)iT zDm;aQIK6pNd8MMt@}h|t9c$)FT7PLDvu3e)y`otVe1SU4U=o@d!gn(DB9kC>Ac1wJ z?`{Hq$Q!rGb9h&VL#z+BKsLciCttdLJe9EmZF)J)c1MdVCrxg~EM80_b3k{ur=jVjrVhDK1GTjd3&t#ORvC0Q_&m|n>&TF1C_>k^8&ylR7oz#rG?mE%V| zepj0BlD|o?p8~LK_to`GINhGyW{{jZ{xqaO*SPvH)BYy1eH22DL_Kkn28N!0z3fzj z_+xZ3{ph_Tgkd)D$OjREak$O{F~mODA_D`5VsoobVnpxI zV0F_79%JB!?@jPs=cY73FhGuT!?fpVX1W=Wm zK5}i7(Pfh4o|Z{Ur=Y>bM1BDo2OdXBB(4Y#Z!61A8C6;7`6v-(P{ou1mAETEV?Nt< zMY&?ucJcJ$NyK0Zf@b;U#3ad?#dp`>zmNn=H1&-H`Y+)ai-TfyZJX@O&nRB*7j$ zDQF!q#a7VHL3z#Hc?Ca!MRbgL`daF zW#;L$yiQP|5VvgvRLluk3>-1cS+7MQ1)DC&DpYyS9j;!Rt$HdXK1}tG3G_)ZwXvGH zG;PB^f@CFrbEK4>3gTVj73~Tny+~k_pEHt|^eLw{?6NbG&`Ng9diB9XsMr(ztNC!{FhW8Hi!)TI`(Q|F*b z-z;#*c1T~kN67omP(l7)ZuTlxaC_XI(K8$VPfAzj?R**AMb0*p@$^PsN!LB@RYQ4U zA^xYY9sX4+;7gY%$i%ddfvneGfzbE4ZTJT5Vk3&1`?ULTy28&D#A&{dr5ZlZH&NTz zdfZr%Rw*Ukmgu@$C5$}QLOyb|PMA5syQns?iN@F|VFEvFPK321mTW^uv?GGNH6rnM zR9a2vB`}Y++T3Wumy$6`W)_c0PS*L;;0J^(T7<)`s{}lZVp`e)fM^?{$ zLbNw>N&6aw5Hlf_M)h8=)x0$*)V-w-Pw5Kh+EY{^$?#{v)_Y{9p5K{DjLnJ(ZUcyk*y(6D8wHB8=>Y)fb_Pw0v)Xybk`Sw@hNEaHP$-n`DtYP ziJyiauEXtuMpWyQjg$gdJR?e+=8w+=5GO-OT8pRaVFP1k^vI|I&agGjN-O*bJEK!M z`kt^POhUexh+PA&@And|vk-*MirW?>qB(f%y{ux z*d44UXxQOs+C`e-x4KSWhPg-!gO~kavIL8X3?!Ac2ih-dkK~Ua2qlcs1b-AIWg*8u z0QvL~51vS$LnmJSOnV4JUCUzg&4;bSsR5r_=FD@y|)Y2R_--e zMWJ;~*r=vJssF5_*n?wF0DO_>Mja=g+HvT=Yd^uBU|aw zRixHUQJX0Pgt-nFV+8&|;-n>!jNUj!8Y_YzH*%M!-_uWt6& z|Ec+lAD``i^do;u_?<(RpzsYZVJ8~}|NjUFgXltofbjhf!v&208g^#0h-x?`z8cInq!9kfVwJ|HQ;VK>p_-fn@(3q?e51Keq(=U-7C0#as-q z8Or}Ps07>O2@AAXz_%3bTOh{tKm#uRe}Sqr=w6-Wz$FCdfF3qNabEaj`-OfipxaL- zPh2R*l&%ZbcV?lv4C3+t2DAVSFaRo20^W_n4|0t(_*`?KmmUHG2sNZ*CRZlCFIyZbJqLdBCj)~%if)g|4NJr(8!R!E0iBbm$;`m;1n2@(8*E%B zH!g{hK|WK?1jUfM9zX?hlV#l%!6^p$$P+~rg}OdKg|d^Ed4WTY1$1J@WWHr$Os_(L z;-Zu1FJqhR4LrCUl)C~E7gA!^wtA6YIh10In9rX@LGSjnTPtLp+gPGp6u z3}{?J1!yT~?FwqT;O_-1%37f#4ek&DL){N}MX3RbNfRb-T;U^wXhx#De&QssA$lu~ mWkA_K7-+yz9tH*t6hj_Qg(_m7JaeTomk=)l!_+yTk^le-`GmOu delta 34176 zcmX7vV`H6d(}mmEwr$(CZQE$vU^m*aZQE(=WXEZ2+l}qF_w)XN>&rEBu9;)4>7EB0 zo(HR^Mh47P)@z^^pH!4#b(O8!;$>N+S+v5K5f8RrQ+Qv0_oH#e!pI2>yt4ij>fI9l zW&-hsVAQg%dpn3NRy$kb_vbM2sr`>bZ48b35m{D=OqX;p8A${^Dp|W&J5mXvUl#_I zN!~GCBUzj~C%K?<7+UZ_q|L)EGG#_*2Zzko-&Kck)Qd2%CpS3{P1co1?$|Sj1?E;PO z7alI9$X(MDly9AIEZ-vDLhpAKd1x4U#w$OvBtaA{fW9)iD#|AkMrsSaNz(69;h1iM1#_ z?u?O_aKa>vk=j;AR&*V-p3SY`CI}Uo%eRO(Dr-Te<99WQhi>y&l%UiS%W2m(d#woD zW?alFl75!1NiUzVqgqY98fSQNjhX3uZ&orB08Y*DFD;sjIddWoJF;S_@{Lx#SQk+9 zvSQ-620z0D7cy8-u_7u?PqYt?R0m2k%PWj%V(L|MCO(@3%l&pzEy7ijNv(VXU9byn z@6=4zL|qk*7!@QWd9imT9i%y}1#6+%w=s%WmsHbw@{UVc^?nL*GsnACaLnTbr9A>B zK)H-$tB`>jt9LSwaY+4!F1q(YO!E7@?SX3X-Ug4r($QrmJnM8m#;#LN`kE>?<{vbCZbhKOrMpux zTU=02hy${;n&ikcP8PqufhT9nJU>s;dyl;&~|Cs+o{9pCu{cRF+0{iyuH~6=tIZXVd zR~pJBC3Hf-g%Y|bhTuGyd~3-sm}kaX5=T?p$V?48h4{h2;_u{b}8s~Jar{39PnL7DsXpxcX#3zx@f9K zkkrw9s2*>)&=fLY{=xeIYVICff2Id5cc*~l7ztSsU@xuXYdV1(lLGZ5)?mXyIDf1- zA7j3P{C5s?$Y-kg60&XML*y93zrir8CNq*EMx)Kw)XA(N({9t-XAdX;rjxk`OF%4-0x?ne@LlBQMJe5+$Ir{Oj`@#qe+_-z!g5qQ2SxKQy1ex_x^Huj%u+S@EfEPP-70KeL@7@PBfadCUBt%`huTknOCj{ z;v?wZ2&wsL@-iBa(iFd)7duJTY8z-q5^HR-R9d*ex2m^A-~uCvz9B-1C$2xXL#>ow z!O<5&jhbM&@m=l_aW3F>vjJyy27gY}!9PSU3kITbrbs#Gm0gD?~Tub8ZFFK$X?pdv-%EeopaGB#$rDQHELW!8bVt`%?&>0 zrZUQ0!yP(uzVK?jWJ8^n915hO$v1SLV_&$-2y(iDIg}GDFRo!JzQF#gJoWu^UW0#? z*OC-SPMEY!LYY*OO95!sv{#-t!3Z!CfomqgzFJld>~CTFKGcr^sUai5s-y^vI5K={ z)cmQthQuKS07e8nLfaIYQ5f}PJQqcmokx?%yzFH*`%k}RyXCt1Chfv5KAeMWbq^2MNft;@`hMyhWg50(!jdAn;Jyx4Yt)^^DVCSu?xRu^$*&&=O6#JVShU_N3?D)|$5pyP8A!f)`| z>t0k&S66T*es5(_cs>0F=twYJUrQMqYa2HQvy)d+XW&rai?m;8nW9tL9Ivp9qi2-` zOQM<}D*g`28wJ54H~1U!+)vQh)(cpuf^&8uteU$G{9BUhOL| zBX{5E1**;hlc0ZAi(r@)IK{Y*ro_UL8Ztf8n{Xnwn=s=qH;fxkK+uL zY)0pvf6-iHfX+{F8&6LzG;&d%^5g`_&GEEx0GU=cJM*}RecV-AqHSK@{TMir1jaFf&R{@?|ieOUnmb?lQxCN!GnAqcii9$ z{a!Y{Vfz)xD!m2VfPH=`bk5m6dG{LfgtA4ITT?Sckn<92rt@pG+sk>3UhTQx9ywF3 z=$|RgTN<=6-B4+UbYWxfQUOe8cmEDY3QL$;mOw&X2;q9x9qNz3J97)3^jb zdlzkDYLKm^5?3IV>t3fdWwNpq3qY;hsj=pk9;P!wVmjP|6Dw^ez7_&DH9X33$T=Q{>Nl zv*a*QMM1-2XQ)O=3n@X+RO~S`N13QM81^ZzljPJIFBh%x<~No?@z_&LAl)ap!AflS zb{yFXU(Uw(dw%NR_l7%eN2VVX;^Ln{I1G+yPQr1AY+0MapBnJ3k1>Zdrw^3aUig*! z?xQe8C0LW;EDY(qe_P!Z#Q^jP3u$Z3hQpy^w7?jI;~XTz0ju$DQNc4LUyX}+S5zh> zGkB%~XU+L?3pw&j!i|x6C+RyP+_XYNm9`rtHpqxvoCdV_MXg847oHhYJqO+{t!xxdbsw4Ugn($Cwkm^+36&goy$vkaFs zrH6F29eMPXyoBha7X^b+N*a!>VZ<&Gf3eeE+Bgz7PB-6X7 z_%2M~{sTwC^iQVjH9#fVa3IO6E4b*S%M;#WhHa^L+=DP%arD_`eW5G0<9Tk=Ci?P@ z6tJXhej{ZWF=idj32x7dp{zmQY;;D2*11&-(~wifGXLmD6C-XR=K3c>S^_+x!3OuB z%D&!EOk;V4Sq6eQcE{UEDsPMtED*;qgcJU^UwLwjE-Ww54d73fQ`9Sv%^H>juEKmxN+*aD=0Q+ZFH1_J(*$~9&JyUJ6!>(Nj zi3Z6zWC%Yz0ZjX>thi~rH+lqv<9nkI3?Ghn7@!u3Ef){G(0Pvwnxc&(YeC=Kg2-7z zr>a^@b_QClXs?Obplq@Lq-l5>W);Y^JbCYk^n8G`8PzCH^rnY5Zk-AN6|7Pn=oF(H zxE#8LkI;;}K7I^UK55Z)c=zn7OX_XVgFlEGSO}~H^y|wd7piw*b1$kA!0*X*DQ~O` z*vFvc5Jy7(fFMRq>XA8Tq`E>EF35{?(_;yAdbO8rrmrlb&LceV%;U3haVV}Koh9C| zTZnR0a(*yN^Hp9u*h+eAdn)d}vPCo3k?GCz1w>OOeme(Mbo*A7)*nEmmUt?eN_vA; z=~2}K_}BtDXJM-y5fn^v>QQo+%*FdZQFNz^j&rYhmZHgDA-TH47#Wjn_@iH4?6R{J z%+C8LYIy>{3~A@|y4kN8YZZp72F8F@dOZWp>N0-DyVb4UQd_t^`P)zsCoygL_>>x| z2Hyu7;n(4G&?wCB4YVUIVg0K!CALjRsb}&4aLS|}0t`C}orYqhFe7N~h9XQ_bIW*f zGlDCIE`&wwyFX1U>}g#P0xRRn2q9%FPRfm{-M7;}6cS(V6;kn@6!$y06lO>8AE_!O z{|W{HEAbI0eD$z9tQvWth7y>qpTKQ0$EDsJkQxAaV2+gE28Al8W%t`Pbh zPl#%_S@a^6Y;lH6BfUfZNRKwS#x_keQ`;Rjg@qj zZRwQXZd-rWngbYC}r6X)VCJ-=D54A+81%(L*8?+&r7(wOxDSNn!t(U}!;5|sjq zc5yF5$V!;%C#T+T3*AD+A({T)#p$H_<$nDd#M)KOLbd*KoW~9E19BBd-UwBX1<0h9 z8lNI&7Z_r4bx;`%5&;ky+y7PD9F^;Qk{`J@z!jJKyJ|s@lY^y!r9p^75D)_TJ6S*T zLA7AA*m}Y|5~)-`cyB+lUE9CS_`iB;MM&0fX**f;$n($fQ1_Zo=u>|n~r$HvkOUK(gv_L&@DE0b4#ya{HN)8bNQMl9hCva zi~j0v&plRsp?_zR zA}uI4n;^_Ko5`N-HCw_1BMLd#OAmmIY#ol4M^UjLL-UAat+xA+zxrFqKc@V5Zqan_ z+LoVX-Ub2mT7Dk_ z<+_3?XWBEM84@J_F}FDe-hl@}x@v-s1AR{_YD!_fMgagH6s9uyi6pW3gdhauG>+H? zi<5^{dp*5-9v`|m*ceT&`Hqv77oBQ+Da!=?dDO&9jo;=JkzrQKx^o$RqAgzL{ zjK@n)JW~lzxB>(o(21ibI}i|r3e;17zTjdEl5c`Cn-KAlR7EPp84M@!8~CywES-`mxKJ@Dsf6B18_!XMIq$Q3rTDeIgJ3X zB1)voa#V{iY^ju>*Cdg&UCbx?d3UMArPRHZauE}c@Fdk;z85OcA&Th>ZN%}=VU%3b9={Q(@M4QaeuGE(BbZ{U z?WPDG+sjJSz1OYFpdImKYHUa@ELn%n&PR9&I7B$<-c3e|{tPH*u@hs)Ci>Z@5$M?lP(#d#QIz}~()P7mt`<2PT4oHH}R&#dIx4uq943D8gVbaa2&FygrSk3*whGr~Jn zR4QnS@83UZ_BUGw;?@T zo5jA#potERcBv+dd8V$xTh)COur`TQ^^Yb&cdBcesjHlA3O8SBeKrVj!-D3+_p6%P zP@e{|^-G-C(}g+=bAuAy8)wcS{$XB?I=|r=&=TvbqeyXiuG43RR>R72Ry7d6RS;n^ zO5J-QIc@)sz_l6%Lg5zA8cgNK^GK_b-Z+M{RLYk5=O|6c%!1u6YMm3jJg{TfS*L%2 zA<*7$@wgJ(M*gyTzz8+7{iRP_e~(CCbGB}FN-#`&1ntct@`5gB-u6oUp3#QDxyF8v zOjxr}pS{5RpK1l7+l(bC)0>M;%7L?@6t}S&a zx0gP8^sXi(g2_g8+8-1~hKO;9Nn%_S%9djd*;nCLadHpVx(S0tixw2{Q}vOPCWvZg zjYc6LQ~nIZ*b0m_uN~l{&2df2*ZmBU8dv`#o+^5p>D5l%9@(Y-g%`|$%nQ|SSRm0c zLZV)45DS8d#v(z6gj&6|ay@MP23leodS8-GWIMH8_YCScX#Xr)mbuvXqSHo*)cY9g z#Ea+NvHIA)@`L+)T|f$Etx;-vrE3;Gk^O@IN@1{lpg&XzU5Eh3!w;6l=Q$k|%7nj^ z|HGu}c59-Ilzu^w<93il$cRf@C(4Cr2S!!E&7#)GgUH@py?O;Vl&joXrep=2A|3Vn zH+e$Ctmdy3B^fh%12D$nQk^j|v=>_3JAdKPt2YVusbNW&CL?M*?`K1mK*!&-9Ecp~>V1w{EK(429OT>DJAV21fG z=XP=%m+0vV4LdIi#(~XpaUY$~fQ=xA#5?V%xGRr_|5WWV=uoG_Z&{fae)`2~u{6-p zG>E>8j({w7njU-5Lai|2HhDPntQ(X@yB z9l?NGoKB5N98fWrkdN3g8ox7Vic|gfTF~jIfXkm|9Yuu-p>v3d{5&hC+ZD%mh|_=* zD5v*u(SuLxzX~owH!mJQi%Z=ALvdjyt9U6baVY<88B>{HApAJ~>`buHVGQd%KUu(d z5#{NEKk6Vy08_8*E(?hqZe2L?P2$>!0~26N(rVzB9KbF&JQOIaU{SumX!TsYzR%wB z<5EgJXDJ=1L_SNCNZcBWBNeN+Y`)B%R(wEA?}Wi@mp(jcw9&^1EMSM58?68gwnXF` zzT0_7>)ep%6hid-*DZ42eU)tFcFz7@bo=<~CrLXpNDM}tv*-B(ZF`(9^RiM9W4xC%@ZHv=>w(&~$Wta%)Z;d!{J;e@z zX1Gkw^XrHOfYHR#hAU=G`v43E$Iq}*gwqm@-mPac0HOZ0 zVtfu7>CQYS_F@n6n#CGcC5R%4{+P4m7uVlg3axX}B(_kf((>W?EhIO&rQ{iUO$16X zv{Abj3ZApUrcar7Ck}B1%RvnR%uocMlKsRxV9Qqe^Y_5C$xQW@9QdCcF%W#!zj;!xWc+0#VQ*}u&rJ7)zc+{vpw+nV?{tdd&Xs`NV zKUp|dV98WbWl*_MoyzM0xv8tTNJChwifP!9WM^GD|Mkc75$F;j$K%Y8K@7?uJjq-w zz*|>EH5jH&oTKlIzueAN2926Uo1OryC|CmkyoQZABt#FtHz)QmQvSX35o`f z<^*5XXxexj+Q-a#2h4(?_*|!5Pjph@?Na8Z>K%AAjNr3T!7RN;7c)1SqAJfHY|xAV z1f;p%lSdE8I}E4~tRH(l*rK?OZ>mB4C{3e%E-bUng2ymerg8?M$rXC!D?3O}_mka? zm*Y~JMu+_F7O4T;#nFv)?Ru6 z92r|old*4ZB$*6M40B;V&2w->#>4DEu0;#vHSgXdEzm{+VS48 z7U1tVn#AnQ3z#gP26$!dmS5&JsXsrR>~rWA}%qd{92+j zu+wYAqrJYOA%WC9nZ>BKH&;9vMSW_59z5LtzS4Q@o5vcrWjg+28#&$*8SMYP z!l5=|p@x6YnmNq>23sQ(^du5K)TB&K8t{P`@T4J5cEFL@qwtsCmn~p>>*b=37y!kB zn6x{#KjM{S9O_otGQub*K)iIjtE2NfiV~zD2x{4r)IUD(Y8%r`n;#)ujIrl8Sa+L{ z>ixGoZJ1K@;wTUbRRFgnltN_U*^EOJS zRo4Y+S`cP}e-zNtdl^S5#%oN#HLjmq$W^(Y6=5tM#RBK-M14RO7X(8Gliy3+&9fO; zXn{60%0sWh1_g1Z2r0MuGwSGUE;l4TI*M!$5dm&v9pO7@KlW@j_QboeDd1k9!7S)jIwBza-V#1)(7ht|sjY}a19sO!T z2VEW7nB0!zP=Sx17-6S$r=A)MZikCjlQHE)%_Ka|OY4+jgGOw=I3CM`3ui^=o0p7u z?xujpg#dRVZCg|{%!^DvoR*~;QBH8ia6%4pOh<#t+e_u!8gjuk_Aic=|*H24Yq~Wup1dTRQs0nlZOy+30f16;f7EYh*^*i9hTZ`h`015%{i|4 z?$7qC3&kt#(jI#<76Biz=bl=k=&qyaH>foM#zA7}N`Ji~)-f-t&tR4^do)-5t?Hz_Q+X~S2bZx{t+MEjwy3kGfbv(ij^@;=?H_^FIIu*HP_7mpV)NS{MY-Rr7&rvWo@Wd~{Lt!8|66rq`GdGu% z@<(<7bYcZKCt%_RmTpAjx=TNvdh+ZiLkMN+hT;=tC?%vQQGc7WrCPIYZwYTW`;x|N zrlEz1yf95FiloUU^(onr3A3>+96;;6aL?($@!JwiQ2hO|^i)b4pCJ7-y&a~B#J`#FO!3uBp{5GBvM2U@K85&o0q~6#LtppE&cVY z3Bv{xQ-;i}LN-60B2*1suMd=Fi%Y|7@52axZ|b=Wiwk^5eg{9X4}(q%4D5N5_Gm)` zg~VyFCwfkIKW(@@ZGAlTra6CO$RA_b*yz#){B82N7AYpQ9)sLQfhOAOMUV7$0|d$=_y&jl>va$3u-H z_+H*|UXBPLe%N2Ukwu1*)kt!$Y>(IH3`YbEt; znb1uB*{UgwG{pQnh>h@vyCE!6B~!k}NxEai#iY{$!_w54s5!6jG9%pr=S~3Km^EEA z)sCnnau+ZY)(}IK#(3jGGADw8V7#v~<&y5cF=5_Ypkrs3&7{}%(4KM7) zuSHVqo~g#1kzNwXc39%hL8atpa1Wd#V^uL=W^&E)fvGivt)B!M)?)Y#Ze&zU6O_I?1wj)*M;b*dE zqlcwgX#eVuZj2GKgBu@QB(#LHMd`qk<08i$hG1@g1;zD*#(9PHjVWl*5!;ER{Q#A9 zyQ%fu<$U?dOW=&_#~{nrq{RRyD8upRi}c-m!n)DZw9P>WGs>o1vefI}ujt_`O@l#Z z%xnOt4&e}LlM1-0*dd?|EvrAO-$fX8i{aTP^2wsmSDd!Xc9DxJB=x1}6|yM~QQPbl z0xrJcQNtWHgt*MdGmtj%x6SWYd?uGnrx4{m{6A9bYx`m z$*UAs@9?3s;@Jl19%$!3TxPlCkawEk12FADYJClt0N@O@Pxxhj+Kk(1jK~laR0*KGAc7%C4nI^v2NShTc4#?!p{0@p0T#HSIRndH;#Ts0YECtlSR}~{Uck+keoJq6iH)(Zc~C!fBe2~4(Wd> zR<4I1zMeW$<0xww(@09!l?;oDiq zk8qjS9Lxv$<5m#j(?4VLDgLz;8b$B%XO|9i7^1M;V{aGC#JT)c+L=BgCfO5k>CTlI zOlf~DzcopV29Dajzt*OcYvaUH{UJPaD$;spv%>{y8goE+bDD$~HQbON>W*~JD`;`- zZEcCPSdlCvANe z=?|+e{6AW$f(H;BND>uy1MvQ`pri>SafK5bK!YAE>0URAW9RS8#LWUHBOc&BNQ9T+ zJpg~Eky!u!9WBk)!$Z?!^3M~o_VPERYnk1NmzVYaGH;1h+;st==-;jzF~2LTn+x*k zvywHZg7~=aiJe=OhS@U>1fYGvT1+jsAaiaM;) zay2xsMKhO+FIeK?|K{G4SJOEt*eX?!>K8jpsZWW8c!X|JR#v(1+Ey5NM^TB1n|_40 z@Db2gH}PNT+3YEyqXP8U@)`E|Xat<{K5K;eK7O0yV72m|b!o43!e-!P>iW>7-9HN7 zmmc7)JX0^lPzF#>$#D~nU^3f!~Q zQWly&oZEb1847&czU;dg?=dS>z3lJkADL1innNtE(f?~OxM`%A_PBp?Lj;zDDomf$ z;|P=FTmqX|!sHO6uIfCmh4Fbgw@`DOn#`qAPEsYUiBvUlw zevH{)YWQu>FPXU$%1!h*2rtk_J}qNkkq+StX8Wc*KgG$yH#p-kcD&)%>)Yctb^JDB zJe>=!)5nc~?6hrE_3n^_BE<^;2{}&Z>Dr)bX>H{?kK{@R)`R5lnlO6yU&UmWy=d03 z*(jJIwU3l0HRW1PvReOb|MyZT^700rg8eFp#p<3Et%9msiCxR+jefK%x81+iN0=hG z;<`^RUVU+S)Iv-*5y^MqD@=cp{_cP4`s=z)Ti3!Bf@zCmfpZTwf|>|0t^E8R^s`ad z5~tA?0x7OM{*D;zb6bvPu|F5XpF11`U5;b*$p zNAq7E6c=aUnq>}$JAYsO&=L^`M|DdSSp5O4LA{|tO5^8%Hf1lqqo)sj=!aLNKn9(3 zvKk($N`p`f&u+8e^Z-?uc2GZ_6-HDQs@l%+pWh!|S9+y3!jrr3V%cr{FNe&U6(tYs zLto$0D+2}K_9kuxgFSeQ!EOXjJtZ$Pyl_|$mPQ9#fES=Sw8L% zO7Jij9cscU)@W+$jeGpx&vWP9ZN3fLDTp zaYM$gJD8ccf&g>n?a56X=y zec%nLN`(dVCpSl9&pJLf2BN;cR5F0Nn{(LjGe7RjFe7efp3R_2JmHOY#nWEc2TMhMSj5tBf-L zlxP3sV`!?@!mRnDTac{35I7h@WTfRjRiFw*Q*aD8)n)jdkJC@)jD-&mzAdK6Kqdct8P}~dqixq;n zjnX!pb^;5*Rr?5ycT7>AB9)RED^x+DVDmIbHKjcDv2lHK;apZOc=O@`4nJ;k|iikKk66v4{zN#lmSn$lh z_-Y3FC)iV$rFJH!#mNqWHF-DtSNbI)84+VLDWg$ph_tkKn_6+M1RZ!)EKaRhY={el zG-i@H!fvpH&4~$5Q+zHU(Ub=;Lzcrc3;4Cqqbr$O`c5M#UMtslK$3r+Cuz>xKl+xW?`t2o=q`1djXC=Q6`3C${*>dm~I{ z(aQH&Qd{{X+&+-4{epSL;q%n$)NOQ7kM}ea9bA++*F+t$2$%F!U!U}(&y7Sd0jQMV zkOhuJ$+g7^kb<`jqFiq(y1-~JjP13J&uB=hfjH5yAArMZx?VzW1~>tln~d5pt$uWR~TM!lIg+D)prR zocU0N2}_WTYpU`@Bsi1z{$le`dO{-pHFQr{M}%iEkX@0fv!AGCTcB90@e|slf#unz z*w4Cf>(^XI64l|MmWih1g!kwMJiifdt4C<5BHtaS%Ra>~3IFwjdu;_v*7BL|fPu+c zNp687`{}e@|%)5g4U*i=0zlSWXzz=YcZ*&Bg zr$r(SH0V5a%oHh*t&0y%R8&jDI=6VTWS_kJ!^WN!ET@XfEHYG-T1jJsDd`yEgh!^* z+!P62=v`R2=TBVjt=h}|JIg7N^RevZuyxyS+jsk>=iLA52Ak+7L?2$ZDUaWdi1PgB z_;*Uae_n&7o27ewV*y(wwK~8~tU<#Np6UUIx}zW6fR&dKiPq|$A{BwG_-wVfkm+EP zxHU@m`im3cD#fH63>_X`Il-HjZN_hqOVMG;(#7RmI13D-s_>41l|vDH1BglPsNJ+p zTniY{Hwoief+h%C^|@Syep#722=wmcTR7awIzimAcye?@F~f|n<$%=rM+Jkz9m>PF70$)AK@|h_^(zn?!;={;9Zo7{ zBI7O?6!J2Ixxk;XzS~ScO9{K1U9swGvR_d+SkromF040|Slk%$)M;9O_8h0@WPe4= z%iWM^ust8w$(NhO)7*8uq+9CycO$3m-l}O70sBi<4=j0CeE_&3iRUWJkDM$FIfrkR zHG2|hVh3?Nt$fdI$W?<|Qq@#hjDijk@7eUr1&JHYI>(_Q4^3$+Zz&R)Z`WqhBIvjo zX#EbA8P0Qla-yACvt)%oAVHa#kZi3Y8|(IOp_Z6J-t{)98*OXQ#8^>vTENsV@(M}^ z(>8BXw`{+)BfyZB!&85hT0!$>7$uLgp9hP9M7v=5@H`atsri1^{1VDxDqizj46-2^ z?&eA9udH#BD|QY2B7Zr$l;NJ-$L!u8G{MZoX)~bua5J=0p_JnM`$(D4S!uF}4smWq zVo%kQ~C~X?cWCH zo4s#FqJ)k|D{c_ok+sZ8`m2#-Uk8*o)io`B+WTD0PDA!G`DjtibftJXhPVjLZj~g& z=MM9nF$7}xvILx}BhM;J-Xnz0=^m1N2`Mhn6@ct+-!ijIcgi6FZ*oIPH(tGYJ2EQ0 z{;cjcc>_GkAlWEZ2zZLA_oa-(vYBp7XLPbHCBcGH$K9AK6nx}}ya%QB2=r$A;11*~ z_wfru1SkIQ0&QUqd)%eAY^FL!G;t@7-prQ|drDn#yDf%Uz8&kGtrPxKv?*TqkC(}g zUx10<;3Vhnx{gpWXM8H zKc0kkM~gIAts$E!X-?3DWG&^knj4h(q5(L;V81VWyC@_71oIpXfsb0S(^Js#N_0E} zJ%|XX&EeVPyu}? zz~(%slTw+tcY3ZMG$+diC8zed=CTN}1fB`RXD_v2;{evY z@MCG$l9Az+F()8*SqFyrg3jrN7k^x3?;A?L&>y{ZUi$T8!F7Dv8s}}4r9+Wo0h^m= zAob@CnJ;IR-{|_D;_w)? zcH@~&V^(}Ag}%A90);X2AhDj(-YB>$>GrW1F4C*1S5`u@N{T|;pYX1;E?gtBbPvS* zlv3r#rw2KCmLqX0kGT8&%#A6Sc(S>apOHtfn+UdYiN4qPawcL{Sb$>&I)Ie>Xs~ej z7)a=-92!sv-A{-7sqiG-ysG0k&beq6^nX1L!Fs$JU#fsV*CbsZqBQ|y z{)}zvtEwO%(&mIG|L?qs2Ou1rqTZHV@H+sm8Nth(+#dp0DW4VXG;;tCh`{BpY)THY z_10NNWpJuzCG%Q@#Aj>!v7Eq8eI6_JK3g2CsB2jz)2^bWiM{&U8clnV7<2?Qx5*k_ zl9B$P@LV7Sani>Xum{^yJ6uYxM4UHnw4zbPdM|PeppudXe}+OcX z!nr!xaUA|xYtA~jE|436iL&L={H3e}H`M1;2|pLG)Z~~Ug9X%_#D!DW>w}Es!D{=4 zxRPBf5UWm2{}D>Em;v43miQ~2{>%>O*`wA{7j;yh;*DV=C-bs;3p{AD;>VPcn>E;V zLgtw|Y{|Beo+_ABz`lofH+cdf33LjIf!RdcW~wWgmsE%2yCQGbst4TS_t%6nS8a+m zFEr<|9TQzQC@<(yNN9GR4S$H-SA?xiLIK2O2>*w-?cdzNPsG4D3&%$QOK{w)@Dk}W z|3_Z>U`XBu7j6Vc=es(tz}c7k4al1$cqDW4a~|xgE9zPX(C`IsN(QwNomzsBOHqjd zi{D|jYSv5 zC>6#uB~%#!!*?zXW`!yHWjbjwm!#eo3hm;>nJ!<`ZkJamE6i>>WqkoTpbm(~b%G_v z`t3Z#ERips;EoA_0c?r@WjEP|ulD+hue5r8946Sd0kuBD$A!=dxigTZn)u3>U;Y8l zX9j(R*(;;i&HrB&M|Xnitzf@><3#)aKy=bFCf5Hz@_);{nlL?J!U>%fL$Fk~Ocs3& zB@-Ek%W>h9#$QIYg07&lS_CG3d~LrygXclO!Ws-|PxMsn@n{?77wCaq?uj`dd7lllDCGd?ed&%5k{RqUhiN1u&?uz@Fq zNkv_4xmFcl?vs>;emR1R<$tg;*Ayp@rl=ik z=x2Hk zJqsM%++e|*+#camAiem6f;3-khtIgjYmNL0x|Mz|y{r{6<@_&a7^1XDyE>v*uo!qF zBq^I8PiF#w<-lFvFx9xKoi&0j)4LX~rWsK$%3hr@ebDv^($$T^4m4h#Q-(u*Mbt6F zE%y0Fvozv=WAaTj6EWZ)cX{|9=AZDvPQuq>2fUkU(!j1GmdgeYLX`B0BbGK(331ME zu3yZ3jQ@2)WW5!C#~y}=q5Av=_;+hNi!%gmY;}~~e!S&&^{4eJuNQ2kud%Olf8TRI zW-Dze987Il<^!hCO{AR5tLW{F1WLuZ>nhPjke@CSnN zzoW{m!+PSCb7byUf-1b;`{0GU^zg7b9c!7ueJF`>L;|akVzb&IzoLNNEfxp7b7xMN zKs9QG6v@t7X)yYN9}3d4>*ROMiK-Ig8(Do$3UI&E}z!vcH2t(VIk-cLyC-Y%`)~>Ce23A=dQsc<( ziy;8MmHki+5-(CR8$=lRt{(9B9W59Pz|z0^;`C!q<^PyE$KXt!KibFH*xcB9V%xTD zn;YlZ*tTukwr$(mWMka@|8CW-J8!zCXI{P1-&=wSvZf&%9SZ7m`1&2^nV#D z6T*)`Mz3wGUC69Fg0Xk!hwY}ykk!TE%mr57TLX*U4ygwvM^!#G`HYKLIN>gT;?mo% zAxGgzSnm{}vRG}K)8n(XjG#d+IyAFnozhk|uwiey(p@ zu>j#n4C|Mhtd=0G?Qn5OGh{{^MWR)V*geNY8d)py)@5a85G&_&OSCx4ASW8g&AEXa zC}^ET`eORgG*$$Q1L=9_8MCUO4Mr^1IA{^nsB$>#Bi(vN$l8+p(U^0dvN_{Cu-UUm zQyJc!8>RWp;C3*2dGp49QVW`CRR@no(t+D|@nl138lu@%c1VCy3|v4VoKZ4AwnnjF z__8f$usTzF)TQ$sQ^|#(M}-#0^3Ag%A0%5vA=KK$37I`RY({kF-z$(P50pf3_20YTr%G@w+bxE_V+Tt^YHgrlu$#wjp7igF!=o8e2rqCs|>XM9+M7~TqI&fcx z=pcX6_MQQ{TIR6a0*~xdgFvs<2!yaA1F*4IZgI!)xnzJCwsG&EElg_IpFbrT}nr)UQy}GiK;( zDlG$cksync34R3J^FqJ=={_y9x_pcd%$B*u&vr7^ItxqWFIAkJgaAQiA)pioK1JQ| zYB_6IUKc$UM*~f9{Xzw*tY$pUglV*?BDQuhsca*Fx!sm`9y`V&?lVTH%%1eJ74#D_ z7W+@8@7LAu{aq)sPys{MM~;`k>T%-wPA)E2QH7(Z4XEUrQ5YstG`Uf@w{n_Oc!wem z7=8z;k$N{T74B*zVyJI~4d60M09FYG`33;Wxh=^Ixhs69U_SG_deO~_OUO1s9K-8p z5{HmcXAaKqHrQ@(t?d@;63;Pnj2Kk<;Hx=kr>*Ko`F*l){%GVDj5nkohSU)B&5Vrc zo0u%|b%|VITSB)BXTRPQC=Bv=qplloSI#iKV#~z#t#q*jcS`3s&w-z^m--CYDI7n2 z%{LHFZ*(1u4DvhES|Dc*n%JL8%8?h7boNf|qxl8D)np@5t~VORwQn)TuSI07b-T=_ zo8qh+0yf|-6=x;Ra$w&WeVZhUO%3v6Ni*}i&sby3s_(?l5Er{K9%0_dE<`7^>8mLr zZ|~l#Bi@5}8{iZ$(d9)!`}@2~#sA~?uH|EbrJQcTw|ssG)MSJJIF96-_gf&* zy~I&$m6e0nnLz^M2;G|IeUk?s+afSZ){10*P~9W%RtYeSg{Nv5FG<2QaWpj?d`;}<4( z>V1i|wNTpH`jJtvTD0C3CTws410U9HS_%Ti2HaB~%^h6{+$@5`K9}T=eQL;dMZ?=Y zX^z?B3ZU_!E^OW%Z*-+t&B-(kLmDwikb9+F9bj;NFq-XHRB=+L)Rew{w|7p~7ph{#fRT}}K zWA)F7;kJBCk^aFILnkV^EMs=B~#qh*RG2&@F|x2$?7QTX_T6qL?i$c6J*-cNQC~E6dro zR)CGIoz;~V?=>;(NF4dihkz~Koqu}VNPE9^R{L@e6WkL{fK84H?C*uvKkO(!H-&y( zq|@B~juu*x#J_i3gBrS0*5U*%NDg+Ur9euL*5QaF^?-pxxieMM6k_xAP;S}sfKmIa zj(T6o{4RfARHz25YWzv=QaJ4P!O$LHE(L~6fB89$`6+olZR!#%y?_v+Cf+g)5#!ZM zkabT-y%v|ihYuV}Y%-B%pxL264?K%CXlbd_s<GY5BG*`kYQjao$QHiC_qPk5uE~AO+F=eOtTWJ1vm*cU(D5kvs3kity z$IYG{$L<8|&I>|WwpCWo5K3!On`)9PIx(uWAq>bSQTvSW`NqgprBIuV^V>C~?+d(w$ZXb39Vs`R=BX;4HISfN^qW!{4 z^amy@Nqw6oqqobiNlxzxU*z2>2Q;9$Cr{K;*&l!;Y??vi^)G|tefJG9utf|~4xh=r3UjmRlADyLC*i`r+m;$7?7*bL!oR4=yU<8<-3XVA z%sAb`xe&4RV(2vj+1*ktLs<&m~mGJ@RuJ)1c zLxZyjg~*PfOeAm8R>7e&#FXBsfU_?azU=uxBm=E6z7FSr7J>{XY z1qUT>dh`X(zHRML_H-7He^P_?148AkDqrb>;~1M-k+xHVy>;D7p!z=XBgxMGQX2{* z-xMCOwS33&K^~3%#k`eIjKWvNe1f3y#}U4;J+#-{;=Xne^6+eH@eGJK#i|`~dgV5S zdn%`RHBsC!=9Q=&=wNbV#pDv6rgl?k1wM03*mN`dQBT4K%uRoyoH{e=ZL5E*`~X|T zbKG9aWI}7NGTQtjc3BYDTY3LbkgBNSHG$5xVx8gc@dEuJqT~QPBD=Scf53#kZzZ6W zM^$vkvMx+-0$6R^{{hZ2qLju~e85Em>1nDcRN3-Mm7x;87W#@RSIW9G>TT6Q{4e~b z8DN%n83FvXWdpr|I_8TaMv~MCqq0TA{AXYO-(~l=ug42gpMUvOjG_pWSEdDJ2Bxqz z!em;9=7y3HW*XUtK+M^)fycd8A6Q@B<4biGAR)r%gQf>lWI%WmMbij;un)qhk$bff zQxb{&L;`-1uvaCE7Fm*83^0;!QA5-zeSvKY}WjbwE68)jqnOmj^CTBHaD zvK6}Mc$a39b~Y(AoS|$%ePoHgMjIIux?;*;=Y|3zyfo)^fM=1GBbn7NCuKSxp1J|z zC>n4!X_w*R8es1ofcPrD>%e=E*@^)7gc?+JC@mJAYsXP;10~gZv0!Egi~){3mjVzs z^PrgddFewu>Ax_G&tj-!L=TuRl0FAh#X0gtQE#~}(dSyPO=@7yd zNC6l_?zs_u5&x8O zQ|_JvKf!WHf43F0R%NQwGQi-Dy7~PGZ@KRKMp?kxlaLAV=X{UkKgaTu2!qzPi8aJ z-;n$}unR?%uzCkMHwb56T%IUV)h>qS(XiuRLh3fdlr!Cri|{fZf0x9GVYUOlsKgxLA7vHrkpQddcSsg4JfibzpB zwR!vYiL)7%u8JG7^x@^px(t-c_Xt|9Dm)C@_zGeW_3nMLZBA*9*!fLTV$Uf1a0rDt zJI@Z6pdB9J(a|&T_&AocM2WLNB;fpLnlOFtC9yE6cb39?*1@wy8UgruTtX?@=<6YW zF%82|(F7ANWQ`#HPyPqG6~ggFlhJW#R>%p@fzrpL^K)Kbwj(@#7s97r`)iJ{&-ToR z$7(mQI@~;lwY+8dSKP~0G|#sjL2lS0LQP3Oe=>#NZ|JKKYd6s6qwe#_6Xz_^L4PJ5TM_|#&~zy= zabr|kkr3Osj;bPz`B0s;c&kzzQ2C8|tC9tz;es~zr{hom8bT?t$c|t;M0t2F{xI;G z`0`ADc_nJSdT`#PYCWu4R0Rmbk#PARx(NBfdU>8wxzE(`jA}atMEsaG6zy8^^nCu| z9_tLj90r-&Xc~+p%1vyt>=q_hQsDYB&-hPj(-OGxFpesWm;A(Lh>UWy4SH9&+mB(A z2jkTQ2C&o(Q4wC_>|c()M8_kF?qKhNB+PW6__;U+?ZUoDp2GNr<|*j(CC*#v0{L2E zgVBw6|3c(~V4N*WgJsO(I3o>8)EO5;p7Xg8yU&%rZ3QSRB6Ig6MK7Wn5r+xo2V}fM z0QpfDB9^xJEi}W*Fv6>=p4%@eP`K5k%kCE0YF2Eu5L!DM1ZY7wh`kghC^NwxrL}90dRXjQx=H>8 zOWP@<+C!tcw8EL8aCt9{|4aT+x|70i6m*LP*lhp;kGr5f#OwRy`(60LK@rd=to5yk^%N z6MTSk)7)#!cGDV@pbQ>$N8i2rAD$f{8T{QM+|gaj^sBt%24UJGF4ufrG1_Ag$Rn?c zzICg9`ICT>9N_2vqvVG#_lf9IEd%G5gJ_!j)1X#d^KUJBkE9?|K03AEe zo>5Rql|WuUU=LhLRkd&0rH4#!!>sMg@4Wr=z2|}dpOa`4c;_DqN{3Pj`AgSnc;h%# z{ny1lK%7?@rwZO(ZACq#8mL)|vy8tO0d1^4l;^e?hU+zuH%-8Y^5YqM9}sRzr-XC0 zPzY1l($LC-yyy*1@eoEANoTLQAZ2lVto2r7$|?;PPQX`}rbxPDH-a$8ez@J#v0R5n z7P*qT3aHj02*cK)WzZmoXkw?e3XNu&DkElGZ0Nk~wBti%yLh+l2DYx&U1lD_NW_Yt zGN>yOF?u%ksMW?^+~2&p@NoPzk`T)8qifG_owD>@iwI3@u^Y;Mqaa!2DGUKi{?U3d z|Efe=CBc!_ZDoa~LzZr}%;J|I$dntN24m4|1(#&Tw0R}lP`a`?uT;>szf^0mDJx3u z6IJvpeOpS$OV!Xw21p>Xu~MZ(Nas5Iim-#QSLIYSNhYgx1V!AR>b zf5b7O`ITTvW5z%X8|7>&BeEs8~J1i47l;`7Y#MUMReQ4z!IL1rh8UauKNPG?7rV_;#Y zG*6Vrt^SsTMOpV7mkui}l_S8UNOBcYi+DzcMF>YKrs3*(q5fwVCr;_zO?gpGx*@%O zl`KOwYMSUs4e&}eM#FhB3(RIDJ9ZRn6NN{2Nf+ z2jcz%-u6IPq{n7N3wLH{9c+}4G(NyZa`UmDr5c-SPgj0Sy$VN#Vxxr;kF>-P;5k!w zuAdrP(H+v{Dybn78xM6^*Ym@UGxx?L)m}WY#R>6M2zXnPL_M9#h($ECz^+(4HmKN7 zA>E;`AEqouHJd7pegrq4zkk>kHh`TEb`^(_ea;v{?MW3Sr^FXegkqAQPM-h^)$#Jn z?bKbnXR@k~%*?q`TPL=sD8C+n^I#08(}d$H(@Y;3*{~nv4RLZLw`v=1M0-%j>CtT( zTp#U03GAv{RFAtj4vln4#E4eLOvt zs;=`m&{S@AJbcl1q^39VOtmN^Zm(*x(`(SUgF(=6#&^7oA8T_ojX>V5sJx@*cV|29 z)6_%P6}e}`58Sd;LY2cWv~w}fer&_c1&mlY0`YNNk9q=TRg@Khc5E$N`aYng=!afD z@ewAv^jl$`U5;q4OxFM4ab%X_Jv>V!98w$8ZN*`D-)0S7Y^6xW$pQ%g3_lEmW9Ef^ zGmFsQw`E!ATjDvy@%mdcqrD-uiKB}!)ZRwpZRmyu+x|RUXS+oQ*_jIZKAD~U=3B|t zz>9QQr91qJihg9j9rWHww{v@+SYBzCfc0kI=4Gr{ZLcC~mft^EkJ`CMl?8fZ z3G4ix71=2dQ`5QuTOYA0(}f`@`@U<#K?1TI(XO9c*()q!Hf}JUCaUmg#y?ffT9w1g zc)e=JcF-9J`hK{0##K#A>m^@ZFx!$g09WSBdc8O^IdP&JE@O{i0&G!Ztvt{L4q%x& zGE2s!RVi6ZN9)E*(c33HuMf7#X2*VPVThdmrVz-Fyqxcs&aI4DvP#bfW={h$9>K0HsBTUf z2&!G;( z^oOVIYJv~OM=-i`6=r4Z1*hC8Fcf3rI9?;a_rL*nr@zxwKNlxf(-#Kgn@C~4?BdKk zYvL?QcQeDwwR5_S(`sn&{PL6FYxwb-qSh_rUUo{Yi-GZz5rZotG4R<+!PfsGg`MVtomw z5kzOZJrh(#rMR_87KeP0Q=#^5~r_?y1*kN?3Fq% zvnzHw$r!w|Soxz8Nbx2d&{!#w$^Hua%fx!xUbc2SI-<{h>e2I;$rJL)4)hnT5cx^* zIq#+{3;Leun3Xo=C(XVjt_z)F#PIoAw%SqJ=~DMQeB zNWQ={d|1qtlDS3xFik}#j*8%DG0<^6fW~|NGL#P_weHnJ(cYEdJtI9#1-Pa8M}(r{ zwnPJB_qB?IqZw5h!hRwW2WIEb?&F<52Ruxpr77O2K>=t*3&Z@=5(c^Uy&JSph}{Q^ z0Tl|}gt=&vK;Rb9Tx{{jUvhtmF>;~k$8T7kp;EV`C!~FKW|r$n^d6=thh`)^uYgBd zydgnY9&mm$?B@pKK+_QreOm?wnl5l}-wA$RZCZukfC$slxbqv9uKq0o^QeSID96{Rm^084kZ)*`P zk))V~+<4-_7d6<~)PL%!+%JP`Dn23vUpH47h~xnA=B_a}rLy|7U-f0W+fH`{wnyh2 zD$JYdXuygeP5&OAqpl2)BZ|X){~G;E|7{liYf%AZFmXXyA@32qLA)tuuQz`n^iH1Y z=)pAzxK$jw0Xq?7`M`=kN2WeQFhz)p;QhjbKg#SB zP~_Vqo0SGbc5Q;v4Q7vm6_#iT+p9B>%{s`8H}r|hAL5I8Q|ceJAL*eruzD8~_m>fg26HvLpik&#{3Zd#|1C_>l&-RW2nBBzSO zQ3%G{nI*T}jBjr%3fjG*&G#ruH^ioDM>0 zb0vSM8ML?tPU*y%aoCq;V%x%~!W*HaebuDn9qeT*vk0%X>fq-4zrrQf{Uq5zI1rEy zjQ@V|Cp~$AoBu=VgnVl@Yiro>ZF{uB=5)~i1rZzmDTIzLBy`8Too!#Z4nE$Z{~uB( z_=o=gKuhVpy&`}-c&f%**M&(|;2iy+nZy2Su}GOAH_GT9z`!ogwn$+Bi&1ZhtPF zVS&LO5#Bq}cew$kvE7*t8W^{{7&7WaF{upy0mj*K&xbnXvSP9V$6m6cesHGC!&Us36ld9f*Pn8gbJb3`PPT|ZG zri2?uIu09i>6Y-0-8sREOU?WaGke0+rHPb^sp;*E{Z5P7kFJ@RiLZTO`cN2mRR#Nz zxjJ##Nk+Uy-2N-8K_@576L(kJ>$UhP+)|w!SQHkkz+e62*hpzyfmY4eQLZtZUhEdG zIZluDOoPDlt5#iw+2epC3vEATfok^?SDT`TzBwtgKjY z>ZImbO)i~T=IYAfw$3j2mF1Cj*_yqK(qw(U^r-!gcUKvWQrDG@E{lEyWDWOPtA9v{ z5($&mxw{nZWo_Ov??S#Bo1;+YwVfx%M23|o$24Hdf^&4hQeV=Cffa5MMYOu2NZLSC zQ4UxWvn+8%YVGDg(Y*1iHbUyT^=gP*COcE~QkU|&6_3h z-GOS6-@o9+Vd(D7x#NYt{Bvx2`P&ZuCx#^l0bR89Hr6Vm<||c3Waq(KO0eZ zH(|B;X}{FaZ8_4yyWLdK!G_q9AYZcoOY}Jlf3R;%oR5dwR(rk7NqyF%{r>F4s^>li z`R~-fh>YIAC1?%!O?mxLx!dq*=%IRCj;vXX628aZ;+^M0CDFUY0Rc<1P5e(OVX8n- z*1UOrX{J}b2N)6m5&_xw^WSN=Lp$I$T>f8K6|J_bj%ZsIYKNs1$TFt!RuCWF48;98`7D(XPVnk+~~i=U$} zR#;!ZRo4eVqlDxjDeE^3+8)bzG_o~VRwdxqvD^HNh#@o>1My$0*Y_`wfQ$y}az|Uz zM47oEaYNTH?J^w9EVNnvfmmbV+GHDe)Kf;$^@6?9DrSHnk@*{PuJ>ra|9KO!qQ-Fp zNNcZB4ZdAI>jEh@3Mt(E1Fy!^gH-Zx6&lr8%=duIgI^~gC{Q;4yoe;#F7B`w9daIe z{(I;y)=)anc;C;)#P`8H6~iAG_q-4rPJb(6rn4pjclGi6$_L79sFAj#CTv;t@94S6 zz`Id7?k!#3JItckcwOf?sj=Xr6oKvAyt1=jiWN@XBFoW6dw_+c9O9x2i4or?*~8f& zm<>yzc6Aw_E-gsGAa`6`cjK~k^TJt(^`E1^_h)5(8)1kzAsBxjd4+!hJ&&T!qklDN z`?j#za=(^wRCvEI75uE^K#IBe5!5g2XW}|lUqAmdmIQb7xJtP}G9^(=!V`ZS_7#RZ zjXq#Cekw>fE*YS-?Qea|7~H?)bbLK;G&(~%!B@H`o#LYAuu6;-c~jFfjY7GKZ|9~{ zE!`!d@@rhY_@5fDbuQ8gRI~R_vs4%fR5$?yot4hDPJ28k_Wzmc^0yzwMr#*(OXq@g zRUgQmJA?E>3GO=5N8iWIfBP{&QM%!Oa*iwTlbd0Fbm*QCX>oRb*2XfG-=Bz1Qz0$v zn#X!2C!LqE601LEMq;X7`P*5nurdKZAmmsI-zZ|rTH;AFxNDyZ_#hN2m4W(|YB64E z470#yh$;8QzsdA;6vbNvc95HLvZvyT4{C>F(fwy&izvNDuvfO1Z;`Ss#4a_c6pm*{0t|_i9z{@84^lffQa5zG4<{(+p5-S z^>lG-^GJR#V>;5f3~y%n=`U_jBp~WgB0cp;Lx5VZYPYCH&(evw#}AYRlGJ>vcoeVr z3%#-QUBgeH!GB>XLw;rT&oMI9ynP;leDwh4O2uM!oIWo&Qxk{^9#nX&^3GJ z(U~5{S9aw@yHH^yuQGso=~*JOC9Zdi6(TFP+IddkfK5Eu9q;+F9?PPNAe-O;;P_Aa zPJ{Dqa1gQb%dZ|0I{#B0(z|r(qq!A4CxlW92-LwXFjYfOzAT1DDK`9rm4AB~l&oVv zi6_{)M9L1%JP}i52y@`!T9RB~!CRel53wl?amNHqcuElq%hn)|#BPvW5_m51RVb|? zXQ&B*eAD}}QamG>o{?i~usG5X6IDa3+Xkb8w%7;C8|Cln70biA+ZH}fxkH^Wei$vZPnuqIT!Mmy26;mLfU z3Bbv4M^vvMlz-I+46=g>0^wWkmA!hlYj*I!%it^x9Kx(d{L|+L{rW?Y#hLHWJfd5X z>B=Swk8=;mRtIz}Hr3NE_garb5W*!7fnNM{+m2_>!cHZZlNEeof~7M#FBEQ+f&gJ3 z^zv*t?XV)jQi%0-Ra|ISiW-fx)DsK-> zI}Fv%uee$#-1PKJwr=lU89eh=M{>Nk7IlJ)U33U)lLW+OOU%A|9-Lf;`@c*+vX{W2 z{{?0QoP!#?8=5%yL=fP%iF+?n$0#iHz`P;1{Ra6iwr=V7v^8;NoLJ5)QxIyIx>ur?lMwV=mBo0BA?28kMow8SX=Ax5L%S~x4+EQi#Ig`(ht%)D(F#Pa!)SiHy&PvUp32=VtAsR|6|NZR@jkad zX^aEgojf9(-)rNOZ=NVA&a;6Cljkb=H-bY9m^_I)`pBHB16QW)sU27zF13ypefeATJc1Wzy39GrKF{UntHsIU59AdXp?j{eh2R)IbU&omd zk6(qzvE@hve1yM6dgkbz>5HDR&MD~yi$yymQ}?b;RfL$N-#l7(u?T^Wlu+Q;fo|jd zBe^jzGMHY(2=5l?bEIh+zgE$1TEQ&!p3fH;AW`P?W5Hkj3eJnT>dqg! zf~}A*SZU5HHDCbdywQ^l_PqssHRlrySYN=`hAv2sVrtcF!`kyEu%XeeRUTJU7vB%h zY0*)N$mLo6d=tJfe}IPIeiH~>AKwCpkn&WEfYgl?3anq5#-F$6$v-(G_j0*S9mdsn zg@ek_ut4(?+JP_9-n`YqoD(gAz+Ttm1#t za96D}oQR(o=e8wwes19_(p4g(A1vSGwPAp~Hh3hh!fc>u{1E^+^}AzwilFVf6^vbL zc&NnRs`u)N-P|Cu4()yTiuE{j_V&=K?iP!IUBf~ei2}~_KBvUAlXa;R#Wl`gOBtJ$Y5(L))@`riLB)v*r>9*8VfmQt<72?+fdwP{BA@?_qo>mN7yzICUCaeG(+>Rb~8wg~6U(P)NlDLuhQgjbC}=)HuZgC}0Z-qLX4lJ7^)8~!!*qP0=~`Y_(A z{@15*ZevZSI^s|OnpCeCwLXf#tgbq8y~R*GB5anmZ;_N!+-3>!wu@NBFCNJ$#y?{? zMI!?s*=_xA;V&aX)ROxzVW8*de+&P#2zucA|8mksdgCXBsZ*TM=%{L1Tk5LB_*^@&S?O=ot{h)1xRVSn27&Tk8>rF|6ruzYb;Nq) z;qvlmrP^SL$mhe4Ai)xpl6Wx&y;z8o!7-+6$qj;ZLXvfR71I@w(R|6lyuP6v-lP&r z@KK-TEmGQfMmk1c0^fd7!^si}T%b5a2%>T-Drh|^Cf z$}qxIv@zxbmJ#qjK6Q_aGDe{ciVT20V1lW52Xs!}x(4_j)sUXYdm4 zwYC9FOa;X*c*LxL;xE5ov?|?^7gWXyALy_D2GvDo-8%0-Y%9TkkO_Tcr2qIUg3(OC z%3wt?hyn*+e^z%(~2#!2dvMFa$mzgwk1I1X;naFMjXSbnmZ!zd%7u)=cgi z*0&@Scrl&BDfU(9Pks8#;!~v~r7~DN{G6WE&_;7i{{a*?oiCao(l%2ruxX0fAt69e2vLgL%Mf_)!*(Tz zNKW>sW@YB2vBfP>C&L|-pq)Uq^PsG_THu;8iEcqafO?0k$IQp1KyWyOoTxwmKvlc^ zO9$%Tt8;%qQxwy5;CsJ)V}a7I6}SvQ%0_H53Kcqx=m83fIzpLSGgfVe^SPdc*xPdciI5dg}#{Etv$e<)gGD=qm0v=!aN@*?$s zLhzD%4w{vf-g6FHQjG9XyC+4=bewb?Mz%!u8%oP{G9{UJFTLTcCi3R(=Nm&t&Sl(? zr>pj?=ECdDVa}-g%`LF^1EY@>7d}%VhYpKFSDPH)D(zB+gPe1m7E}W>TiW=8L0&(D&YG=0<&7G4Bu{;-#Ud;-1%Ta9V}U6fyK1YX z`Rq|i-X(loPZ)M$H%m@j7bGx>uj~y=0)!t#dc|c}+hT%~Sq>fefez0Ul|jOJHta~u zx7*mV6~Jpt(FkY(pQN91>aFk7VS%Sa^oLaq$*)W?fy`xuFJgH<2s=!Rz}_(qdmdF~ zlr2f=)q_vpi8X;Jq>5^$GweJ{iS`Khw2f)fsvKpgh;U~13a+9 zfaw}UuGiBy;q10pI^Avb#X3D=k_r(T{N;-xA)OM}2Py5L##<96NU*Sr7GQqhfrPej z?;B$Bt_sTxuSAPXfTSC{zr?@$$0iHxC@z*5F52j*PG87hh`0w3At8jPf*rjNE~_Gj z2)fjeUFJ(#l9uWuw&5#@13|AQ1;pdA?EL4YKq0JDR5T8I?aWGxI=J9}vdyH;gQ@iE z>+UnC2iwT0f80-VuE^bY!N@(}9?bOXyy%rTqSNDN4rO4Zt#(kZwcGgTp&3((F+nsd ze~B)%K6oP4WX_w1>|QImC;9q zy}4p+s%^Too2(gE>yo%+yY#F{)phtmNqsJPVQQ0lGR|H9q>aA&AtU4M+EZ%`xvQLb zbigBOc`dL}&j3er?EOI`!W)N#>+uwp_!h^5FspaEylq!e(FPY-6T3~WeNmZ<$?Y6y z-!bM1kD7ZF8xl+Pi6fiv1?)q%`aNxn#pK%)ct||L&Xnf8Gu&3g;Of{B8Pt=u`e+Mn zA(DmU#3cF#Nr7W;X0V4ksFHMcNDAf4G&D8VjLeZ^|5-f$>_|71>P3xuu)?4NJed*w z6GR_RB5HQLzT(h+`Y?-3esxeue{-Q%b+!&o>IJ!#=}#_&q+hwJga>fkt(*(WdoN5vSta z#$mMN6}YzYRpaBZ)j)EL91-oL1(|d(>%UclsTUOyXyWM&(hNqLwqtn`!E>HJM{ zh>M~xa1@*U^cwx-k5QjePr5=B6u*jpJ)C0{C?f7Yga+I^4$TleyX$x&jm9z@c!?cC z<2kY7)p^+W{AXd@l1C09_yB*TG|yzb96BYk z8Wpj81vB>zcR+qM4m~A44w1n7$fxB$-?MV}S?Fh}c_|2FXg`cZ?750i;Cdl-_nGK# zta)h)6!*AsQ-z8caSh)%5JY>_yCeJs~FpAzdY8 zF@SU_hN#~ip5I;UACFzx1v0yf{j97l&)e-=`d#1Kp6A(Kj&HC!%vK!wEdK3HFJ?|6 za;WwUczZ+&<$g!Td^48@lJtfW@doXL#jY6)dK_RDCQAZ}l&OdD+?Yl5-bqpsHZR^( zF{u_cR(x>u(c4i5f(^8!h6CV0#ZxRFhLlunWiGDLO6yoRb(wV<(P^8=fOU7Hp{AHE z;Yg%kg@6&tL3Z*IrbkDeQ$%rbalVP39D@LVrC2xSavnTp%PorXPf1DVzHyqjDsDnS zL=mv0a2s60bHKGQM)ue>npH0SCp;XtZFUzm?R-x7D*(PxMmuJ4J*K2eY&ebe0yQHe zVG&*qe{pot{PM^xQv`H_rn2FcYOrEN+I#uX^1`Id%J$;Hi2cNCU!0Hlc0TjxLzkss zHxmC;hQBu5U4J0XflWM;{uH`_47Sg)QyZ{8D&T0;bdc3{^^<=q7P?C_2E-}PQn>*= z2T5q^J|Q_2+x%Qt`i3m6=6V$)BxIx{2KAFkMb#q`iMCD|L>+}_dYVA$wBr1Zr}YOF z^MMGO@PHGGh>g|^yF`PvvtDwN@kxt?ClLcG<+murHMz1Asj!$l=b)4{d}SqOJ}>Y< zSeAyP@ZEcpx`ayIdp>{--UVLYC_cZZURh_!4u2(*#x@Tk(QJa}4BqqZ$6%LhF-HB~ zAcc?$I6KP}IxANcAteEBX$Ys?T=JB|Fnd3*UAO0mYAXCgWf~?7Z_G7G5`H4;S^QKK zG*2l75vI@DHQC*es>6&|r^#RHKRQ5rwv_l4`!(!I3%)Z$P1fnZ8N@27zyg}54ElO%SjQ_4uujX)4ta@Gz2)_>4b~vX|rhRIH-eqdD zL)xaEpW3K|a>daQRRR*_$W>rWOsW-IE4VQl3L$3}=-PFU)s@XG&9+DFivH-;2&w~$ES_nJZJH!?1mO!CnP)Jb{mW9=f`bDpo^PI6i4|YurK)Q1 z^Ys1oHRdr!$X4RuyR%kgp!a*Lz*_AAoJ$EVAdsNCoPA^VZE1pGO@D3UStACE+%vs6 z$io@E>DmB|3VV~GbOt2oc+K;t zdn3gaFvYz;vRN-+2+Qk{8|O}e86nVck)fZn3sg$j#dLVham{yGkc$I#!HF7mRS%f* z!+NdzG49K(qaO^SBlp@K@D?|^rAq;8{*@kRc4sYSNQmoy7@_RS_ksWl2T_38h2A)# ziU2WXWD03(NqS&Mu*?0-iK8X_Z3w`}c7MPv0qZ7iM|L3xdTnR{y!7{#82$}uJCiGT zqa=8<9L05hu6 z1N+2n7OzT{NEf?gS@eq7@buCDFe9mAxY%THo^b@BHckKK>jg6{@)>n z43cPs%$Qi0iwyZ+{C491>FRu5+6baJ{&XXXC@Sp+b!QE|{7_d?lm5K=B z)myKEcxjFm74+drF|JCYcxdY%ASig#YoRBRUV7An7f-%rqj%PHECbxh#5476cEq@NQL?dI6gUqvS@w zq!WmD(aR0{NxItAZCKDCVw=Zu{9WGDu^i?2g zLerPiOU*HSaXg^3CdOX^F6c9MiHINP339N%)a96`^Z-c#&EogcxMSYo0Cb4{-}q1( zRrJine`P|6WRkm8u4Ja1QRYq$AR>b7tugd#EsT-VmXN-t!TYjZy}i!uKi6$u>EJ?w zvdHZg+hp+5ree?>fdJAX)5#Wtm#2M-{~2jfX2{G`)?D6UD1MevdeeU;;HCi}AtJr( SGW6ptSs!X7{rG*o_g?|vpSEZK diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1af9e0930b..b82aa23a4f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew.bat b/gradlew.bat index 93e3f59f13..25da30dbde 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/patches/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch index 858c5fc329..8d4ad0ab1c 100644 --- a/patches/server/0001-Setup-Gradle-project.patch +++ b/patches/server/0001-Setup-Gradle-project.patch @@ -175,10 +175,10 @@ index 0000000000000000000000000000000000000000..74849d7b20e3c3831a6a6c3715a6e875 +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index 22a2e4d92ba6774aa27c0bd123dac912b3e1ee65..0000000000000000000000000000000000000000 +index 323892c4a4bbbb9e36a6295bb390ad82798e213c..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null -@@ -1,614 +0,0 @@ +@@ -1,608 +0,0 @@ - - 4.0.0 @@ -241,12 +241,6 @@ index 22a2e4d92ba6774aa27c0bd123dac912b3e1ee65..00000000000000000000000000000000 - - - org.ow2.asm -- asm -- 9.5 -- compile -- -- -- org.ow2.asm - asm-commons - 9.5 - compile diff --git a/settings.gradle.kts b/settings.gradle.kts index 5dabeac5af..706a83d5dd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,7 +8,7 @@ pluginManagement { } plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0" + id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } if (!file(".git").exists()) { From e709245b5566229ed5c262b310bcd1a1e71a8918 Mon Sep 17 00:00:00 2001 From: DungeonDev Date: Tue, 2 Apr 2024 12:15:49 +0200 Subject: [PATCH 031/215] Add config option for tripwire disarming fix Fixes #10382 Co-authored-by: Tamion <70228790+notTamion@users.noreply.github.com> --- patches/server/0005-Paper-config-files.patch | 8 +++++--- patches/server/0784-Configurable-chat-thread-limit.patch | 4 ++-- patches/server/0982-Rewrite-chunk-system.patch | 4 ++-- ...9-Fix-tripwire-disarming-not-working-as-intended.patch | 4 ++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 6a80fba3c9..40d6f25a3e 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -482,10 +482,10 @@ index 0000000000000000000000000000000000000000..c01b4393439838976965823298f12e47 +} diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java new file mode 100644 -index 0000000000000000000000000000000000000000..7a53374319d5495253f277199114eaf43097456d +index 0000000000000000000000000000000000000000..0aab42ac5d5b0fb8b59eb71d8d3b1ebbc7c76da7 --- /dev/null +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -0,0 +1,311 @@ +@@ -0,0 +1,313 @@ +package io.papermc.paper.configuration; + +import co.aikar.timings.MinecraftTimings; @@ -635,6 +635,8 @@ index 0000000000000000000000000000000000000000..7a53374319d5495253f277199114eaf4 + public UnsupportedSettings unsupportedSettings; + + public class UnsupportedSettings extends ConfigurationPart { ++ @Comment("This setting controls if the broken behavior of disarmed tripwires not breaking should be allowed. This also allows for dupes") ++ public boolean allowTripwireDisarmingExploits = false; + @Comment("This setting allows for exploits related to end portals, for example sand duping") + public boolean allowUnsafeEndPortalTeleportation = false; + @Comment("This setting controls if players should be able to break bedrock, end portals and other intended to be permanent blocks.") @@ -4983,7 +4985,7 @@ index 680a308c466c0056d4213e61f69cf13ee3ff5c61..cd39509d383c47319b71797e5d1df41c 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 a7921cde2b6275d730879b2814cc5f430520b051..c8f0570b7d37a0c0bddb0a65c36fb32de584df8f 100644 +index 96210dd54e8ff6dc0375a8d03bf14fec1b26aaeb..19725db76dc3a12356993aed7edba507b52fe4d7 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/0784-Configurable-chat-thread-limit.patch b/patches/server/0784-Configurable-chat-thread-limit.patch index 4ce6896216..b6e534b32f 100644 --- a/patches/server/0784-Configurable-chat-thread-limit.patch +++ b/patches/server/0784-Configurable-chat-thread-limit.patch @@ -22,10 +22,10 @@ is actually processed, this is honestly really just exposed for the misnomers or who just wanna ensure that this won't grow over a specific size if chat gets stupidly active diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 7a53374319d5495253f277199114eaf43097456d..7145c3776c85416240408b8e23a1d949da39bad9 100644 +index 0aab42ac5d5b0fb8b59eb71d8d3b1ebbc7c76da7..2540b7748e27839552ae88412ecac0aa69485b32 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -285,7 +285,18 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -287,7 +287,18 @@ public class GlobalConfiguration extends ConfigurationPart { @PostProcess private void postProcess() { diff --git a/patches/server/0982-Rewrite-chunk-system.patch b/patches/server/0982-Rewrite-chunk-system.patch index 12bc4a8ec8..7be3771e2d 100644 --- a/patches/server/0982-Rewrite-chunk-system.patch +++ b/patches/server/0982-Rewrite-chunk-system.patch @@ -14439,7 +14439,7 @@ index 0000000000000000000000000000000000000000..962d3cae6340fc11607b59355e291629 + +} diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 7145c3776c85416240408b8e23a1d949da39bad9..b53b6cc4463675096b061b3b65f14a4695c742e2 100644 +index 2540b7748e27839552ae88412ecac0aa69485b32..d00fc39b19c02895553f40bf5f62daa1dd50d59c 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -28,6 +28,45 @@ public class GlobalConfiguration extends ConfigurationPart { @@ -14510,7 +14510,7 @@ index 7145c3776c85416240408b8e23a1d949da39bad9..b53b6cc4463675096b061b3b65f14a46 public UnsupportedSettings unsupportedSettings; public class UnsupportedSettings extends ConfigurationPart { -@@ -200,7 +224,7 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -202,7 +226,7 @@ public class GlobalConfiguration extends ConfigurationPart { @PostProcess private void postProcess() { diff --git a/patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch b/patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch index efe071cf68..46a8a52189 100644 --- a/patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch +++ b/patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Fix tripwire disarming not working as intended Fixes MC-129055 diff --git a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java -index d9b3877257b31ca1b5acc4a47fbf5b993de69ae0..8bf94fcf5c46ffe6d90f8431338b768ef1a2dd61 100644 +index d9b3877257b31ca1b5acc4a47fbf5b993de69ae0..efd8d77a441fd334ea4c09c5e31c6d946c1ae0b7 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java @@ -201,9 +201,8 @@ public class TripWireHookBlock extends Block { BlockState iblockdata4 = aiblockdata[l]; if (iblockdata4 != null) { -+ if (world.getBlockState(blockposition2).is(Blocks.TRIPWIRE)) { // Paper - Fix tripwire disarming not working as intended ++ if (world.getBlockState(blockposition2).is(Blocks.TRIPWIRE) || io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowTripwireDisarmingExploits) { // Paper - Fix tripwire disarming not working as intended world.setBlock(blockposition2, (BlockState) iblockdata4.trySetValue(TripWireHookBlock.ATTACHED, flag4), 3); - if (!world.getBlockState(blockposition2).isAir()) { - ; From a2035440cfe3ec829513a74b1309859fc15be972 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Thu, 4 Apr 2024 17:12:05 -0700 Subject: [PATCH 032/215] build: Compile against and shade the filtered jar (#9747) * Compile against & shade the filtered jar * Move check for if the paper asset root needs to be pushed * Don't disable incremental compilation * Remove mavenLocal * use paperweight release --- build.gradle.kts | 2 +- .../server/0003-Build-system-changes.patch | 80 ++++++++----------- patches/server/0004-Test-changes.patch | 6 +- patches/server/0005-Paper-config-files.patch | 12 +-- patches/server/0013-Paper-Plugins.patch | 4 +- ...oleAppender-for-console-improvements.patch | 6 +- .../server/0134-Basic-PlayerProfile-API.patch | 4 +- ...ktraces-in-log-messages-crash-report.patch | 4 +- ...4-Bukkit-world-container-is-not-used.patch | 4 +- ...-5885-Unable-to-disable-advancements.patch | 4 +- ...nment-variable-to-disable-server-gui.patch | 4 +- .../server/0798-Detect-headless-JREs.patch | 4 +- ...Fix-demo-flag-not-enabling-demo-mode.patch | 4 +- .../server/0982-Rewrite-chunk-system.patch | 4 +- ...x-and-optimise-world-force-upgrading.patch | 4 +- 15 files changed, 67 insertions(+), 79 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 77c0f153a2..20d7b5902b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { java `maven-publish` id("com.github.johnrengelman.shadow") version "8.1.1" apply false - id("io.papermc.paperweight.core") version "1.5.12" + id("io.papermc.paperweight.core") version "1.5.13" } allprojects { diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch index b483193167..d5d9b33f1c 100644 --- a/patches/server/0003-Build-system-changes.patch +++ b/patches/server/0003-Build-system-changes.patch @@ -9,7 +9,7 @@ public net.minecraft.server.packs.VanillaPackResourcesBuilder safeGetPath(Ljava/ Co-authored-by: Jake Potrebic diff --git a/build.gradle.kts b/build.gradle.kts -index 74849d7b20e3c3831a6a6c3715a6e875d6ff8a48..517aaae21f8fbd6916ab23d85dac5f74aea9e984 100644 +index 74849d7b20e3c3831a6a6c3715a6e875d6ff8a48..ff9e7b4c4354d4475559213cdaa01728601859fa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,9 +9,7 @@ plugins { @@ -41,19 +41,7 @@ index 74849d7b20e3c3831a6a6c3715a6e875d6ff8a48..517aaae21f8fbd6916ab23d85dac5f74 ) for (tld in setOf("net", "com", "org")) { attributes("$tld/bukkit", "Sealed" to true) -@@ -51,6 +53,11 @@ tasks.jar { - } - } - -+tasks.compileJava { -+ // incremental compilation is currently broken due to patched files having compiled counterparts already on the compile classpath -+ options.setIncremental(false) -+} -+ - publishing { - publications.create("maven") { - artifact(tasks.shadowJar) -@@ -77,6 +84,17 @@ tasks.shadowJar { +@@ -77,6 +79,17 @@ tasks.shadowJar { } } @@ -71,21 +59,11 @@ index 74849d7b20e3c3831a6a6c3715a6e875d6ff8a48..517aaae21f8fbd6916ab23d85dac5f74 tasks.test { exclude("org/bukkit/craftbukkit/inventory/ItemStack*Test.class") useJUnitPlatform() -@@ -135,7 +153,14 @@ tasks.registerRunTask("runReobf") { - classpath(runtimeClasspathWithoutVanillaServer) - } - -+val runtimeClasspathForRunDev = sourceSets.main.flatMap { src -> -+ src.runtimeClasspath.elements.map { elements -> -+ elements.filterNot { file -> file.asFile.endsWith("minecraft.jar") } -+ } -+} +@@ -138,4 +151,5 @@ tasks.registerRunTask("runReobf") { tasks.registerRunTask("runDev") { description = "Spin up a non-relocated Mojang-mapped test server" -- classpath(sourceSets.main.map { it.runtimeClasspath }) -+ classpath(tasks.filterProjectDir.flatMap { it.outputJar }) -+ classpath(runtimeClasspathForRunDev) -+ jvmArgs("-DPaper.isRunDev=true") + classpath(sourceSets.main.map { it.runtimeClasspath }) ++ jvmArgs("-DPaper.pushPaperAssetsRoot=true") } diff --git a/src/main/java/net/minecraft/resources/ResourceLocation.java b/src/main/java/net/minecraft/resources/ResourceLocation.java index 68e3d54c79924d72b22eb3bc142ff47aa1700895..d3300e43523429fdd0e61c5aa9aed2e6bc78e07e 100644 @@ -99,27 +77,25 @@ index 68e3d54c79924d72b22eb3bc142ff47aa1700895..d3300e43523429fdd0e61c5aa9aed2e6 private final String namespace; private final String path; -diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 602964d92ddf9e4ec47ed3cb45787fdd061a881e..6b0a1ff870e013a83f7922021ab296bb1c716079 100644 ---- a/src/main/java/net/minecraft/server/Main.java -+++ b/src/main/java/net/minecraft/server/Main.java -@@ -105,6 +105,17 @@ public class Main { - */ // CraftBukkit end +diff --git a/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java b/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java +index 1b65823e6c2070761dd08ce801268e95dad13065..978dd399430ae98d54fc4805800aa0214d4034e3 100644 +--- a/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java ++++ b/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java +@@ -141,6 +141,15 @@ public class VanillaPackResourcesBuilder { - try { -+ // Paper start -+ if (Boolean.getBoolean("Paper.isRunDev")) { -+ net.minecraft.server.packs.VanillaPackResourcesBuilder.developmentConfig = builder -> { -+ try { -+ builder.pushAssetPath(net.minecraft.server.packs.PackType.SERVER_DATA, net.minecraft.server.packs.VanillaPackResourcesBuilder.safeGetPath(java.util.Objects.requireNonNull(Main.class.getResource("/data/.paperassetsroot"), "Missing required .paperassetsroot file").toURI()).getParent()); -+ } catch (java.net.URISyntaxException | IOException ex) { -+ throw new RuntimeException(ex); -+ } -+ }; + public VanillaPackResourcesBuilder applyDevelopmentConfig() { + developmentConfig.accept(this); ++ if (Boolean.getBoolean("Paper.pushPaperAssetsRoot")) { ++ try { ++ this.pushAssetPath(net.minecraft.server.packs.PackType.SERVER_DATA, net.minecraft.server.packs.VanillaPackResourcesBuilder.safeGetPath(java.util.Objects.requireNonNull( ++ // Important that this is a patched class ++ VanillaPackResourcesBuilder.class.getResource("/data/.paperassetsroot"), "Missing required .paperassetsroot file").toURI()).getParent()); ++ } catch (java.net.URISyntaxException | IOException ex) { ++ throw new RuntimeException(ex); + } -+ // Paper end - - Path path = (Path) optionset.valueOf("pidFile"); // CraftBukkit ++ } + return this; + } diff --git a/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java b/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java index a2a8bce29ec5540de89095574dfdc0ca9b17bbd3..d92cd89373f8373c367ce422328b9836de09096d 100644 @@ -163,3 +139,15 @@ index 93046379d0cefd5d3236fc59e698809acdc18f80..774556a62eb240da42e84db4502e2ed4 diff --git a/src/main/resources/data/.paperassetsroot b/src/main/resources/data/.paperassetsroot new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 +diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java +index a1c2c702cc6b5d949df62b5ecf4cc62b8e4e8f77..0619361adf57fdc41c4ecb09d1d6a5c862a85f89 100644 +--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java ++++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java +@@ -43,6 +43,7 @@ public abstract class AbstractTestingBase { + public static final Registry BIOMES; + + static { ++ System.setProperty("Paper.pushPaperAssetsRoot", "true"); // Paper + SharedConstants.tryDetectVersion(); + Bootstrap.bootStrap(); + // Populate available packs diff --git a/patches/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch index 5684d8af80..29d1714a03 100644 --- a/patches/server/0004-Test-changes.patch +++ b/patches/server/0004-Test-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Test changes diff --git a/build.gradle.kts b/build.gradle.kts -index 517aaae21f8fbd6916ab23d85dac5f74aea9e984..9098a40f944a3c6c0e907013c212eb3f1895e010 100644 +index ff9e7b4c4354d4475559213cdaa01728601859fa..5304f5de52a76eee876ac8f0b2834a93b28d57aa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,6 +23,7 @@ dependencies { @@ -16,8 +16,8 @@ index 517aaae21f8fbd6916ab23d85dac5f74aea9e984..9098a40f944a3c6c0e907013c212eb3f } val craftbukkitPackageVersion = "1_20_R3" // Paper -@@ -58,6 +59,12 @@ tasks.compileJava { - options.setIncremental(false) +@@ -53,6 +54,12 @@ tasks.jar { + } } +// Paper start - compile tests with -parameters for better junit parameterized test names diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 40d6f25a3e..8222616c5e 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -15,7 +15,7 @@ public net.minecraft.server.dedicated.DedicatedServerProperties reload(Lnet/mine public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES diff --git a/build.gradle.kts b/build.gradle.kts -index 9098a40f944a3c6c0e907013c212eb3f1895e010..f838b058e6cad9061929509047bbe25c65baecf6 100644 +index beb50d67ea2c1933a115766627b2adabd2032929..b8970d0064b9b64e1c50ab373818c38611fd9f5e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,6 +11,7 @@ dependencies { @@ -4823,10 +4823,10 @@ index 0000000000000000000000000000000000000000..614aba60bb07946a144650fd3aedb316 + protected abstract boolean belowZero(O value); +} diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 6b0a1ff870e013a83f7922021ab296bb1c716079..403c57fc683bb0497602e1a9ec7b81b2722ecc01 100644 +index 602964d92ddf9e4ec47ed3cb45787fdd061a881e..66550ce5cc83534af8dcac338db5cd4cfb1c46c4 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -137,6 +137,10 @@ public class Main { +@@ -126,6 +126,10 @@ public class Main { dedicatedserversettings.forceSave(); Path path2 = Paths.get("eula.txt"); Eula eula = new Eula(path2); @@ -4837,7 +4837,7 @@ index 6b0a1ff870e013a83f7922021ab296bb1c716079..403c57fc683bb0497602e1a9ec7b81b2 if (optionset.has("initSettings")) { // CraftBukkit // CraftBukkit start - SPIGOT-5761: Create bukkit.yml and commands.yml if not present -@@ -171,7 +175,7 @@ public class Main { +@@ -160,7 +164,7 @@ public class Main { } File file = (File) optionset.valueOf("universe"); // CraftBukkit @@ -5069,10 +5069,10 @@ index 0000000000000000000000000000000000000000..0396589795da1f83ddf62426236dde9a + } +} diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java -index a1c2c702cc6b5d949df62b5ecf4cc62b8e4e8f77..381c1d681a982e28f1909bd954d21827549f7bcc 100644 +index 0619361adf57fdc41c4ecb09d1d6a5c862a85f89..b786ed8e620feb51baceae41dd2d1538dc298705 100644 --- a/src/test/java/org/bukkit/support/AbstractTestingBase.java +++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java -@@ -62,6 +62,7 @@ public abstract class AbstractTestingBase { +@@ -63,6 +63,7 @@ public abstract class AbstractTestingBase { BIOMES = REGISTRY_CUSTOM.registryOrThrow(Registries.BIOME); DummyServer.setup(); diff --git a/patches/server/0013-Paper-Plugins.patch b/patches/server/0013-Paper-Plugins.patch index 71c4e4367c..e9a99db829 100644 --- a/patches/server/0013-Paper-Plugins.patch +++ b/patches/server/0013-Paper-Plugins.patch @@ -7152,10 +7152,10 @@ index 1eabd8b5a99850298838b11ba97e3d220f444378..8ff786c366332588a2df053438f23cc9 Bootstrap.wrapStreams(); Bootstrap.bootstrapDuration.set(Duration.between(instant, Instant.now()).toMillis()); diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 403c57fc683bb0497602e1a9ec7b81b2722ecc01..ba58580f4c60205d1c7a7b7dfcdc22c4fafc9bc6 100644 +index 66550ce5cc83534af8dcac338db5cd4cfb1c46c4..a40755f2e4d36a3ef34e187727065da4b918a5e8 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -128,6 +128,7 @@ public class Main { +@@ -117,6 +117,7 @@ public class Main { JvmProfiler.INSTANCE.start(Environment.SERVER); } diff --git a/patches/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch index fd8780e2cb..257a90e0ce 100644 --- a/patches/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/patches/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -25,7 +25,7 @@ Other changes: Co-Authored-By: Emilia Kond diff --git a/build.gradle.kts b/build.gradle.kts -index f838b058e6cad9061929509047bbe25c65baecf6..f4d33c9c4c04e1a09259dd9cc7cb909e30506580 100644 +index 1219b12750edb855df0962d14d7f3c1859d78b2e..511dfff4870c197b6f69169cc0504ef05988bb9c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,9 +6,30 @@ plugins { @@ -60,7 +60,7 @@ index f838b058e6cad9061929509047bbe25c65baecf6..f4d33c9c4c04e1a09259dd9cc7cb909e implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion implementation("org.ow2.asm:asm-commons:9.5") implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files -@@ -80,7 +101,7 @@ relocation { +@@ -75,7 +96,7 @@ relocation { } tasks.shadowJar { @@ -413,7 +413,7 @@ index 827579f59d34b61912a67b40624f0f41524185fd..f7d937c6a11e24afe767411428210f3c @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 4fb377d967d13ed920ea1246e84b3b94cda25be6..659b32d49016a23475f3bbda1548a78101b468ce 100644 +index adae906894144a1684a0dab15226649fd4bf6354..1bd54fbadc9b1b5207325c78298cc72f61455ac7 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/0134-Basic-PlayerProfile-API.patch b/patches/server/0134-Basic-PlayerProfile-API.patch index 2a1ca07786..86180d4842 100644 --- a/patches/server/0134-Basic-PlayerProfile-API.patch +++ b/patches/server/0134-Basic-PlayerProfile-API.patch @@ -580,10 +580,10 @@ index 722dcae9ab65bcacb9fb89dfaa63715d87816476..c57e8b6458800fe9bb27050eecc42bd3 * Calculates distance between 2 entities * @param e1 diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index ba58580f4c60205d1c7a7b7dfcdc22c4fafc9bc6..5374a6b70a9780cfe9f62207b290b9a3ab82c7e9 100644 +index a40755f2e4d36a3ef34e187727065da4b918a5e8..d46b7bff34b9b43e895f713d2e73071bc62de443 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -176,7 +176,7 @@ public class Main { +@@ -165,7 +165,7 @@ public class Main { } File file = (File) optionset.valueOf("universe"); // CraftBukkit diff --git a/patches/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch index 8444599d8b..a9d85cd957 100644 --- a/patches/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Deobfuscate stacktraces in log messages, crash reports, and diff --git a/build.gradle.kts b/build.gradle.kts -index b48f8b7e248eb2349c7f06fdf282b741a91554d9..753624bbd4f051952c22cea9902de706626fa2ba 100644 +index 1eedfc00ab7da96f07ae542b8c5775f41708dd37..dc552a35977b2e62ec1534ffbb9c744135b4b3fc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -35,6 +35,7 @@ dependencies { @@ -17,7 +17,7 @@ index b48f8b7e248eb2349c7f06fdf282b741a91554d9..753624bbd4f051952c22cea9902de706 runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") runtimeOnly("com.mysql:mysql-connector-j:8.2.0") runtimeOnly("com.lmax:disruptor:3.4.4") // Paper -@@ -126,6 +127,18 @@ tasks.check { +@@ -121,6 +122,18 @@ tasks.check { } // Paper end diff --git a/patches/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/patches/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch index 2e36f96bd3..40af6ad187 100644 --- a/patches/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch +++ b/patches/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix SPIGOT-5824 Bukkit world-container is not used diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 5374a6b70a9780cfe9f62207b290b9a3ab82c7e9..976d5e9c965324537720e38acf6a6deda079a324 100644 +index d46b7bff34b9b43e895f713d2e73071bc62de443..567ca2f09d7bf03ef1758459829a865e5b0f3edf 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -175,8 +175,17 @@ public class Main { +@@ -164,8 +164,17 @@ public class Main { return; } diff --git a/patches/server/0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch b/patches/server/0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch index 5bf7411f05..fce4bda529 100644 --- a/patches/server/0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch +++ b/patches/server/0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix SPIGOT-5885 Unable to disable advancements diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 976d5e9c965324537720e38acf6a6deda079a324..a99fddc55bf125fe6de7be254e9f9384c2bf9ba3 100644 +index 567ca2f09d7bf03ef1758459829a865e5b0f3edf..4e3001d46340cc18108683c024f6ebe12266dd32 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -175,6 +175,7 @@ public class Main { +@@ -164,6 +164,7 @@ public class Main { return; } diff --git a/patches/server/0556-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0556-Add-environment-variable-to-disable-server-gui.patch index 5cb0f04643..787ab50918 100644 --- a/patches/server/0556-Add-environment-variable-to-disable-server-gui.patch +++ b/patches/server/0556-Add-environment-variable-to-disable-server-gui.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add environment variable to disable server gui diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index a99fddc55bf125fe6de7be254e9f9384c2bf9ba3..7a5e70c99716273d04f4cd28d80a38f6f6b3868e 100644 +index 4e3001d46340cc18108683c024f6ebe12266dd32..d3b1fa89c1ae96abebfc0a792f2bc592de05443f 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -325,6 +325,7 @@ public class Main { +@@ -314,6 +314,7 @@ public class Main { */ boolean flag1 = !optionset.has("nogui") && !optionset.nonOptionArguments().contains("nogui"); diff --git a/patches/server/0798-Detect-headless-JREs.patch b/patches/server/0798-Detect-headless-JREs.patch index 98f0b6a330..9dd8f30c67 100644 --- a/patches/server/0798-Detect-headless-JREs.patch +++ b/patches/server/0798-Detect-headless-JREs.patch @@ -27,10 +27,10 @@ index 6bd0afddbcc461149dfe9a5c7a86fff6ea13a5f1..148d233f4f5278ff39eacdaa0f4f0e7d + } } diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 7a5e70c99716273d04f4cd28d80a38f6f6b3868e..aa19a24b10cc6f4f79bb9ad65f92f60735ac5387 100644 +index d3b1fa89c1ae96abebfc0a792f2bc592de05443f..953e228afc6f706b819bb26655b91761436cc68d 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -175,6 +175,18 @@ public class Main { +@@ -164,6 +164,18 @@ public class Main { return; } diff --git a/patches/server/0861-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0861-Fix-demo-flag-not-enabling-demo-mode.patch index 65ea83a2c1..af05cbe092 100644 --- a/patches/server/0861-Fix-demo-flag-not-enabling-demo-mode.patch +++ b/patches/server/0861-Fix-demo-flag-not-enabling-demo-mode.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix demo flag not enabling demo mode https://github.com/PaperMC/Paper/issues/9046 diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index aa19a24b10cc6f4f79bb9ad65f92f60735ac5387..deb2d8c22a1c5724d0ac8571f4ea54711988dc4b 100644 +index 953e228afc6f706b819bb26655b91761436cc68d..2906cb10461b5334a7555046384c28848eec149f 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -332,7 +332,9 @@ public class Main { +@@ -321,7 +321,9 @@ public class Main { /* dedicatedserver1.setPort((Integer) optionset.valueOf(optionspec10)); diff --git a/patches/server/0982-Rewrite-chunk-system.patch b/patches/server/0982-Rewrite-chunk-system.patch index 7be3771e2d..5094d789bb 100644 --- a/patches/server/0982-Rewrite-chunk-system.patch +++ b/patches/server/0982-Rewrite-chunk-system.patch @@ -15508,10 +15508,10 @@ index 0000000000000000000000000000000000000000..c78cbec447032de9fe69748591bef6be + } +} diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index deb2d8c22a1c5724d0ac8571f4ea54711988dc4b..72d013d06705b08ed696e3d3b6d631d65800c2c9 100644 +index 2906cb10461b5334a7555046384c28848eec149f..329471af4f40e0a74612707cce96bb00819e6cf2 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -327,6 +327,7 @@ public class Main { +@@ -316,6 +316,7 @@ public class Main { convertable_conversionsession.saveDataTag(iregistrycustom_dimension, savedata); */ diff --git a/patches/server/0998-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0998-Fix-and-optimise-world-force-upgrading.patch index aedbde4517..1e5f26c776 100644 --- a/patches/server/0998-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0998-Fix-and-optimise-world-force-upgrading.patch @@ -247,10 +247,10 @@ index 0000000000000000000000000000000000000000..513833c2ea23df5b079d157bc5cb89d5 + } +} diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 72d013d06705b08ed696e3d3b6d631d65800c2c9..61840cfd64caba6595dfc99c91c76a195638d4ee 100644 +index 329471af4f40e0a74612707cce96bb00819e6cf2..bc391d27399d8c22e78735ca39aa8ab45efb6413 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -399,6 +399,15 @@ public class Main { +@@ -388,6 +388,15 @@ public class Main { return new WorldLoader.InitConfig(worldloader_d, Commands.CommandSelection.DEDICATED, serverPropertiesHandler.functionPermissionLevel); } From bd38e0318ae7f8fd10c13eb52d64842a73a81437 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 6 Apr 2024 12:53:39 -0700 Subject: [PATCH 033/215] Updated Upstream (Bukkit/CraftBukkit) (#10379) Updated Upstream (Bukkit/CraftBukkit) Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: f02baa38 PR-988: Add World#getIntersectingChunks(BoundingBox) 9321d665 Move getItemInUse up to LivingEntity 819eef73 PR-959: Add access to current item's remaining ticks c4fdadb0 SPIGOT-7601: Add AbstractArrow#getItem be8261ca Add support for Java 22 26119676 PR-979: Add more translation keys 66753362 PR-985: Correct book maximum pages and characters per page documentation c8be92fa PR-980: Improve getArmorContents() documentation f1120ee2 PR-983: Expose riptide velocity to PlayerRiptideEvent CraftBukkit Changes: dfaa89bbe PR-1369: Add World#getIntersectingChunks(BoundingBox) 51bbab2b9 Move getItemInUse up to LivingEntity 668e09602 PR-1331: Add access to current item's remaining ticks a639406d1 SPIGOT-7601: Add AbstractArrow#getItem 0398930fc SPIGOT-7602: Allow opening in-world horse and related inventories ffd15611c SPIGOT-7608: Allow empty lists to morph to any PDT list 2188dcfa9 Add support for Java 22 45d6a609f SPIGOT-7604: Revert "SPIGOT-7365: DamageCause blocked by shield should trigger invulnerableTime" 06d915943 SPIGOT-7365: DamageCause blocked by shield should trigger invulnerableTime ca3bc3707 PR-1361: Add more translation keys 366c3ca80 SPIGOT-7600: EntityChangeBlockEvent is not fired for frog eggs 06d0f9ba8 SPIGOT-7593: Fix sapling growth physics / client-side updates 45c2608e4 PR-1366: Expose riptide velocity to PlayerRiptideEvent 29b6bb79b SPIGOT-7587: Remove fixes for now-resolved MC-142590 and MC-109346 --- Paper-MojangAPI/build.gradle.kts | 2 +- .../api/0001-Convert-project-to-Gradle.patch | 12 +- patches/api/0004-Code-Generation.patch | 4 +- patches/api/0006-Adventure.patch | 72 ++++++-- .../0008-Use-ASM-for-event-executors.patch | 6 +- patches/api/0009-Paper-Plugins.patch | 8 +- patches/api/0011-Timings-v2.patch | 4 +- patches/api/0015-Version-Command-2.0.patch | 4 +- patches/api/0018-Add-view-distance-API.patch | 4 +- ...working-with-arrows-stuck-in-living-.patch | 6 +- patches/api/0039-Arrow-pickup-rule-API.patch | 4 +- patches/api/0056-Fix-upstream-javadocs.patch | 59 ++++--- .../0062-Shoulder-Entities-Release-API.patch | 4 +- patches/api/0068-LivingEntity-setKiller.patch | 4 +- ...low-plugins-to-use-SLF4J-for-logging.patch | 6 +- ...5-Add-openSign-method-to-HumanEntity.patch | 4 +- ...tional-world.getNearbyEntities-API-s.patch | 4 +- ...ld.spawnParticle-API-and-add-Builder.patch | 4 +- ...e-shield-blocking-delay-configurable.patch | 4 +- patches/api/0115-Expand-Explosions-API.patch | 4 +- .../0117-LivingEntity-Active-Item-API.patch | 160 ++++++++++++++++++ ...ivingEntity-Hand-Raised-Item-Use-API.patch | 68 -------- .../0119-Add-World.getEntity-UUID-API.patch | 4 +- .../0120-InventoryCloseEvent-Reason-API.patch | 2 +- patches/api/0143-Async-Chunks-API.patch | 6 +- patches/api/0157-Add-sun-related-API.patch | 4 +- .../0173-Fix-Spigot-annotation-mistakes.patch | 36 ++-- patches/api/0185-Entity-Jump-API.patch | 13 +- ...Add-Raw-Byte-ItemStack-Serialization.patch | 4 +- patches/api/0199-Potential-bed-API.patch | 2 +- ...yPickupItemAnimation-to-LivingEntity.patch | 9 +- ...-Add-methods-to-get-translation-keys.patch | 26 +-- ...al-open-container-api-to-HumanEntity.patch | 2 +- ...y-Counter-to-allow-plugins-to-use-va.patch | 4 +- ...224-Add-LivingEntity-clearActiveItem.patch | 14 +- ...9-Expose-LivingEntity-hurt-direction.patch | 11 +- patches/api/0263-Expand-world-key-API.patch | 4 +- patches/api/0264-Item-Rarity-API.patch | 4 +- .../api/0265-Expose-protocol-version.patch | 4 +- ...-add-isDeeplySleeping-to-HumanEntity.patch | 2 +- ...t-set-drop-chance-to-EntityEquipment.patch | 4 +- patches/api/0270-More-World-API.patch | 4 +- .../api/0282-ItemStack-repair-check-API.patch | 4 +- patches/api/0283-More-Enchantment-API.patch | 6 +- ...287-Attributes-API-for-item-defaults.patch | 4 +- .../0294-Add-more-line-of-sight-methods.patch | 4 +- patches/api/0297-Missing-Entity-API.patch | 18 +- patches/api/0301-Stinger-API.patch | 4 +- ...o-find-targets-for-lightning-strikes.patch | 4 +- .../0314-Get-entity-default-attributes.patch | 4 +- ...Collidable-methods-to-various-places.patch | 4 +- ...22-Add-Raw-Byte-Entity-Serialization.patch | 6 +- .../api/0340-More-PotionEffectType-API.patch | 10 +- patches/api/0349-More-Projectile-API.patch | 31 +++- .../api/0359-Expand-FallingBlock-API.patch | 8 +- patches/api/0363-Add-Player-getFishHook.patch | 2 +- ...0369-Add-NamespacedKey-biome-methods.patch | 4 +- ...-swingHand-EquipmentSlot-convenience.patch | 9 +- .../api/0380-Add-entity-knockback-API.patch | 9 +- patches/api/0387-ItemStack-damage-API.patch | 9 +- .../api/0400-Add-Entity-Body-Yaw-API.patch | 11 +- ...-to-remove-all-active-potion-effects.patch | 4 +- ...x-custom-statistic-criteria-creation.patch | 4 +- ...predicate-for-blocks-when-raytracing.patch | 8 +- patches/api/0446-Improve-Registry.patch | 30 ++-- .../api/0450-Add-HiddenPotionEffect-API.patch | 6 +- ...Add-api-for-spawn-egg-texture-colors.patch | 4 +- .../api/0457-Add-Lifecycle-Event-system.patch | 4 +- patches/api/0459-ItemStack-Tooltip-API.patch | 4 +- .../server/0001-Setup-Gradle-project.patch | 16 +- .../server/0003-Build-system-changes.patch | 4 +- patches/server/0004-Test-changes.patch | 4 +- patches/server/0005-Paper-config-files.patch | 6 +- patches/server/0009-MC-Utils.patch | 20 +-- patches/server/0010-Adventure.patch | 70 ++++++-- patches/server/0013-Paper-Plugins.patch | 4 +- patches/server/0014-Timings-v2.patch | 18 +- .../0027-Implement-Paper-VersionChecker.patch | 4 +- ...vent-block-entity-and-entity-crashes.patch | 4 +- .../0048-Disable-spigot-tick-limiters.patch | 4 +- .../0059-Add-exception-reporting-event.patch | 4 +- ...working-with-arrows-stuck-in-living-.patch | 6 +- ...ckPhysicsEvent-if-a-plugin-has-a-lis.patch | 8 +- ...0080-Add-PlayerUseUnknownEntityEvent.patch | 4 +- ...-possibility-for-getServer-singleton.patch | 4 +- .../0098-Fix-global-sound-handling.patch | 4 +- patches/server/0105-Add-EntityZapEvent.patch | 4 +- ...9-Add-source-to-PlayerExpChangeEvent.patch | 4 +- .../0110-Add-ProjectileCollideEvent.patch | 6 +- ...rovide-E-TE-Chunk-count-stat-methods.patch | 6 +- ...oleAppender-for-console-improvements.patch | 4 +- .../0136-Shoulder-Entities-Release-API.patch | 4 +- .../server/0145-LivingEntity-setKiller.patch | 4 +- ...117075-Block-entity-unload-lag-spike.patch | 6 +- ...e-implementations-for-captured-block.patch | 6 +- ...2-Add-openSign-method-to-HumanEntity.patch | 4 +- ...ld.spawnParticle-API-and-add-Builder.patch | 6 +- .../server/0192-WitchReadyPotionEvent.patch | 4 +- ...e-shield-blocking-delay-configurable.patch | 6 +- .../server/0203-Expand-Explosions-API.patch | 4 +- .../0204-LivingEntity-Active-Item-API.patch | 53 ++++++ ...ivingEntity-Hand-Raised-Item-Use-API.patch | 42 ----- ...7-Implement-World.getEntity-UUID-API.patch | 4 +- .../0208-InventoryCloseEvent-Reason-API.patch | 12 +- ...t-armor-stands-from-doing-entity-loo.patch | 4 +- ...8-Vanished-players-don-t-have-rights.patch | 6 +- ...loadChunk-int-int-false-load-unconve.patch | 4 +- .../server/0245-Improve-death-events.patch | 10 +- patches/server/0258-Add-sun-related-API.patch | 4 +- patches/server/0281-BlockDestroyEvent.patch | 4 +- ...Optimize-Captured-BlockEntity-Lookup.patch | 4 +- patches/server/0294-Add-Heightmap-API.patch | 4 +- ...le-Keep-Spawn-Loaded-range-per-world.patch | 8 +- .../0326-Improve-java-version-check.patch | 6 +- patches/server/0328-Entity-Jump-API.patch | 13 +- ...331-add-hand-to-BlockMultiPlaceEvent.patch | 4 +- ...-Add-tick-times-API-and-mspt-command.patch | 4 +- ...Add-Raw-Byte-ItemStack-Serialization.patch | 4 +- ...vent-opening-inventories-when-frozen.patch | 6 +- ...item-duplication-and-teleport-issues.patch | 10 +- ...ktraces-in-log-messages-crash-report.patch | 2 +- .../server/0367-Implement-Mob-Goal-API.patch | 4 +- ...-maximum-exp-value-when-merging-orbs.patch | 4 +- .../server/0370-ExperienceOrbMergeEvent.patch | 4 +- ...1-Fix-PotionEffect-ignores-icon-flag.patch | 8 +- patches/server/0372-Potential-bed-API.patch | 4 +- ...ld-Difficulty-Remembering-Difficulty.patch | 6 +- ...-Plugin-Tickets-to-API-Chunk-Methods.patch | 12 +- .../server/0400-Add-PrepareResultEvent.patch | 8 +- ...yPickupItemAnimation-to-LivingEntity.patch | 13 +- ...geEvent-not-firing-for-all-use-cases.patch | 4 +- patches/server/0418-Add-BellRingEvent.patch | 4 +- ...al-open-container-api-to-HumanEntity.patch | 4 +- ...y-Counter-to-allow-plugins-to-use-va.patch | 4 +- ...456-Add-LivingEntity-clearActiveItem.patch | 10 +- ...7-Expose-LivingEntity-hurt-direction.patch | 17 +- ...-OBSTRUCTED-reason-to-BedEnterResult.patch | 4 +- .../0483-Add-WorldGameRuleChangeEvent.patch | 6 +- .../0486-Add-BlockFailedDispenseEvent.patch | 4 +- .../0501-Add-BlockPreDispenseEvent.patch | 4 +- .../0505-Expand-EntityUnleashEvent.patch | 4 +- ...w-adding-items-to-BlockDropItemEvent.patch | 4 +- ...-entity-allow-attribute-registration.patch | 4 +- .../server/0525-Expand-world-key-API.patch | 4 +- patches/server/0527-Item-Rarity-API.patch | 4 +- .../server/0531-Expose-protocol-version.patch | 4 +- ...-add-isDeeplySleeping-to-HumanEntity.patch | 4 +- patches/server/0542-More-World-API.patch | 4 +- .../0558-ItemStack-repair-check-API.patch | 4 +- .../server/0559-More-Enchantment-API.patch | 11 +- ...565-Attributes-API-for-item-defaults.patch | 4 +- ...cause-to-Weather-ThunderChangeEvents.patch | 6 +- .../server/0580-Line-Of-Sight-Changes.patch | 6 +- .../0581-add-per-world-spawn-limits.patch | 4 +- .../0582-Fix-potions-splash-events.patch | 4 +- patches/server/0585-Missing-Entity-API.patch | 4 +- patches/server/0596-Stinger-API.patch | 6 +- ...o-find-targets-for-lightning-strikes.patch | 4 +- .../0617-Get-entity-default-attributes.patch | 4 +- .../server/0621-Add-critical-damage-API.patch | 8 +- ...Collidable-methods-to-various-places.patch | 4 +- ...26-Add-Raw-Byte-Entity-Serialization.patch | 4 +- ...0630-Improve-and-expand-AsyncCatcher.patch | 16 +- ...aper-mobcaps-and-paper-playermobcaps.patch | 4 +- ...vanilla-BiomeProvider-from-WorldInfo.patch | 6 +- .../0696-More-PotionEffectType-API.patch | 6 +- .../0700-Implement-regenerateChunk.patch | 6 +- ...0713-Fix-falling-block-spawn-methods.patch | 6 +- patches/server/0716-More-Projectile-API.patch | 12 +- ...lock-data-for-EntityChangeBlockEvent.patch | 4 +- .../0743-Add-support-for-Proxy-Protocol.patch | 4 +- .../server/0759-Add-Player-getFishHook.patch | 4 +- ...-on-plugins-accessing-faraway-chunks.patch | 18 +- ...0775-Add-NamespacedKey-biome-methods.patch | 4 +- ...ntityChangeBlockEvent-in-more-places.patch | 17 -- ...arameter-to-ProjectileSource-launchP.patch | 6 +- ...-interactions-with-items-on-cooldown.patch | 6 +- .../0797-Add-entity-knockback-API.patch | 13 +- .../server/0815-ItemStack-damage-API.patch | 31 ++-- patches/server/0816-Friction-API.patch | 16 +- .../0818-Fix-player-kick-on-shutdown.patch | 4 +- ...ck-state-to-BlockExplodeEvent-and-En.patch | 8 +- ...Fix-force-opening-enchantment-tables.patch | 4 +- .../server/0842-Add-Entity-Body-Yaw-API.patch | 18 +- ...=> 0844-Add-EntityFertilizeEggEvent.patch} | 4 +- ...when-a-captured-block-state-is-outda.patch | 18 -- ...ty-drop-not-updating-the-client-inv.patch} | 4 +- ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 2 +- ...849-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0851-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 0 ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 0 ...0858-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0861-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...64-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ... => 0866-Expand-PlayerItemMendEvent.patch} | 4 +- ...sh-ProjectileSource-for-projectiles.patch} | 0 ... => 0868-Add-transient-modifier-API.patch} | 0 ...patch => 0869-Fix-block-place-logic.patch} | 2 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 0 ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 4 +- ...rafting-result-amount-for-fireworks.patch} | 0 ...7-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 2 +- ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 0 ...881-Call-missing-BlockDispenseEvent.patch} | 4 +- ...-chunks-for-supporting-block-checks.patch} | 0 ...Optimize-player-lookups-for-beacons.patch} | 0 ...884-Add-Sign-getInteractableSideFor.patch} | 0 ...85-Array-backed-synched-entity-data.patch} | 0 ...6-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0887-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 4 +- ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0893-Add-whitelist-events.patch} | 0 ... 0894-Implement-PlayerFailMoveEvent.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 2 +- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 0 ...tion-when-spawning-display-entities.patch} | 0 ...899-Only-capture-actual-tree-growth.patch} | 2 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 0 ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0904-Cache-map-ids-on-item-frames.patch} | 2 +- ...-custom-statistic-criteria-creation.patch} | 4 +- ...atch => 0906-Bandaid-fix-for-Effect.patch} | 4 +- ...tch => 0907-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...lace-methods-with-old-StructureType.patch} | 0 ...e-namespaced-commands-if-send-names.patch} | 0 ...-handle-BlockBreakEvent-isDropItems.patch} | 0 ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 0 ... => 0914-Add-Listing-API-for-Player.patch} | 0 ...figurable-Region-Compression-Format.patch} | 0 ...6-Add-BlockFace-to-BlockDamageEvent.patch} | 4 +- ...h => 0917-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0918-Expand-Pose-API.patch} | 0 ...patch => 0919-More-DragonBattle-API.patch} | 0 ... 0920-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0921-Add-PlayerPickItemEvent.patch} | 0 ...=> 0922-Allow-trident-custom-damage.patch} | 0 ...3-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 0 ....patch => 0926-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 14 +- ...28-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 0 ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0935-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...-Remove-Spigot-Bug-Fix-for-MC-109346.patch | 23 --- ...idebar-objectives-not-being-cleared.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 0 ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...45-Fix-UnsafeValues-loadAdvancement.patch} | 2 +- ...> 0946-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 0 ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 0950-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 8 +- ...em-packets-with-collector-as-source.patch} | 2 +- ... => 0954-Expand-LingeringPotion-API.patch} | 0 ....patch => 0955-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 4 +- ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...959-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 2 +- ...tch => 0963-Add-Structure-check-API.patch} | 4 +- ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 10 +- ...-Dont-resend-blocks-on-interactions.patch} | 0 ...tch => 0967-add-more-scoreboard-API.patch} | 0 ...stry.patch => 0968-Improve-Registry.patch} | 12 +- ...on-null-loc-for-EntityTeleportEvent.patch} | 2 +- ...h => 0970-Add-experience-points-API.patch} | 0 ...h => 0971-Add-drops-to-shear-events.patch} | 8 +- ...> 0972-Add-PlayerShieldDisableEvent.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 2 +- ...-experience-dropping-on-block-break.patch} | 2 +- ...> 0975-Fixup-NamespacedKey-handling.patch} | 0 ...76-Expose-LootTable-of-DecoratedPot.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 0 ...> 0978-Rewrite-dataconverter-system.patch} | 6 +- ...1-Starlight.patch => 0979-Starlight.patch} | 4 +- ....patch => 0980-Rewrite-chunk-system.patch} | 35 ++-- ...incremental-chunk-and-player-saving.patch} | 2 +- ...dBounds-and-getBlockState-for-inlin.patch} | 2 +- ...tem-frames-performance-and-bug-fixe.patch} | 0 ...ing-for-EntityLiving-hasLineOfSight.patch} | 4 +- ...Manager-and-add-advanced-packet-sup.patch} | 0 ...86-Allow-Saving-of-Oversized-Chunks.patch} | 0 ...87-Fix-World-isChunkGenerated-calls.patch} | 6 +- ...988-Flat-bedrock-generator-settings.patch} | 0 ...=> 0989-Entity-Activation-Range-2.0.patch} | 2 +- ...0990-Optional-per-player-mob-spawns.patch} | 0 ...3-Anti-Xray.patch => 0991-Anti-Xray.patch} | 6 +- ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 0 ...timize-Collision-to-not-load-chunks.patch} | 0 ...alSelector-Goal.Flag-Set-operations.patch} | 0 ...95-Entity-load-save-limit-per-chunk.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 4 +- ...h => 0997-Improved-Watchdog-Support.patch} | 4 +- ...> 0998-Optimize-Voxel-Shape-Merging.patch} | 0 ...ch => 0999-Write-SavedData-IO-async.patch} | 0 ...nd-End-Portal-Frames-from-being-des.patch} | 2 +- ...ance-map-to-optimise-entity-tracker.patch} | 0 ...Optimize-Bit-Operations-by-inlining.patch} | 0 ...> 1003-Remove-streams-from-hot-code.patch} | 0 ...-Eigencraft-redstone-implementation.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 0 ...-Improve-boat-collision-performance.patch} | 2 +- ...=> 1008-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...> 1010-Execute-chunk-tasks-mid-tick.patch} | 4 +- ... 1011-Optimise-random-block-ticking.patch} | 2 +- ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 2 +- ...-more-information-in-watchdog-dumps.patch} | 4 +- ...tch => 1015-Collision-optimisations.patch} | 2 +- ...n-checking-in-player-move-packet-ha.patch} | 0 ...e-disarming-not-working-as-intended.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ate-Current-redstone-implementation.patch} | 2 +- ...20-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 1021-Properly-resend-entities.patch} | 2 +- ...pers.patch => 1022-Optimize-Hoppers.patch} | 2 +- ...-Improve-performance-of-mass-crafts.patch} | 0 ...> 1024-Actually-optimise-explosions.patch} | 0 ... 1025-Optimise-chunk-tick-iteration.patch} | 0 ...atch => 1026-Lag-compensation-ticks.patch} | 4 +- ...27-Optimise-nearby-player-retrieval.patch} | 0 ... 1028-Distance-manager-tick-timings.patch} | 0 ...-Oversized-block-entities-in-chunks.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...h => 1031-Add-ShulkerDuplicateEvent.patch} | 0 ...dd-api-for-spawn-egg-texture-colors.patch} | 4 +- ...3-Disable-memory-reserve-allocating.patch} | 0 ...=> 1034-Improve-tag-parser-handling.patch} | 0 ... => 1035-Add-Lifecycle-Event-system.patch} | 4 +- ...nduit-API.patch => 1036-Conduit-API.patch} | 0 ...patch => 1037-ItemStack-Tooltip-API.patch} | 4 +- ...ackOverflowError-for-some-dispenses.patch} | 0 ...e-changed-item-from-dispense-events.patch} | 0 ...Snapshot-includeLightData-parameter.patch} | 0 ...PI.patch => 1041-Add-FluidState-API.patch} | 0 ...patch => 1042-add-number-format-api.patch} | 0 ...eck-if-itemstack-is-stackable-first.patch} | 0 ...ByEntityEvent-for-unowned-wither-sk.patch} | 0 ...patch => 1045-improve-BanList-types.patch} | 0 ...-Configurable-max-block-fluid-ticks.patch} | 0 ...47-disable-forced-empty-world-ticks.patch} | 0 ...=> 1048-Suspicious-Effect-Entry-API.patch} | 0 ...-Per-world-ticks-per-spawn-settings.patch} | 2 +- ...ng-message-for-initial-server-start.patch} | 2 +- ....patch => 1051-Fix-DamageSource-API.patch} | 6 +- ...I.patch => 1052-Expanded-Hopper-API.patch} | 0 work/Bukkit | 2 +- work/CraftBukkit | 2 +- 397 files changed, 1094 insertions(+), 919 deletions(-) create mode 100644 patches/api/0117-LivingEntity-Active-Item-API.patch delete mode 100644 patches/api/0117-LivingEntity-Hand-Raised-Item-Use-API.patch create mode 100644 patches/server/0204-LivingEntity-Active-Item-API.patch delete mode 100644 patches/server/0204-LivingEntity-Hand-Raised-Item-Use-API.patch rename patches/server/{0845-Add-EntityFertilizeEggEvent.patch => 0844-Add-EntityFertilizeEggEvent.patch} (97%) delete mode 100644 patches/server/0844-Update-the-flag-when-a-captured-block-state-is-outda.patch rename patches/server/{0846-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0845-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (90%) rename patches/server/{0847-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0846-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0848-Correctly-handle-ArmorStand-invisibility.patch => 0847-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0849-Fix-advancement-triggers-for-entity-damage.patch => 0848-Fix-advancement-triggers-for-entity-damage.patch} (97%) rename patches/server/{0850-Fix-text-display-error-on-spawn.patch => 0849-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0851-Fix-inventories-returning-null-Locations.patch => 0850-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0852-Add-Shearable-API.patch => 0851-Add-Shearable-API.patch} (100%) rename patches/server/{0853-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0852-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0854-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0853-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0855-Treat-sequence-violations-like-they-should-be.patch => 0854-Treat-sequence-violations-like-they-should-be.patch} (100%) rename patches/server/{0856-remove-duplicate-animate-packet-for-records.patch => 0855-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0857-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0856-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/server/{0858-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (100%) rename patches/server/{0859-Use-array-for-gamerule-storage.patch => 0858-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0860-Fix-a-couple-of-upstream-bed-issues.patch => 0859-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0861-Fix-demo-flag-not-enabling-demo-mode.patch => 0860-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0862-Add-Mob-Experience-reward-API.patch => 0861-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0863-Break-redstone-on-top-of-trap-doors-early.patch => 0862-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0864-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0865-More-accurate-isInOpenWater-impl.patch => 0864-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0866-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0867-Expand-PlayerItemMendEvent.patch => 0866-Expand-PlayerItemMendEvent.patch} (97%) rename patches/server/{0868-Refresh-ProjectileSource-for-projectiles.patch => 0867-Refresh-ProjectileSource-for-projectiles.patch} (100%) rename patches/server/{0869-Add-transient-modifier-API.patch => 0868-Add-transient-modifier-API.patch} (100%) rename patches/server/{0870-Fix-block-place-logic.patch => 0869-Fix-block-place-logic.patch} (97%) rename patches/server/{0871-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0872-Call-BlockGrowEvent-for-missing-blocks.patch => 0871-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0873-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (100%) rename patches/server/{0874-fix-MapLike-spam-for-missing-key-selector.patch => 0873-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0875-Fix-sniffer-removeExploredLocation.patch => 0874-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0876-Add-method-to-remove-all-active-potion-effects.patch => 0875-Add-method-to-remove-all-active-potion-effects.patch} (86%) rename patches/server/{0877-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0878-Add-event-for-player-editing-sign.patch => 0877-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0879-Only-tick-item-frames-if-players-can-see-it.patch => 0878-Only-tick-item-frames-if-players-can-see-it.patch} (92%) rename patches/server/{0880-Fix-cmd-permission-levels-for-command-blocks.patch => 0879-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/server/{0881-Add-option-to-disable-block-updates.patch => 0880-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0882-Call-missing-BlockDispenseEvent.patch => 0881-Call-missing-BlockDispenseEvent.patch} (97%) rename patches/server/{0883-Don-t-load-chunks-for-supporting-block-checks.patch => 0882-Don-t-load-chunks-for-supporting-block-checks.patch} (100%) rename patches/server/{0884-Optimize-player-lookups-for-beacons.patch => 0883-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0885-Add-Sign-getInteractableSideFor.patch => 0884-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0886-Array-backed-synched-entity-data.patch => 0885-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0887-fix-item-meta-for-tadpole-buckets.patch => 0886-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0888-Fix-BanList-API.patch => 0887-Fix-BanList-API.patch} (100%) rename patches/server/{0889-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0888-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0890-Fix-possible-NPE-on-painting-creation.patch => 0889-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0891-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0892-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0891-ExperienceOrb-should-call-EntitySpawnEvent.patch} (89%) rename patches/server/{0893-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0894-Add-whitelist-events.patch => 0893-Add-whitelist-events.patch} (100%) rename patches/server/{0895-Implement-PlayerFailMoveEvent.patch => 0894-Implement-PlayerFailMoveEvent.patch} (100%) rename patches/server/{0896-Folia-scheduler-and-owned-region-API.patch => 0895-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0897-Only-erase-allay-memory-on-non-item-targets.patch => 0896-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0898-API-for-updating-recipes-on-clients.patch => 0897-API-for-updating-recipes-on-clients.patch} (100%) rename patches/server/{0899-Fix-rotation-when-spawning-display-entities.patch => 0898-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0900-Only-capture-actual-tree-growth.patch => 0899-Only-capture-actual-tree-growth.patch} (98%) rename patches/server/{0901-Use-correct-source-for-mushroom-block-spread-event.patch => 0900-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0902-Respect-randomizeData-on-more-entities-when-spawning.patch => 0901-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0903-Use-correct-seed-on-api-world-load.patch => 0902-Use-correct-seed-on-api-world-load.patch} (100%) rename patches/server/{0904-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0903-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0905-Cache-map-ids-on-item-frames.patch => 0904-Cache-map-ids-on-item-frames.patch} (96%) rename patches/server/{0906-Fix-custom-statistic-criteria-creation.patch => 0905-Fix-custom-statistic-criteria-creation.patch} (88%) rename patches/server/{0907-Bandaid-fix-for-Effect.patch => 0906-Bandaid-fix-for-Effect.patch} (98%) rename patches/server/{0908-SculkCatalyst-bloom-API.patch => 0907-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0909-API-for-an-entity-s-scoreboard-name.patch => 0908-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0910-Deprecate-and-replace-methods-with-old-StructureType.patch => 0909-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/server/{0911-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0910-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (100%) rename patches/server/{0912-Properly-handle-BlockBreakEvent-isDropItems.patch => 0911-Properly-handle-BlockBreakEvent-isDropItems.patch} (100%) rename patches/server/{0913-Fire-entity-death-event-for-ender-dragon.patch => 0912-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0914-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0913-Configurable-entity-tracking-range-by-Y-coordinate.patch} (100%) rename patches/server/{0915-Add-Listing-API-for-Player.patch => 0914-Add-Listing-API-for-Player.patch} (100%) rename patches/server/{0916-Configurable-Region-Compression-Format.patch => 0915-Configurable-Region-Compression-Format.patch} (100%) rename patches/server/{0917-Add-BlockFace-to-BlockDamageEvent.patch => 0916-Add-BlockFace-to-BlockDamageEvent.patch} (94%) rename patches/server/{0918-Fix-NPE-on-Boat-getStatus.patch => 0917-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0919-Expand-Pose-API.patch => 0918-Expand-Pose-API.patch} (100%) rename patches/server/{0920-More-DragonBattle-API.patch => 0919-More-DragonBattle-API.patch} (100%) rename patches/server/{0921-Deep-clone-unhandled-nbt-tags.patch => 0920-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0922-Add-PlayerPickItemEvent.patch => 0921-Add-PlayerPickItemEvent.patch} (100%) rename patches/server/{0923-Allow-trident-custom-damage.patch => 0922-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0924-Expose-hand-in-BlockCanBuildEvent.patch => 0923-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0925-Optimize-nearest-structure-border-iteration.patch => 0924-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0926-Implement-OfflinePlayer-isConnected.patch => 0925-Implement-OfflinePlayer-isConnected.patch} (100%) rename patches/server/{0927-Fix-inventory-desync.patch => 0926-Fix-inventory-desync.patch} (100%) rename patches/server/{0928-Add-titleOverride-to-InventoryOpenEvent.patch => 0927-Add-titleOverride-to-InventoryOpenEvent.patch} (94%) rename patches/server/{0929-Configure-sniffer-egg-hatch-time.patch => 0928-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0930-Do-crystal-portal-proximity-check-before-entity-look.patch => 0929-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0931-Skip-POI-finding-if-stuck-in-vehicle.patch => 0930-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0932-Add-slot-sanity-checks-in-container-clicks.patch => 0931-Add-slot-sanity-checks-in-container-clicks.patch} (100%) rename patches/server/{0933-Call-BlockRedstoneEvents-for-lecterns.patch => 0932-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0934-Allow-proper-checking-of-empty-item-stacks.patch => 0933-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0935-Fix-silent-equipment-change-for-mobs.patch => 0934-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{0936-Fix-spigot-s-Forced-Stats.patch => 0935-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0937-Add-missing-InventoryHolders-to-inventories.patch => 0936-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/server/{0938-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0937-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{0939-Add-missing-logs-for-log-ips-config-option.patch => 0938-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0941-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{0942-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0940-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) delete mode 100644 patches/server/0940-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename patches/server/{0943-Fix-team-sidebar-objectives-not-being-cleared.patch => 0941-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{0944-Fix-missing-map-initialize-event-call.patch => 0942-Fix-missing-map-initialize-event-call.patch} (100%) rename patches/server/{0945-Update-entity-data-when-attaching-firework-to-entity.patch => 0943-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{0946-Use-correct-variable-for-initializing-CraftLootTable.patch => 0944-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{0947-Fix-UnsafeValues-loadAdvancement.patch => 0945-Fix-UnsafeValues-loadAdvancement.patch} (96%) rename patches/server/{0948-Add-player-idle-duration-API.patch => 0946-Add-player-idle-duration-API.patch} (100%) rename patches/server/{0949-Don-t-check-if-we-can-see-non-visible-entities.patch => 0947-Don-t-check-if-we-can-see-non-visible-entities.patch} (100%) rename patches/server/{0950-Fix-NPE-in-SculkBloomEvent-world-access.patch => 0948-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{0951-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/server/{0952-Optimize-VarInts.patch => 0950-Optimize-VarInts.patch} (100%) rename patches/server/{0953-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0951-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{0954-Add-predicate-for-blocks-when-raytracing.patch => 0952-Add-predicate-for-blocks-when-raytracing.patch} (96%) rename patches/server/{0955-Broadcast-take-item-packets-with-collector-as-source.patch => 0953-Broadcast-take-item-packets-with-collector-as-source.patch} (92%) rename patches/server/{0956-Expand-LingeringPotion-API.patch => 0954-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{0957-Add-MaterialTagsTest.patch => 0955-Add-MaterialTagsTest.patch} (100%) rename patches/server/{0958-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 0956-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (96%) rename patches/server/{0959-Add-hand-to-fish-event-for-all-player-interactions.patch => 0957-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{0960-Fix-several-issues-with-EntityBreedEvent.patch => 0958-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{0961-Add-UUID-attribute-modifier-API.patch => 0959-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{0962-Fix-missing-event-call-for-entity-teleport-API.patch => 0960-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{0963-Lazily-create-LootContext-for-criterions.patch => 0961-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{0964-Don-t-fire-sync-events-during-worldgen.patch => 0962-Don-t-fire-sync-events-during-worldgen.patch} (99%) rename patches/server/{0965-Add-Structure-check-API.patch => 0963-Add-Structure-check-API.patch} (86%) rename patches/server/{0966-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 0964-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{0967-Restore-vanilla-entity-drops-behavior.patch => 0965-Restore-vanilla-entity-drops-behavior.patch} (97%) rename patches/server/{0968-Dont-resend-blocks-on-interactions.patch => 0966-Dont-resend-blocks-on-interactions.patch} (100%) rename patches/server/{0969-add-more-scoreboard-API.patch => 0967-add-more-scoreboard-API.patch} (100%) rename patches/server/{0970-Improve-Registry.patch => 0968-Improve-Registry.patch} (93%) rename patches/server/{0971-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 0969-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (97%) rename patches/server/{0972-Add-experience-points-API.patch => 0970-Add-experience-points-API.patch} (100%) rename patches/server/{0973-Add-drops-to-shear-events.patch => 0971-Add-drops-to-shear-events.patch} (98%) rename patches/server/{0974-Add-PlayerShieldDisableEvent.patch => 0972-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/server/{0975-Validate-ResourceLocation-in-NBT-reading.patch => 0973-Validate-ResourceLocation-in-NBT-reading.patch} (99%) rename patches/server/{0976-Properly-handle-experience-dropping-on-block-break.patch => 0974-Properly-handle-experience-dropping-on-block-break.patch} (98%) rename patches/server/{0977-Fixup-NamespacedKey-handling.patch => 0975-Fixup-NamespacedKey-handling.patch} (100%) rename patches/server/{0978-Expose-LootTable-of-DecoratedPot.patch => 0976-Expose-LootTable-of-DecoratedPot.patch} (100%) rename patches/server/{0979-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (100%) rename patches/server/{0980-Rewrite-dataconverter-system.patch => 0978-Rewrite-dataconverter-system.patch} (99%) rename patches/server/{0981-Starlight.patch => 0979-Starlight.patch} (99%) rename patches/server/{0982-Rewrite-chunk-system.patch => 0980-Rewrite-chunk-system.patch} (99%) rename patches/server/{0983-incremental-chunk-and-player-saving.patch => 0981-incremental-chunk-and-player-saving.patch} (98%) rename patches/server/{0984-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch => 0982-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch} (98%) rename patches/server/{0985-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch => 0983-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch} (100%) rename patches/server/{0986-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch => 0984-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch} (97%) rename patches/server/{0987-Optimize-Network-Manager-and-add-advanced-packet-sup.patch => 0985-Optimize-Network-Manager-and-add-advanced-packet-sup.patch} (100%) rename patches/server/{0988-Allow-Saving-of-Oversized-Chunks.patch => 0986-Allow-Saving-of-Oversized-Chunks.patch} (100%) rename patches/server/{0989-Fix-World-isChunkGenerated-calls.patch => 0987-Fix-World-isChunkGenerated-calls.patch} (98%) rename patches/server/{0990-Flat-bedrock-generator-settings.patch => 0988-Flat-bedrock-generator-settings.patch} (100%) rename patches/server/{0991-Entity-Activation-Range-2.0.patch => 0989-Entity-Activation-Range-2.0.patch} (99%) rename patches/server/{0992-Optional-per-player-mob-spawns.patch => 0990-Optional-per-player-mob-spawns.patch} (100%) rename patches/server/{0993-Anti-Xray.patch => 0991-Anti-Xray.patch} (99%) rename patches/server/{0994-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (100%) rename patches/server/{0995-Optimize-Collision-to-not-load-chunks.patch => 0993-Optimize-Collision-to-not-load-chunks.patch} (100%) rename patches/server/{0996-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => 0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (100%) rename patches/server/{0997-Entity-load-save-limit-per-chunk.patch => 0995-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/server/{0998-Fix-and-optimise-world-force-upgrading.patch => 0996-Fix-and-optimise-world-force-upgrading.patch} (99%) rename patches/server/{0999-Improved-Watchdog-Support.patch => 0997-Improved-Watchdog-Support.patch} (99%) rename patches/server/{1000-Optimize-Voxel-Shape-Merging.patch => 0998-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/server/{1001-Write-SavedData-IO-async.patch => 0999-Write-SavedData-IO-async.patch} (100%) rename patches/server/{1002-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 1000-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (99%) rename patches/server/{1003-Use-distance-map-to-optimise-entity-tracker.patch => 1001-Use-distance-map-to-optimise-entity-tracker.patch} (100%) rename patches/server/{1004-Optimize-Bit-Operations-by-inlining.patch => 1002-Optimize-Bit-Operations-by-inlining.patch} (100%) rename patches/server/{1005-Remove-streams-from-hot-code.patch => 1003-Remove-streams-from-hot-code.patch} (100%) rename patches/server/{1006-Eigencraft-redstone-implementation.patch => 1004-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{1007-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{1008-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 1006-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (100%) rename patches/server/{1009-Improve-boat-collision-performance.patch => 1007-Improve-boat-collision-performance.patch} (97%) rename patches/server/{1010-Optimise-general-POI-access.patch => 1008-Optimise-general-POI-access.patch} (100%) rename patches/server/{1011-Custom-table-implementation-for-blockstate-state-loo.patch => 1009-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{1012-Execute-chunk-tasks-mid-tick.patch => 1010-Execute-chunk-tasks-mid-tick.patch} (97%) rename patches/server/{1013-Optimise-random-block-ticking.patch => 1011-Optimise-random-block-ticking.patch} (99%) rename patches/server/{1014-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1012-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{1015-Use-Velocity-compression-and-cipher-natives.patch => 1013-Use-Velocity-compression-and-cipher-natives.patch} (99%) rename patches/server/{1016-Detail-more-information-in-watchdog-dumps.patch => 1014-Detail-more-information-in-watchdog-dumps.patch} (97%) rename patches/server/{1017-Collision-optimisations.patch => 1015-Collision-optimisations.patch} (99%) rename patches/server/{1018-Optimise-collision-checking-in-player-move-packet-ha.patch => 1016-Optimise-collision-checking-in-player-move-packet-ha.patch} (100%) rename patches/server/{1019-Fix-tripwire-disarming-not-working-as-intended.patch => 1017-Fix-tripwire-disarming-not-working-as-intended.patch} (100%) rename patches/server/{1020-Fix-entity-type-tags-suggestions-in-selectors.patch => 1018-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{1021-Add-Alternate-Current-redstone-implementation.patch => 1019-Add-Alternate-Current-redstone-implementation.patch} (99%) rename patches/server/{1022-optimize-dirt-and-snow-spreading.patch => 1020-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{1023-Properly-resend-entities.patch => 1021-Properly-resend-entities.patch} (99%) rename patches/server/{1024-Optimize-Hoppers.patch => 1022-Optimize-Hoppers.patch} (99%) rename patches/server/{1025-Improve-performance-of-mass-crafts.patch => 1023-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{1026-Actually-optimise-explosions.patch => 1024-Actually-optimise-explosions.patch} (100%) rename patches/server/{1027-Optimise-chunk-tick-iteration.patch => 1025-Optimise-chunk-tick-iteration.patch} (100%) rename patches/server/{1028-Lag-compensation-ticks.patch => 1026-Lag-compensation-ticks.patch} (97%) rename patches/server/{1029-Optimise-nearby-player-retrieval.patch => 1027-Optimise-nearby-player-retrieval.patch} (100%) rename patches/server/{1030-Distance-manager-tick-timings.patch => 1028-Distance-manager-tick-timings.patch} (100%) rename patches/server/{1031-Handle-Oversized-block-entities-in-chunks.patch => 1029-Handle-Oversized-block-entities-in-chunks.patch} (100%) rename patches/server/{1032-Send-full-pos-packets-for-hard-colliding-entities.patch => 1030-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{1033-Add-ShulkerDuplicateEvent.patch => 1031-Add-ShulkerDuplicateEvent.patch} (100%) rename patches/server/{1034-Add-api-for-spawn-egg-texture-colors.patch => 1032-Add-api-for-spawn-egg-texture-colors.patch} (88%) rename patches/server/{1035-Disable-memory-reserve-allocating.patch => 1033-Disable-memory-reserve-allocating.patch} (100%) rename patches/server/{1036-Improve-tag-parser-handling.patch => 1034-Improve-tag-parser-handling.patch} (100%) rename patches/server/{1037-Add-Lifecycle-Event-system.patch => 1035-Add-Lifecycle-Event-system.patch} (99%) rename patches/server/{1038-Conduit-API.patch => 1036-Conduit-API.patch} (100%) rename patches/server/{1039-ItemStack-Tooltip-API.patch => 1037-ItemStack-Tooltip-API.patch} (91%) rename patches/server/{1040-Fix-possible-StackOverflowError-for-some-dispenses.patch => 1038-Fix-possible-StackOverflowError-for-some-dispenses.patch} (100%) rename patches/server/{1041-Properly-track-the-changed-item-from-dispense-events.patch => 1039-Properly-track-the-changed-item-from-dispense-events.patch} (100%) rename patches/server/{1042-Add-getChunkSnapshot-includeLightData-parameter.patch => 1040-Add-getChunkSnapshot-includeLightData-parameter.patch} (100%) rename patches/server/{1043-Add-FluidState-API.patch => 1041-Add-FluidState-API.patch} (100%) rename patches/server/{1044-add-number-format-api.patch => 1042-add-number-format-api.patch} (100%) rename patches/server/{1045-check-if-itemstack-is-stackable-first.patch => 1043-check-if-itemstack-is-stackable-first.patch} (100%) rename patches/server/{1046-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch => 1044-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch} (100%) rename patches/server/{1047-improve-BanList-types.patch => 1045-improve-BanList-types.patch} (100%) rename patches/server/{1048-Configurable-max-block-fluid-ticks.patch => 1046-Configurable-max-block-fluid-ticks.patch} (100%) rename patches/server/{1049-disable-forced-empty-world-ticks.patch => 1047-disable-forced-empty-world-ticks.patch} (100%) rename patches/server/{1050-Suspicious-Effect-Entry-API.patch => 1048-Suspicious-Effect-Entry-API.patch} (100%) rename patches/server/{1051-Per-world-ticks-per-spawn-settings.patch => 1049-Per-world-ticks-per-spawn-settings.patch} (94%) rename patches/server/{1052-Add-onboarding-message-for-initial-server-start.patch => 1050-Add-onboarding-message-for-initial-server-start.patch} (98%) rename patches/server/{1053-Fix-DamageSource-API.patch => 1051-Fix-DamageSource-API.patch} (98%) rename patches/server/{1054-Expanded-Hopper-API.patch => 1052-Expanded-Hopper-API.patch} (100%) diff --git a/Paper-MojangAPI/build.gradle.kts b/Paper-MojangAPI/build.gradle.kts index a278ee93d7..e60be45e25 100644 --- a/Paper-MojangAPI/build.gradle.kts +++ b/Paper-MojangAPI/build.gradle.kts @@ -17,7 +17,7 @@ dependencies { testImplementation("junit:junit:4.13.2") testImplementation("org.hamcrest:hamcrest-library:1.3") - testImplementation("org.ow2.asm:asm-tree:9.2") + testImplementation("org.ow2.asm:asm-tree:9.7") } configure { diff --git a/patches/api/0001-Convert-project-to-Gradle.patch b/patches/api/0001-Convert-project-to-Gradle.patch index 4bcaee9295..f58981795e 100644 --- a/patches/api/0001-Convert-project-to-Gradle.patch +++ b/patches/api/0001-Convert-project-to-Gradle.patch @@ -27,7 +27,7 @@ index 5dd700a956e915c00b25d91dea8d6f285ddab72b..97e78e27ee0eea2c8b24886eeb19164d +/.factorypath diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 -index 0000000000000000000000000000000000000000..4311f6dde7372a069f462158fba76d9d4b72e23a +index 0000000000000000000000000000000000000000..4756a5aa04f8a8f0a8f9ff2c7aa6776b5a6892a5 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,91 @@ @@ -63,8 +63,8 @@ index 0000000000000000000000000000000000000000..4311f6dde7372a069f462158fba76d9d + testImplementation("org.apache.commons:commons-lang3:3.12.0") + testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") + testImplementation("org.hamcrest:hamcrest:2.2") -+ testImplementation("org.mockito:mockito-core:5.5.0") -+ testImplementation("org.ow2.asm:asm-tree:9.5") ++ testImplementation("org.mockito:mockito-core:5.11.0") ++ testImplementation("org.ow2.asm:asm-tree:9.7") +} + +configure { @@ -124,7 +124,7 @@ index 0000000000000000000000000000000000000000..4311f6dde7372a069f462158fba76d9d +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index 0861b44936958613beba670b0d82e21d3aaf388b..0000000000000000000000000000000000000000 +index 931d1a0215f54a4ff172b1b6db2ab06c41cd0c39..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null @@ -1,277 +0,0 @@ @@ -237,13 +237,13 @@ index 0861b44936958613beba670b0d82e21d3aaf388b..00000000000000000000000000000000 - - org.mockito - mockito-core -- 5.5.0 +- 5.11.0 - test - - - org.ow2.asm - asm-tree -- 9.5 +- 9.7 - test - - diff --git a/patches/api/0004-Code-Generation.patch b/patches/api/0004-Code-Generation.patch index 294139088b..33dd524ef9 100644 --- a/patches/api/0004-Code-Generation.patch +++ b/patches/api/0004-Code-Generation.patch @@ -7,7 +7,7 @@ Currently includes generated key holder classes for types used in the Registry Modification API diff --git a/build.gradle.kts b/build.gradle.kts -index 948bd84db9923ef43cf753b7b72bf4d0081ab43a..4ee1aed72727e911bff4ac91bcacfd8eee87ecfc 100644 +index be4d301b305f5cd92d2ff352bfb9c6ff9f82fd9b..01e3a5ba74f8d4c4c2eb010b289e2a7785b11bcc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ @@ -19,7 +19,7 @@ index 948bd84db9923ef43cf753b7b72bf4d0081ab43a..4ee1aed72727e911bff4ac91bcacfd8e java { @@ -45,6 +46,22 @@ dependencies { - testImplementation("org.ow2.asm:asm-tree:9.5") + testImplementation("org.ow2.asm:asm-tree:9.7") } +// Paper start diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch index 6e3f2c5ebd..3bf28e3242 100644 --- a/patches/api/0006-Adventure.patch +++ b/patches/api/0006-Adventure.patch @@ -8,7 +8,7 @@ Co-authored-by: Jake Potrebic Co-authored-by: Yannick Lamprecht diff --git a/build.gradle.kts b/build.gradle.kts -index b3df8cf8d32a4cc99a3a3950f146cdab65826e1b..9011451c6a60db08dcc255a84470f8ce92f7b2a4 100644 +index f605e7e0f812a2297b1cecf3f37b69a8edc6b4a5..e3748b4b39529fde27e5bb00597a56becdf0843c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,12 +11,28 @@ java { @@ -1493,7 +1493,7 @@ index ac5e263d737973af077e3406a84a84baca4370db..2d91924b7f5ef16a91d40cdc1bfc3d68 + // Paper end } diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 6ca5f7a85087ca1c7e5e2d940bd3c65b84d2d356..0f902aec66ec550f80709f7f314ca90d374ebb53 100644 +index ef3c0410ba4f88ec8b51e79abdc97777fdc00d31..913cf8308840ca1f365eb1f456f64b96046ed060 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -30,6 +30,15 @@ import org.jetbrains.annotations.Nullable; @@ -1525,7 +1525,7 @@ index efb97712cc9dc7c1e12a59f5b94e4f2ad7c6b7d8..3024468af4c073324e536c1cb26beffb return warning == null || warning.value(); } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 0fd2e9ee1a8cf4456a1e5fe6579d767c5dcb4d9a..d76db156a7eeefaac3c96d2d547fddecefbd863e 100644 +index 28193b8e3c79e14af2ce47857a717f9dd4f1fa42..b53f24c0368ff4e4f5287f1699643a0c00579031 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -47,7 +47,7 @@ import org.jetbrains.annotations.Nullable; @@ -1537,7 +1537,7 @@ index 0fd2e9ee1a8cf4456a1e5fe6579d767c5dcb4d9a..d76db156a7eeefaac3c96d2d547fddec /** * Gets the {@link Block} at the given coordinates -@@ -608,6 +608,14 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -617,6 +617,14 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @NotNull public List getPlayers(); @@ -2180,10 +2180,10 @@ index b7d8dd30360a38dbdc7bbce40c8e6ced7261f833..0817f2395c2b18828565435568ce651f public void sendRawMessage(@Nullable UUID sender, @NotNull String message); } diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java -index c349cd16de02981392a8788ddaa3152e901aacff..6a915b5b41daa5ea64913a2d5c611a6167168395 100644 +index a456e43308b95f51beed2159e6baf00f32702a71..350d52f4dd97a7e6a6a9a967e1c6a8781feda22e 100644 --- a/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/src/main/java/org/bukkit/enchantments/Enchantment.java -@@ -295,6 +295,19 @@ public abstract class Enchantment implements Keyed { +@@ -296,6 +296,19 @@ public abstract class Enchantment implements Keyed, Translatable { * @return True if the enchantment may be applied, otherwise False */ public abstract boolean canEnchantItem(@NotNull ItemStack item); @@ -4356,7 +4356,7 @@ index 88cdce67e6a55712cb56e946f2f09c82ddbc1d15..e76c847e57f3d32757129d56922862a4 + // Paper end } diff --git a/src/main/java/org/bukkit/inventory/meta/BookMeta.java b/src/main/java/org/bukkit/inventory/meta/BookMeta.java -index 94852d50e88d0594b84b581cd627174043629995..be7c2cfc757e4dd15927be850739d401958fb227 100644 +index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..86c9e4229a1936c5893016e5b8087aa9fd06ddab 100644 --- a/src/main/java/org/bukkit/inventory/meta/BookMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/BookMeta.java @@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable; @@ -4510,7 +4510,7 @@ index 94852d50e88d0594b84b581cd627174043629995..be7c2cfc757e4dd15927be850739d401 /** @@ -157,7 +266,9 @@ public interface BookMeta extends ItemMeta { - * pages. Maximum 100 pages with 256 characters per page. + * pages. Maximum 100 pages with 1024 characters per page. * * @param pages A list of pages to set the book to use + * @deprecated in favour of {@link #pages(List)} @@ -4520,7 +4520,7 @@ index 94852d50e88d0594b84b581cd627174043629995..be7c2cfc757e4dd15927be850739d401 /** @@ -165,7 +276,9 @@ public interface BookMeta extends ItemMeta { - * pages. Maximum 50 pages with 256 characters per page. + * pages. Maximum 100 pages with 1024 characters per page. * * @param pages A list of strings, each being a page + * @deprecated in favour of {@link #pages(net.kyori.adventure.text.Component...)} @@ -4530,7 +4530,7 @@ index 94852d50e88d0594b84b581cd627174043629995..be7c2cfc757e4dd15927be850739d401 /** @@ -173,7 +286,9 @@ public interface BookMeta extends ItemMeta { - * 256 characters per page. + * 1024 characters per page. * * @param pages A list of strings, each being a page + * @deprecated in favour of {@link #addPages(net.kyori.adventure.text.Component...)} @@ -4695,6 +4695,58 @@ index 9f159ac909ad5287b719cee331db5c44654ec547..f1fcc844d563a0108230676dec84ef25 void setLore(@Nullable List lore); /** +diff --git a/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java b/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java +index eb80f24da65918a21a2fa6691eeb64b621febaf4..941fac4eee338870d8c30cb1f64cab572cf54548 100644 +--- a/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java ++++ b/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java +@@ -51,4 +51,21 @@ public interface TrimMaterial extends Keyed, Translatable { + * {@link Material#AMETHYST_SHARD}. + */ + public static final TrimMaterial AMETHYST = Registry.TRIM_MATERIAL.get(NamespacedKey.minecraft("amethyst")); ++ ++ // Paper start - adventure ++ /** ++ * Get the description of this {@link TrimMaterial}. ++ * ++ * @return the description ++ */ ++ net.kyori.adventure.text.@org.jetbrains.annotations.NotNull Component description(); ++ ++ /** ++ * @deprecated this method assumes that {@link #description()} will ++ * always be a translatable component which is not guaranteed. ++ */ ++ @Override ++ @Deprecated(forRemoval = true) ++ @org.jetbrains.annotations.NotNull String getTranslationKey(); ++ // Paper end - adventure + } +diff --git a/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java b/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java +index ccf02c79e2784de75273f5ad7f83ce5c33a688fe..3fa087d09c7c2d864eea25659951a537359c9589 100644 +--- a/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java ++++ b/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java +@@ -75,4 +75,21 @@ public interface TrimPattern extends Keyed, Translatable { + * {@link Material#HOST_ARMOR_TRIM_SMITHING_TEMPLATE}. + */ + public static final TrimPattern HOST = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft("host")); ++ ++ // Paper start - adventure ++ /** ++ * Get the description of this {@link TrimPattern}. ++ * ++ * @return the description ++ */ ++ net.kyori.adventure.text.@org.jetbrains.annotations.NotNull Component description(); ++ ++ /** ++ * @deprecated this method assumes that {@link #description()} will ++ * always be a translatable component which is not guaranteed. ++ */ ++ @Override ++ @Deprecated(forRemoval = true) ++ @org.jetbrains.annotations.NotNull String getTranslationKey(); ++ // Paper end - adventure + } diff --git a/src/main/java/org/bukkit/map/MapCursor.java b/src/main/java/org/bukkit/map/MapCursor.java index b90fd819a781d3a2117ffa25f0864b1576901f9f..7d4f4970dae6fe4eeea6b6b6810dcecfe20d6e51 100644 --- a/src/main/java/org/bukkit/map/MapCursor.java diff --git a/patches/api/0008-Use-ASM-for-event-executors.patch b/patches/api/0008-Use-ASM-for-event-executors.patch index 541827e36a..65ce1716a1 100644 --- a/patches/api/0008-Use-ASM-for-event-executors.patch +++ b/patches/api/0008-Use-ASM-for-event-executors.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use ASM for event executors. Uses method handles for private or static methods. diff --git a/build.gradle.kts b/build.gradle.kts -index b577114c2b89fe2053123d1a542d37dff7fa8d5a..af6c528ccc4356f5bba3ce0b9bf6de237d77376e 100644 +index e3748b4b39529fde27e5bb00597a56becdf0843c..2aca0a8feffc844ee19480d70a1a9971790d1621 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -47,6 +47,9 @@ dependencies { @@ -14,8 +14,8 @@ index b577114c2b89fe2053123d1a542d37dff7fa8d5a..af6c528ccc4356f5bba3ce0b9bf6de23 apiAndDocs("net.kyori:adventure-text-serializer-plain") apiAndDocs("net.kyori:adventure-text-logger-slf4j") + -+ implementation("org.ow2.asm:asm:9.5") -+ implementation("org.ow2.asm:asm-commons:9.5") ++ implementation("org.ow2.asm:asm:9.7") ++ implementation("org.ow2.asm:asm-commons:9.7") // Paper end compileOnly("org.apache.maven:maven-resolver-provider:3.9.6") diff --git a/patches/api/0009-Paper-Plugins.patch b/patches/api/0009-Paper-Plugins.patch index 8a8150ca50..f938e2be49 100644 --- a/patches/api/0009-Paper-Plugins.patch +++ b/patches/api/0009-Paper-Plugins.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Paper Plugins diff --git a/build.gradle.kts b/build.gradle.kts -index af6c528ccc4356f5bba3ce0b9bf6de237d77376e..f9ff7e3692d448e2a1e38d0aa26c2d934442e247 100644 +index 2aca0a8feffc844ee19480d70a1a9971790d1621..f9a9066e3e6a355acd5ddb3b0308b5b3b36b82f2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -52,7 +52,7 @@ dependencies { - implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.ow2.asm:asm-commons:9.7") // Paper end - compileOnly("org.apache.maven:maven-resolver-provider:3.9.6") @@ -1347,10 +1347,10 @@ index 0000000000000000000000000000000000000000..6bf3d212a6156ad9ab0e82d1ca0a04f8 + +} diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 0f902aec66ec550f80709f7f314ca90d374ebb53..20efbec3eabb21806a532422130f7904d2c0967e 100644 +index 913cf8308840ca1f365eb1f456f64b96046ed060..6e46302c272b468375f2de3f7f992f55f13805b8 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -127,4 +127,13 @@ public interface UnsafeValues { +@@ -129,4 +129,13 @@ public interface UnsafeValues { @ApiStatus.Internal @NotNull DamageSource.Builder createDamageSourceBuilder(@NotNull DamageType damageType); diff --git a/patches/api/0011-Timings-v2.patch b/patches/api/0011-Timings-v2.patch index 143dd1027a..d2e13bb2d4 100644 --- a/patches/api/0011-Timings-v2.patch +++ b/patches/api/0011-Timings-v2.patch @@ -2897,7 +2897,7 @@ index 6aed59819cc3d70f1b5975c3c7df40cc0b0afd8a..baa02b5223769755670c611ca4d6acc7 * Sends the component to the player * diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 20efbec3eabb21806a532422130f7904d2c0967e..853ef6f7f0cd2e5679688c40ce715b30473c3ce3 100644 +index 6e46302c272b468375f2de3f7f992f55f13805b8..01e796e487cc16710f51b457466a37ba70e1e665 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -40,6 +40,7 @@ public interface UnsafeValues { @@ -2908,7 +2908,7 @@ index 20efbec3eabb21806a532422130f7904d2c0967e..853ef6f7f0cd2e5679688c40ce715b30 Material toLegacy(Material material); Material fromLegacy(Material material); -@@ -136,4 +137,12 @@ public interface UnsafeValues { +@@ -138,4 +139,12 @@ public interface UnsafeValues { return !Bukkit.getUnsafe().isSupportedApiVersion(plugin.getDescription().getAPIVersion()); } // Paper end diff --git a/patches/api/0015-Version-Command-2.0.patch b/patches/api/0015-Version-Command-2.0.patch index e2ef50e555..32edafcf60 100644 --- a/patches/api/0015-Version-Command-2.0.patch +++ b/patches/api/0015-Version-Command-2.0.patch @@ -56,10 +56,10 @@ index 0000000000000000000000000000000000000000..a736d7bcdc5861a01b66ba36158db1c7 + } +} diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 853ef6f7f0cd2e5679688c40ce715b30473c3ce3..688fccdbc5cf831008ef2f27db9d15b0921a7561 100644 +index 01e796e487cc16710f51b457466a37ba70e1e665..d69e5fa40702c283c370a2f712b51dc2ea3a1fa0 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -144,5 +144,12 @@ public interface UnsafeValues { +@@ -146,5 +146,12 @@ public interface UnsafeValues { * @return name */ String getTimingsServerName(); diff --git a/patches/api/0018-Add-view-distance-API.patch b/patches/api/0018-Add-view-distance-API.patch index 5500519c96..7de7e75f55 100644 --- a/patches/api/0018-Add-view-distance-API.patch +++ b/patches/api/0018-Add-view-distance-API.patch @@ -8,10 +8,10 @@ Add per player no-tick, tick, and send view distances. Also add send/no-tick view distance to World. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index d76db156a7eeefaac3c96d2d547fddecefbd863e..41a181b890e029f99e52ae9aad28a86f28005f9e 100644 +index b53f24c0368ff4e4f5287f1699643a0c00579031..7176e37b37c0d22605240f3c5fd34ff7846256c9 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2916,6 +2916,66 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2925,6 +2925,66 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @NotNull public Set getFeatureFlags(); diff --git a/patches/api/0027-Add-methods-for-working-with-arrows-stuck-in-living-.patch b/patches/api/0027-Add-methods-for-working-with-arrows-stuck-in-living-.patch index a6600ee445..d8850b339e 100644 --- a/patches/api/0027-Add-methods-for-working-with-arrows-stuck-in-living-.patch +++ b/patches/api/0027-Add-methods-for-working-with-arrows-stuck-in-living-.patch @@ -7,10 +7,10 @@ Upstream added methods for this so the original methods are now deprecated diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 7879082361d0f5ef8a0f15547ed7ce990b41acc0..eb8dcf3dc9acb171fec5b25342a9a38d7f9bcb36 100644 +index 67632eae9249f2c65a9dfe04c72a3002a9e8b25b..10eeb304bc0785e0ea182ac99d32ed2554b4755f 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -217,12 +217,44 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -243,12 +243,44 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ public int getArrowsInBody(); @@ -56,7 +56,7 @@ index 7879082361d0f5ef8a0f15547ed7ce990b41acc0..eb8dcf3dc9acb171fec5b25342a9a38d /** * Returns the living entity's current maximum no damage ticks. -@@ -749,4 +781,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -775,4 +807,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * @return Whether the entity is invisible */ public boolean isInvisible(); diff --git a/patches/api/0039-Arrow-pickup-rule-API.patch b/patches/api/0039-Arrow-pickup-rule-API.patch index fb3753f0e1..2ab09a9b11 100644 --- a/patches/api/0039-Arrow-pickup-rule-API.patch +++ b/patches/api/0039-Arrow-pickup-rule-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Arrow pickup rule API diff --git a/src/main/java/org/bukkit/entity/AbstractArrow.java b/src/main/java/org/bukkit/entity/AbstractArrow.java -index 5b50a4e10e8ace8cc53ad3c8d7c3185f88d5c8db..e8e56e89e32d84af0639fe2e9b0eeabd747b6007 100644 +index 9a0a1fa4b7a7e1e1174a75a388081b332d4bedbd..839e5b7df49f42b5fec7729997bef3370ba36d80 100644 --- a/src/main/java/org/bukkit/entity/AbstractArrow.java +++ b/src/main/java/org/bukkit/entity/AbstractArrow.java -@@ -141,4 +141,38 @@ public interface AbstractArrow extends Projectile { +@@ -160,4 +160,38 @@ public interface AbstractArrow extends Projectile { */ CREATIVE_ONLY } diff --git a/patches/api/0056-Fix-upstream-javadocs.patch b/patches/api/0056-Fix-upstream-javadocs.patch index e5282b07ab..f221402975 100644 --- a/patches/api/0056-Fix-upstream-javadocs.patch +++ b/patches/api/0056-Fix-upstream-javadocs.patch @@ -142,10 +142,10 @@ index e3136651ce083e67a1a7cb976d27df5666843401..50e8c25cc378b02b09ef57643cc753fa * @return an array containing all previous players */ diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index fa6f6c8eccd680a4e83443e472f37650e7cd05c5..6decacdf85827305dbee9d34dadef4bc7c69e20a 100644 +index 2b38b328187b853f5b36d796d3b6b359497647d8..a55e92dc09202437abac9cb5b7aacf3c275f5b9c 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2714,7 +2714,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2723,7 +2723,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient /** * Find the closest nearby structure of a given {@link StructureType}. * Finding unexplored structures can, and will, block if the world is @@ -154,7 +154,7 @@ index fa6f6c8eccd680a4e83443e472f37650e7cd05c5..6decacdf85827305dbee9d34dadef4bc * temporarily freezing while locating an unexplored structure. *

    * The {@code radius} is not a rigid square radius. Each structure may alter -@@ -2748,7 +2748,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2757,7 +2757,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient /** * Find the closest nearby structure of a given {@link StructureType}. * Finding unexplored structures can, and will, block if the world is @@ -163,7 +163,7 @@ index fa6f6c8eccd680a4e83443e472f37650e7cd05c5..6decacdf85827305dbee9d34dadef4bc * temporarily freezing while locating an unexplored structure. *

    * The {@code radius} is not a rigid square radius. Each structure may alter -@@ -2781,7 +2781,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2790,7 +2790,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient /** * Find the closest nearby structure of a given {@link Structure}. Finding * unexplored structures can, and will, block if the world is looking in @@ -369,7 +369,7 @@ index 1e56aef9188487d3e9c737e85025f601ab359a72..92cd35c87bad578c2b714761c93a5b72 */ LAND_ON_PORTAL, diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 09936f3a2376a46721bbc8365c989581c2a789ef..3845a726adbd0e75d7bf2aeeb6da8cb571d51a8f 100644 +index fffc478312566bc5c36dbacbdd86341d84d50054..8d97cf229ce1d14232d0342121b5db2230795a1d 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java @@ -22,6 +22,11 @@ import org.jetbrains.annotations.Nullable; @@ -976,7 +976,7 @@ index 0cc6e29a5af28e95f87f415d6b2424d4622a6f34..c0b749a5bbf4980d01fed74768bb6190 * @param z the z location in the chunk from 0-15 inclusive * @return Biome value diff --git a/src/main/java/org/bukkit/inventory/EntityEquipment.java b/src/main/java/org/bukkit/inventory/EntityEquipment.java -index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf22b50ab7e 100644 +index 9adc827bc52eaa767a39c82e9cb0ff5a48e02b14..2dde946443fee1f6e79b882cbcb448549dc0c99c 100644 --- a/src/main/java/org/bukkit/inventory/EntityEquipment.java +++ b/src/main/java/org/bukkit/inventory/EntityEquipment.java @@ -37,9 +37,23 @@ public interface EntityEquipment { @@ -1160,13 +1160,10 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 ItemStack getBoots(); /** -@@ -202,12 +296,25 @@ public interface EntityEquipment { - void setBoots(@Nullable ItemStack boots, boolean silent); - +@@ -204,12 +298,25 @@ public interface EntityEquipment { /** -- * Gets a copy of all worn armor -+ * Gets all worn armor -+ * + * Gets all ItemStacks from the armor slots. + * + *

    + * This returns a copy if this equipment instance is from a non-player, + * or it's an empty stack (has AIR as its type). @@ -1180,8 +1177,10 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 + * equipment.getArmorContents(); // will return an array of copies + * } + * } - * - * @return The array of worn armor. Individual items may be null. ++ * + * @return all the ItemStacks from the armor slots. Individual items can be + * null and are returned in a fixed order starting from the boots and going + * up to the helmet */ - @NotNull - ItemStack[] getArmorContents(); @@ -1189,7 +1188,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 /** * Sets the entities armor to the provided array of ItemStacks -@@ -247,7 +354,8 @@ public interface EntityEquipment { +@@ -249,7 +356,8 @@ public interface EntityEquipment { * *

      *
    • A drop chance of 0.0F will never drop @@ -1199,7 +1198,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @return chance of the currently held item being dropped (1 for non-{@link Mob}) -@@ -260,7 +368,8 @@ public interface EntityEquipment { +@@ -262,7 +370,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1209,7 +1208,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @param chance the chance of the main hand item being dropped -@@ -274,7 +383,8 @@ public interface EntityEquipment { +@@ -276,7 +385,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1219,7 +1218,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @return chance of the off hand item being dropped (1 for non-{@link Mob}) -@@ -287,7 +397,8 @@ public interface EntityEquipment { +@@ -289,7 +399,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1229,7 +1228,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @param chance the chance of off hand item being dropped -@@ -300,7 +411,8 @@ public interface EntityEquipment { +@@ -302,7 +413,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1239,7 +1238,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @return the chance of the helmet being dropped (1 for non-{@link Mob}) -@@ -312,7 +424,8 @@ public interface EntityEquipment { +@@ -314,7 +426,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1249,7 +1248,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @param chance of the helmet being dropped -@@ -326,7 +439,8 @@ public interface EntityEquipment { +@@ -328,7 +441,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1259,7 +1258,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @return the chance of the chest plate being dropped (1 for non-{@link Mob}) -@@ -339,7 +453,8 @@ public interface EntityEquipment { +@@ -341,7 +455,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1269,7 +1268,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @param chance of the chest plate being dropped -@@ -353,7 +468,8 @@ public interface EntityEquipment { +@@ -355,7 +470,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1279,7 +1278,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @return the chance of the leggings being dropped (1 for non-{@link Mob}) -@@ -366,7 +482,8 @@ public interface EntityEquipment { +@@ -368,7 +484,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1289,7 +1288,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @param chance chance of the leggings being dropped -@@ -379,7 +496,8 @@ public interface EntityEquipment { +@@ -381,7 +498,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1299,7 +1298,7 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..16bca8e40ff029cca94bbfd435db1cf2 *
    * * @return the chance of the boots being dropped (1 for non-{@link Mob}) -@@ -391,7 +509,8 @@ public interface EntityEquipment { +@@ -393,7 +511,8 @@ public interface EntityEquipment { * *
      *
    • A drop chance of 0.0F will never drop @@ -1323,10 +1322,10 @@ index 42fcc31147934fd4ed6484b0729e938e7ae2f8e2..4e637420b9a39b822be19367a16da93f HIDE_ARMOR_TRIM; } diff --git a/src/main/java/org/bukkit/inventory/PlayerInventory.java b/src/main/java/org/bukkit/inventory/PlayerInventory.java -index 62fbd7f6d8195bebcab7f704a0a485a1bbeca26c..5461f7fa75f5a065bb333b4a113640b5fe1e3825 100644 +index f1918027c3a8735b31566856218611656b56db20..476fe14faa39f02444cab8ad95d4401033dc6938 100644 --- a/src/main/java/org/bukkit/inventory/PlayerInventory.java +++ b/src/main/java/org/bukkit/inventory/PlayerInventory.java -@@ -158,7 +158,7 @@ public interface PlayerInventory extends Inventory { +@@ -160,7 +160,7 @@ public interface PlayerInventory extends Inventory { public void setBoots(@Nullable ItemStack boots); /** @@ -1335,7 +1334,7 @@ index 62fbd7f6d8195bebcab7f704a0a485a1bbeca26c..5461f7fa75f5a065bb333b4a113640b5 * in their main hand. * * @return the currently held item -@@ -174,7 +174,7 @@ public interface PlayerInventory extends Inventory { +@@ -176,7 +176,7 @@ public interface PlayerInventory extends Inventory { void setItemInMainHand(@Nullable ItemStack item); /** @@ -1344,7 +1343,7 @@ index 62fbd7f6d8195bebcab7f704a0a485a1bbeca26c..5461f7fa75f5a065bb333b4a113640b5 * in their off hand. * * @return the currently held item -@@ -190,7 +190,7 @@ public interface PlayerInventory extends Inventory { +@@ -192,7 +192,7 @@ public interface PlayerInventory extends Inventory { void setItemInOffHand(@Nullable ItemStack item); /** diff --git a/patches/api/0062-Shoulder-Entities-Release-API.patch b/patches/api/0062-Shoulder-Entities-Release-API.patch index 5dbabdff87..d02f2a3521 100644 --- a/patches/api/0062-Shoulder-Entities-Release-API.patch +++ b/patches/api/0062-Shoulder-Entities-Release-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Shoulder Entities Release API diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 3845a726adbd0e75d7bf2aeeb6da8cb571d51a8f..abdca9fe5acc90f167219eb769ece66c35682bb1 100644 +index 8d97cf229ce1d14232d0342121b5db2230795a1d..c426bdea5ef71a095cf2af9a8a83a162db3c05b7 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -339,6 +339,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -329,6 +329,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder */ public int getExpToLevel(); diff --git a/patches/api/0068-LivingEntity-setKiller.patch b/patches/api/0068-LivingEntity-setKiller.patch index 4770ab4701..bab1378afb 100644 --- a/patches/api/0068-LivingEntity-setKiller.patch +++ b/patches/api/0068-LivingEntity-setKiller.patch @@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity#setKiller diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index b67e6eca393b66c92fc62b35123bb3eb2f372b7c..c8c88c08d2f03cff267e76749156c584bf7adf42 100644 +index 10eeb304bc0785e0ea182ac99d32ed2554b4755f..40634f46fa238a68f70f19b664bad7400ef07709 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -339,6 +339,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -365,6 +365,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @Nullable public Player getKiller(); diff --git a/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch b/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch index 1cddb59cda..45f53dfcfd 100644 --- a/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch +++ b/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch @@ -14,7 +14,7 @@ it without having to shade it in the plugin and going through several layers of logging abstraction. diff --git a/build.gradle.kts b/build.gradle.kts -index ddc89dfd6911d85aab7c37fe3ca54eb1b80f99d6..66bcd8f9a8fce8f920a0f1dd7ae0a2937da68e80 100644 +index f9a9066e3e6a355acd5ddb3b0308b5b3b36b82f2..04853c43b99951bf0d4c96ef73724625bdaf018f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,6 +12,8 @@ java { @@ -33,8 +33,8 @@ index ddc89dfd6911d85aab7c37fe3ca54eb1b80f99d6..66bcd8f9a8fce8f920a0f1dd7ae0a293 + api("org.apache.logging.log4j:log4j-api:$log4jVersion") + api("org.slf4j:slf4j-api:$slf4jVersion") - implementation("org.ow2.asm:asm:9.5") - implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.ow2.asm:asm:9.7") + implementation("org.ow2.asm:asm-commons:9.7") @@ -137,6 +141,8 @@ tasks.withType { "https://jd.advntr.dev/text-serializer-legacy/$adventureVersion/", "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", diff --git a/patches/api/0095-Add-openSign-method-to-HumanEntity.patch b/patches/api/0095-Add-openSign-method-to-HumanEntity.patch index 513d2c7b96..ea763e9a13 100644 --- a/patches/api/0095-Add-openSign-method-to-HumanEntity.patch +++ b/patches/api/0095-Add-openSign-method-to-HumanEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add openSign method to HumanEntity diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index abdca9fe5acc90f167219eb769ece66c35682bb1..b3aa3dc6aa5afbc36cc86741b4cba56f463c2234 100644 +index c426bdea5ef71a095cf2af9a8a83a162db3c05b7..2308fa3ca898bcb6c0ac2d4853f82a3398bf51f3 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -500,6 +500,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -490,6 +490,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder */ @Deprecated public void setShoulderEntityRight(@Nullable Entity entity); diff --git a/patches/api/0099-Additional-world.getNearbyEntities-API-s.patch b/patches/api/0099-Additional-world.getNearbyEntities-API-s.patch index 631c04c408..ef4b091e49 100644 --- a/patches/api/0099-Additional-world.getNearbyEntities-API-s.patch +++ b/patches/api/0099-Additional-world.getNearbyEntities-API-s.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Additional world.getNearbyEntities API's Provides more methods to get nearby entities, and filter by types and predicates diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 6decacdf85827305dbee9d34dadef4bc7c69e20a..fa4081c62f86245fef5a273f01837f9ac6998faa 100644 +index a55e92dc09202437abac9cb5b7aacf3c275f5b9c..e2cd4750ec51da5e6a93f31a9b644516f64f7972 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1,6 +1,9 @@ @@ -19,7 +19,7 @@ index 6decacdf85827305dbee9d34dadef4bc7c69e20a..fa4081c62f86245fef5a273f01837f9a import java.util.Collection; import java.util.HashMap; import java.util.List; -@@ -627,6 +630,238 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -636,6 +639,238 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @NotNull public Collection getEntitiesByClasses(@NotNull Class... classes); diff --git a/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch index a491dad5b0..cc410e841b 100644 --- a/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -523,10 +523,10 @@ index ca6d0eaa9d9a37c07f3e1630b83a79bf98211edb..26d02aa5da444112f8fa84c07e3080bb * Options which can be applied to redstone dust particles - a particle * color and size. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index fa4081c62f86245fef5a273f01837f9ac6998faa..fa31ba9d30cd0d1b23e15667c4c9bd9c13b5b9d3 100644 +index e2cd4750ec51da5e6a93f31a9b644516f64f7972..6f084f081bd20b006c9a8e1090b6ad0e838810cb 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2896,7 +2896,57 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2905,7 +2905,57 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @param data the data to use for the particle or null, * the type of this depends on {@link Particle#getDataType()} */ diff --git a/patches/api/0110-Make-shield-blocking-delay-configurable.patch b/patches/api/0110-Make-shield-blocking-delay-configurable.patch index ce8b181683..39f25d89b5 100644 --- a/patches/api/0110-Make-shield-blocking-delay-configurable.patch +++ b/patches/api/0110-Make-shield-blocking-delay-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make shield blocking delay configurable diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index c8c88c08d2f03cff267e76749156c584bf7adf42..dd5c5e0ec342cea1bf9efbd0aa28ae0e0ed2f6b9 100644 +index 40634f46fa238a68f70f19b664bad7400ef07709..4a4a749449bc561a73e6747386c8ad51e623fc1e 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -809,5 +809,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -835,5 +835,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ @Deprecated void setArrowsStuck(int arrows); diff --git a/patches/api/0115-Expand-Explosions-API.patch b/patches/api/0115-Expand-Explosions-API.patch index c74930f1a2..c4c0e69ee6 100644 --- a/patches/api/0115-Expand-Explosions-API.patch +++ b/patches/api/0115-Expand-Explosions-API.patch @@ -108,10 +108,10 @@ index 3161eae2fa5f03b7d3a5e9945ab659c15cf568c6..af737017ee397f80c44ee02c6cc60cef /** * Returns a list of entities within a bounding box centered around a Location. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index fa31ba9d30cd0d1b23e15667c4c9bd9c13b5b9d3..ab0f76c74205f2fe1faf9aecc57ac3fb57431b06 100644 +index 6f084f081bd20b006c9a8e1090b6ad0e838810cb..5ec220aa224c210c55517ef47aa5809ee26209e7 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -1382,6 +1382,88 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -1391,6 +1391,88 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient */ public boolean createExplosion(@NotNull Location loc, float power, boolean setFire); diff --git a/patches/api/0117-LivingEntity-Active-Item-API.patch b/patches/api/0117-LivingEntity-Active-Item-API.patch new file mode 100644 index 0000000000..ce3d823f36 --- /dev/null +++ b/patches/api/0117-LivingEntity-Active-Item-API.patch @@ -0,0 +1,160 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Fri, 29 Jun 2018 00:19:19 -0400 +Subject: [PATCH] LivingEntity Active Item API + +API relating to items being actively used by a LivingEntity +such as a bow or eating food. + +Co-authored-by: Jake Potrebic + +diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java +index 2308fa3ca898bcb6c0ac2d4853f82a3398bf51f3..15115b1049bc5053796b84539acbf576bcba1a5f 100644 +--- a/src/main/java/org/bukkit/entity/HumanEntity.java ++++ b/src/main/java/org/bukkit/entity/HumanEntity.java +@@ -319,7 +319,9 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder + * blocking). + * + * @return Whether their hand is raised ++ * @see LivingEntity#hasActiveItem() + */ ++ @org.jetbrains.annotations.ApiStatus.Obsolete(since = "1.20.4") // Paper - active item API + public boolean isHandRaised(); + + /** +diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java +index 4a4a749449bc561a73e6747386c8ad51e623fc1e..c75315b921a1854fbbdbe8ecdfba7dacdaa155c1 100644 +--- a/src/main/java/org/bukkit/entity/LivingEntity.java ++++ b/src/main/java/org/bukkit/entity/LivingEntity.java +@@ -202,15 +202,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + * + * @return the item being used by the player, or null if they are not using + * an item ++ * @deprecated Use {@link #getActiveItem()} + */ + @Nullable ++ @Deprecated(forRemoval = true, since = "1.20.4") // Paper + public ItemStack getItemInUse(); + + /** + * Gets the number of ticks remaining for the current item's usage. + * + * @return The number of ticks remaining ++ * @deprecated use {@link #getActiveItemRemainingTime()} + */ ++ @Deprecated(forRemoval = true, since = "1.20.4") // Paper + public int getItemInUseTicks(); + + /** +@@ -219,7 +223,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + * or throwing a trident. + * + * @param ticks The number of ticks remaining ++ * @deprecated use {@link #setActiveItemRemainingTime(int)} + */ ++ @Deprecated(forRemoval = true, since = "1.20.4") // Paper + public void setItemInUseTicks(int ticks); + + /** +@@ -850,4 +856,101 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + */ + void setShieldBlockingDelay(int delay); + // Paper end ++ ++ // Paper start - active item API ++ /** ++ * Gets the item being actively "used" or consumed. ++ * ++ * @return the item ++ */ ++ org.bukkit.inventory.@NotNull ItemStack getActiveItem(); ++ ++ /** ++ * Gets the remaining number of ticks for {@link #getActiveItem()}'s usage. ++ * ++ * @return remaining ticks to use {@link #getActiveItem()} ++ */ ++ int getActiveItemRemainingTime(); ++ ++ /** ++ * Sets the number of ticks that remain for {@link #getActiveItem()}'s ++ * usage. ++ *

      ++ * Valid values are between 0 and the max item use duration for ++ * the specific item type. ++ * ++ * @param ticks time in ticks remaining ++ */ ++ void setActiveItemRemainingTime(@org.jetbrains.annotations.Range(from = 0, to = Integer.MAX_VALUE) int ticks); ++ ++ /** ++ * Gets if the entity is using an item (eating, drinking, etc). ++ * ++ * @return true if using an item ++ */ ++ boolean hasActiveItem(); ++ ++ /** ++ * Get how long the {@link #getActiveItem()} has been in use for. ++ * ++ * @return time used in ticks ++ */ ++ int getActiveItemUsedTime(); ++ ++ /** ++ * Get the hand using the active item. Will be either ++ * {@link org.bukkit.inventory.EquipmentSlot#HAND} or ++ * {@link org.bukkit.inventory.EquipmentSlot#OFF_HAND}. ++ * ++ * @return the hand being used ++ */ ++ org.bukkit.inventory.@NotNull EquipmentSlot getActiveItemHand(); ++ ++ /** ++ * Gets remaining time a player needs to keep hands raised with an item to finish using it. ++ * ++ * @return remaining ticks to use the item ++ * @see #getActiveItemRemainingTime() ++ */ ++ @org.jetbrains.annotations.ApiStatus.Obsolete(since = "1.20.4") ++ default int getItemUseRemainingTime() { ++ return this.getActiveItemRemainingTime(); ++ } ++ ++ /** ++ * Get how long the entity's hands have been raised (Charging Bow attack, using a potion, etc) ++ * ++ * @return Get how long the players hands have been raised (Charging Bow attack, using a potion, etc) ++ * @see #getActiveItemUsedTime() ++ */ ++ @org.jetbrains.annotations.ApiStatus.Obsolete(since = "1.20.4") ++ default int getHandRaisedTime() { ++ return this.getActiveItemUsedTime(); ++ } ++ ++ /** ++ * Whether this entity is using or charging an attack (Bow pulled back, drinking potion, eating food) ++ * ++ * @return whether this entity is using or charging an attack (Bow pulled back, drinking potion, eating food) ++ * @see #hasActiveItem() ++ */ ++ @org.jetbrains.annotations.ApiStatus.Obsolete(since = "1.20.4") ++ default boolean isHandRaised() { ++ return this.hasActiveItem(); ++ } ++ ++ /** ++ * Gets the hand raised by this living entity. Will be either ++ * {@link org.bukkit.inventory.EquipmentSlot#HAND} or ++ * {@link org.bukkit.inventory.EquipmentSlot#OFF_HAND}. ++ * ++ * @return the hand raised ++ * @see #getActiveItemHand() ++ */ ++ @NotNull ++ @org.jetbrains.annotations.ApiStatus.Obsolete(since = "1.20.4") ++ default org.bukkit.inventory.EquipmentSlot getHandRaised() { ++ return this.getActiveItemHand(); ++ } ++ // Paper end - active item API + } diff --git a/patches/api/0117-LivingEntity-Hand-Raised-Item-Use-API.patch b/patches/api/0117-LivingEntity-Hand-Raised-Item-Use-API.patch deleted file mode 100644 index 01ca874a1f..0000000000 --- a/patches/api/0117-LivingEntity-Hand-Raised-Item-Use-API.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Fri, 29 Jun 2018 00:19:19 -0400 -Subject: [PATCH] LivingEntity Hand Raised/Item Use API - -How long an entity has raised hands to charge an attack or use an item - -diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index b3aa3dc6aa5afbc36cc86741b4cba56f463c2234..9e012c3c0671e5d0e55c243fdb4e14057038c153 100644 ---- a/src/main/java/org/bukkit/entity/HumanEntity.java -+++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -328,7 +328,9 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder - * - * @return the item being used by the player, or null if they are not using - * an item -+ * @deprecated Deprecated in favor of {@link LivingEntity#getActiveItem()} - */ -+ @Deprecated // Paper - @Nullable - public ItemStack getItemInUse(); - -diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index dd5c5e0ec342cea1bf9efbd0aa28ae0e0ed2f6b9..fd98b9de7714e2082e521f29dc162003e3d39ee2 100644 ---- a/src/main/java/org/bukkit/entity/LivingEntity.java -+++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -823,5 +823,42 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource - * @param delay Delay in ticks - */ - void setShieldBlockingDelay(int delay); -+ -+ /** -+ * Get's the item being actively "used" or consumed. -+ * @return The item -+ */ -+ @NotNull -+ org.bukkit.inventory.ItemStack getActiveItem(); -+ -+ /** -+ * Get's remaining time a player needs to keep hands raised with an item to finish using it. -+ * @return Remaining ticks to use the item -+ */ -+ int getItemUseRemainingTime(); -+ -+ /** -+ * Get how long the players hands have been raised (Charging Bow attack, using a potion, etc) -+ * -+ * @return Get how long the players hands have been raised (Charging Bow attack, using a potion, etc) -+ */ -+ int getHandRaisedTime(); -+ -+ /** -+ * Whether or not this entity is using or charging an attack (Bow pulled back, drinking potion, eating food) -+ * -+ * @return Whether or not this entity is using or charging an attack (Bow pulled back, drinking potion, eating food) -+ */ -+ boolean isHandRaised(); -+ -+ /** -+ * Gets the hand raised by this living entity. Will be either -+ * {@link org.bukkit.inventory.EquipmentSlot#HAND} or -+ * {@link org.bukkit.inventory.EquipmentSlot#OFF_HAND}. -+ * -+ * @return the hand raised -+ */ -+ @NotNull -+ org.bukkit.inventory.EquipmentSlot getHandRaised(); - // Paper end - } diff --git a/patches/api/0119-Add-World.getEntity-UUID-API.patch b/patches/api/0119-Add-World.getEntity-UUID-API.patch index f1e054d2ac..2b7e2e2815 100644 --- a/patches/api/0119-Add-World.getEntity-UUID-API.patch +++ b/patches/api/0119-Add-World.getEntity-UUID-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add World.getEntity(UUID) API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index ab0f76c74205f2fe1faf9aecc57ac3fb57431b06..ad7e2b624d5929beee5268151bda3abe9dfbb786 100644 +index 5ec220aa224c210c55517ef47aa5809ee26209e7..2aafd966778ee0f6adcbb3ea3772cb2104f8e687 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -896,6 +896,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -905,6 +905,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @NotNull public Collection getNearbyEntities(@NotNull Location location, double x, double y, double z); diff --git a/patches/api/0120-InventoryCloseEvent-Reason-API.patch b/patches/api/0120-InventoryCloseEvent-Reason-API.patch index e8d8154e21..6c7189a322 100644 --- a/patches/api/0120-InventoryCloseEvent-Reason-API.patch +++ b/patches/api/0120-InventoryCloseEvent-Reason-API.patch @@ -7,7 +7,7 @@ Allows you to determine why an inventory was closed, enabling plugin developers to "confirm" things based on if it was player triggered close or not. diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 9e012c3c0671e5d0e55c243fdb4e14057038c153..d44c5a3fda0b159dc541246cb2fca8427cb38243 100644 +index 15115b1049bc5053796b84539acbf576bcba1a5f..c66130be13bf01b5834a6391864b865c0123fa5c 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java @@ -179,6 +179,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder diff --git a/patches/api/0143-Async-Chunks-API.patch b/patches/api/0143-Async-Chunks-API.patch index 2473d4c47f..5511aebb55 100644 --- a/patches/api/0143-Async-Chunks-API.patch +++ b/patches/api/0143-Async-Chunks-API.patch @@ -8,10 +8,10 @@ Adds API's to load or generate chunks asynchronously. Also adds utility methods to Entity to teleport asynchronously. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 25ff747e23e7373bb96ca9109df7e46cdefdcd2e..116bad653e92efbfd576f3b146c0a9e40afbbe10 100644 +index 8bef6168caf0932a5a64cf69eb7988fa3191b13a..ab183821b93dcfed1e881b481f0a3166f465ecfb 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -941,6 +941,472 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -950,6 +950,472 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient } // Paper end - additional getNearbyEntities API @@ -485,7 +485,7 @@ index 25ff747e23e7373bb96ca9109df7e46cdefdcd2e..116bad653e92efbfd576f3b146c0a9e4 * Get a list of all players in this World * diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 77a706dde5995a8a6306b1d0a144dd37d580dea3..14e42959033919ff6409e48ddf01c0f15c28eb10 100644 +index 57a1d07d0430019fd38c72b9f58c7145927ecd02..a0ed358156f9cbeb9e3cbb910ac17785edd30152 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -168,6 +168,33 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/api/0157-Add-sun-related-API.patch b/patches/api/0157-Add-sun-related-API.patch index df9c9b7818..59c4495962 100644 --- a/patches/api/0157-Add-sun-related-API.patch +++ b/patches/api/0157-Add-sun-related-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add sun related API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 116bad653e92efbfd576f3b146c0a9e40afbbe10..bc0f09b2d555682d0bf7937e9aa6c97258e66635 100644 +index ab183821b93dcfed1e881b481f0a3166f465ecfb..675dea2e1e9742043c18098774b9fde2e6f4602f 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -1762,6 +1762,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -1771,6 +1771,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient */ public void setFullTime(long time); diff --git a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch index 314bf2aa32..77f24e2f0d 100644 --- a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch @@ -598,7 +598,7 @@ index e455eb21abf121dc6ff10ff8a13dd06f67096a8f..bbc01e7c192ae6689c301670047ff114 return origin; } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index bc0f09b2d555682d0bf7937e9aa6c97258e66635..bc5dd4182c5dd0a0d576410a68c445e3d006ae18 100644 +index 675dea2e1e9742043c18098774b9fde2e6f4602f..0023b9737353c3c7dcfb38a143761bd8c03acf0d 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -418,9 +418,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @@ -612,7 +612,7 @@ index bc0f09b2d555682d0bf7937e9aa6c97258e66635..bc5dd4182c5dd0a0d576410a68c445e3 public boolean refreshChunk(int x, int z); /** -@@ -3745,6 +3744,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -3754,6 +3753,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient StructureSearchResult locateNearestStructure(@NotNull Location origin, @NotNull Structure structure, int radius, boolean findUnexplored); // Spigot start @@ -620,7 +620,7 @@ index bc0f09b2d555682d0bf7937e9aa6c97258e66635..bc5dd4182c5dd0a0d576410a68c445e3 public class Spigot { /** -@@ -3778,7 +3778,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -3787,7 +3787,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient } } @@ -632,7 +632,7 @@ index bc0f09b2d555682d0bf7937e9aa6c97258e66635..bc5dd4182c5dd0a0d576410a68c445e3 Spigot spigot(); // Spigot end -@@ -3996,9 +4000,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4005,9 +4009,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * Gets the dimension ID of this environment * * @return dimension ID @@ -644,7 +644,7 @@ index bc0f09b2d555682d0bf7937e9aa6c97258e66635..bc5dd4182c5dd0a0d576410a68c445e3 public int getId() { return id; } -@@ -4008,9 +4012,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4017,9 +4021,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * * @param id The ID of the environment * @return The environment @@ -818,10 +818,10 @@ 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 b2f66f80c90b9d716f43f94166ca015bdfd3173e..030d3b1b1fee0906d6a0fb2a47031b8a94caaf89 100644 +index 71a4dc422b9ff25dd9bac58e5996d9996c4bc479..582d6d8eed0b0145fa58c977013c4914e99c40a4 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -684,7 +684,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -716,7 +716,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * This may have unexpected results if the entity is not in water. * * @param swimming True if the entity is swimming. @@ -1276,10 +1276,10 @@ index df81bac9ecff697f98941e5c8490e10391e90090..a32977ba3ba60a1c9aee6e469d5d6cd1 /** * Get the current recipe formed on the crafting inventory, if any. diff --git a/src/main/java/org/bukkit/inventory/EntityEquipment.java b/src/main/java/org/bukkit/inventory/EntityEquipment.java -index 16bca8e40ff029cca94bbfd435db1cf22b50ab7e..2b11217153d6d6d8246d332e7fbbf32810d7e7b8 100644 +index 2dde946443fee1f6e79b882cbcb448549dc0c99c..127302aa7c22f59438de66fffa0b03ae84a2a8ad 100644 --- a/src/main/java/org/bukkit/inventory/EntityEquipment.java +++ b/src/main/java/org/bukkit/inventory/EntityEquipment.java -@@ -523,6 +523,6 @@ public interface EntityEquipment { +@@ -525,6 +525,6 @@ public interface EntityEquipment { * * @return the entity this EntityEquipment belongs to */ @@ -1438,12 +1438,12 @@ index dbd0d0610f33105ee83ab589c84e73004f684fb5..fd3d4dd231d756d51db0155a4c3ad970 return this.meta == null ? Bukkit.getItemFactory().getItemMeta(this.type) : this.meta.clone(); } diff --git a/src/main/java/org/bukkit/inventory/PlayerInventory.java b/src/main/java/org/bukkit/inventory/PlayerInventory.java -index 5461f7fa75f5a065bb333b4a113640b5fe1e3825..c4d657727e508cb941320730a9d3aa5486712ef3 100644 +index 476fe14faa39f02444cab8ad95d4401033dc6938..2c54660dc1fbc7c1232096797a23cae1262888e9 100644 --- a/src/main/java/org/bukkit/inventory/PlayerInventory.java +++ b/src/main/java/org/bukkit/inventory/PlayerInventory.java -@@ -14,8 +14,7 @@ public interface PlayerInventory extends Inventory { - * - * @return All the ItemStacks from the armor slots. Individual items can be null. +@@ -16,8 +16,7 @@ public interface PlayerInventory extends Inventory { + * null and are returned in a fixed order starting from the boots and going + * up to the helmet */ - @NotNull - public ItemStack[] getArmorContents(); @@ -1451,7 +1451,7 @@ index 5461f7fa75f5a065bb333b4a113640b5fe1e3825..c4d657727e508cb941320730a9d3aa54 /** * Get all additional ItemStacks stored in this inventory. -@@ -26,8 +25,7 @@ public interface PlayerInventory extends Inventory { +@@ -28,8 +27,7 @@ public interface PlayerInventory extends Inventory { * * @return All additional ItemStacks. Individual items can be null. */ @@ -1461,7 +1461,7 @@ index 5461f7fa75f5a065bb333b4a113640b5fe1e3825..c4d657727e508cb941320730a9d3aa54 /** * Return the ItemStack from the helmet slot -@@ -104,9 +102,9 @@ public interface PlayerInventory extends Inventory { +@@ -106,9 +104,9 @@ public interface PlayerInventory extends Inventory { * * @param slot the slot to get the ItemStack * @@ -1862,10 +1862,10 @@ index 0ea9c6b2420a0f990bd1fdf50fc015e37a7060d8..e99644eae1c662b117aa19060d2484ac /** diff --git a/src/main/java/org/bukkit/potion/PotionEffectType.java b/src/main/java/org/bukkit/potion/PotionEffectType.java -index b7c394fb70cc3449e5c9c5756956d9b048b5c019..3070f039a583647e7c9a8f15d63291cd265db9fc 100644 +index 28dd05c706211f78eb27329a4284e2f21c5f5eb5..f97dff2fd90cc8c35cbde04d1ace81320a8e4658 100644 --- a/src/main/java/org/bukkit/potion/PotionEffectType.java +++ b/src/main/java/org/bukkit/potion/PotionEffectType.java -@@ -239,9 +239,9 @@ public abstract class PotionEffectType implements Keyed { +@@ -240,9 +240,9 @@ public abstract class PotionEffectType implements Keyed, Translatable { * Returns the unique ID of this type. * * @return Unique ID @@ -1877,7 +1877,7 @@ index b7c394fb70cc3449e5c9c5756956d9b048b5c019..3070f039a583647e7c9a8f15d63291cd public abstract int getId(); /** -@@ -277,9 +277,9 @@ public abstract class PotionEffectType implements Keyed { +@@ -278,9 +278,9 @@ public abstract class PotionEffectType implements Keyed, Translatable { * * @param id Unique ID to fetch * @return Resulting type, or null if not found. diff --git a/patches/api/0185-Entity-Jump-API.patch b/patches/api/0185-Entity-Jump-API.patch index 09a7dfefae..ea563c013a 100644 --- a/patches/api/0185-Entity-Jump-API.patch +++ b/patches/api/0185-Entity-Jump-API.patch @@ -61,14 +61,15 @@ index 0000000000000000000000000000000000000000..a6306c957fcacdcbcc8037b4ee33a167 + } +} diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index c58f7b4a7c05e35056a478a818a9a6cdfe99203f..3f062e0fe9cb632dece9ce3fdc985ab1bf5a425f 100644 +index 3e5b7dc8f72bd211a18ec6a930c4f02beea4205a..0a0e3fe33158f0424398c0abf50ea55825c452c5 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1025,5 +1025,25 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource - */ - @NotNull - org.bukkit.inventory.EquipmentSlot getHandRaised(); +@@ -1118,4 +1118,26 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + return this.getActiveItemHand(); + } + // Paper end - active item API + ++ // Paper start - entity jump API + /** + * Get entity jump state. + *

      @@ -88,5 +89,5 @@ index c58f7b4a7c05e35056a478a818a9a6cdfe99203f..3f062e0fe9cb632dece9ce3fdc985ab1 + * @param jumping entity jump state + */ + void setJumping(boolean jumping); - // Paper end ++ // Paper end - entity jump API } diff --git a/patches/api/0189-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/api/0189-Add-Raw-Byte-ItemStack-Serialization.patch index ac702b7e90..9428ae3385 100644 --- a/patches/api/0189-Add-Raw-Byte-ItemStack-Serialization.patch +++ b/patches/api/0189-Add-Raw-Byte-ItemStack-Serialization.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add Raw Byte ItemStack Serialization Serializes using NBT which is safer for server data migrations than bukkits format. diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 688fccdbc5cf831008ef2f27db9d15b0921a7561..e4861a8be534bfeae0385f0197261fa6ec1e7bc0 100644 +index d69e5fa40702c283c370a2f712b51dc2ea3a1fa0..30d869a7c4bba79b4c05de7860b31c14f47b341a 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -151,5 +151,9 @@ public interface UnsafeValues { +@@ -153,5 +153,9 @@ public interface UnsafeValues { default com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { return new com.destroystokyo.paper.util.VersionFetcher.DummyVersionFetcher(); } diff --git a/patches/api/0199-Potential-bed-API.patch b/patches/api/0199-Potential-bed-API.patch index cdbbcebbbc..a842554f35 100644 --- a/patches/api/0199-Potential-bed-API.patch +++ b/patches/api/0199-Potential-bed-API.patch @@ -8,7 +8,7 @@ Adds a new method to fetch the location of a player's bed without generating any getPotentialBedLocation - Gets the last known location of a player's bed. This does not preform any check if the bed is still valid and does not load any chunks. diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index d44c5a3fda0b159dc541246cb2fca8427cb38243..7e9e1e0b21314e6542f5f40503cd6926c75cc369 100644 +index c66130be13bf01b5834a6391864b865c0123fa5c..2557ddcc0528d4f9d811883b3ddc61148ebc3998 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java @@ -269,6 +269,19 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder diff --git a/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch index cc0b04bb45..809eb90a68 100644 --- a/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch +++ b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch @@ -5,14 +5,15 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 10d76fcd509702042c528fab96b963e9c6d210a5..3969f3c188211838cb576465bd64c0f63ae85080 100644 +index 0a0e3fe33158f0424398c0abf50ea55825c452c5..d9dee0486c5f7c9a948a2c1a3497e2745d747965 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1045,5 +1045,28 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource - * @param jumping entity jump state +@@ -1140,4 +1140,29 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void setJumping(boolean jumping); + // Paper end - entity jump API + ++ // Paper start - pickup animation API + /** + * Plays pickup item animation towards this entity. + *

      @@ -35,5 +36,5 @@ index 10d76fcd509702042c528fab96b963e9c6d210a5..3969f3c188211838cb576465bd64c0f6 + * @param quantity quantity of item + */ + void playPickupItemAnimation(@NotNull Item item, int quantity); - // Paper end ++ // Paper end - pickup animation API } diff --git a/patches/api/0211-Add-methods-to-get-translation-keys.patch b/patches/api/0211-Add-methods-to-get-translation-keys.patch index 5af19e4030..4208d897a6 100644 --- a/patches/api/0211-Add-methods-to-get-translation-keys.patch +++ b/patches/api/0211-Add-methods-to-get-translation-keys.patch @@ -233,26 +233,28 @@ index e3faa2c675c85a9cbdbbb1debec0ff81c58a1bbd..fd1629c2d2028a88fb3d56b0aeb833d1 String getTranslationKey(); } diff --git a/src/main/java/org/bukkit/attribute/Attribute.java b/src/main/java/org/bukkit/attribute/Attribute.java -index 36501052de5ad0b80aa1dcbe97d44dd3204f749b..37f93b7e9f722e76631c3e7d3e770526ee0c3926 100644 +index 7d5e6961e7e836f57cb7114ae7cef9dbd95ad0a1..66027c2ea32d44a5d2df18d6414668d847f6fd9c 100644 --- a/src/main/java/org/bukkit/attribute/Attribute.java +++ b/src/main/java/org/bukkit/attribute/Attribute.java -@@ -7,7 +7,7 @@ import org.jetbrains.annotations.NotNull; +@@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull; /** * Types of attributes which may be present on an {@link Attributable}. */ --public enum Attribute implements Keyed { -+public enum Attribute implements Keyed, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations +-public enum Attribute implements Keyed, Translatable { ++public enum Attribute implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations /** * Maximum health of an Entity. -@@ -77,4 +77,10 @@ public enum Attribute implements Keyed { - public NamespacedKey getKey() { - return key; +@@ -85,4 +85,12 @@ public enum Attribute implements Keyed, Translatable { + public String getTranslationKey() { + return Bukkit.getUnsafe().getTranslationKey(this); } ++ + // Paper start ++ @SuppressWarnings("deprecation") + @Override + public @NotNull String translationKey() { -+ return "attribute.name." + this.key.getKey(); ++ return Bukkit.getUnsafe().getTranslationKey(this); + } + // Paper end } @@ -308,15 +310,15 @@ index bf29d9b733afc7c62725d259f4920c4f211cc6d0..1d3812db989a55b6f31bb30dffe70323 // Paper end } diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java -index 6a915b5b41daa5ea64913a2d5c611a6167168395..4a88198be6634b47fc51e55acc5f6415e4aff1ab 100644 +index 350d52f4dd97a7e6a6a9a967e1c6a8781feda22e..13f25ff4a4dd5a98f5f690c54e5cba6ef145c2d0 100644 --- a/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/src/main/java/org/bukkit/enchantments/Enchantment.java -@@ -13,7 +13,7 @@ import org.jetbrains.annotations.Nullable; +@@ -14,7 +14,7 @@ import org.jetbrains.annotations.Nullable; /** * The various type of enchantments that may be added to armour or weapons */ --public abstract class Enchantment implements Keyed { -+public abstract class Enchantment implements Keyed, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations +-public abstract class Enchantment implements Keyed, Translatable { ++public abstract class Enchantment implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations /** * Provides protection against environmental damage */ diff --git a/patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch b/patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch index 9512168843..43e6937d05 100644 --- a/patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch +++ b/patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add additional open container api to HumanEntity diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 7e9e1e0b21314e6542f5f40503cd6926c75cc369..94f2c3167f4ce7f5f2b4ecc067739c64af0a2508 100644 +index 2557ddcc0528d4f9d811883b3ddc61148ebc3998..5ecfb98540c00da05b13bc5370debb89c52cc76f 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java @@ -174,6 +174,92 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder diff --git a/patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index 8d1a16ed42..75dff33979 100644 --- a/patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index e4861a8be534bfeae0385f0197261fa6ec1e7bc0..86bb2a6f46c7c39e7ac1923c3454785a3dc76648 100644 +index 30d869a7c4bba79b4c05de7860b31c14f47b341a..241cb853476ea35dad73d0234b2d030e9af23476 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -155,5 +155,12 @@ public interface UnsafeValues { +@@ -157,5 +157,12 @@ public interface UnsafeValues { byte[] serializeItem(ItemStack item); ItemStack deserializeItem(byte[] data); diff --git a/patches/api/0224-Add-LivingEntity-clearActiveItem.patch b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch index aa60fb7335..e3e004cb9d 100644 --- a/patches/api/0224-Add-LivingEntity-clearActiveItem.patch +++ b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch @@ -5,20 +5,18 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 3969f3c188211838cb576465bd64c0f63ae85080..9d58da4686a22893455b9cc75fb8e73a87d2d06d 100644 +index 898cbd4f690777ce855244331f95e624c6a1fbd4..66dfeb4490505a3eaed547dd86e6c68b85ba5568 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -996,6 +996,13 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource - @NotNull - org.bukkit.inventory.ItemStack getActiveItem(); +@@ -1030,6 +1030,11 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + */ + org.bukkit.inventory.@NotNull ItemStack getActiveItem(); -+ // Paper start + /** + * Interrupts any ongoing active "usage" or consumption or an item. + */ + void clearActiveItem(); -+ // Paper end + /** - * Get's remaining time a player needs to keep hands raised with an item to finish using it. - * @return Remaining ticks to use the item + * Gets the remaining number of ticks for {@link #getActiveItem()}'s usage. + * diff --git a/patches/api/0229-Expose-LivingEntity-hurt-direction.patch b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch index e99a7ce6bb..a7a62153d3 100644 --- a/patches/api/0229-Expose-LivingEntity-hurt-direction.patch +++ b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose LivingEntity hurt direction diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 94f2c3167f4ce7f5f2b4ecc067739c64af0a2508..4054d2c836342f0e4bcbd33adb13f50daea5086a 100644 +index 5ecfb98540c00da05b13bc5370debb89c52cc76f..083d5798ccc7f37c6df5e234c7ef233202102b8f 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java @@ -348,6 +348,16 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder @@ -26,14 +26,15 @@ index 94f2c3167f4ce7f5f2b4ecc067739c64af0a2508..4054d2c836342f0e4bcbd33adb13f50d * Get the sleep ticks of the player. This value may be capped. * diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 9d58da4686a22893455b9cc75fb8e73a87d2d06d..e9919fce380ec1d0d48b3ac706e7fd31af0be26b 100644 +index 546ecf762d588b8a8239c832fbbe96b8714a07cb..8d2a74e17e4b7089ff91d263b669e8623d7e688a 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1075,5 +1075,21 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource - * @param quantity quantity of item +@@ -1170,4 +1170,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void playPickupItemAnimation(@NotNull Item item, int quantity); + // Paper end - pickup animation API + ++ // Paper start - hurt direction API + /** + * Gets player hurt direction + * @@ -49,5 +50,5 @@ index 9d58da4686a22893455b9cc75fb8e73a87d2d06d..e9919fce380ec1d0d48b3ac706e7fd31 + */ + @Deprecated + void setHurtDirection(float hurtDirection); - // Paper end ++ // Paper end - hurt direction API } diff --git a/patches/api/0263-Expand-world-key-API.patch b/patches/api/0263-Expand-world-key-API.patch index ee70bbcfd2..32ba99be6d 100644 --- a/patches/api/0263-Expand-world-key-API.patch +++ b/patches/api/0263-Expand-world-key-API.patch @@ -78,10 +78,10 @@ index 3c64eb18b7cb6ac371b094a581da8a033e90d00f..c3e0b40a845a30790f31a0cf591bfa7f * Create a new virtual {@link WorldBorder}. *

      diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 86bb2a6f46c7c39e7ac1923c3454785a3dc76648..72a29fff4c497a2a66e2746ad42553bcb712e20d 100644 +index 241cb853476ea35dad73d0234b2d030e9af23476..5de86f8cd3cc7f7e8ebc4a22d3921273378704f2 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -162,5 +162,10 @@ public interface UnsafeValues { +@@ -164,5 +164,10 @@ public interface UnsafeValues { * Use this when sending custom packets, so that there are no collisions on the client or server. */ public int nextEntityId(); diff --git a/patches/api/0264-Item-Rarity-API.patch b/patches/api/0264-Item-Rarity-API.patch index 5e00725324..b074dce96b 100644 --- a/patches/api/0264-Item-Rarity-API.patch +++ b/patches/api/0264-Item-Rarity-API.patch @@ -61,10 +61,10 @@ index 85604d2c364c41fed24257a9b02ceeb58712f6a2..8fd928cfe61ab6f06c52eb5e4561fd68 /** diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 72a29fff4c497a2a66e2746ad42553bcb712e20d..22db1d8645a450308fe91d0cd100c926dd8c6f08 100644 +index 5de86f8cd3cc7f7e8ebc4a22d3921273378704f2..c423204eaf3252c9fc1a3af1214ec70ed712fb80 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -167,5 +167,22 @@ public interface UnsafeValues { +@@ -169,5 +169,22 @@ public interface UnsafeValues { * Just don't use it. */ @org.jetbrains.annotations.NotNull String getMainLevelName(); diff --git a/patches/api/0265-Expose-protocol-version.patch b/patches/api/0265-Expose-protocol-version.patch index 0d34eacc4c..3fbc03ad3e 100644 --- a/patches/api/0265-Expose-protocol-version.patch +++ b/patches/api/0265-Expose-protocol-version.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose protocol version diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 22db1d8645a450308fe91d0cd100c926dd8c6f08..a3810c693d3748fba818e4a835ceb77762f433b9 100644 +index c423204eaf3252c9fc1a3af1214ec70ed712fb80..42e4983051062f2fd3b595487cf8093440b41bba 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -184,5 +184,12 @@ public interface UnsafeValues { +@@ -186,5 +186,12 @@ public interface UnsafeValues { * @return the itemstack rarity */ public io.papermc.paper.inventory.ItemRarity getItemStackRarity(ItemStack itemStack); diff --git a/patches/api/0266-add-isDeeplySleeping-to-HumanEntity.patch b/patches/api/0266-add-isDeeplySleeping-to-HumanEntity.patch index fc6f6dcab3..45207a6064 100644 --- a/patches/api/0266-add-isDeeplySleeping-to-HumanEntity.patch +++ b/patches/api/0266-add-isDeeplySleeping-to-HumanEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add isDeeplySleeping to HumanEntity diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 4054d2c836342f0e4bcbd33adb13f50daea5086a..ff1ebe184ba5a1bdc8e2784025b07d3bb90a5078 100644 +index 083d5798ccc7f37c6df5e234c7ef233202102b8f..a47ea595c2a23b361a56f13877b67892ecfed826 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java @@ -358,6 +358,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder diff --git a/patches/api/0268-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/api/0268-add-get-set-drop-chance-to-EntityEquipment.patch index 836af12518..d75f180c94 100644 --- a/patches/api/0268-add-get-set-drop-chance-to-EntityEquipment.patch +++ b/patches/api/0268-add-get-set-drop-chance-to-EntityEquipment.patch @@ -5,10 +5,10 @@ Subject: [PATCH] add get-set drop chance to EntityEquipment diff --git a/src/main/java/org/bukkit/inventory/EntityEquipment.java b/src/main/java/org/bukkit/inventory/EntityEquipment.java -index 2b11217153d6d6d8246d332e7fbbf32810d7e7b8..bbc1aa3a317fd0a0a0060b30aae42567cda471ca 100644 +index 127302aa7c22f59438de66fffa0b03ae84a2a8ad..1b34286fb6cbedb3841c84c499eb626f61885126 100644 --- a/src/main/java/org/bukkit/inventory/EntityEquipment.java +++ b/src/main/java/org/bukkit/inventory/EntityEquipment.java -@@ -525,4 +525,34 @@ public interface EntityEquipment { +@@ -527,4 +527,34 @@ public interface EntityEquipment { */ @NotNull // Paper Entity getHolder(); diff --git a/patches/api/0270-More-World-API.patch b/patches/api/0270-More-World-API.patch index a3d88eb648..139bb504c0 100644 --- a/patches/api/0270-More-World-API.patch +++ b/patches/api/0270-More-World-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] More World API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 24ce9966140730c581c0709b14280e62a58331fa..d09c6b7c7b80f1f59e052ddb4aa8ad05b63fca2b 100644 +index 0a7c97aa289687cfbf6ae1a222f5eb2850f8f43e..4f724c337da08da6bbc8b1452dbd64eefd54a879 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -3824,6 +3824,122 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -3833,6 +3833,122 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable StructureSearchResult locateNearestStructure(@NotNull Location origin, @NotNull Structure structure, int radius, boolean findUnexplored); diff --git a/patches/api/0282-ItemStack-repair-check-API.patch b/patches/api/0282-ItemStack-repair-check-API.patch index 46650ec4b7..0a9c5b65db 100644 --- a/patches/api/0282-ItemStack-repair-check-API.patch +++ b/patches/api/0282-ItemStack-repair-check-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack repair check API diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index a3810c693d3748fba818e4a835ceb77762f433b9..d9e3e4ad108a94ac6f0f5378d22d47845091efb4 100644 +index 42e4983051062f2fd3b595487cf8093440b41bba..057f4db9cb6b686ab941ec5d3e6ca23dcfbd845f 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -185,6 +185,16 @@ public interface UnsafeValues { +@@ -187,6 +187,16 @@ public interface UnsafeValues { */ public io.papermc.paper.inventory.ItemRarity getItemStackRarity(ItemStack itemStack); diff --git a/patches/api/0283-More-Enchantment-API.patch b/patches/api/0283-More-Enchantment-API.patch index 98c3ef060b..e6ccd01964 100644 --- a/patches/api/0283-More-Enchantment-API.patch +++ b/patches/api/0283-More-Enchantment-API.patch @@ -36,10 +36,10 @@ index 0000000000000000000000000000000000000000..e6a40c1fcea761bd66743b50e3da3d14 + } +} diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java -index 4a88198be6634b47fc51e55acc5f6415e4aff1ab..d50d4c3121a966adcc47173ddb4575f7ad504148 100644 +index 13f25ff4a4dd5a98f5f690c54e5cba6ef145c2d0..4264c6eb7e5794019859cfca592b57e574fcd833 100644 --- a/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/src/main/java/org/bukkit/enchantments/Enchantment.java -@@ -269,11 +269,7 @@ public abstract class Enchantment implements Keyed, net.kyori.adventure.translat +@@ -270,11 +270,7 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve * Cursed enchantments are found the same way treasure enchantments are * * @return true if the enchantment is cursed @@ -51,7 +51,7 @@ index 4a88198be6634b47fc51e55acc5f6415e4aff1ab..d50d4c3121a966adcc47173ddb4575f7 public abstract boolean isCursed(); /** -@@ -307,6 +303,70 @@ public abstract class Enchantment implements Keyed, net.kyori.adventure.translat +@@ -308,6 +304,70 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve * @return the name of the enchantment with {@code level} applied */ public abstract net.kyori.adventure.text.@NotNull Component displayName(int level); diff --git a/patches/api/0287-Attributes-API-for-item-defaults.patch b/patches/api/0287-Attributes-API-for-item-defaults.patch index 66172a6027..ce95405628 100644 --- a/patches/api/0287-Attributes-API-for-item-defaults.patch +++ b/patches/api/0287-Attributes-API-for-item-defaults.patch @@ -31,10 +31,10 @@ index 8fd928cfe61ab6f06c52eb5e4561fd6860e1f8d9..64ca3c676703eed55b4ac8a2d4561d48 /** diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index d9e3e4ad108a94ac6f0f5378d22d47845091efb4..bdee63fb97cbc0c9fbe7df74de5cb5f4ed7de3ca 100644 +index 057f4db9cb6b686ab941ec5d3e6ca23dcfbd845f..db8ffa9b303b9128be175f383fdf838a4e0719e5 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -195,6 +195,18 @@ public interface UnsafeValues { +@@ -197,6 +197,18 @@ public interface UnsafeValues { */ public boolean isValidRepairItemStack(@org.jetbrains.annotations.NotNull ItemStack itemToBeRepaired, @org.jetbrains.annotations.NotNull ItemStack repairMaterial); diff --git a/patches/api/0294-Add-more-line-of-sight-methods.patch b/patches/api/0294-Add-more-line-of-sight-methods.patch index 6540c2d0f4..fbd43414de 100644 --- a/patches/api/0294-Add-more-line-of-sight-methods.patch +++ b/patches/api/0294-Add-more-line-of-sight-methods.patch @@ -23,10 +23,10 @@ index d8b1fa79dc24138dc71e32c14bda71c1d570ed88..b68367f123f029c3ff47eab6bfabd7a8 // Paper end } diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index e9919fce380ec1d0d48b3ac706e7fd31af0be26b..b1fb059fc2249814c9e509c219da2aed84d34fe0 100644 +index 0ed9ad6ed755c5b46ec16e33c3d56e7f80345066..99f314f25d1d6118e0884822d428c47060373bec 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -590,6 +590,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -622,6 +622,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ public boolean hasLineOfSight(@NotNull Entity other); diff --git a/patches/api/0297-Missing-Entity-API.patch b/patches/api/0297-Missing-Entity-API.patch index f9455519bb..2b32abe3c3 100644 --- a/patches/api/0297-Missing-Entity-API.patch +++ b/patches/api/0297-Missing-Entity-API.patch @@ -585,10 +585,10 @@ index 6b3c9bef9a8a34ddc6ff42cf358541a2665bf5e3..9c618a27d590f186f29c5d9094fc565e + // Paper end } diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index b1fb059fc2249814c9e509c219da2aed84d34fe0..ff89fc699b7aaba982c59ace4effaffc5285ca17 100644 +index 99f314f25d1d6118e0884822d428c47060373bec..13eb80455dd589e87c39a7a5570ef093c7660205 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -960,6 +960,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -992,6 +992,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * * @param invisible If the entity is invisible */ @@ -596,7 +596,7 @@ index b1fb059fc2249814c9e509c219da2aed84d34fe0..ff89fc699b7aaba982c59ace4effaffc public void setInvisible(boolean invisible); /** -@@ -967,6 +968,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -999,6 +1000,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * * @return Whether the entity is invisible */ @@ -604,11 +604,11 @@ index b1fb059fc2249814c9e509c219da2aed84d34fe0..ff89fc699b7aaba982c59ace4effaffc public boolean isInvisible(); // Paper start -@@ -1016,6 +1018,57 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource - void clearActiveItem(); +@@ -1035,6 +1037,57 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + void setShieldBlockingDelay(int delay); // Paper end -+ // Paper start ++ // Paper start - missing entity API + /** + * Retrieves the sideways movement direction of the entity. + *

      @@ -657,11 +657,11 @@ index b1fb059fc2249814c9e509c219da2aed84d34fe0..ff89fc699b7aaba982c59ace4effaffc + * @return Forwards movement direction, ranging from -1 (backward) to 1 (forward). + */ + float getForwardsMovement(); -+ // Paper end ++ // Paper end - missing entity API + + // Paper start - active item API /** - * Get's remaining time a player needs to keep hands raised with an item to finish using it. - * @return Remaining ticks to use the item + * Gets the item being actively "used" or consumed. diff --git a/src/main/java/org/bukkit/entity/Llama.java b/src/main/java/org/bukkit/entity/Llama.java index d23226ccb0f6c25028f000ce31346cd0a8898e6a..bc84b892cae5fe7019a3ad481e9da79956efa1fe 100644 --- a/src/main/java/org/bukkit/entity/Llama.java diff --git a/patches/api/0301-Stinger-API.patch b/patches/api/0301-Stinger-API.patch index 4966f6d228..2feda687e5 100644 --- a/patches/api/0301-Stinger-API.patch +++ b/patches/api/0301-Stinger-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stinger API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index ff89fc699b7aaba982c59ace4effaffc5285ca17..41ca8fea2aede178bdbe87c05588bce4f2faf8e6 100644 +index 13eb80455dd589e87c39a7a5570ef093c7660205..2727eef973a40b5d96f59671e0415e9544a0550c 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -419,6 +419,52 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -451,6 +451,52 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource int getNextArrowRemoval(); // Paper end - Add methods for working with arrows stuck in living entities diff --git a/patches/api/0313-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/api/0313-Add-methods-to-find-targets-for-lightning-strikes.patch index c84e83d2de..9c34b1a23f 100644 --- a/patches/api/0313-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/api/0313-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add methods to find targets for lightning strikes diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index d09c6b7c7b80f1f59e052ddb4aa8ad05b63fca2b..6897600a6879d88cea287cde350c1e9cd11ae96d 100644 +index 4f724c337da08da6bbc8b1452dbd64eefd54a879..5c61b9964e9abe76b5604c73bdd211a9c1c9b619 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -737,6 +737,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -746,6 +746,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @NotNull public LightningStrike strikeLightningEffect(@NotNull Location loc); diff --git a/patches/api/0314-Get-entity-default-attributes.patch b/patches/api/0314-Get-entity-default-attributes.patch index 60dc6739f1..281ddf96f2 100644 --- a/patches/api/0314-Get-entity-default-attributes.patch +++ b/patches/api/0314-Get-entity-default-attributes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Get entity default attributes diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index bdee63fb97cbc0c9fbe7df74de5cb5f4ed7de3ca..5d4721595a24c8c970f2500fc805c3efc4508157 100644 +index db8ffa9b303b9128be175f383fdf838a4e0719e5..b205937d1cd627c1dd660277f69891b5412b1c16 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -213,5 +213,22 @@ public interface UnsafeValues { +@@ -215,5 +215,22 @@ public interface UnsafeValues { * @return the server's protocol version */ int getProtocolVersion(); diff --git a/patches/api/0319-Add-isCollidable-methods-to-various-places.patch b/patches/api/0319-Add-isCollidable-methods-to-various-places.patch index a3abc4242a..65ecfe9e6c 100644 --- a/patches/api/0319-Add-isCollidable-methods-to-various-places.patch +++ b/patches/api/0319-Add-isCollidable-methods-to-various-places.patch @@ -26,10 +26,10 @@ index 64ca3c676703eed55b4ac8a2d4561d483c6935b1..9f86ad25a57b3f6e6bda1ce657833837 /** diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 5d4721595a24c8c970f2500fc805c3efc4508157..434fde52986ba07d7209ff47483f74fe31e8ebe7 100644 +index b205937d1cd627c1dd660277f69891b5412b1c16..ca0b126bff245ed3fe69bc49c28499f7a7aa9556 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -230,5 +230,14 @@ public interface UnsafeValues { +@@ -232,5 +232,14 @@ public interface UnsafeValues { * @throws IllegalArgumentException if the entity does not exist of have default attributes (use {@link #hasDefaultEntityAttributes(NamespacedKey)} first) */ @org.jetbrains.annotations.NotNull org.bukkit.attribute.Attributable getDefaultEntityAttributes(@org.jetbrains.annotations.NotNull NamespacedKey entityKey); diff --git a/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch index 0f3a5bae4e..bfc735d882 100644 --- a/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Raw Byte Entity Serialization diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 434fde52986ba07d7209ff47483f74fe31e8ebe7..0c7204e390f44b649fc26cd46152abeb2ad2d670 100644 +index ca0b126bff245ed3fe69bc49c28499f7a7aa9556..6426d8585bba71b3e998b1eb078ac0fc67076d65 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -156,6 +156,14 @@ public interface UnsafeValues { +@@ -158,6 +158,14 @@ public interface UnsafeValues { ItemStack deserializeItem(byte[] data); @@ -24,7 +24,7 @@ index 434fde52986ba07d7209ff47483f74fe31e8ebe7..0c7204e390f44b649fc26cd46152abeb * Creates and returns the next EntityId available. *

      diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 9272c15619f623dc39d9c9046fd6463674c37264..9cb84eababf159b04618a605ff03cdaee72c9502 100644 +index 578c22b0aef9c89a3c33b75c33bcdc60bdab6b49..621ee3fd49ee96143df2f24889e9aef74448a544 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -925,5 +925,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/api/0340-More-PotionEffectType-API.patch b/patches/api/0340-More-PotionEffectType-API.patch index 7e3682f8b4..68309b095d 100644 --- a/patches/api/0340-More-PotionEffectType-API.patch +++ b/patches/api/0340-More-PotionEffectType-API.patch @@ -41,19 +41,19 @@ index 4bc53793aade0887fa650a4bbf51d2e57678bd90..18c672f3855a329bf8f87a9de81b677e /** diff --git a/src/main/java/org/bukkit/potion/PotionEffectType.java b/src/main/java/org/bukkit/potion/PotionEffectType.java -index 3070f039a583647e7c9a8f15d63291cd265db9fc..0d81e2d36e01128b9c697ec6f5c98083ee492d84 100644 +index f97dff2fd90cc8c35cbde04d1ace81320a8e4658..7d2f2fb6d4a786d15d61fde2ef03783b85d0c47b 100644 --- a/src/main/java/org/bukkit/potion/PotionEffectType.java +++ b/src/main/java/org/bukkit/potion/PotionEffectType.java -@@ -15,7 +15,7 @@ import org.jetbrains.annotations.Nullable; +@@ -16,7 +16,7 @@ import org.jetbrains.annotations.Nullable; /** * Represents a type of potion and its effect on an entity. */ --public abstract class PotionEffectType implements Keyed { -+public abstract class PotionEffectType implements Keyed, net.kyori.adventure.translation.Translatable { // Paper - implement Translatable +-public abstract class PotionEffectType implements Keyed, Translatable { ++public abstract class PotionEffectType implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - implement Translatable private static final BiMap ID_MAP = HashBiMap.create(); /** -@@ -351,4 +351,56 @@ public abstract class PotionEffectType implements Keyed { +@@ -352,4 +352,56 @@ public abstract class PotionEffectType implements Keyed, Translatable { return from; } diff --git a/patches/api/0349-More-Projectile-API.patch b/patches/api/0349-More-Projectile-API.patch index dcad065186..ba63dbcd3b 100644 --- a/patches/api/0349-More-Projectile-API.patch +++ b/patches/api/0349-More-Projectile-API.patch @@ -6,14 +6,37 @@ Subject: [PATCH] More Projectile API Co-authored-by: Nassim Jahnke diff --git a/src/main/java/org/bukkit/entity/AbstractArrow.java b/src/main/java/org/bukkit/entity/AbstractArrow.java -index e8e56e89e32d84af0639fe2e9b0eeabd747b6007..2d7521b71ec16e1b229bbe4c05d51673720df475 100644 +index 839e5b7df49f42b5fec7729997bef3370ba36d80..b36298679d6d52d09fe4bb8e52e19e18f6df742a 100644 --- a/src/main/java/org/bukkit/entity/AbstractArrow.java +++ b/src/main/java/org/bukkit/entity/AbstractArrow.java -@@ -174,5 +174,43 @@ public interface AbstractArrow extends Projectile { - ALLOWED, +@@ -130,17 +130,21 @@ public interface AbstractArrow extends Projectile { + * Gets the ItemStack which will be picked up from this arrow. + * + * @return The picked up ItemStack ++ * @deprecated use {@link #getItemStack()} + */ + @NotNull + @ApiStatus.Experimental ++ @Deprecated(forRemoval = true, since = "1.20.4") // Paper + public ItemStack getItem(); + + /** + * Sets the ItemStack which will be picked up from this arrow. + * + * @param item ItemStack set to be picked up ++ * @deprecated until 1.20.5 when the behavior is more defined + */ + @ApiStatus.Experimental ++ @Deprecated // Paper - remove in 1.20.5 + public void setItem(@NotNull ItemStack item); + + /** +@@ -194,4 +198,44 @@ public interface AbstractArrow extends Projectile { CREATIVE_ONLY; } + // Paper end + ++ // Paper start - more projectile API + /** + * Gets the ItemStack for this arrow. + * @@ -51,7 +74,7 @@ index e8e56e89e32d84af0639fe2e9b0eeabd747b6007..2d7521b71ec16e1b229bbe4c05d51673 + * @param sound sound that is played + */ + void setHitSound(@NotNull org.bukkit.Sound sound); - // Paper end ++ // Paper end - more projectile API } diff --git a/src/main/java/org/bukkit/entity/Firework.java b/src/main/java/org/bukkit/entity/Firework.java index 0d31aa0b22cf1e849572294e2cfe38b48c9210af..217d348ad0bbef720b25d3b507a55ca8105b7731 100644 diff --git a/patches/api/0359-Expand-FallingBlock-API.patch b/patches/api/0359-Expand-FallingBlock-API.patch index bbff3129a4..0f65eb8961 100644 --- a/patches/api/0359-Expand-FallingBlock-API.patch +++ b/patches/api/0359-Expand-FallingBlock-API.patch @@ -10,10 +10,10 @@ Subject: [PATCH] Expand FallingBlock API Co-authored-by: Lukas Planz diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 0eb90bfff2e12cb3ed977a581912221ac4dee6f6..5785dda1127106b529f0784df524e120aaf87f4f 100644 +index 7ff0ac9c78c3793791afbfa344a9ced3821d9638..fa81e440ad20ab8740cb073f515d1671dc6ea9a0 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2261,8 +2261,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2270,8 +2270,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @return The spawned {@link FallingBlock} instance * @throws IllegalArgumentException if {@link Location} or {@link * MaterialData} are null or {@link Material} of the {@link MaterialData} is not a block @@ -24,7 +24,7 @@ index 0eb90bfff2e12cb3ed977a581912221ac4dee6f6..5785dda1127106b529f0784df524e120 public FallingBlock spawnFallingBlock(@NotNull Location location, @NotNull MaterialData data) throws IllegalArgumentException; /** -@@ -2275,8 +2277,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2284,8 +2286,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @return The spawned {@link FallingBlock} instance * @throws IllegalArgumentException if {@link Location} or {@link * BlockData} are null @@ -35,7 +35,7 @@ index 0eb90bfff2e12cb3ed977a581912221ac4dee6f6..5785dda1127106b529f0784df524e120 public FallingBlock spawnFallingBlock(@NotNull Location location, @NotNull BlockData data) throws IllegalArgumentException; /** -@@ -2293,7 +2297,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2302,7 +2306,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @return The spawned {@link FallingBlock} instance * @throws IllegalArgumentException if {@link Location} or {@link * Material} are null or {@link Material} is not a block diff --git a/patches/api/0363-Add-Player-getFishHook.patch b/patches/api/0363-Add-Player-getFishHook.patch index 291eac5db5..feae3b2e47 100644 --- a/patches/api/0363-Add-Player-getFishHook.patch +++ b/patches/api/0363-Add-Player-getFishHook.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Player#getFishHook diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index ff1ebe184ba5a1bdc8e2784025b07d3bb90a5078..8b0d04d5b39ee817555a36adddc39b18fc6f0d02 100644 +index a47ea595c2a23b361a56f13877b67892ecfed826..ee866f3497ed56708d4062685f5585ca06a03955 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java @@ -386,6 +386,13 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder diff --git a/patches/api/0369-Add-NamespacedKey-biome-methods.patch b/patches/api/0369-Add-NamespacedKey-biome-methods.patch index f11f727f1a..97a47e3b8e 100644 --- a/patches/api/0369-Add-NamespacedKey-biome-methods.patch +++ b/patches/api/0369-Add-NamespacedKey-biome-methods.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add NamespacedKey biome methods Co-authored-by: Thonk <30448663+ExcessiveAmountsOfZombies@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 0c7204e390f44b649fc26cd46152abeb2ad2d670..741ead65c89d4f9521d35dcbc9661d6772058499 100644 +index 6426d8585bba71b3e998b1eb078ac0fc67076d65..d97e42de951527afb03eafc481704418dedffde9 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -247,5 +247,32 @@ public interface UnsafeValues { +@@ -249,5 +249,32 @@ public interface UnsafeValues { * @throws IllegalArgumentException if {@link Material#isBlock()} is false */ boolean isCollidable(@org.jetbrains.annotations.NotNull Material material); diff --git a/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch index 38a3a4452c..e870d6f074 100644 --- a/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch +++ b/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch @@ -5,14 +5,15 @@ Subject: [PATCH] Add LivingEntity#swingHand(EquipmentSlot) convenience method diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 41ca8fea2aede178bdbe87c05588bce4f2faf8e6..aa20ec645476b2cbb0330c206f163094aebf238e 100644 +index 7ed163813bb13ea6e1b60a94f4ef98b3b55f163c..ec3e597a9e683e5966ef4fff3300c30bde1dd49d 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1203,5 +1203,23 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource - */ +@@ -1300,4 +1300,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @Deprecated void setHurtDirection(float hurtDirection); + // Paper end - hurt direction API + ++ // Paper start - swing hand API + /** + * Makes this entity swing their hand. + * @@ -30,5 +31,5 @@ index 41ca8fea2aede178bdbe87c05588bce4f2faf8e6..aa20ec645476b2cbb0330c206f163094 + this.swingOffHand(); + } + } - // Paper end ++ // Paper end - swing hand API } diff --git a/patches/api/0380-Add-entity-knockback-API.patch b/patches/api/0380-Add-entity-knockback-API.patch index cf91cd8304..4dbce197ca 100644 --- a/patches/api/0380-Add-entity-knockback-API.patch +++ b/patches/api/0380-Add-entity-knockback-API.patch @@ -5,14 +5,15 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index aa20ec645476b2cbb0330c206f163094aebf238e..70953573a7bcfa682dbaeaa8e3db0c847b254fdd 100644 +index ec3e597a9e683e5966ef4fff3300c30bde1dd49d..b5d882622d9b350b81b6c61348515cbc5aa65777 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1221,5 +1221,17 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource - this.swingOffHand(); +@@ -1320,4 +1320,18 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource } } + // Paper end - swing hand API + ++ // Paper start - knockback API + /** + * Knocks back this entity from a specific direction with a specified strength. Mechanics such + * as knockback resistance will be factored in. @@ -24,5 +25,5 @@ index aa20ec645476b2cbb0330c206f163094aebf238e..70953573a7bcfa682dbaeaa8e3db0c84 + * @param directionZ The relative z position of the knockback source direction + */ + void knockback(double strength, double directionX, double directionZ); - // Paper end ++ // Paper end - knockback API } diff --git a/patches/api/0387-ItemStack-damage-API.patch b/patches/api/0387-ItemStack-damage-API.patch index f2c4cc4355..a07dfddbc3 100644 --- a/patches/api/0387-ItemStack-damage-API.patch +++ b/patches/api/0387-ItemStack-damage-API.patch @@ -8,14 +8,15 @@ to simulate damage done to an itemstack and all the logic associated with damaging them diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 70953573a7bcfa682dbaeaa8e3db0c847b254fdd..041ff387a0f9e8037e2834118ef241ddb8970907 100644 +index b5d882622d9b350b81b6c61348515cbc5aa65777..6807354bf157060cbddb395dd6220040b84e7c8d 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1233,5 +1233,52 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource - * @param directionZ The relative z position of the knockback source direction +@@ -1334,4 +1334,53 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void knockback(double strength, double directionX, double directionZ); + // Paper end - knockback API + ++ // Paper start - ItemStack damage API + /** + * Notifies all clients tracking this entity that the item in + * the slot of this entity broke. @@ -62,7 +63,7 @@ index 70953573a7bcfa682dbaeaa8e3db0c847b254fdd..041ff387a0f9e8037e2834118ef241dd + * @param amount the amount of damage to do + */ + void damageItemStack(org.bukkit.inventory.@NotNull EquipmentSlot slot, int amount); - // Paper end ++ // Paper end - ItemStack damage API } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java index f236f9bfa4d43dcbad5919abef3620fcd0696880..845037909658884167136955a02b99af0040fa9c 100644 diff --git a/patches/api/0400-Add-Entity-Body-Yaw-API.patch b/patches/api/0400-Add-Entity-Body-Yaw-API.patch index 55b49feb0c..3697d7ccc9 100644 --- a/patches/api/0400-Add-Entity-Body-Yaw-API.patch +++ b/patches/api/0400-Add-Entity-Body-Yaw-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 909926485a66e09988f7787b1d5ee2cf9c012558..17d5a5458ee51d8db243326745875ef31ba95fb3 100644 +index d6e4c7cdd34b03295825b3c5ad76626f8f48ec0e..11df702c6f8282aa96ae1ed6b9b29c81fbfadbad 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -1020,6 +1020,43 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @@ -53,14 +53,15 @@ index 909926485a66e09988f7787b1d5ee2cf9c012558..17d5a5458ee51d8db243326745875ef3 // Paper start - Collision API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 3a26b3c40f877a454c3c76b68b86776f05950002..b7b87b2962eabcf2e8864335e4da22c0b9da8e5c 100644 +index 92c33fc9680159ab4e901cfba08092d868845c63..e3ff310a83b320c26de63e9239db63de271321c2 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1280,5 +1280,21 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource - * @param amount the amount of damage to do +@@ -1383,4 +1383,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void damageItemStack(org.bukkit.inventory.@NotNull EquipmentSlot slot, int amount); + // Paper end - ItemStack damage API + ++ // Paper start - body yaw API + /** + * Gets entity body yaw + * @@ -76,5 +77,5 @@ index 3a26b3c40f877a454c3c76b68b86776f05950002..b7b87b2962eabcf2e8864335e4da22c0 + * @see Location#setYaw(float) + */ + void setBodyYaw(float bodyYaw); - // Paper end ++ // Paper end - body yaw API } diff --git a/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch b/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch index 33a8a647a9..10afeab970 100644 --- a/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index b7b87b2962eabcf2e8864335e4da22c0b9da8e5c..65dab533a33433bdd79601df4f109d9de6998fb8 100644 +index 949539d4614242a8d742cd75242ce753b474edf6..de0e160632e0f0f9dee61007f139f37382f58e26 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -625,6 +625,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -657,6 +657,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @NotNull public Collection getActivePotionEffects(); diff --git a/patches/api/0418-Fix-custom-statistic-criteria-creation.patch b/patches/api/0418-Fix-custom-statistic-criteria-creation.patch index 4ce5967963..1e6de23d5e 100644 --- a/patches/api/0418-Fix-custom-statistic-criteria-creation.patch +++ b/patches/api/0418-Fix-custom-statistic-criteria-creation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix custom statistic criteria creation diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 741ead65c89d4f9521d35dcbc9661d6772058499..0cfbb77c4da58b0692cb1df5686657b5ce04ad87 100644 +index d97e42de951527afb03eafc481704418dedffde9..c73eed20d18d1109e3b78b9daa92d7438fc52e8d 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -274,5 +274,7 @@ public interface UnsafeValues { +@@ -276,5 +276,7 @@ public interface UnsafeValues { * @throws IllegalStateException if no biome by the given key is registered. */ void setBiomeKey(RegionAccessor accessor, int x, int y, int z, NamespacedKey biomeKey); diff --git a/patches/api/0438-Add-predicate-for-blocks-when-raytracing.patch b/patches/api/0438-Add-predicate-for-blocks-when-raytracing.patch index 67d10e420e..e03c5e17fa 100644 --- a/patches/api/0438-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/api/0438-Add-predicate-for-blocks-when-raytracing.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add predicate for blocks when raytracing diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 5785dda1127106b529f0784df524e120aaf87f4f..c0ad21a3dd1f3cd9a4c66000e937e89ffc183638 100644 +index fa81e440ad20ab8740cb073f515d1671dc6ea9a0..377d57b0e603898d309a9384aa8bb9fca97673e3 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -1694,6 +1694,27 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -1703,6 +1703,27 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable public RayTraceResult rayTraceEntities(@NotNull Location start, @NotNull Vector direction, double maxDistance, double raySize, @Nullable Predicate filter); @@ -36,7 +36,7 @@ index 5785dda1127106b529f0784df524e120aaf87f4f..c0ad21a3dd1f3cd9a4c66000e937e89f /** * Performs a ray trace that checks for block collisions using the blocks' * precise collision shapes. -@@ -1757,6 +1778,34 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -1766,6 +1787,34 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable public RayTraceResult rayTraceBlocks(@NotNull Location start, @NotNull Vector direction, double maxDistance, @NotNull FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks); @@ -71,7 +71,7 @@ index 5785dda1127106b529f0784df524e120aaf87f4f..c0ad21a3dd1f3cd9a4c66000e937e89f /** * Performs a ray trace that checks for both block and entity collisions. *

      -@@ -1790,6 +1839,42 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -1799,6 +1848,42 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable public RayTraceResult rayTrace(@NotNull Location start, @NotNull Vector direction, double maxDistance, @NotNull FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks, double raySize, @Nullable Predicate filter); diff --git a/patches/api/0446-Improve-Registry.patch b/patches/api/0446-Improve-Registry.patch index da9c8aeaeb..0e4b32604c 100644 --- a/patches/api/0446-Improve-Registry.patch +++ b/patches/api/0446-Improve-Registry.patch @@ -77,14 +77,15 @@ index 18c672f3855a329bf8f87a9de81b677e8e360b41..e1fb4d8cca6a9c59047b1396f5c40bea } } diff --git a/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java b/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java -index 4327cbc15b9b88d3a568edbebc69c94638ea0465..178d83cb3ccff2d12477d3c13ca4f108fa17e619 100644 +index 941fac4eee338870d8c30cb1f64cab572cf54548..74816d6da4d7c8d2fa8a7b93fdc4bf29c8d12803 100644 --- a/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java +++ b/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java -@@ -50,4 +50,13 @@ public interface TrimMaterial extends Keyed { - * {@link Material#AMETHYST_SHARD}. - */ - public static final TrimMaterial AMETHYST = Registry.TRIM_MATERIAL.get(NamespacedKey.minecraft("amethyst")); -+ // Paper start +@@ -68,4 +68,14 @@ public interface TrimMaterial extends Keyed, Translatable { + @Deprecated(forRemoval = true) + @org.jetbrains.annotations.NotNull String getTranslationKey(); + // Paper end - adventure ++ ++ // Paper start - Registry#getKey + /** + * @deprecated use {@link Registry#getKey(Keyed)} and {@link Registry#TRIM_MATERIAL}. TrimMaterials + * can exist without a key. @@ -92,17 +93,18 @@ index 4327cbc15b9b88d3a568edbebc69c94638ea0465..178d83cb3ccff2d12477d3c13ca4f108 + @Deprecated(forRemoval = true, since = "1.20.4") + @Override + org.bukkit.@org.jetbrains.annotations.NotNull NamespacedKey getKey(); -+ // Paper end ++ // Paper end - Registry#getKey } diff --git a/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java b/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java -index 2365220dc0eb1e130b65e81727ff8768dea3f881..e29fc42ae2b9c555db63d10d20552748e28ba60e 100644 +index 3fa087d09c7c2d864eea25659951a537359c9589..31554cfa01360b0f92336617a75f313e0175af7a 100644 --- a/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java +++ b/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java -@@ -74,4 +74,13 @@ public interface TrimPattern extends Keyed { - * {@link Material#HOST_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern HOST = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft("host")); -+ // Paper start +@@ -92,4 +92,14 @@ public interface TrimPattern extends Keyed, Translatable { + @Deprecated(forRemoval = true) + @org.jetbrains.annotations.NotNull String getTranslationKey(); + // Paper end - adventure ++ ++ // Paper start - Registry#getKey + /** + * @deprecated use {@link Registry#getKey(Keyed)} and {@link Registry#TRIM_PATTERN}. TrimPatterns + * can exist without a key. @@ -110,5 +112,5 @@ index 2365220dc0eb1e130b65e81727ff8768dea3f881..e29fc42ae2b9c555db63d10d20552748 + @Deprecated(forRemoval = true, since = "1.20.4") + @Override + org.bukkit.@org.jetbrains.annotations.NotNull NamespacedKey getKey(); -+ // Paper end ++ // Paper end - Registry#getKey } diff --git a/patches/api/0450-Add-HiddenPotionEffect-API.patch b/patches/api/0450-Add-HiddenPotionEffect-API.patch index 2c44d32af5..49d193598e 100644 --- a/patches/api/0450-Add-HiddenPotionEffect-API.patch +++ b/patches/api/0450-Add-HiddenPotionEffect-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add HiddenPotionEffect API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 65dab533a33433bdd79601df4f109d9de6998fb8..5cb82901a5d0c8ee673501fc53389d526d4a5b6f 100644 +index de0e160632e0f0f9dee61007f139f37382f58e26..f5fe2abd28a3f5fa4f2adf1d63ea68a7b890d191 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -559,6 +559,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -591,6 +591,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource /** * Adds the given {@link PotionEffect} to the living entity. @@ -18,7 +18,7 @@ index 65dab533a33433bdd79601df4f109d9de6998fb8..5cb82901a5d0c8ee673501fc53389d52 * * @param effect PotionEffect to be added * @return whether the effect could be added -@@ -583,6 +586,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -615,6 +618,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource /** * Attempts to add all of the given {@link PotionEffect} to the living * entity. diff --git a/patches/api/0456-Add-api-for-spawn-egg-texture-colors.patch b/patches/api/0456-Add-api-for-spawn-egg-texture-colors.patch index 22ba7c25bf..35366bea02 100644 --- a/patches/api/0456-Add-api-for-spawn-egg-texture-colors.patch +++ b/patches/api/0456-Add-api-for-spawn-egg-texture-colors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add api for spawn egg texture colors diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 0cfbb77c4da58b0692cb1df5686657b5ce04ad87..43f779ff7eca7450f52ac3688744743b5c3647bf 100644 +index c73eed20d18d1109e3b78b9daa92d7438fc52e8d..1ac54ae7b4bcc7932492477e88a81954f71f342f 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -277,4 +277,17 @@ public interface UnsafeValues { +@@ -279,4 +279,17 @@ public interface UnsafeValues { String getStatisticCriteriaKey(@NotNull org.bukkit.Statistic statistic); // Paper end diff --git a/patches/api/0457-Add-Lifecycle-Event-system.patch b/patches/api/0457-Add-Lifecycle-Event-system.patch index 635d4a7325..f915f892cf 100644 --- a/patches/api/0457-Add-Lifecycle-Event-system.patch +++ b/patches/api/0457-Add-Lifecycle-Event-system.patch @@ -528,10 +528,10 @@ index 0000000000000000000000000000000000000000..304f978e40e1759bb19704cc5cec3995 + } +} diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 43f779ff7eca7450f52ac3688744743b5c3647bf..f2163b5238e1667a44bf623cd52bab90d9f2d88d 100644 +index 1ac54ae7b4bcc7932492477e88a81954f71f342f..14a49bfd1822c25b95000f3fbb60ba1d55ae0d38 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -290,4 +290,12 @@ public interface UnsafeValues { +@@ -292,4 +292,12 @@ public interface UnsafeValues { */ @Nullable org.bukkit.Color getSpawnEggLayerColor(org.bukkit.entity.EntityType entityType, int layer); // Paper end - spawn egg color visibility diff --git a/patches/api/0459-ItemStack-Tooltip-API.patch b/patches/api/0459-ItemStack-Tooltip-API.patch index 9aa55ce1a9..4274a11ce7 100644 --- a/patches/api/0459-ItemStack-Tooltip-API.patch +++ b/patches/api/0459-ItemStack-Tooltip-API.patch @@ -108,10 +108,10 @@ index 0000000000000000000000000000000000000000..1d9bed6691f581529c53b577b26f1d0f + } +} diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index f2163b5238e1667a44bf623cd52bab90d9f2d88d..9a65c4f614a6c358d74491794d7b25172a00bc11 100644 +index 14a49bfd1822c25b95000f3fbb60ba1d55ae0d38..b9a07b2db8a3dcdb72c33c8ceda129921b2c02f1 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -298,4 +298,6 @@ public interface UnsafeValues { +@@ -300,4 +300,6 @@ public interface UnsafeValues { @org.jetbrains.annotations.ApiStatus.Internal io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager createPluginLifecycleEventManager(final org.bukkit.plugin.java.JavaPlugin plugin, final java.util.function.BooleanSupplier registrationCheck); // Paper end - lifecycle event API diff --git a/patches/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch index 8d4ad0ab1c..62a6510820 100644 --- a/patches/server/0001-Setup-Gradle-project.patch +++ b/patches/server/0001-Setup-Gradle-project.patch @@ -28,7 +28,7 @@ index 37dab9e868dbfb019c271a547d975a48ad1cb571..3811c0d849a3eb028ed1a6b7a2d4747f +/.factorypath diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 -index 0000000000000000000000000000000000000000..74849d7b20e3c3831a6a6c3715a6e875d6ff8a48 +index 0000000000000000000000000000000000000000..4e0b810bd0a9991d10e13920f47f0b6d0a56f6aa --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,141 @@ @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..74849d7b20e3c3831a6a6c3715a6e875 + implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") { + exclude(group = "org.apache.logging.log4j", module = "log4j-api") + } -+ implementation("org.ow2.asm:asm-commons:9.5") ++ implementation("org.ow2.asm:asm-commons:9.7") + implementation("commons-lang:commons-lang:2.6") + runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") + runtimeOnly("com.mysql:mysql-connector-j:8.2.0") @@ -57,8 +57,8 @@ index 0000000000000000000000000000000000000000..74849d7b20e3c3831a6a6c3715a6e875 + + testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") + testImplementation("org.hamcrest:hamcrest:2.2") -+ testImplementation("org.mockito:mockito-core:5.5.0") -+ testImplementation("org.ow2.asm:asm-tree:9.5") ++ testImplementation("org.mockito:mockito-core:5.11.0") ++ testImplementation("org.ow2.asm:asm-tree:9.7") +} + +val craftbukkitPackageVersion = "1_20_R3" // Paper @@ -175,7 +175,7 @@ index 0000000000000000000000000000000000000000..74849d7b20e3c3831a6a6c3715a6e875 +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index 323892c4a4bbbb9e36a6295bb390ad82798e213c..0000000000000000000000000000000000000000 +index 226b56846562846d1b89c54b67b4ccc235eaf3e9..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null @@ -1,608 +0,0 @@ @@ -242,7 +242,7 @@ index 323892c4a4bbbb9e36a6295bb390ad82798e213c..00000000000000000000000000000000 - - org.ow2.asm - asm-commons -- 9.5 +- 9.7 - compile - - @@ -466,13 +466,13 @@ index 323892c4a4bbbb9e36a6295bb390ad82798e213c..00000000000000000000000000000000 - - org.mockito - mockito-core -- 5.5.0 +- 5.11.0 - test - - - org.ow2.asm - asm-tree -- 9.5 +- 9.7 - test - - diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch index d5d9b33f1c..d9c9c0db74 100644 --- a/patches/server/0003-Build-system-changes.patch +++ b/patches/server/0003-Build-system-changes.patch @@ -20,7 +20,7 @@ index 74849d7b20e3c3831a6a6c3715a6e875d6ff8a48..ff9e7b4c4354d4475559213cdaa01728 - exclude(group = "org.apache.logging.log4j", module = "log4j-api") - } + implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion - implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.ow2.asm:asm-commons:9.7") implementation("commons-lang:commons-lang:2.6") runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") @@ -36,6 +34,7 @@ tasks.jar { @@ -111,7 +111,7 @@ index a2a8bce29ec5540de89095574dfdc0ca9b17bbd3..d92cd89373f8373c367ce422328b9836 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index dc1021186ad4c4db26fb498e58ddec06f8bc1cf6..96210dd54e8ff6dc0375a8d03bf14fec1b26aaeb 100644 +index 2930f37c663a1824a2d38df8e4b679aa6adbd870..67d347741db1c5a9a6568ee084388a59e35b16ea 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 { diff --git a/patches/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch index 29d1714a03..b13f9277b7 100644 --- a/patches/server/0004-Test-changes.patch +++ b/patches/server/0004-Test-changes.patch @@ -10,8 +10,8 @@ index ff9e7b4c4354d4475559213cdaa01728601859fa..5304f5de52a76eee876ac8f0b2834a93 +++ b/build.gradle.kts @@ -23,6 +23,7 @@ dependencies { testImplementation("org.hamcrest:hamcrest:2.2") - testImplementation("org.mockito:mockito-core:5.5.0") - testImplementation("org.ow2.asm:asm-tree:9.5") + testImplementation("org.mockito:mockito-core:5.11.0") + testImplementation("org.ow2.asm:asm-tree:9.7") + testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // Paper - CartesianTest } diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 8222616c5e..21f0044039 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -21,7 +21,7 @@ index beb50d67ea2c1933a115766627b2adabd2032929..b8970d0064b9b64e1c50ab373818c386 @@ -11,6 +11,7 @@ dependencies { implementation("jline:jline:2.12.1") implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion - implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.ow2.asm:asm-commons:9.7") + implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files implementation("commons-lang:commons-lang:2.6") runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") @@ -4847,7 +4847,7 @@ index 602964d92ddf9e4ec47ed3cb45787fdd061a881e..66550ce5cc83534af8dcac338db5cd4c String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName); LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath()); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index dafeae664880f6da2f1aa0d9b4fbd743ed9b5572..15bdddae68db770690ddfcb19c7ecdbedbfa8cb7 100644 +index 42da710d18063aed6fd450fe31277d7daf0542c1..62e096c9cc05c387ca2413a490f44c6c66a5c41e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -295,6 +295,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a038920172102f5ad4ceb77abef4f7b61fca5862..ea73e8a04ee767625d06483dce83d68262887a27 100644 +index cb0d7779a2eeadca49a99ab31217b27f5fd49e4c..864da662a81b653cd94e2270be262e912e351e21 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -259,6 +259,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -7249,7 +7249,7 @@ index 3c707d6674b2594b09503b959a31c1f4ad3981e6..db61b6b0158a9bcc0e1d735e34fe3671 public BlockState getBlockState(BlockPos pos) { return Blocks.AIR.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 00ddf94c5bade8c0c486337ce920f59d63cb64e2..d89431b476b032f3ff86097bb91b86016d4e3371 100644 +index bd9ea2bd012cdcf07ac322b3e0360c6c336ab1f9..bede1a64e4f04aa8e87ddb44f2cc4a1ab46a3b81 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -93,6 +93,7 @@ import org.bukkit.craftbukkit.CraftServer; @@ -7340,7 +7340,7 @@ index 00ddf94c5bade8c0c486337ce920f59d63cb64e2..d89431b476b032f3ff86097bb91b8601 return this.setBlock(pos, state, flags, 512); } -@@ -555,7 +597,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -556,7 +598,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (this.isOutsideBuildHeight(pos)) { return Blocks.VOID_AIR.defaultBlockState(); } else { @@ -7773,10 +7773,10 @@ index 2cc1871c81056acd0582184bb684e672d14d3b6f..5cf26c39b00ea1f7b1c5719f434af79f + } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index fcf06c157fa8ecdb742c301a95da8489e951ea20..1ce9787b04e28b3a50fdc7779a430c3be60a7646 100644 +index 0630680d1ff7ffd2e9c323a800213b1137817642..f012ba9c55241afb159136e8b55e774047efa2c8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -251,8 +251,8 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -252,8 +252,8 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public Chunk[] getLoadedChunks() { @@ -7787,7 +7787,7 @@ index fcf06c157fa8ecdb742c301a95da8489e951ea20..1ce9787b04e28b3a50fdc7779a430c3b } @Override -@@ -327,7 +327,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -328,7 +328,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean refreshChunk(int x, int z) { @@ -7796,7 +7796,7 @@ index fcf06c157fa8ecdb742c301a95da8489e951ea20..1ce9787b04e28b3a50fdc7779a430c3b if (playerChunk == null) return false; playerChunk.getTickingChunkFuture().thenAccept(either -> { -@@ -2055,4 +2055,55 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2075,4 +2075,55 @@ public class CraftWorld extends CraftRegionAccessor implements World { return this.spigot; } // Spigot end @@ -8177,7 +8177,7 @@ index 0000000000000000000000000000000000000000..909b2c98e7a9117d2f737245e4661792 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index a2eb1e6dc8218157c1a5bbd769dd3b1d881fddb6..56c3aa7647eb2890cf7f546d35002b0c43724500 100644 +index 09b3bfa3ad0cf060b126cffd1de1032bc329cb44..30f0c671464e2d4557845f150d8d18bfcd645e14 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -107,8 +107,17 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index f778dc3ba4..f1810399dd 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -2667,7 +2667,7 @@ index a5578cbce2d1d39ba3315e53425d5323e6823a65..7a036c08fa67504d06c8f72a32c22814 @Override diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0c77b4b201f6586b4d143ce2c3e710bf9d276a20..3691fd58c7baf98b15c50fa4dacf3a35f4f9b4b8 100644 +index 4035faedd9f5f72f262822a9f050178d99be06e4..4c18491a627e66297627abbded1af48b2026e610 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -191,6 +191,7 @@ import org.bukkit.craftbukkit.SpigotTimings; // Spigot @@ -2727,7 +2727,7 @@ index 0c77b4b201f6586b4d143ce2c3e710bf9d276a20..3691fd58c7baf98b15c50fa4dacf3a35 this.motd = motd; } -@@ -2439,23 +2450,28 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop spawnCategoryLimit = new Object2IntOpenHashMap<>(); private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftWorld.DATA_TYPE_REGISTRY); @@ -3588,7 +3588,7 @@ index 1ce9787b04e28b3a50fdc7779a430c3be60a7646..8ff8d8174cd32d25b33c2e773d30c474 private static final Random rand = new Random(); -@@ -1659,6 +1660,42 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1679,6 +1680,42 @@ public class CraftWorld extends CraftRegionAccessor implements World { entityTracker.broadcastAndSend(packet); } } @@ -3631,7 +3631,7 @@ index 1ce9787b04e28b3a50fdc7779a430c3be60a7646..8ff8d8174cd32d25b33c2e773d30c474 private static Map> gamerules; public static synchronized Map> getGameRulesNMS() { -@@ -2105,5 +2142,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2125,5 +2162,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { public void setSendViewDistance(final int viewDistance) { throw new UnsupportedOperationException("Not implemented yet"); } @@ -3651,7 +3651,7 @@ index 1ce9787b04e28b3a50fdc7779a430c3be60a7646..8ff8d8174cd32d25b33c2e773d30c474 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 02060584892d630d91f58e864ed34656ee738572..5158d536de16c93358d1b335b0fcfbe0d6ce848e 100644 +index 6f9196120177104c6e689ff1d39a06f91d04b0c8..c513d932e0c455401bbe53d13779df0e4bda16ec 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 { @@ -4039,7 +4039,7 @@ index 1e82312c24cb752d63b165926861fc178cd7849b..7f22950ae61436e91a59cd29a345809c + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java -index 24052b8102061c6fbf01b3e9b2346ed9783787e6..f0f7fb977edb7e7009716429f007e44fa36bfcda 100644 +index 9c1063d92a49c71f4458bf1634bcf9d79302ecca..f24b4732db849893fd870b4b6a49f1c4b3eacdec 100644 --- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java @@ -147,6 +147,12 @@ public class CraftEnchantment extends Enchantment implements Handleable windowType = CraftContainer.getNotchInventoryType(inventory.getTopInventory()); @@ -4704,10 +4704,10 @@ index 5725b0281ac53a2354b233223259d6784353bc6e..9ef939b76d06874b856e0c850addb364 @Override public int getLineWidth() { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 2496f4462b35a7297dd9320c35f109d3c2a9867f..6571adf5285ab3f84513c2f5b32ff0523c2cccd6 100644 +index 8290925413aab682504e98bde5fd6845929b3541..5ee9726324591055bb5d00cf9646203fbe7cc833 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -905,7 +905,7 @@ public class CraftEventFactory { +@@ -906,7 +906,7 @@ public class CraftEventFactory { return event; } @@ -4716,7 +4716,7 @@ index 2496f4462b35a7297dd9320c35f109d3c2a9867f..6571adf5285ab3f84513c2f5b32ff052 CraftPlayer entity = victim.getBukkitEntity(); PlayerDeathEvent event = new PlayerDeathEvent(entity, drops, victim.getExpReward(), 0, deathMessage); event.setKeepInventory(keepInventory); -@@ -932,7 +932,7 @@ public class CraftEventFactory { +@@ -933,7 +933,7 @@ public class CraftEventFactory { * Server methods */ public static ServerListPingEvent callServerListPingEvent(SocketAddress address, String motd, int numPlayers, int maxPlayers) { @@ -5167,6 +5167,44 @@ index 39eb09106c1e3d00eb32b56babae751f487d6bcb..893da5266fc09e583a660bc23ac84008 @Override public boolean hasRepairCost() { return this.repairCost > 0; +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java +index 49752459ad67db3182c6d6d30ab91f2a420847a8..147950b8a1c853e1b52fdb29b26e839c2dd7bd01 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java +@@ -41,6 +41,14 @@ public class CraftTrimMaterial implements TrimMaterial, Handleable { - if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerCommonPacketListenerImpl && ((ServerCommonPacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590 + if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players if (listener.shouldHandleMessage(packet)) { - try { + co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings @@ -714,7 +714,7 @@ index daedf825e68655492f5ab776bc206a5eb87c0170..7de24c39b460e43d27839b3821e67213 } catch (Exception exception) { label25: diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3691fd58c7baf98b15c50fa4dacf3a35f4f9b4b8..a6a8b5079ceaad90a79a09cab5c38a6fde6d33ee 100644 +index 4c18491a627e66297627abbded1af48b2026e610..3365d2ec8426888c16873a311226fa69840fa2f0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -186,7 +186,7 @@ import org.bukkit.craftbukkit.Main; @@ -1315,7 +1315,7 @@ index 5e00df1cd2b8a6691b2f9490b1f4c3ed4d6a988a..72488b0d499e4e0d0ccba38622cc5a3f 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 01c2ccb29dd74655ef65cc29ff2cafe6b467e5a5..cdb4acbaf019608c57d7a40c6928ddc9c00fd1d5 100644 +index 17e489c4650ba421a993c863426f1a2084d44fb0..360e322ee298048bd280160a49f000384d930c3a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -135,7 +135,6 @@ import org.bukkit.craftbukkit.event.CraftPortalEvent; @@ -1393,7 +1393,7 @@ index c4bc491eed487c0a7e30538b0fb46fde91cd7b31..382b55167dede435b034866bd394455f } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ea73e8a04ee767625d06483dce83d68262887a27..5ae9f9a4cb903909cb26a612a847d12515c52d91 100644 +index 864da662a81b653cd94e2270be262e912e351e21..da755e478d2ab1444c92afd0d916589b2e6f4df4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -142,7 +142,7 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -1474,7 +1474,7 @@ index ea73e8a04ee767625d06483dce83d68262887a27..5ae9f9a4cb903909cb26a612a847d125 if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { this.hurt(this.damageSources().drown(), 1.0F); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index d89431b476b032f3ff86097bb91b86016d4e3371..aa22d4024cdd0ecb1c0442ecdeae00822597362e 100644 +index bede1a64e4f04aa8e87ddb44f2cc4a1ab46a3b81..d02cc220c8bd59a1289f34fd9fb70a00b0fbc07a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -91,7 +91,6 @@ import org.bukkit.Bukkit; @@ -1503,7 +1503,7 @@ index d89431b476b032f3ff86097bb91b86016d4e3371..aa22d4024cdd0ecb1c0442ecdeae0082 this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime); this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); } -@@ -725,15 +724,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -726,15 +725,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.timings.tileEntityTick.stopTiming(); // Spigot this.tickingBlockEntities = false; @@ -2019,7 +2019,7 @@ index f97eccb6a17c7876e1e002d798eb67bbe80571a0..76effc345d362047e64d064eb64a5222 + } // Paper } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 8db0df55c5e23657b3a99a56fefb8e7419618c16..5e541636b216d4f46be18b1031522bd92e667b67 100644 +index ea994c34e1ca725eae4d05223fc09fc1308b0730..d72e6ebc8b7b002279ba61c30b5a42f8cd5b3b7b 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -214,6 +214,12 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -2035,7 +2035,7 @@ index 8db0df55c5e23657b3a99a56fefb8e7419618c16..5e541636b216d4f46be18b1031522bd9 public static byte toLegacyData(BlockState data) { return CraftLegacy.toLegacyData(data); -@@ -457,6 +463,12 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -462,6 +468,12 @@ public final class CraftMagicNumbers implements UnsafeValues { public DamageSource.Builder createDamageSourceBuilder(DamageType damageType) { return new CraftDamageSourceBuilder(damageType); } diff --git a/patches/server/0027-Implement-Paper-VersionChecker.patch b/patches/server/0027-Implement-Paper-VersionChecker.patch index 11cae67520..5f32648869 100644 --- a/patches/server/0027-Implement-Paper-VersionChecker.patch +++ b/patches/server/0027-Implement-Paper-VersionChecker.patch @@ -140,10 +140,10 @@ index 0000000000000000000000000000000000000000..22a55be34fde453fedd987173d95b8b3 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 5e541636b216d4f46be18b1031522bd92e667b67..d11773ed44936f8836f2f8e582d5e9573af5b439 100644 +index d72e6ebc8b7b002279ba61c30b5a42f8cd5b3b7b..82d862432d061f8f1809647d9eecfff38a6311d4 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -468,6 +468,11 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -473,6 +473,11 @@ public final class CraftMagicNumbers implements UnsafeValues { public String getTimingsServerName() { return io.papermc.paper.configuration.GlobalConfiguration.get().timings.serverName; } diff --git a/patches/server/0033-Prevent-block-entity-and-entity-crashes.patch b/patches/server/0033-Prevent-block-entity-and-entity-crashes.patch index c08c35d2fe..e2f119f399 100644 --- a/patches/server/0033-Prevent-block-entity-and-entity-crashes.patch +++ b/patches/server/0033-Prevent-block-entity-and-entity-crashes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent block entity and entity crashes diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9cfc60863caeaa1fd0df153889cadd88fef9e111..3442bfe428f6d0655082468f281cbda97f88f6ea 100644 +index 953ff52b6e6397a8f81b0935fc2fb8cfadf5cf40..eb6bf467c92cb04c9f1ffcde0b5df64e9a160d59 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -734,11 +734,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -735,11 +735,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { try { tickConsumer.accept(entity); } catch (Throwable throwable) { diff --git a/patches/server/0048-Disable-spigot-tick-limiters.patch b/patches/server/0048-Disable-spigot-tick-limiters.patch index 4326d4ee93..57aa7d7317 100644 --- a/patches/server/0048-Disable-spigot-tick-limiters.patch +++ b/patches/server/0048-Disable-spigot-tick-limiters.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable spigot tick limiters diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 7ead83d46e7bb3ee3586acf695b08f197f61f04a..6fbadd278138743f87fcf6b3c3d3c57af41d437c 100644 +index 673141ab586057b2d05b3921cc4d42b4f5e049ab..3f910b1712c41e91de99ad00a90e0f3081f94deb 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -707,9 +707,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -708,9 +708,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { boolean flag = this.tickRateManager().runsNormally(); int tilesThisCycle = 0; diff --git a/patches/server/0059-Add-exception-reporting-event.patch b/patches/server/0059-Add-exception-reporting-event.patch index 5ca616d57f..76f15e2d28 100644 --- a/patches/server/0059-Add-exception-reporting-event.patch +++ b/patches/server/0059-Add-exception-reporting-event.patch @@ -81,10 +81,10 @@ index c6fb4c33d7ea52b88d8fc0d90748cbab7387c565..2b5b2869589991be37a4f128faabbff5 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c74102a53daab92f0d7d4d7619af0e3264322847..3452010631eede3907b29b9f76ba12c9c6808b6f 100644 +index 3f910b1712c41e91de99ad00a90e0f3081f94deb..b91df88036d3ec2579883a9c65a7b80d4c0be81b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -736,6 +736,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -737,6 +737,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Paper start - Prevent block entity and entity crashes final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ()); MinecraftServer.LOGGER.error(msg, throwable); diff --git a/patches/server/0061-Add-methods-for-working-with-arrows-stuck-in-living-.patch b/patches/server/0061-Add-methods-for-working-with-arrows-stuck-in-living-.patch index 59051e3b97..5fb20edd00 100644 --- a/patches/server/0061-Add-methods-for-working-with-arrows-stuck-in-living-.patch +++ b/patches/server/0061-Add-methods-for-working-with-arrows-stuck-in-living-.patch @@ -7,10 +7,10 @@ Upstream added methods for this, original methods are now deprecated diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index a73a5a8291ddd954f2c7b73a4895933e715c5d68..4636e1ebf11025a551d398a6594b1506748a8390 100644 +index 844a97b0eb396835ec72b4d14c9362a2ea2a8709..75dccbdde0d116ef194aa2ced328ad3c3992204e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -267,10 +267,29 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -283,10 +283,29 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } @Override @@ -41,7 +41,7 @@ index a73a5a8291ddd954f2c7b73a4895933e715c5d68..4636e1ebf11025a551d398a6594b1506 @Override public void damage(double amount) { -@@ -799,4 +818,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -815,4 +834,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { this.getHandle().persistentInvisibility = invisible; this.getHandle().setSharedFlag(5, invisible); } diff --git a/patches/server/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/server/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch index 1f83f8eee2..d01a3c66bf 100644 --- a/patches/server/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch +++ b/patches/server/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener Saves on some object allocation and processing when no plugin listens to this diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index cc2775d94f3b6ebd7f97e14e324bf292d5874de4..a4df17bf15ac8e427039428f947df4f08c746de6 100644 +index 001592ec2ec34a744713d4d6c95a00955889facd..72ddebd40c2b29e0c6e069d62ed206c29ad5fa6b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1457,6 +1457,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a127acc6c44bfd078e06c74b408d62df6e85d1fe..5975cc2fa72609ea5f3e6f99155d6e5bc321a321 100644 +index ea4eacf66651798185e1c445979a465e173571d0..1c3b12692094c1eaa086ebb2f060b22aaf9d9b39 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -30,10 +30,10 @@ index a127acc6c44bfd078e06c74b408d62df6e85d1fe..5975cc2fa72609ea5f3e6f99155d6e5b public LevelChunk getChunkIfLoaded(int x, int z) { return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c3138a2ff6446fb72d9eb1bd31f851d7df6b94f2..61056b2873a58bf8d0f70e39022ded4b1fcbc5a5 100644 +index 2ad3c16bf36972ff55269612f02cdb4f558f35b7..424377f062c6443460a9814feb8b90e7bef71c6a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -496,7 +496,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -497,7 +497,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam CraftWorld world = ((ServerLevel) this).getWorld(); diff --git a/patches/server/0080-Add-PlayerUseUnknownEntityEvent.patch b/patches/server/0080-Add-PlayerUseUnknownEntityEvent.patch index ec19e93768..6b9696541f 100644 --- a/patches/server/0080-Add-PlayerUseUnknownEntityEvent.patch +++ b/patches/server/0080-Add-PlayerUseUnknownEntityEvent.patch @@ -59,10 +59,10 @@ index 37cba1e693490e42908f45dc68e60ac3afebbb49..801e1727bd291f647c91e2c325810ead @Override diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6571adf5285ab3f84513c2f5b32ff0523c2cccd6..c8f20543cb7f69af010e3fd53f31b7253426f2d0 100644 +index 5ee9726324591055bb5d00cf9646203fbe7cc833..8de2f4ca83017d37c63d33c6283078a71143f077 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1850,4 +1850,13 @@ public class CraftEventFactory { +@@ -1856,4 +1856,13 @@ public class CraftEventFactory { Bukkit.getPluginManager().callEvent(new EntityRemoveEvent(entity.getBukkitEntity(), cause)); } diff --git a/patches/server/0090-remove-null-possibility-for-getServer-singleton.patch b/patches/server/0090-remove-null-possibility-for-getServer-singleton.patch index 928828b9e7..935454baa7 100644 --- a/patches/server/0090-remove-null-possibility-for-getServer-singleton.patch +++ b/patches/server/0090-remove-null-possibility-for-getServer-singleton.patch @@ -6,7 +6,7 @@ Subject: [PATCH] remove null possibility for getServer singleton to stop IDE complaining about potential NPE diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 866ff31a6057eda7612cfa48c0028fb988deed64..2c500fed04982c502b3e6fb1687b38bfaaa37f69 100644 +index 677ce578af9da4b512bad47fe54625305e99c7e4..20ee0fd8f5a808436fae60b64fc3e8966146ba71 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -190,6 +190,7 @@ import co.aikar.timings.MinecraftTimings; // Paper @@ -25,7 +25,7 @@ index 866ff31a6057eda7612cfa48c0028fb988deed64..2c500fed04982c502b3e6fb1687b38bf this.metricsRecorder = InactiveMetricsRecorder.INSTANCE; this.profiler = this.metricsRecorder.getProfiler(); this.onMetricsRecordingStopped = (methodprofilerresults) -> { -@@ -2430,9 +2432,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop pendingBlockEntityTickers = Lists.newArrayList(); private boolean tickingBlockEntities; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 8ff8d8174cd32d25b33c2e773d30c474b4e903d3..07aac886235e18a29420c494380e6b26bfa8f36e 100644 +index 95b3bcd4cfcedc358096831bc59a7effd186a063..aac9eee069b16ab70b7553c6c324149011c94f8e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -163,6 +163,56 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -164,6 +164,56 @@ public class CraftWorld extends CraftRegionAccessor implements World { private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftWorld.DATA_TYPE_REGISTRY); private net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers diff --git a/patches/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch index 257a90e0ce..8e2b8a4474 100644 --- a/patches/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/patches/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -58,7 +58,7 @@ index 1219b12750edb855df0962d14d7f3c1859d78b2e..511dfff4870c197b6f69169cc0504ef0 + alsoShade(log4jPlugins.output) + // Paper end implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion - implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.ow2.asm:asm-commons:9.7") implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files @@ -75,7 +96,7 @@ relocation { } @@ -250,7 +250,7 @@ index 8323f135d6bf2e1f12525e05094ffa3f2420e7e1..a143ea1e58464a3122fbd8ccafe417bd } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1d8e17f4b862e71cc5ef8c5eabfb80dc427aec51..6587cd9ea257d0f6f1308ea8ca4d0245178b2870 100644 +index 48513e585ce02c301983adbe1224e95ff7f9a345..22b9d4bebee30877225b08b46cec6084b12a9c5a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -155,7 +155,7 @@ import org.slf4j.Logger; diff --git a/patches/server/0136-Shoulder-Entities-Release-API.patch b/patches/server/0136-Shoulder-Entities-Release-API.patch index eb728998dd..878ba52040 100644 --- a/patches/server/0136-Shoulder-Entities-Release-API.patch +++ b/patches/server/0136-Shoulder-Entities-Release-API.patch @@ -59,10 +59,10 @@ index 7429df8c6f29f7216e33cde3226424936de97cf9..4bbf8bb418e3585be2efce5d9a8785fa @Override public abstract boolean isSpectator(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 52222f15399f2e1828f93b0f69e34157e3abff23..e6b16e3db7a197c7af0c4fdb782749c3c3f37538 100644 +index 4d92ca5b580e66e78b592bc0de1078dc10a85f39..2cb3c0b96b769c395f7fecbeebba0ff2a33b692d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -516,6 +516,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -513,6 +513,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { this.getHandle().getCooldowns().addCooldown(CraftItemType.bukkitToMinecraft(material), ticks); } diff --git a/patches/server/0145-LivingEntity-setKiller.patch b/patches/server/0145-LivingEntity-setKiller.patch index ece70c37de..24334c96fd 100644 --- a/patches/server/0145-LivingEntity-setKiller.patch +++ b/patches/server/0145-LivingEntity-setKiller.patch @@ -7,10 +7,10 @@ Subject: [PATCH] LivingEntity#setKiller public net.minecraft.world.entity.LivingEntity lastHurtByPlayerTime diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 4636e1ebf11025a551d398a6594b1506748a8390..82773a05783b731e2f7bd00c8ec68090d15a7b66 100644 +index 75dccbdde0d116ef194aa2ced328ad3c3992204e..19f8cfe1146374169208f26632763a882291431c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -390,6 +390,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -406,6 +406,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return this.getHandle().lastHurtByPlayer == null ? null : (Player) this.getHandle().lastHurtByPlayer.getBukkitEntity(); } diff --git a/patches/server/0158-Fix-MC-117075-Block-entity-unload-lag-spike.patch b/patches/server/0158-Fix-MC-117075-Block-entity-unload-lag-spike.patch index caff68b415..e5c5e50cd1 100644 --- a/patches/server/0158-Fix-MC-117075-Block-entity-unload-lag-spike.patch +++ b/patches/server/0158-Fix-MC-117075-Block-entity-unload-lag-spike.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix MC-117075: Block entity unload lag spike diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0045016cd22c34168c4ae5f2fe951d536394be9a..c8914696785d0d6c451d598616a83c316f611aad 100644 +index 7800276dea6176ed489809d589b850252fc9333b..79588b6535eb6e0d21bedc1fc5e939903b450e2f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -729,6 +729,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -730,6 +730,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { boolean flag = this.tickRateManager().runsNormally(); int tilesThisCycle = 0; @@ -17,7 +17,7 @@ index 0045016cd22c34168c4ae5f2fe951d536394be9a..c8914696785d0d6c451d598616a83c31 for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0; TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(this.tileTickPosition); -@@ -737,12 +739,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -738,12 +740,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (tickingblockentity.isRemoved()) { // Spigot start tilesThisCycle--; diff --git a/patches/server/0159-use-CB-BlockState-implementations-for-captured-block.patch b/patches/server/0159-use-CB-BlockState-implementations-for-captured-block.patch index 680b5186c3..30982f3423 100644 --- a/patches/server/0159-use-CB-BlockState-implementations-for-captured-block.patch +++ b/patches/server/0159-use-CB-BlockState-implementations-for-captured-block.patch @@ -18,7 +18,7 @@ the blockstate that will be valid for restoration, as opposed to dropping information on restoration when the event is cancelled. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c8914696785d0d6c451d598616a83c316f611aad..8a7276f83744252ac5a418f9acb219e02c508b2f 100644 +index 79588b6535eb6e0d21bedc1fc5e939903b450e2f..232281b12fb1970fae82ce8fd3ffe1586d02bfb3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -152,7 +152,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -39,7 +39,7 @@ index c8914696785d0d6c451d598616a83c316f611aad..8a7276f83744252ac5a418f9acb219e0 if (blockstate == null) { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); this.capturedBlockStates.put(pos.immutable(), blockstate); -@@ -410,7 +410,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -411,7 +411,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start - capture blockstates boolean captured = false; if (this.captureBlockStates && !this.capturedBlockStates.containsKey(pos)) { @@ -49,7 +49,7 @@ index c8914696785d0d6c451d598616a83c316f611aad..8a7276f83744252ac5a418f9acb219e0 this.capturedBlockStates.put(pos.immutable(), blockstate); captured = true; } -@@ -611,7 +612,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -612,7 +613,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public BlockState getBlockState(BlockPos pos) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { diff --git a/patches/server/0182-Add-openSign-method-to-HumanEntity.patch b/patches/server/0182-Add-openSign-method-to-HumanEntity.patch index 73acd70a6b..1efbc4888d 100644 --- a/patches/server/0182-Add-openSign-method-to-HumanEntity.patch +++ b/patches/server/0182-Add-openSign-method-to-HumanEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add openSign method to HumanEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index e6b16e3db7a197c7af0c4fdb782749c3c3f37538..092d2bfab7e8fd9840e853f09adc85311ab29046 100644 +index 2cb3c0b96b769c395f7fecbeebba0ff2a33b692d..5d69945e6428c04a4b89c7469de905ed05d9dfc0 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 { +@@ -623,6 +623,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { } } diff --git a/patches/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch index 336526462f..946d5a374a 100644 --- a/patches/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/patches/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -10,7 +10,7 @@ Adds an option to control the force mode of the particle. This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6cadfd678f1b2323a763ffd9220de7394620328b..180a9ade7bbc84d8c64b6c92583ba870464c23a5 100644 +index d2266bc75f2c1b0b02405eea0711a7b53d1a9e7a..256b9c6cbf52c252f8174d0aa74e1270fb092ae9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1503,12 +1503,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -34,10 +34,10 @@ index 6cadfd678f1b2323a763ffd9220de7394620328b..180a9ade7bbc84d8c64b6c92583ba870 if (this.sendParticles(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 07aac886235e18a29420c494380e6b26bfa8f36e..012c0bf4f824543d475e97e0edb6c4fe88d046e5 100644 +index aac9eee069b16ab70b7553c6c324149011c94f8e..1480fbf52f9eb11892886b99a76a971cabb72c92 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1932,13 +1932,20 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1952,13 +1952,20 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) { diff --git a/patches/server/0192-WitchReadyPotionEvent.patch b/patches/server/0192-WitchReadyPotionEvent.patch index b01cacf58e..bbc7fb8788 100644 --- a/patches/server/0192-WitchReadyPotionEvent.patch +++ b/patches/server/0192-WitchReadyPotionEvent.patch @@ -22,10 +22,10 @@ index 96a87db9f8976d3f1ff09beb9598db31fff72d5b..25a1edf64602a13c07779e58b167a847 this.setUsingItem(true); if (!this.isSilent()) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index c1f3086d37e2959bbcc23bc1b779215bc35c99c4..096e80bb71d10c897a20bb3c0b4b761328c9f56e 100644 +index 2bcac771a37b3e5d3b7173e24dad7823fb29757c..203b6539c55b74484cff476b6472f44ed56112c9 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1896,4 +1896,14 @@ public class CraftEventFactory { +@@ -1902,4 +1902,14 @@ public class CraftEventFactory { ).callEvent(); } // Paper end - PlayerUseUnknownEntityEvent diff --git a/patches/server/0199-Make-shield-blocking-delay-configurable.patch b/patches/server/0199-Make-shield-blocking-delay-configurable.patch index 1c6990bb95..ae7ebd4f8e 100644 --- a/patches/server/0199-Make-shield-blocking-delay-configurable.patch +++ b/patches/server/0199-Make-shield-blocking-delay-configurable.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make shield blocking delay configurable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bbf3286cb69f931be528726e45784eec9f8e0af3..21bef887193c777ec1e311b3bf5c0213180ea4ca 100644 +index 4af3e59b9ad84aaf1a5dd8f1373b781233ba07d6..7810739098ee52efafbbd5355d4d16dadcb5ac35 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3828,12 +3828,24 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -35,10 +35,10 @@ index bbf3286cb69f931be528726e45784eec9f8e0af3..21bef887193c777ec1e311b3bf5c0213 return this.isShiftKeyDown(); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index a2b2c3da97979b1684ec48934f82a784f1e63b6b..ccd2880da35263d1d16597eba2ec35b8b343cb5d 100644 +index 19f8cfe1146374169208f26632763a882291431c..1c6abeff5b541cdea914ac956f2ab1d2e1c5769f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -839,5 +839,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -855,5 +855,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { public void setArrowsStuck(final int arrows) { this.getHandle().setArrowCount(arrows); } diff --git a/patches/server/0203-Expand-Explosions-API.patch b/patches/server/0203-Expand-Explosions-API.patch index c181cd3402..6fea443e03 100644 --- a/patches/server/0203-Expand-Explosions-API.patch +++ b/patches/server/0203-Expand-Explosions-API.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expand Explosions API Add Entity as a Source capability, and add more API choices, and on Location. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 012c0bf4f824543d475e97e0edb6c4fe88d046e5..b5bf92b668be5bdbd6af722929aee28eb1bf5ffa 100644 +index 1480fbf52f9eb11892886b99a76a971cabb72c92..afdba543388f5f2e194add0e988f8515db24f76e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -735,6 +735,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -755,6 +755,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source) { return !this.world.explode(source == null ? null : ((CraftEntity) source).getHandle(), x, y, z, power, setFire, breakBlocks ? net.minecraft.world.level.Level.ExplosionInteraction.MOB : net.minecraft.world.level.Level.ExplosionInteraction.NONE).wasCanceled; } diff --git a/patches/server/0204-LivingEntity-Active-Item-API.patch b/patches/server/0204-LivingEntity-Active-Item-API.patch new file mode 100644 index 0000000000..e50ff8549c --- /dev/null +++ b/patches/server/0204-LivingEntity-Active-Item-API.patch @@ -0,0 +1,53 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Fri, 29 Jun 2018 00:21:28 -0400 +Subject: [PATCH] LivingEntity Active Item API + +API relating to items being actively used by a LivingEntity +such as a bow or eating food. + +Co-authored-by: Jake Potrebic + +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +index 1c6abeff5b541cdea914ac956f2ab1d2e1c5769f..de52fdc1c94f69de7c5c5099fc586fdeba60b6fa 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +@@ -866,4 +866,38 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { + getHandle().setShieldBlockingDelay(delay); + } + // Paper end ++ ++ // Paper start - active item API ++ @Override ++ public ItemStack getActiveItem() { ++ return this.getHandle().getUseItem().asBukkitMirror(); ++ } ++ ++ @Override ++ public int getActiveItemRemainingTime() { ++ return this.getHandle().getUseItemRemainingTicks(); ++ } ++ ++ @Override ++ public void setActiveItemRemainingTime(final int ticks) { ++ Preconditions.checkArgument(ticks >= 0, "ticks must be >= 0"); ++ Preconditions.checkArgument(ticks <= this.getHandle().getUseItem().getUseDuration(), "ticks must be <= item use duration"); ++ this.getHandle().useItemRemaining = ticks; ++ } ++ ++ @Override ++ public int getActiveItemUsedTime() { ++ return this.getHandle().getTicksUsingItem(); ++ } ++ ++ @Override ++ public boolean hasActiveItem() { ++ return this.getHandle().isUsingItem(); ++ } ++ ++ @Override ++ public org.bukkit.inventory.EquipmentSlot getActiveItemHand() { ++ return org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(this.getHandle().getUsedItemHand()); ++ } ++ // Paper end - active item API + } diff --git a/patches/server/0204-LivingEntity-Hand-Raised-Item-Use-API.patch b/patches/server/0204-LivingEntity-Hand-Raised-Item-Use-API.patch deleted file mode 100644 index 586af96db3..0000000000 --- a/patches/server/0204-LivingEntity-Hand-Raised-Item-Use-API.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Fri, 29 Jun 2018 00:21:28 -0400 -Subject: [PATCH] LivingEntity Hand Raised/Item Use API - -How long an entity has raised hands to charge an attack or use an item - -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index ca92ece290c6dd164b3ba2ba46289350ae6829e8..8ac3beab73904db7362caa3054994b214c997cf7 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -849,5 +849,30 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - public void setShieldBlockingDelay(int delay) { - getHandle().setShieldBlockingDelay(delay); - } -+ -+ @Override -+ public ItemStack getActiveItem() { -+ return getHandle().getUseItem().asBukkitMirror(); -+ } -+ -+ @Override -+ public int getItemUseRemainingTime() { -+ return getHandle().getUseItemRemainingTicks(); -+ } -+ -+ @Override -+ public int getHandRaisedTime() { -+ return getHandle().getTicksUsingItem(); -+ } -+ -+ @Override -+ public boolean isHandRaised() { -+ return getHandle().isUsingItem(); -+ } -+ -+ @Override -+ public org.bukkit.inventory.EquipmentSlot getHandRaised() { -+ return getHandle().getUsedItemHand() == net.minecraft.world.InteractionHand.MAIN_HAND ? org.bukkit.inventory.EquipmentSlot.HAND : org.bukkit.inventory.EquipmentSlot.OFF_HAND; -+ } - // Paper end - } diff --git a/patches/server/0207-Implement-World.getEntity-UUID-API.patch b/patches/server/0207-Implement-World.getEntity-UUID-API.patch index 9f5b8131e3..20b2476bf6 100644 --- a/patches/server/0207-Implement-World.getEntity-UUID-API.patch +++ b/patches/server/0207-Implement-World.getEntity-UUID-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement World.getEntity(UUID) API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index b5bf92b668be5bdbd6af722929aee28eb1bf5ffa..3fe84fa65961dff58a416f7262c8b8ce218a3b49 100644 +index afdba543388f5f2e194add0e988f8515db24f76e..3d189fd1a1ac17f1dee4af631f8ed59387c977d4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1071,6 +1071,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1091,6 +1091,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { return list; } diff --git a/patches/server/0208-InventoryCloseEvent-Reason-API.patch b/patches/server/0208-InventoryCloseEvent-Reason-API.patch index 0963978228..91a388c934 100644 --- a/patches/server/0208-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0208-InventoryCloseEvent-Reason-API.patch @@ -136,10 +136,10 @@ index c934c7614281f77376858909c86d9a1a73c8e174..83c7ba56900ce40f71d98062bf15110a this.containerMenu = this.inventoryMenu; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 092d2bfab7e8fd9840e853f09adc85311ab29046..af6f8d11f0384c353332f5c5bb0967e518deccbe 100644 +index 5d69945e6428c04a4b89c7469de905ed05d9dfc0..0886cb3367022c4ab7e4dbebafb70fc651bcb9aa 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -376,7 +376,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -379,7 +379,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { if (((ServerPlayer) this.getHandle()).connection == null) return; if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) { // fire INVENTORY_CLOSE if one already open @@ -148,7 +148,7 @@ index 092d2bfab7e8fd9840e853f09adc85311ab29046..af6f8d11f0384c353332f5c5bb0967e5 } ServerPlayer player = (ServerPlayer) this.getHandle(); AbstractContainerMenu container; -@@ -446,8 +446,14 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -449,8 +449,14 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @Override public void closeInventory() { @@ -178,10 +178,10 @@ index dbf67a52ae2e18589952b2d019b5258324ff3edc..b4212f5a5b3b1e5476f7598be165ffb1 // 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 096e80bb71d10c897a20bb3c0b4b761328c9f56e..139d9b4a290d9089ba9a6c92ddcf04e1404c1074 100644 +index 203b6539c55b74484cff476b6472f44ed56112c9..2456857cfcb3dd258781067cd7ddbe18d5f68309 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1263,7 +1263,7 @@ public class CraftEventFactory { +@@ -1264,7 +1264,7 @@ public class CraftEventFactory { public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container, boolean cancelled) { if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open @@ -190,7 +190,7 @@ index 096e80bb71d10c897a20bb3c0b4b761328c9f56e..139d9b4a290d9089ba9a6c92ddcf04e1 } CraftServer server = player.level().getCraftServer(); -@@ -1450,8 +1450,18 @@ public class CraftEventFactory { +@@ -1451,8 +1451,18 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/patches/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch index 5cc5596785..6824f8274c 100644 --- a/patches/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch +++ b/patches/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch @@ -17,10 +17,10 @@ index 1353bb583ec576345b7bfea5134c4b0d59811a07..1a3727bbd9d67c32846e7ad4bd4bc900 Iterator iterator = list.iterator(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2bd7ad1065273c2a9150b3762aff13437bf4bec0..09d62573b013590e66bbd988be1442944775090e 100644 +index 232281b12fb1970fae82ce8fd3ffe1586d02bfb3..6308aeb2129b4d3c5f51759977548279d6073ab4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -767,6 +767,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -768,6 +768,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Paper end - Prevent block entity and entity crashes } } diff --git a/patches/server/0218-Vanished-players-don-t-have-rights.patch b/patches/server/0218-Vanished-players-don-t-have-rights.patch index 3a1097f1e7..52526bd0e1 100644 --- a/patches/server/0218-Vanished-players-don-t-have-rights.patch +++ b/patches/server/0218-Vanished-players-don-t-have-rights.patch @@ -39,7 +39,7 @@ index a6638e626600e4304a973497a39e3fac52203b16..c19069f65a9ecbc9000ea4333417a2df BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(context.getLevel(), context.getClickedPos()), player, CraftBlockData.fromData(state), defaultReturn); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 09d62573b013590e66bbd988be1442944775090e..776aea2518aaa5e15bdd63f49b6948818cb9ad10 100644 +index 6308aeb2129b4d3c5f51759977548279d6073ab4..2eb80978ffc26c6250f3a96b73ee20bfea4ecd45 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -271,6 +271,45 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -89,10 +89,10 @@ index 09d62573b013590e66bbd988be1442944775090e..776aea2518aaa5e15bdd63f49b694881 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 139d9b4a290d9089ba9a6c92ddcf04e1404c1074..4498bb89b219de0d1c62950b7aa5f17fe6eab7d0 100644 +index 2456857cfcb3dd258781067cd7ddbe18d5f68309..5b2365fc9a9364f2df7e5078c9d88572c074e4e3 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1300,6 +1300,14 @@ public class CraftEventFactory { +@@ -1301,6 +1301,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/0242-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch b/patches/server/0242-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch index 5588062e09..635394d1c0 100644 --- a/patches/server/0242-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch +++ b/patches/server/0242-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 3fe84fa65961dff58a416f7262c8b8ce218a3b49..358fe6e35ab7555bbd6ae075bcec5249e09dede1 100644 +index 3d189fd1a1ac17f1dee4af631f8ed59387c977d4..fd04c5c7e08b54de65ffaf58385dcc05ef22bba0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -406,7 +406,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -407,7 +407,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean loadChunk(int x, int z, boolean generate) { org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot diff --git a/patches/server/0245-Improve-death-events.patch b/patches/server/0245-Improve-death-events.patch index 74e5a00048..50e37c3a69 100644 --- a/patches/server/0245-Improve-death-events.patch +++ b/patches/server/0245-Improve-death-events.patch @@ -80,7 +80,7 @@ index 38a3b264ba72631c27203a178ac0bbdd36e10a10..80cedd5221d3c0dc475c631113e87825 } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e8c4d42b1637752e69ea128fa7d0148bb5ffae06..39ff6dd7ee8e821f5693f6a6e01b713b25d30393 100644 +index de01edaa23fb8493faf46c02abcb47989ac9a582..7dbfc8f0e3eb54e86fef6d9bc68e082ae8cd4422 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -260,6 +260,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -455,10 +455,10 @@ index 65c56d29e04fd0853a8bfe9f943d27fe71849cc2..317fb90ad77aaaddc6a84d719de94d52 public void injectScaledMaxHealth(Collection collection, boolean force) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 4498bb89b219de0d1c62950b7aa5f17fe6eab7d0..542b9ff7d845dcebcf6569a6d4bd9e97ac3a436d 100644 +index 5b2365fc9a9364f2df7e5078c9d88572c074e4e3..449dab3d6e16b2b0fcc78c9e1b7173c822be9c53 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -891,9 +891,16 @@ public class CraftEventFactory { +@@ -892,9 +892,16 @@ public class CraftEventFactory { public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, List drops) { CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity(); EntityDeathEvent event = new EntityDeathEvent(entity, drops, victim.getExpReward()); @@ -475,7 +475,7 @@ index 4498bb89b219de0d1c62950b7aa5f17fe6eab7d0..542b9ff7d845dcebcf6569a6d4bd9e97 victim.expToDrop = event.getDroppedExp(); for (org.bukkit.inventory.ItemStack stack : event.getDrops()) { -@@ -910,8 +917,15 @@ public class CraftEventFactory { +@@ -911,8 +918,15 @@ public class CraftEventFactory { PlayerDeathEvent event = new PlayerDeathEvent(entity, drops, victim.getExpReward(), 0, deathMessage); event.setKeepInventory(keepInventory); event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel @@ -491,7 +491,7 @@ index 4498bb89b219de0d1c62950b7aa5f17fe6eab7d0..542b9ff7d845dcebcf6569a6d4bd9e97 victim.keepLevel = event.getKeepLevel(); victim.newLevel = event.getNewLevel(); -@@ -928,6 +942,31 @@ public class CraftEventFactory { +@@ -929,6 +943,31 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0258-Add-sun-related-API.patch b/patches/server/0258-Add-sun-related-API.patch index 9725c39278..c0c24f104f 100644 --- a/patches/server/0258-Add-sun-related-API.patch +++ b/patches/server/0258-Add-sun-related-API.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Add sun related API public net.minecraft.world.entity.Mob isSunBurnTick()Z diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 358fe6e35ab7555bbd6ae075bcec5249e09dede1..0cded703702e7271eec909e470fbfded17eb791f 100644 +index fd04c5c7e08b54de65ffaf58385dcc05ef22bba0..18db1aa374495a214807c5eb3ccc0213fc7c6a47 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -711,6 +711,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -731,6 +731,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { } } diff --git a/patches/server/0281-BlockDestroyEvent.patch b/patches/server/0281-BlockDestroyEvent.patch index 0842612a62..9d61b5189f 100644 --- a/patches/server/0281-BlockDestroyEvent.patch +++ b/patches/server/0281-BlockDestroyEvent.patch @@ -11,7 +11,7 @@ floating in the air. This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 181201ecd6c617cc37ba097a667bd96ae3b1823e..28ed20fc6e53490392c59b927889d78eb268b777 100644 +index 2eb80978ffc26c6250f3a96b73ee20bfea4ecd45..12809bc84aa07e724bebbc631199f352b7d7bbcb 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -26,6 +26,7 @@ import net.minecraft.nbt.CompoundTag; @@ -22,7 +22,7 @@ index 181201ecd6c617cc37ba097a667bd96ae3b1823e..28ed20fc6e53490392c59b927889d78e import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.FullChunkStatus; import net.minecraft.server.level.ServerLevel; -@@ -581,9 +582,26 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -582,9 +583,26 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return false; } else { FluidState fluid = this.getFluidState(pos); diff --git a/patches/server/0293-Optimize-Captured-BlockEntity-Lookup.patch b/patches/server/0293-Optimize-Captured-BlockEntity-Lookup.patch index f736f333bf..3070c2b195 100644 --- a/patches/server/0293-Optimize-Captured-BlockEntity-Lookup.patch +++ b/patches/server/0293-Optimize-Captured-BlockEntity-Lookup.patch @@ -10,10 +10,10 @@ Optimize to check if the captured list even has values in it, and also to just do a get call since the value can never be null. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 28ed20fc6e53490392c59b927889d78eb268b777..caf2c9799aa5ddbd5caf160e2c8f2e8f0cdaa1f8 100644 +index 12809bc84aa07e724bebbc631199f352b7d7bbcb..6d5a0aa8f8cee0897a920c2abf18efc03cad2abb 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -910,9 +910,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -911,9 +911,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Nullable public BlockEntity getBlockEntity(BlockPos blockposition, boolean validate) { diff --git a/patches/server/0294-Add-Heightmap-API.patch b/patches/server/0294-Add-Heightmap-API.patch index 80731d3922..fe436cb894 100644 --- a/patches/server/0294-Add-Heightmap-API.patch +++ b/patches/server/0294-Add-Heightmap-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Heightmap API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0cded703702e7271eec909e470fbfded17eb791f..83530c6823710e387f453898fc0d81392cd2fcd8 100644 +index 18db1aa374495a214807c5eb3ccc0213fc7c6a47..4001a8c13ceed6037174bb81fd06d9758fa0336c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -228,6 +228,29 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -229,6 +229,29 @@ public class CraftWorld extends CraftRegionAccessor implements World { return CraftBlock.at(this.world, new BlockPos(x, y, z)); } diff --git a/patches/server/0299-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/patches/server/0299-Configurable-Keep-Spawn-Loaded-range-per-world.patch index 1bd19d7c9f..38dda4ebd6 100644 --- a/patches/server/0299-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/patches/server/0299-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable Keep Spawn Loaded range per world This lets you disable it for some worlds and lower it for others. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ddbe9061b518711ed4bb2e30a90817293fd7fb7d..7263a7f8b01c6afdaf67cfd6cc67f6a45c0aee08 100644 +index 21baf9139a652f21af81e775c4a0cfd3f2a81923..46386befc7c76788bdd136f7d7b4eb8e1e5d19b9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -768,30 +768,33 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 623c7304a6849e994e22cd559177d9de0dd2f4c4..ee9bb75f2850bf421cc8ff02aca5b230538d6503 100644 +index d8a7287849407c4756d4ebe4b55c358970320ce3..f21bff10aa56b418b1c3c3f1a40b88c4e992c26d 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -201,23 +201,27 @@ public class Main { @@ -20,8 +20,8 @@ index 623c7304a6849e994e22cd559177d9de0dd2f4c4..ee9bb75f2850bf421cc8ff02aca5b230 - System.err.println("Unsupported Java detected (" + javaVersion + "). This version of Minecraft requires at least Java 17. Check your Java version with the command 'java -version'."); - return; - } -- if (javaVersion > 65.0) { -- System.err.println("Unsupported Java detected (" + javaVersion + "). Only up to Java 21 is supported."); +- if (javaVersion > 66.0) { +- System.err.println("Unsupported Java detected (" + javaVersion + "). Only up to Java 22 is supported."); + boolean isOldVersion = javaVersion < 61.0; + if (!skip && isOldVersion) { + System.err.println("Unsupported Java detected (" + javaVersion + "). This version of Minecraft requires at least Java 17. Check your Java version with the command 'java -version'. For more info see https://docs.papermc.io/misc/java-install"); diff --git a/patches/server/0328-Entity-Jump-API.patch b/patches/server/0328-Entity-Jump-API.patch index 676ae3c4cc..4a9bec8fff 100644 --- a/patches/server/0328-Entity-Jump-API.patch +++ b/patches/server/0328-Entity-Jump-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Entity Jump API public net.minecraft.world.entity.LivingEntity jumping diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 40ad459823268af0e57a348d241ac19bb576683a..f441d7a1188cecd91206d78b58457c330e4e8663 100644 +index 169a9aa06350dccf2624534754be3a22b2f42b33..c7b8c823ea1a1cafb98b4305febd52aa3652bc37 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3304,8 +3304,10 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -50,14 +50,15 @@ index aba20a4352d8983b01ab5d329187588f68d3e405..aac60e85cd6dba7d87f4a1663c2c6295 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index c9a487c1b85d46c1ce25147bd8a610a5631cdb5d..4cd34eb1930b9324be08e83aab21fc960eb7fca6 100644 +index 88ea46392182b02131a2a5c953fe90e1ecbd4ae5..1bca024bfbb4b68eacd2b3bb382aa74456db2145 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -935,5 +935,19 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - public org.bukkit.inventory.EquipmentSlot getHandRaised() { - return getHandle().getUsedItemHand() == net.minecraft.world.InteractionHand.MAIN_HAND ? org.bukkit.inventory.EquipmentSlot.HAND : org.bukkit.inventory.EquipmentSlot.OFF_HAND; +@@ -961,4 +961,20 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { + return org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(this.getHandle().getUsedItemHand()); } + // Paper end - active item API + ++ // Paper start - entity jump API + @Override + public boolean isJumping() { + return getHandle().jumping; @@ -71,5 +72,5 @@ index c9a487c1b85d46c1ce25147bd8a610a5631cdb5d..4cd34eb1930b9324be08e83aab21fc96 + ((Mob) getHandle()).getJumpControl().jump(); + } + } - // Paper end ++ // Paper end - entity jump API } diff --git a/patches/server/0331-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0331-add-hand-to-BlockMultiPlaceEvent.patch index 955f81df44..fe9e4dc449 100644 --- a/patches/server/0331-add-hand-to-BlockMultiPlaceEvent.patch +++ b/patches/server/0331-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 542b9ff7d845dcebcf6569a6d4bd9e97ac3a436d..3dee6c973d4b4ac6f64fdcb5ac7fa681cefbdb1c 100644 +index 449dab3d6e16b2b0fcc78c9e1b7173c822be9c53..15c9150b7e48781268babe5915dc0e906645b341 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -401,13 +401,18 @@ public class CraftEventFactory { +@@ -402,13 +402,18 @@ public class CraftEventFactory { } org.bukkit.inventory.ItemStack item; diff --git a/patches/server/0337-Add-tick-times-API-and-mspt-command.patch b/patches/server/0337-Add-tick-times-API-and-mspt-command.patch index a38e26cb73..3e698fc207 100644 --- a/patches/server/0337-Add-tick-times-API-and-mspt-command.patch +++ b/patches/server/0337-Add-tick-times-API-and-mspt-command.patch @@ -125,7 +125,7 @@ index 72f2e81b9905a0d57ed8e2a88578f62d5235c456..7b58b2d6297800c2dcdbf7539e5ab8e7 public static void registerCommands(final MinecraftServer server) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7263a7f8b01c6afdaf67cfd6cc67f6a45c0aee08..e5ecca5ae9e37e4d4d6d2adfd5f487a869ab775d 100644 +index 46386befc7c76788bdd136f7d7b4eb8e1e5d19b9..1a7dffb3947dab0e334cd5873c69542f383aed61 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -252,6 +252,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop drops) { @@ -150,7 +150,7 @@ index 3dee6c973d4b4ac6f64fdcb5ac7fa681cefbdb1c..8da01bdaa2a1c621947b6a50b178eec1 CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity(); EntityDeathEvent event = new EntityDeathEvent(entity, drops, victim.getExpReward()); populateFields(victim, event); // Paper - make cancellable -@@ -907,11 +912,13 @@ public class CraftEventFactory { +@@ -908,11 +913,13 @@ public class CraftEventFactory { playDeathSound(victim, event); // Paper end victim.expToDrop = event.getDroppedExp(); diff --git a/patches/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch index a9d85cd957..cc8b376c6f 100644 --- a/patches/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -10,7 +10,7 @@ index 1eedfc00ab7da96f07ae542b8c5775f41708dd37..dc552a35977b2e62ec1534ffbb9c7441 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -35,6 +35,7 @@ dependencies { - implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.ow2.asm:asm-commons:9.7") implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files implementation("commons-lang:commons-lang:2.6") + implementation("net.fabricmc:mapping-io:0.5.0") // Paper - needed to read mappings for stacktrace deobfuscation diff --git a/patches/server/0367-Implement-Mob-Goal-API.patch b/patches/server/0367-Implement-Mob-Goal-API.patch index 267fb77955..13572c9b4d 100644 --- a/patches/server/0367-Implement-Mob-Goal-API.patch +++ b/patches/server/0367-Implement-Mob-Goal-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement Mob Goal API diff --git a/build.gradle.kts b/build.gradle.kts -index 450f7c03bdcc109938ba9b66328bdbb2c96c03c9..c6241f858209ed662d8720217d143340916024e9 100644 +index e9cda97679ed18156baf009926d6f210093112bd..7cbfd129efcc2e971b75aaa272dee79a3b4d2d5c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -44,6 +44,7 @@ dependencies { @@ -15,7 +15,7 @@ index 450f7c03bdcc109938ba9b66328bdbb2c96c03c9..c6241f858209ed662d8720217d143340 + testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") testImplementation("org.hamcrest:hamcrest:2.2") - testImplementation("org.mockito:mockito-core:5.5.0") + testImplementation("org.mockito:mockito-core:5.11.0") diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..8117578ced94aa6bf01871f6526a388385c4adf2 diff --git a/patches/server/0369-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0369-Option-for-maximum-exp-value-when-merging-orbs.patch index 415b0289b4..76f5165302 100644 --- a/patches/server/0369-Option-for-maximum-exp-value-when-merging-orbs.patch +++ b/patches/server/0369-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 8da01bdaa2a1c621947b6a50b178eec10deb1250..89469dd94c8baecaef5253ee3693c841302d5e57 100644 +index 8866f1d4f19c935edb7eb3c9265a2b65383e5595..608829fa99a197a58505b1e7ca9898e8d6d19aa4 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -703,16 +703,30 @@ public class CraftEventFactory { +@@ -704,16 +704,30 @@ public class CraftEventFactory { if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) { double radius = world.spigotConfig.expMerge; if (radius > 0) { diff --git a/patches/server/0370-ExperienceOrbMergeEvent.patch b/patches/server/0370-ExperienceOrbMergeEvent.patch index 8795420449..fbe377c669 100644 --- a/patches/server/0370-ExperienceOrbMergeEvent.patch +++ b/patches/server/0370-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 89469dd94c8baecaef5253ee3693c841302d5e57..0a169b4cf47ff3d05555af6c0e0b0cdb30ba9e45 100644 +index 608829fa99a197a58505b1e7ca9898e8d6d19aa4..b38212ceb8c375c9604eac36bee6d143ffbf3837 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -712,7 +712,7 @@ public class CraftEventFactory { +@@ -713,7 +713,7 @@ public class CraftEventFactory { for (Entity e : entities) { if (e instanceof net.minecraft.world.entity.ExperienceOrb loopItem) { // Paper start diff --git a/patches/server/0371-Fix-PotionEffect-ignores-icon-flag.patch b/patches/server/0371-Fix-PotionEffect-ignores-icon-flag.patch index 7f8b5c39dd..208862b074 100644 --- a/patches/server/0371-Fix-PotionEffect-ignores-icon-flag.patch +++ b/patches/server/0371-Fix-PotionEffect-ignores-icon-flag.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix PotionEffect ignores icon flag Co-authored-by: Tamion <70228790+notTamion@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index fd18531ff94daa6dc2994a69e1e647078a5a664c..9a9d119e76fca75a9e531f4bbd204ab8eb9a1263 100644 +index e5cd09c9c27f23860fc31cb22377a54e5e60bd38..7dfc5966e6262ded29c60d7423f8a1e4a42ca948 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -468,7 +468,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -484,7 +484,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @Override public boolean addPotionEffect(PotionEffect effect, boolean force) { @@ -18,7 +18,7 @@ index fd18531ff94daa6dc2994a69e1e647078a5a664c..9a9d119e76fca75a9e531f4bbd204ab8 return true; } -@@ -489,7 +489,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -505,7 +505,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @Override public PotionEffect getPotionEffect(PotionEffectType type) { MobEffectInstance handle = this.getHandle().getEffect(CraftPotionEffectType.bukkitToMinecraft(type)); @@ -27,7 +27,7 @@ index fd18531ff94daa6dc2994a69e1e647078a5a664c..9a9d119e76fca75a9e531f4bbd204ab8 } @Override -@@ -501,7 +501,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -517,7 +517,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { public Collection getActivePotionEffects() { List effects = new ArrayList(); for (MobEffectInstance handle : this.getHandle().activeEffects.values()) { diff --git a/patches/server/0372-Potential-bed-API.patch b/patches/server/0372-Potential-bed-API.patch index 80f1d44702..c00100d03d 100644 --- a/patches/server/0372-Potential-bed-API.patch +++ b/patches/server/0372-Potential-bed-API.patch @@ -8,7 +8,7 @@ Adds a new method to fetch the location of a player's bed without generating any getPotentialBedLocation - Gets the last known location of a player's bed. This does not preform any check if the bed is still valid and does not load any chunks. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 7afbecd29f0a729e32c5cd50cb03d5404ba03d75..fe050a077782fb023c49710eb2127250d5165484 100644 +index 35f03bea2b1206b420ac46dfd77811fb485c5319..3898d583a65e82711fd4415aed32ecf08f42100f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -12,6 +12,7 @@ import net.minecraft.nbt.CompoundTag; @@ -19,7 +19,7 @@ index 7afbecd29f0a729e32c5cd50cb03d5404ba03d75..fe050a077782fb023c49710eb2127250 import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.MenuProvider; import net.minecraft.world.entity.Entity; -@@ -130,6 +131,22 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -131,6 +132,22 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { return this.getHandle().sleepCounter; } diff --git a/patches/server/0389-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0389-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index d7c2053bcb..a0f8975647 100644 --- a/patches/server/0389-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0389-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 f786bf10a42fa4e9f610416959c60c52729c277b..21176d6e57ae9e975b1e7de14b3364365cc1012d 100644 +index af68110105a9a3ec0ebd31ea9733af8dfed1037b..0c0356339abbf255a411993b9bd3e09d31cf2636 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -825,7 +825,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> { net.minecraft.world.level.chunk.LevelChunk chunk = (net.minecraft.world.level.chunk.LevelChunk)c; diff --git a/patches/server/0400-Add-PrepareResultEvent.patch b/patches/server/0400-Add-PrepareResultEvent.patch index 8426a573bd..bcd9713cd7 100644 --- a/patches/server/0400-Add-PrepareResultEvent.patch +++ b/patches/server/0400-Add-PrepareResultEvent.patch @@ -94,10 +94,10 @@ index 9c2fe69ced7a46bbd8b0fbe10fa67d0a39b0f375..e40d9dbdbe5359c38af6d764d01c9be4 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 0a169b4cf47ff3d05555af6c0e0b0cdb30ba9e45..67bfd38bd08c30eae597a4875ea4a8b26c2f5c5a 100644 +index b38212ceb8c375c9604eac36bee6d143ffbf3837..b72fba605ea2c2ea88fee90058fb2ccc30197c95 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1647,6 +1647,12 @@ public class CraftEventFactory { +@@ -1653,6 +1653,12 @@ public class CraftEventFactory { } public static PrepareAnvilEvent callPrepareAnvilEvent(InventoryView view, ItemStack item) { @@ -110,7 +110,7 @@ index 0a169b4cf47ff3d05555af6c0e0b0cdb30ba9e45..67bfd38bd08c30eae597a4875ea4a8b2 PrepareAnvilEvent event = new PrepareAnvilEvent(view, CraftItemStack.asCraftMirror(item).clone()); event.getView().getPlayer().getServer().getPluginManager().callEvent(event); event.getInventory().setItem(2, event.getResult()); -@@ -1654,6 +1660,12 @@ public class CraftEventFactory { +@@ -1660,6 +1666,12 @@ public class CraftEventFactory { } public static PrepareGrindstoneEvent callPrepareGrindstoneEvent(InventoryView view, ItemStack item) { @@ -123,7 +123,7 @@ index 0a169b4cf47ff3d05555af6c0e0b0cdb30ba9e45..67bfd38bd08c30eae597a4875ea4a8b2 PrepareGrindstoneEvent event = new PrepareGrindstoneEvent(view, CraftItemStack.asCraftMirror(item).clone()); event.getView().getPlayer().getServer().getPluginManager().callEvent(event); event.getInventory().setItem(2, event.getResult()); -@@ -1661,12 +1673,39 @@ public class CraftEventFactory { +@@ -1667,12 +1679,39 @@ public class CraftEventFactory { } public static PrepareSmithingEvent callPrepareSmithingEvent(InventoryView view, ItemStack item) { diff --git a/patches/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch index c7055de757..84a2b07d42 100644 --- a/patches/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch +++ b/patches/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch @@ -5,17 +5,18 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index c4db692fb5d952e4d185067388fd46ed0e1f1537..e07553c3ee28a2510c46a8188c8ce507f2567c80 100644 +index 8cfa39acde6d32625ae87e9d031d8dc767783e61..e54b164ea2f28cdbb89166fb9b0b9cd9d12c0ca9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -949,5 +949,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - ((Mob) getHandle()).getJumpControl().jump(); +@@ -977,4 +977,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } } + // Paper end - entity jump API + ++ // Paper start - pickup animation API + @Override -+ public void playPickupItemAnimation(org.bukkit.entity.Item item, int quantity) { -+ getHandle().take(((CraftItem) item).getHandle(), quantity); ++ public void playPickupItemAnimation(final org.bukkit.entity.Item item, final int quantity) { ++ this.getHandle().take(((CraftItem) item).getHandle(), quantity); + } - // Paper end ++ // Paper end - pickup animation API } diff --git a/patches/server/0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 9c8dcfe23c..92a3e10cad 100644 --- a/patches/server/0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -21,10 +21,10 @@ index 9af1877321356348ad96b92ae8c5f4811bef50ac..2e42e09d3fa19e5a16374ee6ac1677dd // if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add this.removeTicketsForSpawn(this.paperConfig().spawn.keepSpawnLoadedRange * 16, prevSpawn); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index af782882479910f13b54081df2443387135874e0..dbe1e59572ca0f98783db456bdab6ee4e79f7689 100644 +index b437f582c36ab9a5b06129ef1b36dd14432c0c31..afb65de5fbff44b4ca455c778030c3387c2dafc8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -268,12 +268,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -269,12 +269,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean setSpawnLocation(int x, int y, int z, float angle) { try { diff --git a/patches/server/0418-Add-BellRingEvent.patch b/patches/server/0418-Add-BellRingEvent.patch index 58012313ff..e1dd0b076e 100644 --- a/patches/server/0418-Add-BellRingEvent.patch +++ b/patches/server/0418-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 67bfd38bd08c30eae597a4875ea4a8b26c2f5c5a..c045e9503c76b869d58d93077fef130759615ff5 100644 +index b72fba605ea2c2ea88fee90058fb2ccc30197c95..657df7b4aa8c4a19bf8e085d8235aa0d1a1b08da 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -367,10 +367,11 @@ public class CraftEventFactory { +@@ -368,10 +368,11 @@ public class CraftEventFactory { return tradeSelectEvent; } diff --git a/patches/server/0428-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0428-Add-additional-open-container-api-to-HumanEntity.patch index 857657780a..a65b493089 100644 --- a/patches/server/0428-Add-additional-open-container-api-to-HumanEntity.patch +++ b/patches/server/0428-Add-additional-open-container-api-to-HumanEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add additional open container api to HumanEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index fe050a077782fb023c49710eb2127250d5165484..93644aefd2e6c97eca2735812b2b7b4bd039cfb5 100644 +index 3898d583a65e82711fd4415aed32ecf08f42100f..d5a8f019e88de30400733cdc3178eb982ccca341 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -461,6 +461,70 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -464,6 +464,70 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { return this.getHandle().containerMenu.getBukkitView(); } diff --git a/patches/server/0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index b01c302702..59a478433f 100644 --- a/patches/server/0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -21,10 +21,10 @@ index f45b148884b305628411d57f7662ea454fde3906..44610d4e3fb69e6cf5629d9e895e93d8 + // Paper end - Expose entity id counter } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index ef4b15e0ae11a54ec49e40f1d694dae58ae95e03..2bc3d9c02256269845d140764b7b1b201e38b569 100644 +index 7579e076793ba90e405b3ac0db600374ee8fdcb3..f4a7da134584a065a34b4f6a8eaebfcb81b6d735 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -520,6 +520,11 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -525,6 +525,11 @@ public final class CraftMagicNumbers implements UnsafeValues { Preconditions.checkArgument(dataVersion <= getDataVersion(), "Newer version! Server downgrades are not supported!"); return compound; } diff --git a/patches/server/0456-Add-LivingEntity-clearActiveItem.patch b/patches/server/0456-Add-LivingEntity-clearActiveItem.patch index 54d5de0aa1..df8f1cd672 100644 --- a/patches/server/0456-Add-LivingEntity-clearActiveItem.patch +++ b/patches/server/0456-Add-LivingEntity-clearActiveItem.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index e07553c3ee28a2510c46a8188c8ce507f2567c80..aac0fb198fb912dc59dc56f449e586839600fa13 100644 +index d90a56de3ec0236c82668d0f7ce01a8515de6450..baeb521f44389e6bf5d7b4237ebd5c805ae6f43c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -916,6 +916,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - return getHandle().getUseItem().asBukkitMirror(); +@@ -934,6 +934,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { + return this.getHandle().getUseItem().asBukkitMirror(); } + // Paper start @@ -20,5 +20,5 @@ index e07553c3ee28a2510c46a8188c8ce507f2567c80..aac0fb198fb912dc59dc56f449e58683 + // Paper end + @Override - public int getItemUseRemainingTime() { - return getHandle().getUseItemRemainingTicks(); + public int getActiveItemRemainingTime() { + return this.getHandle().getUseItemRemainingTicks(); diff --git a/patches/server/0467-Expose-LivingEntity-hurt-direction.patch b/patches/server/0467-Expose-LivingEntity-hurt-direction.patch index 73f36c0bb3..11fa41f95b 100644 --- a/patches/server/0467-Expose-LivingEntity-hurt-direction.patch +++ b/patches/server/0467-Expose-LivingEntity-hurt-direction.patch @@ -18,10 +18,10 @@ index 603e003fbd39870a0e249151885b3b8f3e120afe..6fe21c29aa9d119490fbf1d69eb03c14 // CraftBukkit start diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 93644aefd2e6c97eca2735812b2b7b4bd039cfb5..40f848d117c1a4f4fc2f11861c5f142071d56977 100644 +index d5a8f019e88de30400733cdc3178eb982ccca341..e7726862f99cb16b7335b06675af73db773b54e8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -126,6 +126,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -127,6 +127,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { } } @@ -36,22 +36,23 @@ index 93644aefd2e6c97eca2735812b2b7b4bd039cfb5..40f848d117c1a4f4fc2f11861c5f1420 public int getSleepTicks() { return this.getHandle().sleepCounter; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index aac0fb198fb912dc59dc56f449e586839600fa13..3b2d54d7a365e268107c4abc5a15c996954e5e9c 100644 +index 1333f5116e824e1024519808e824a979b9745c9f..24e8f6a89dc186c3f8f4356cb9a60115fc0096c0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -961,5 +961,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - public void playPickupItemAnimation(org.bukkit.entity.Item item, int quantity) { - getHandle().take(((CraftItem) item).getHandle(), quantity); +@@ -991,4 +991,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { + this.getHandle().take(((CraftItem) item).getHandle(), quantity); } + // Paper end - pickup animation API + ++ // Paper start - hurt direction API + @Override + public float getHurtDirection() { + return this.getHandle().getHurtDir(); + } + + @Override -+ public void setHurtDirection(float hurtDirection) { ++ public void setHurtDirection(final float hurtDirection) { + throw new UnsupportedOperationException("Cannot set the hurt direction on a non player"); + } - // Paper end ++ // Paper end - hurt direction API } diff --git a/patches/server/0468-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0468-Add-OBSTRUCTED-reason-to-BedEnterResult.patch index 27ff4645d2..1c152184b5 100644 --- a/patches/server/0468-Add-OBSTRUCTED-reason-to-BedEnterResult.patch +++ b/patches/server/0468-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 c045e9503c76b869d58d93077fef130759615ff5..430d54feb4224fb73d31aa205b883af66f29b226 100644 +index 657df7b4aa8c4a19bf8e085d8235aa0d1a1b08da..368c4bddbe6fe88ca408147df1fa58183dd513a4 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -302,6 +302,10 @@ public class CraftEventFactory { +@@ -303,6 +303,10 @@ public class CraftEventFactory { return BedEnterResult.TOO_FAR_AWAY; case NOT_SAFE: return BedEnterResult.NOT_SAFE; diff --git a/patches/server/0483-Add-WorldGameRuleChangeEvent.patch b/patches/server/0483-Add-WorldGameRuleChangeEvent.patch index 634bd091ff..f26393a0b9 100644 --- a/patches/server/0483-Add-WorldGameRuleChangeEvent.patch +++ b/patches/server/0483-Add-WorldGameRuleChangeEvent.patch @@ -64,10 +64,10 @@ index ba825ff3df79903aefe1a4cb14efab9a302397d7..ac7a5410b01a6741e3b548d153f37ea1 public int get() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index dbe1e59572ca0f98783db456bdab6ee4e79f7689..9d44a2ce6da1b6338e5a1aaa9238483b64c9a34f 100644 +index afb65de5fbff44b4ca455c778030c3387c2dafc8..3893b70926140f3658f6bab68c5c4f7c41dc603a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1864,8 +1864,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1884,8 +1884,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { if (!this.isGameRule(rule)) return false; @@ -82,7 +82,7 @@ index dbe1e59572ca0f98783db456bdab6ee4e79f7689..9d44a2ce6da1b6338e5a1aaa9238483b handle.onChanged(this.getHandle()); return true; } -@@ -1901,8 +1906,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1921,8 +1926,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { if (!this.isGameRule(rule.getName())) return false; diff --git a/patches/server/0486-Add-BlockFailedDispenseEvent.patch b/patches/server/0486-Add-BlockFailedDispenseEvent.patch index 6c46c1fc7e..25dc48423b 100644 --- a/patches/server/0486-Add-BlockFailedDispenseEvent.patch +++ b/patches/server/0486-Add-BlockFailedDispenseEvent.patch @@ -32,10 +32,10 @@ index 913ed110d8402d377152753325901eb7f3ac82d6..1d13f8a1009d6eda351c697052d499d5 } 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 430d54feb4224fb73d31aa205b883af66f29b226..0a44f7f2ab9c824f1a32d9dc5feb6a96eb00d8de 100644 +index 368c4bddbe6fe88ca408147df1fa58183dd513a4..ea26b27279b6e09015908f164a061891f4ab9002 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2033,4 +2033,12 @@ public class CraftEventFactory { +@@ -2039,4 +2039,12 @@ public class CraftEventFactory { return org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getPotion()); } // Paper end - WitchReadyPotionEvent diff --git a/patches/server/0501-Add-BlockPreDispenseEvent.patch b/patches/server/0501-Add-BlockPreDispenseEvent.patch index 7772764b33..4d04e2d466 100644 --- a/patches/server/0501-Add-BlockPreDispenseEvent.patch +++ b/patches/server/0501-Add-BlockPreDispenseEvent.patch @@ -29,10 +29,10 @@ index 1d13f8a1009d6eda351c697052d499d594a6aaa8..9a8a0fb958e8ec782111507bae957f85 } else { // CraftBukkit start - Fire event when pushing items into other inventories diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 0a44f7f2ab9c824f1a32d9dc5feb6a96eb00d8de..4b3e246475821b71fe023fea602d68c0e2f84964 100644 +index ea26b27279b6e09015908f164a061891f4ab9002..ec6bbab9787e5568e2be7d0a0004d8103ec38ff3 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2040,5 +2040,11 @@ public class CraftEventFactory { +@@ -2046,5 +2046,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/0505-Expand-EntityUnleashEvent.patch b/patches/server/0505-Expand-EntityUnleashEvent.patch index 5586344bbe..cd50019e1f 100644 --- a/patches/server/0505-Expand-EntityUnleashEvent.patch +++ b/patches/server/0505-Expand-EntityUnleashEvent.patch @@ -122,10 +122,10 @@ index 6a6526b7b1b578e08a41f85c0443c5f04177efb0..0b88bd258c4f2bce100bf96bcbe61c20 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 4b3e246475821b71fe023fea602d68c0e2f84964..43548c4c96dae63fe32640a6dff5410cc32ed501 100644 +index ec6bbab9787e5568e2be7d0a0004d8103ec38ff3..ca0cb9ad99992ef2602781adf16da94ca56975f8 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1569,8 +1569,10 @@ public class CraftEventFactory { +@@ -1570,8 +1570,10 @@ public class CraftEventFactory { Bukkit.getPluginManager().callEvent(new PlayerRecipeBookSettingsChangeEvent(player.getBukkitEntity(), bukkitType, open, filter)); } diff --git a/patches/server/0511-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0511-Allow-adding-items-to-BlockDropItemEvent.patch index 65b594a18e..b5abbd7988 100644 --- a/patches/server/0511-Allow-adding-items-to-BlockDropItemEvent.patch +++ b/patches/server/0511-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 43548c4c96dae63fe32640a6dff5410cc32ed501..11b42f349edefb6961b61d709bfbe3ad4b55c7f8 100644 +index ca0cb9ad99992ef2602781adf16da94ca56975f8..5d4fe10d4e3a5d7a9430dbd5b3c850db482f5862 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -451,13 +451,30 @@ public class CraftEventFactory { +@@ -452,13 +452,30 @@ public class CraftEventFactory { } public static void handleBlockDropItemEvent(Block block, BlockState state, ServerPlayer player, List items) { diff --git a/patches/server/0513-living-entity-allow-attribute-registration.patch b/patches/server/0513-living-entity-allow-attribute-registration.patch index 6982e40447..b04ce69eb9 100644 --- a/patches/server/0513-living-entity-allow-attribute-registration.patch +++ b/patches/server/0513-living-entity-allow-attribute-registration.patch @@ -38,10 +38,10 @@ index ea48f1119a940056c37d1d203437bfbfdf13663b..8a678df56fcf30535957e111d81ad07b + // Paper end - living entity allow attribute registration } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 3b2d54d7a365e268107c4abc5a15c996954e5e9c..c95c0580e0c3afe9730a1c3f2095b7970e7cc001 100644 +index 6ee15dee09d3e727df01564282ba5eb6450db51b..7b65a7d1efaf90d1a2b7a601f94be4d9ebe76a2b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -739,6 +739,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -755,6 +755,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return this.getHandle().craftAttributes.getAttribute(attribute); } diff --git a/patches/server/0525-Expand-world-key-API.patch b/patches/server/0525-Expand-world-key-API.patch index b4d1977540..c0e1a1055a 100644 --- a/patches/server/0525-Expand-world-key-API.patch +++ b/patches/server/0525-Expand-world-key-API.patch @@ -67,10 +67,10 @@ index c353f7a3a9ad0099ef7330dde988d1a174a0e327..b453673f7bab09a1b10898a7d1f85d13 // Check if a World already exists with the UID. if (this.getWorld(world.getUID()) != null) { diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 14d094d9af9b76277859901db908b8a36b24986b..4d695428cf838d2f5661fdeaaa58b82de693d64e 100644 +index f10457466cbaaba2d3aa49a64092847f635ce752..0768a70cdd48cf03a6dfb3a6a3c7ed4844ea132e 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -531,6 +531,11 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -536,6 +536,11 @@ public final class CraftMagicNumbers implements UnsafeValues { public int nextEntityId() { return net.minecraft.world.entity.Entity.nextEntityId(); } diff --git a/patches/server/0527-Item-Rarity-API.patch b/patches/server/0527-Item-Rarity-API.patch index d0d483075a..e06ec08950 100644 --- a/patches/server/0527-Item-Rarity-API.patch +++ b/patches/server/0527-Item-Rarity-API.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Item Rarity API public net.minecraft.world.item.Item rarity diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 4d695428cf838d2f5661fdeaaa58b82de693d64e..b928b3550bc74fd91c6762bc025a0bf6c766541b 100644 +index 0768a70cdd48cf03a6dfb3a6a3c7ed4844ea132e..a1400e8a7c59ffbfa4cd4ee3f3201b96c1584261 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -536,6 +536,20 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -541,6 +541,20 @@ public final class CraftMagicNumbers implements UnsafeValues { public String getMainLevelName() { return ((net.minecraft.server.dedicated.DedicatedServer) net.minecraft.server.MinecraftServer.getServer()).getProperties().levelName; } diff --git a/patches/server/0531-Expose-protocol-version.patch b/patches/server/0531-Expose-protocol-version.patch index e81a519f77..42ca8eaa45 100644 --- a/patches/server/0531-Expose-protocol-version.patch +++ b/patches/server/0531-Expose-protocol-version.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose protocol version diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index b928b3550bc74fd91c6762bc025a0bf6c766541b..44b0acb82f10a35bc0c42fdb6fd685aadc76d789 100644 +index a1400e8a7c59ffbfa4cd4ee3f3201b96c1584261..81c2f1dbadb678907cac3cc18e7d0bb307304f00 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -550,6 +550,11 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -555,6 +555,11 @@ public final class CraftMagicNumbers implements UnsafeValues { public io.papermc.paper.inventory.ItemRarity getItemStackRarity(org.bukkit.inventory.ItemStack itemStack) { return io.papermc.paper.inventory.ItemRarity.values()[getItem(itemStack.getType()).getRarity(CraftItemStack.asNMSCopy(itemStack)).ordinal()]; } diff --git a/patches/server/0536-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0536-add-isDeeplySleeping-to-HumanEntity.patch index 61a0d0fb11..b3cc3b4e68 100644 --- a/patches/server/0536-add-isDeeplySleeping-to-HumanEntity.patch +++ b/patches/server/0536-add-isDeeplySleeping-to-HumanEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] add isDeeplySleeping to HumanEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 40f848d117c1a4f4fc2f11861c5f142071d56977..6e85e580d48622b4c90478b9afbc45b4445e86b0 100644 +index e7726862f99cb16b7335b06675af73db773b54e8..b895b3972dc48ec91dba9d44546508badef73865 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -133,6 +133,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -134,6 +134,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { } // Paper end diff --git a/patches/server/0542-More-World-API.patch b/patches/server/0542-More-World-API.patch index 7f887ba98d..3090623a76 100644 --- a/patches/server/0542-More-World-API.patch +++ b/patches/server/0542-More-World-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] More World API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 9d44a2ce6da1b6338e5a1aaa9238483b64c9a34f..c90cbf4681e1c57fcec553b01d99a26316f896e5 100644 +index 3893b70926140f3658f6bab68c5c4f7c41dc603a..fc117c5c3ab09c24600fdbdbff56356e7ad64473 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2110,6 +2110,53 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2130,6 +2130,53 @@ public class CraftWorld extends CraftRegionAccessor implements World { return new CraftStructureSearchResult(CraftStructure.minecraftToBukkit(found.getSecond().value()), CraftLocation.toBukkit(found.getFirst(), this)); } diff --git a/patches/server/0558-ItemStack-repair-check-API.patch b/patches/server/0558-ItemStack-repair-check-API.patch index daefbc2d1d..63cbb56089 100644 --- a/patches/server/0558-ItemStack-repair-check-API.patch +++ b/patches/server/0558-ItemStack-repair-check-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack repair check API diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 44b0acb82f10a35bc0c42fdb6fd685aadc76d789..6eca86a2ab7145f4c60abb90cd46b4098ad8fb56 100644 +index 81c2f1dbadb678907cac3cc18e7d0bb307304f00..79977c677b4348bbfc8dcd4cb5e4c01c6fceb354 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -551,6 +551,14 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -556,6 +556,14 @@ public final class CraftMagicNumbers implements UnsafeValues { return io.papermc.paper.inventory.ItemRarity.values()[getItem(itemStack.getType()).getRarity(CraftItemStack.asNMSCopy(itemStack)).ordinal()]; } diff --git a/patches/server/0559-More-Enchantment-API.patch b/patches/server/0559-More-Enchantment-API.patch index 826f3c58ee..e5f8796fac 100644 --- a/patches/server/0559-More-Enchantment-API.patch +++ b/patches/server/0559-More-Enchantment-API.patch @@ -9,7 +9,7 @@ public net.minecraft.world.item.enchantment.Enchantment slots Co-authored-by: Luis diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java -index 7aa4035a4df1ddcc71065034eafd569ca59be810..5b7579395e61684592758f408d61cffe57f8b21d 100644 +index 3feaaca5aaee12e48fa2e5f5d05329c9980b161e..a151b5d7c6e41b08e57c806bc43e067af48263ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java @@ -81,7 +81,7 @@ public class CraftEnchantment extends Enchantment implements Handleable) net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.get(CraftNamespacedKey.toMinecraft(bukkitEntityKey))); return new io.papermc.paper.attribute.UnmodifiableAttributeMap(supplier); } diff --git a/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch index ad5e5a0031..4e9c2e327f 100644 --- a/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch @@ -48,10 +48,10 @@ index ebbefcdea6356384f27e964bd551bad2f9e696e8..06febdb103f98dd16cca32d7345b0ca6 // Paper start - missing entity api diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 609b103cb9af3b0554bf1116306874fe98c8534c..3f582c5653e13875cce4ef8ecd279d8a3d2b2dc2 100644 +index 2734f4187a4b92ef461e1f2fdae9139c6f54d8fc..be82e1d52d7026facb20bf07f4b3a394e77ab708 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -499,6 +499,32 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -504,6 +504,32 @@ public final class CraftMagicNumbers implements UnsafeValues { return CraftItemStack.asCraftMirror(net.minecraft.world.item.ItemStack.of(compound)); } diff --git a/patches/server/0630-Improve-and-expand-AsyncCatcher.patch b/patches/server/0630-Improve-and-expand-AsyncCatcher.patch index 3da2f1c96b..e296e8ff56 100644 --- a/patches/server/0630-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0630-Improve-and-expand-AsyncCatcher.patch @@ -29,7 +29,7 @@ index 2941445ea453e2fb88ea8de38c24bf755b93936a..666c6cb6f600973e1d84839aed715606 if (player.isRemoved()) { LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName()); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a2edccc840f2ba76e236ea7441f3e4909b1a1898..18804ea960f8423d172d9119c0739226a18d4d56 100644 +index 144090912223494cf163a445d7bce868be12d6af..4d8f9c8f375282968e70278da655b6e36ab96a87 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1126,7 +1126,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -166,10 +166,10 @@ index 8f23b45dce35617bb56b21fb4f7a09baf36d40c5..cbdb2a710a7217b750de3e782cad5b5a PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason}); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index ca68faef4232859e833adfd86a0ce13f7c2ad00e..df57157317fc6c84f69751fd8a120761837429af 100644 +index 6d74a3a43aee0f7ba4c109bd2443c5fcd950fa54..0b1d918452deee4c75bc61cb6a620f69cefa80b3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1737,6 +1737,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1757,6 +1757,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void playSound(Location loc, Sound sound, org.bukkit.SoundCategory category, float volume, float pitch, long seed) { @@ -177,7 +177,7 @@ index ca68faef4232859e833adfd86a0ce13f7c2ad00e..df57157317fc6c84f69751fd8a120761 if (loc == null || sound == null || category == null) return; double x = loc.getX(); -@@ -1748,6 +1749,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1768,6 +1769,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void playSound(Location loc, String sound, org.bukkit.SoundCategory category, float volume, float pitch, long seed) { @@ -185,7 +185,7 @@ index ca68faef4232859e833adfd86a0ce13f7c2ad00e..df57157317fc6c84f69751fd8a120761 if (loc == null || sound == null || category == null) return; double x = loc.getX(); -@@ -1780,6 +1782,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1800,6 +1802,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void playSound(Entity entity, Sound sound, org.bukkit.SoundCategory category, float volume, float pitch, long seed) { @@ -193,7 +193,7 @@ index ca68faef4232859e833adfd86a0ce13f7c2ad00e..df57157317fc6c84f69751fd8a120761 if (!(entity instanceof CraftEntity craftEntity) || entity.getWorld() != this || sound == null || category == null) return; ClientboundSoundEntityPacket packet = new ClientboundSoundEntityPacket(CraftSound.bukkitToMinecraftHolder(sound), net.minecraft.sounds.SoundSource.valueOf(category.name()), craftEntity.getHandle(), volume, pitch, seed); -@@ -1791,6 +1794,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1811,6 +1814,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void playSound(Entity entity, String sound, org.bukkit.SoundCategory category, float volume, float pitch, long seed) { @@ -202,10 +202,10 @@ index ca68faef4232859e833adfd86a0ce13f7c2ad00e..df57157317fc6c84f69751fd8a120761 ClientboundSoundEntityPacket packet = new ClientboundSoundEntityPacket(Holder.direct(SoundEvent.createVariableRangeEvent(new ResourceLocation(sound))), net.minecraft.sounds.SoundSource.valueOf(category.name()), craftEntity.getHandle(), volume, pitch, seed); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 9fed7d8500481493de32efd16de6b271b9ed446d..a67570fedb8f09a118351b1b5c3d47bc568f5c0c 100644 +index bc7e2d24dac52091a62ce488c7fc34133dfa2aa8..6af7796c9505b43b2c4dfe869214b0f56dc71244 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -501,6 +501,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -517,6 +517,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @Override public boolean addPotionEffect(PotionEffect effect, boolean force) { diff --git a/patches/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch index 5de3695498..82e949eac0 100644 --- a/patches/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -294,10 +294,10 @@ index 51337b1b2e74a67ad54c5d594004b649cb6af4ed..dc37989ab5e0971a144a8248152169b4 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index df57157317fc6c84f69751fd8a120761837429af..df74b47477553bdee0b5faaf40835b94c41316dd 100644 +index 0b1d918452deee4c75bc61cb6a620f69cefa80b3..139281eab642a3676987fa9b3597b5b6e1a99e9c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1695,9 +1695,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1715,9 +1715,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { Preconditions.checkArgument(spawnCategory != null, "SpawnCategory cannot be null"); Preconditions.checkArgument(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory.%s are not supported", spawnCategory); diff --git a/patches/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 2d40d8b668..d2d9b68707 100644 --- a/patches/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7ee46b9f98794d1fec0a8feea71fd495f9199dd0..d19f2ca702ffa32c616ec821219079e2b784a460 100644 +index fdda28bd6aa3a2d3079a383157b82ff825cc992d..82ee16f8efb5d32bf648d416010de557e2b90865 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -597,7 +597,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index c787fbcef295f2108a6f843524c00cdea4660f27..7bb43181e4de4cf3a3944aea88c45e54e476433c 100644 +index 5d5e5e811d065411e5def069533e8f9ab974ed55..558d95381bca2f950824748b05e59e4ced7347c3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -150,6 +150,7 @@ import org.jetbrains.annotations.Nullable; +@@ -151,6 +151,7 @@ import org.jetbrains.annotations.Nullable; public class CraftWorld extends CraftRegionAccessor implements World { public static final int CUSTOM_DIMENSION_OFFSET = 10; private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); @@ -17,7 +17,7 @@ index c787fbcef295f2108a6f843524c00cdea4660f27..7bb43181e4de4cf3a3944aea88c45e54 private final ServerLevel world; private WorldBorder worldBorder; -@@ -420,27 +421,68 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -421,27 +422,68 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean regenerateChunk(int x, int z) { org.spigotmc.AsyncCatcher.catchOp("chunk regenerate"); // Spigot diff --git a/patches/server/0713-Fix-falling-block-spawn-methods.patch b/patches/server/0713-Fix-falling-block-spawn-methods.patch index 5181c49b28..c9e1a31533 100644 --- a/patches/server/0713-Fix-falling-block-spawn-methods.patch +++ b/patches/server/0713-Fix-falling-block-spawn-methods.patch @@ -11,10 +11,10 @@ Restores the API behavior from previous versions of the server public net.minecraft.world.entity.item.FallingBlockEntity (Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 7bb43181e4de4cf3a3944aea88c45e54e476433c..97ebf2e2e08469cacc66c4f38bd2edfc2107fe6a 100644 +index 558d95381bca2f950824748b05e59e4ced7347c3..f2e4494a31dd7ca7e099c6960a9e6378ecac8727 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1394,7 +1394,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1414,7 +1414,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { Preconditions.checkArgument(material != null, "Material cannot be null"); Preconditions.checkArgument(material.isBlock(), "Material.%s must be a block", material); @@ -28,7 +28,7 @@ index 7bb43181e4de4cf3a3944aea88c45e54e476433c..97ebf2e2e08469cacc66c4f38bd2edfc return (FallingBlock) entity.getBukkitEntity(); } -@@ -1403,7 +1408,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1423,7 +1428,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { Preconditions.checkArgument(location != null, "Location cannot be null"); Preconditions.checkArgument(data != null, "BlockData cannot be null"); diff --git a/patches/server/0716-More-Projectile-API.patch b/patches/server/0716-More-Projectile-API.patch index 30d520d8be..797924f9aa 100644 --- a/patches/server/0716-More-Projectile-API.patch +++ b/patches/server/0716-More-Projectile-API.patch @@ -133,10 +133,10 @@ index 91c2d0b40d3fca86938cd454e1415a4eea3df7c7..c1c52f4fc5f900fac4098e5e37c52dfc + // Paper end - More projectile API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java -index 35d8fbd9c5751568a1a3b8928017e23cd41bb163..3a749f78be3968e499e096196eaaa0b433a53c06 100644 +index a24a6fe5bf634bb02654b0ec4f771aa07458ce84..0fd2677181d741e553b9825c8c319a209194ec46 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java -@@ -58,20 +58,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { +@@ -60,20 +60,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { this.getHandle().setCritArrow(critical); } @@ -158,7 +158,7 @@ index 35d8fbd9c5751568a1a3b8928017e23cd41bb163..3a749f78be3968e499e096196eaaa0b4 @Override public boolean isInBlock() { -@@ -99,6 +86,35 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { +@@ -101,6 +88,35 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { this.getHandle().pickup = net.minecraft.world.entity.projectile.AbstractArrow.Pickup.byOrdinal(status.ordinal()); } @@ -517,10 +517,10 @@ index 20f9735c7cb76024e15dbdca7684f5c560876175..8a6af0db8e0aa0cffbf19584be747076 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ef45cf53ee3e5bf9da11f631c6eeeb8df00e9920..d329f9fab83c30ded648763c6c0505d793daa506 100644 +index 7d72ccdd82daa6afe85859f5bc6ec7b187622384..fb0426a1d864f3c60637e394e5bedb3963677df1 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -832,19 +832,19 @@ public class CraftEventFactory { +@@ -833,19 +833,19 @@ public class CraftEventFactory { /** * PotionSplashEvent */ @@ -543,7 +543,7 @@ index ef45cf53ee3e5bf9da11f631c6eeeb8df00e9920..d329f9fab83c30ded648763c6c0505d7 hitEntity = ((EntityHitResult) position).getEntity().getBukkitEntity(); } -@@ -853,20 +853,20 @@ public class CraftEventFactory { +@@ -854,20 +854,20 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch index 6d27ca622a..91ca1e4916 100644 --- a/patches/server/0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -196,10 +196,10 @@ index 61abbcfe97e3d3e3da5ee658672549d14594ad17..05e14322e519d1399e87beb532e1cc4a } // 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 d329f9fab83c30ded648763c6c0505d793daa506..55a0a154f2b37c75e40d3b33c9baf245d5dcd9d7 100644 +index fb0426a1d864f3c60637e394e5bedb3963677df1..13366b67b20b812a037a199b8a1e6609a4a54444 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1360,11 +1360,11 @@ public class CraftEventFactory { +@@ -1361,11 +1361,11 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0743-Add-support-for-Proxy-Protocol.patch b/patches/server/0743-Add-support-for-Proxy-Protocol.patch index 278aa4c803..ef41da5d60 100644 --- a/patches/server/0743-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0743-Add-support-for-Proxy-Protocol.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add support for Proxy Protocol diff --git a/build.gradle.kts b/build.gradle.kts -index e7ea6d57488cbde806b7d5febd48c42dfe3c5195..b5f31e210f2ca4bdfe9957d44780d89240da6269 100644 +index 7cbfd129efcc2e971b75aaa272dee79a3b4d2d5c..5d35409137aff0eab242a0d4eb235e10cb7fe236 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,7 @@ dependencies { @@ -15,7 +15,7 @@ index e7ea6d57488cbde806b7d5febd48c42dfe3c5195..b5f31e210f2ca4bdfe9957d44780d892 + implementation("io.netty:netty-codec-haproxy:4.1.97.Final") // Paper - Add support for proxy protocol // Paper end implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion - implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.ow2.asm:asm-commons:9.7") diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java index 87abd6274f9da9367094bad0c28acfa47e01c50e..4f330a44c77a7ec3237a86fda04921a8c4a1c00f 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java diff --git a/patches/server/0759-Add-Player-getFishHook.patch b/patches/server/0759-Add-Player-getFishHook.patch index d539d68f07..d5f8b5dc18 100644 --- a/patches/server/0759-Add-Player-getFishHook.patch +++ b/patches/server/0759-Add-Player-getFishHook.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Player#getFishHook diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 6e85e580d48622b4c90478b9afbc45b4445e86b0..2abbcbd393660de69fec567c3e31dbc774d93920 100644 +index b895b3972dc48ec91dba9d44546508badef73865..98ee3a7eff6cd1dd3fdbd7cc6a94deebcefbc565 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -161,6 +161,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -162,6 +162,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { return new Location(worldServer.getWorld(), bed.getX(), bed.getY(), bed.getZ()); } // Paper end diff --git a/patches/server/0768-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0768-Warn-on-plugins-accessing-faraway-chunks.patch index cf8698ba32..2b9d9f5b89 100644 --- a/patches/server/0768-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0768-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 275c02d480cdf25ba0e735f4a43015ec0af238b3..2cbb3fcae6a8e26ee4bc2a9c88e64984da15ce86 100644 +index 1ed82afbc3aaa826f8067c65fdfc3ffce36a2ce5..59dba562e17e9463c1e00dee4979b61a0f68643e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -345,7 +345,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -18,10 +18,10 @@ index 275c02d480cdf25ba0e735f4a43015ec0af238b3..2cbb3fcae6a8e26ee4bc2a9c88e64984 private static boolean isOutsideSpawnableHeight(int y) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 97ebf2e2e08469cacc66c4f38bd2edfc2107fe6a..54cdb4b6a97250c1e15e2fce355e3699c9189948 100644 +index f2e4494a31dd7ca7e099c6960a9e6378ecac8727..51e709beb32499f2f56189a0426bba93c43e1c0d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -318,9 +318,24 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -319,9 +319,24 @@ public class CraftWorld extends CraftRegionAccessor implements World { public boolean setSpawnLocation(int x, int y, int z) { return this.setSpawnLocation(x, y, z, 0.0F); } @@ -46,7 +46,7 @@ index 97ebf2e2e08469cacc66c4f38bd2edfc2107fe6a..54cdb4b6a97250c1e15e2fce355e3699 // Paper start - add ticket to hold chunk for a little while longer if plugin accesses it net.minecraft.world.level.chunk.LevelChunk chunk = this.world.getChunkSource().getChunkAtIfLoadedImmediately(x, z); if (chunk == null) { -@@ -421,6 +436,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -422,6 +437,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean regenerateChunk(int x, int z) { org.spigotmc.AsyncCatcher.catchOp("chunk regenerate"); // Spigot @@ -54,7 +54,7 @@ index 97ebf2e2e08469cacc66c4f38bd2edfc2107fe6a..54cdb4b6a97250c1e15e2fce355e3699 // Paper start - implement regenerateChunk method final ServerLevel serverLevel = this.world; final net.minecraft.server.level.ServerChunkCache serverChunkCache = serverLevel.getChunkSource(); -@@ -515,6 +531,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -516,6 +532,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean loadChunk(int x, int z, boolean generate) { org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot @@ -62,7 +62,7 @@ index 97ebf2e2e08469cacc66c4f38bd2edfc2107fe6a..54cdb4b6a97250c1e15e2fce355e3699 ChunkAccess chunk = this.world.getChunkSource().getChunk(x, z, generate || isChunkGenerated(x, z) ? ChunkStatus.FULL : ChunkStatus.EMPTY, true); // Paper // If generate = false, but the chunk already exists, we will get this back. -@@ -547,6 +564,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -548,6 +565,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean addPluginChunkTicket(int x, int z, Plugin plugin) { @@ -70,7 +70,7 @@ index 97ebf2e2e08469cacc66c4f38bd2edfc2107fe6a..54cdb4b6a97250c1e15e2fce355e3699 Preconditions.checkArgument(plugin != null, "null plugin"); Preconditions.checkArgument(plugin.isEnabled(), "plugin is not enabled"); -@@ -628,6 +646,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -648,6 +666,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void setChunkForceLoaded(int x, int z, boolean forced) { @@ -78,7 +78,7 @@ index 97ebf2e2e08469cacc66c4f38bd2edfc2107fe6a..54cdb4b6a97250c1e15e2fce355e3699 this.getHandle().setChunkForced(x, z, forced); } -@@ -947,6 +966,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -967,6 +986,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public int getHighestBlockYAt(int x, int z, org.bukkit.HeightMap heightMap) { @@ -86,7 +86,7 @@ index 97ebf2e2e08469cacc66c4f38bd2edfc2107fe6a..54cdb4b6a97250c1e15e2fce355e3699 // Transient load for this tick return this.world.getChunk(x >> 4, z >> 4).getHeight(CraftHeightMap.toNMS(heightMap), x, z); } -@@ -2380,6 +2400,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2400,6 +2420,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { // Spigot end // Paper start public java.util.concurrent.CompletableFuture getChunkAtAsync(int x, int z, boolean gen, boolean urgent) { diff --git a/patches/server/0775-Add-NamespacedKey-biome-methods.patch b/patches/server/0775-Add-NamespacedKey-biome-methods.patch index bf854146f4..60b5cb2a50 100644 --- a/patches/server/0775-Add-NamespacedKey-biome-methods.patch +++ b/patches/server/0775-Add-NamespacedKey-biome-methods.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add NamespacedKey biome methods Co-authored-by: Thonk <30448663+ExcessiveAmountsOfZombies@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 3f582c5653e13875cce4ef8ecd279d8a3d2b2dc2..5f93c5a6e1c381898c50332099cc98063a108b4e 100644 +index be82e1d52d7026facb20bf07f4b3a394e77ab708..0d49d7b92305977fe66f13c1e66739c1430dc7fd 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -620,6 +620,19 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -625,6 +625,19 @@ public final class CraftMagicNumbers implements UnsafeValues { Preconditions.checkArgument(material.isBlock(), material + " is not a block"); return getBlock(material).hasCollision; } diff --git a/patches/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch index 5d703466dc..ce2102d524 100644 --- a/patches/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch +++ b/patches/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch @@ -79,23 +79,6 @@ index a298f511c8a7eb208a0dd63b24ec050848a31476..41a3ca4edf4fa662f2af13efd7b78b56 world.setBlockAndUpdate(blockposition1Final, iblockdata1); // CraftBukkit - decompile error }); world.levelEvent(3002, blockposition1, -1); -diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.java b/src/main/java/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.java -index 2c443b421e342ebfbdf941a431ba20560521920b..91b68ee3605afdb845405e455c869e48a7fc9aab 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.java -+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.java -@@ -27,6 +27,12 @@ public class TryLaySpawnOnWaterNearLand { - BlockPos blockPos3 = blockPos2.above(); - if (world.getBlockState(blockPos3).isAir()) { - BlockState blockState = frogSpawn.defaultBlockState(); -+ // Paper start -+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity, blockPos3, blockState)) { -+ isPregnant.erase(); // forgot pregnant memory -+ return true; -+ } -+ // Paper end - world.setBlock(blockPos3, blockState, 3); - world.gameEvent(GameEvent.BLOCK_PLACE, blockPos3, GameEvent.Context.of(entity, blockState)); - world.playSound((Player)null, entity, SoundEvents.FROG_LAY_SPAWN, SoundSource.BLOCKS, 1.0F, 1.0F); diff --git a/src/main/java/net/minecraft/world/item/AxeItem.java b/src/main/java/net/minecraft/world/item/AxeItem.java index db507638a97b5a33df712c54daff35b21922c0dd..2e75fd06e9e379eb95ebfe55086ffc327706ab2f 100644 --- a/src/main/java/net/minecraft/world/item/AxeItem.java diff --git a/patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch index e097dea832..00601e4c1f 100644 --- a/patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch +++ b/patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add a consumer parameter to ProjectileSource#launchProjectile diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index a67570fedb8f09a118351b1b5c3d47bc568f5c0c..354c32f67d06228477c723f7e4dbe27116e59a9b 100644 +index 6af7796c9505b43b2c4dfe869214b0f56dc71244..2ef22ba88fa65ecddb88f7fceef598f2e7e55e03 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -546,8 +546,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -562,8 +562,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } @Override @@ -25,7 +25,7 @@ index a67570fedb8f09a118351b1b5c3d47bc568f5c0c..354c32f67d06228477c723f7e4dbe271 Preconditions.checkState(!this.getHandle().generation, "Cannot launch projectile during world generation"); net.minecraft.world.level.Level world = ((CraftWorld) this.getWorld()).getHandle(); -@@ -634,6 +641,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -650,6 +657,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { if (velocity != null) { ((T) launch.getBukkitEntity()).setVelocity(velocity); } diff --git a/patches/server/0793-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0793-Correctly-handle-interactions-with-items-on-cooldown.patch index acbf650a19..f1a45a8700 100644 --- a/patches/server/0793-Correctly-handle-interactions-with-items-on-cooldown.patch +++ b/patches/server/0793-Correctly-handle-interactions-with-items-on-cooldown.patch @@ -30,10 +30,10 @@ index 5d1b8bae981dc538ee1fe4fb993e44f227168233..3621770701c6fb1da75c69a412976844 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 55a0a154f2b37c75e40d3b33c9baf245d5dcd9d7..1b8a98ebd3be8df907717b02ad82398807867ac8 100644 +index 13366b67b20b812a037a199b8a1e6609a4a54444..6b226ab2b6365788362683e629c8cece12118233 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -545,6 +545,12 @@ public class CraftEventFactory { +@@ -546,6 +546,12 @@ public class CraftEventFactory { } public static PlayerInteractEvent callPlayerInteractEvent(net.minecraft.world.entity.player.Player who, Action action, BlockPos position, Direction direction, ItemStack itemstack, boolean cancelledBlock, InteractionHand hand, Vec3 targetPos) { @@ -46,7 +46,7 @@ index 55a0a154f2b37c75e40d3b33c9baf245d5dcd9d7..1b8a98ebd3be8df907717b02ad823988 Player player = (who == null) ? null : (Player) who.getBukkitEntity(); CraftItemStack itemInHand = CraftItemStack.asCraftMirror(itemstack); -@@ -579,6 +585,11 @@ public class CraftEventFactory { +@@ -580,6 +586,11 @@ public class CraftEventFactory { if (cancelledBlock) { event.setUseInteractedBlock(Event.Result.DENY); } diff --git a/patches/server/0797-Add-entity-knockback-API.patch b/patches/server/0797-Add-entity-knockback-API.patch index afe4ca229a..6a577fa67c 100644 --- a/patches/server/0797-Add-entity-knockback-API.patch +++ b/patches/server/0797-Add-entity-knockback-API.patch @@ -5,18 +5,19 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 354c32f67d06228477c723f7e4dbe27116e59a9b..4363f55707101362c1df60b73ab23d3d4c9c0675 100644 +index 163c3a07abf187d6d2f3fb3bc30eb8f0c26b247f..be915e4ab474d8f06c63b5aaee5b9277aef0f706 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1072,5 +1072,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - } +@@ -1106,4 +1106,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { throw new IllegalArgumentException(entityCategory + " is an unrecognized entity category"); } + // Paper end - more enchant API + ++ // Paper start - knockback API + @Override -+ public void knockback(double strength, double directionX, double directionZ) { ++ public void knockback(final double strength, final double directionX, final double directionZ) { + Preconditions.checkArgument(strength > 0, "Knockback strength must be > 0"); -+ getHandle().knockback(strength, directionX, directionZ); ++ this.getHandle().knockback(strength, directionX, directionZ); + }; - // Paper end ++ // Paper end - knockback API } diff --git a/patches/server/0815-ItemStack-damage-API.patch b/patches/server/0815-ItemStack-damage-API.patch index 9525df8c4c..f7b51b4edd 100644 --- a/patches/server/0815-ItemStack-damage-API.patch +++ b/patches/server/0815-ItemStack-damage-API.patch @@ -11,20 +11,21 @@ the logic associated with damaging them public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 4363f55707101362c1df60b73ab23d3d4c9c0675..ed436eed7617665e77627dd05d17b8e5a7366f25 100644 +index be915e4ab474d8f06c63b5aaee5b9277aef0f706..6359bb77c6d05db733a7f92d30230a2889a5b0ea 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1073,6 +1073,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - throw new IllegalArgumentException(entityCategory + " is an unrecognized entity category"); - } - -+ @Override -+ public void broadcastSlotBreak(org.bukkit.inventory.EquipmentSlot slot) { +@@ -1114,4 +1114,52 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { + this.getHandle().knockback(strength, directionX, directionZ); + }; + // Paper end - knockback API ++ ++ // Paper start - ItemStack damage API ++ public void broadcastSlotBreak(final org.bukkit.inventory.EquipmentSlot slot) { + this.getHandle().broadcastBreakEvent(org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot)); + } + + @Override -+ public void broadcastSlotBreak(org.bukkit.inventory.EquipmentSlot slot, Collection players) { ++ public void broadcastSlotBreak(final org.bukkit.inventory.EquipmentSlot slot, final Collection players) { + if (players.isEmpty()) { + return; + } @@ -36,9 +37,9 @@ index 4363f55707101362c1df60b73ab23d3d4c9c0675..ed436eed7617665e77627dd05d17b8e5 + } + + @Override -+ public ItemStack damageItemStack(ItemStack stack, int amount) { ++ public ItemStack damageItemStack(ItemStack stack, final int amount) { + final net.minecraft.world.item.ItemStack nmsStack; -+ if (stack instanceof CraftItemStack craftItemStack) { ++ if (stack instanceof final CraftItemStack craftItemStack) { + if (craftItemStack.handle == null || craftItemStack.handle.isEmpty()) { + return stack; + } @@ -52,19 +53,17 @@ index 4363f55707101362c1df60b73ab23d3d4c9c0675..ed436eed7617665e77627dd05d17b8e5 + } + + @Override -+ public void damageItemStack(org.bukkit.inventory.EquipmentSlot slot, int amount) { ++ public void damageItemStack(final org.bukkit.inventory.EquipmentSlot slot, final int amount) { + final net.minecraft.world.entity.EquipmentSlot nmsSlot = org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot); + this.damageItemStack0(this.getHandle().getItemBySlot(nmsSlot), amount, nmsSlot); + } + -+ private void damageItemStack0(net.minecraft.world.item.ItemStack nmsStack, int amount, net.minecraft.world.entity.EquipmentSlot slot) { ++ private void damageItemStack0(final net.minecraft.world.item.ItemStack nmsStack, final int amount, final net.minecraft.world.entity.EquipmentSlot slot) { + nmsStack.hurtAndBreak(amount, this.getHandle(), livingEntity -> { + if (slot != null) { + livingEntity.broadcastBreakEvent(slot); + } + }); + } -+ - @Override - public void knockback(double strength, double directionX, double directionZ) { - Preconditions.checkArgument(strength > 0, "Knockback strength must be > 0"); ++ // Paper end - ItemStack damage API + } diff --git a/patches/server/0816-Friction-API.patch b/patches/server/0816-Friction-API.patch index c7825d86c1..6cecc44554 100644 --- a/patches/server/0816-Friction-API.patch +++ b/patches/server/0816-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4959d8fd8f84f99f289b898fd604d8a9808d62a4..8e6cb47ce314d4c493047fa1804b2da8c9797fac 100644 +index 0708502b46ec55d533c7d890b892a57779678854..834607dde3841105b3524b43f59380296924862a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -262,6 +262,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -133,13 +133,15 @@ index 1a291dd8a287db30e71dcb315599fc4b038764c4..30d62ee4d5cd2ddacb8783b5bbbf475d public int getHealth() { return this.getHandle().health; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index ed436eed7617665e77627dd05d17b8e5a7366f25..e8ef40fed546608d995fd31dc8a9721c00537749 100644 +index 6359bb77c6d05db733a7f92d30230a2889a5b0ea..9c5ad1ffdd82ce5d12eabca07f45a37e6a939f2e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1120,6 +1120,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1162,4 +1162,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { }); } - + // Paper end - ItemStack damage API ++ ++ // Paper start - friction API + @org.jetbrains.annotations.NotNull + @Override + public net.kyori.adventure.util.TriState getFrictionState() { @@ -151,7 +153,5 @@ index ed436eed7617665e77627dd05d17b8e5a7366f25..e8ef40fed546608d995fd31dc8a9721c + java.util.Objects.requireNonNull(state, "state may not be null"); + this.getHandle().frictionState = state; + } -+ - @Override - public void knockback(double strength, double directionX, double directionZ) { - Preconditions.checkArgument(strength > 0, "Knockback strength must be > 0"); ++ // Paper end - friction API + } diff --git a/patches/server/0818-Fix-player-kick-on-shutdown.patch b/patches/server/0818-Fix-player-kick-on-shutdown.patch index 0c36dc9398..6b694a6abe 100644 --- a/patches/server/0818-Fix-player-kick-on-shutdown.patch +++ b/patches/server/0818-Fix-player-kick-on-shutdown.patch @@ -9,7 +9,7 @@ also check if all packets are ignored during the shutdown process. See net.minecraft.network.Connection#channelRead0(ChannelHandlerContext, Packet) and net.minecraft.util.thread.BlockableEventLoop#executeIfPossible(Runnable) diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -index 7de24c39b460e43d27839b3821e67213508ece81..454d0187ff8370a0d99cca051ee0a8c50b39cfb7 100644 +index b7ffab0284b0bccd79775b8d03c8b2e088f91d1d..4202c48ad8f8e85ef46d1bd446ab28f3f4b083d1 100644 --- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java +++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java @@ -26,7 +26,7 @@ public class PacketUtils { @@ -18,6 +18,6 @@ index 7de24c39b460e43d27839b3821e67213508ece81..454d0187ff8370a0d99cca051ee0a8c5 if (!engine.isSameThread()) { - engine.executeIfPossible(() -> { + engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown - if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerCommonPacketListenerImpl && ((ServerCommonPacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590 + if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players if (listener.shouldHandleMessage(packet)) { co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings diff --git a/patches/server/0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch index 87f093c66c..09acddcf7f 100644 --- a/patches/server/0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch +++ b/patches/server/0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch @@ -138,10 +138,10 @@ index f81c0d07a5efc92942d8ab5c50a8260db033307d..8afc396c162d928902a9d9beb9f039b0 // 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 1b8a98ebd3be8df907717b02ad82398807867ac8..b04cf7cb05adcef205f84decf3564f85de0c8e2d 100644 +index 6b226ab2b6365788362683e629c8cece12118233..82c0a13558948a5f5e5cee0e2b67fcde5a906301 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1070,7 +1070,7 @@ public class CraftEventFactory { +@@ -1071,7 +1071,7 @@ public class CraftEventFactory { Entity damager = source.getCausingEntity(); if (source.is(DamageTypeTags.IS_EXPLOSION)) { if (damager == null) { @@ -150,7 +150,7 @@ index 1b8a98ebd3be8df907717b02ad82398807867ac8..b04cf7cb05adcef205f84decf3564f85 } DamageCause damageCause = (damager.getBukkitEntity() instanceof org.bukkit.entity.TNTPrimed) ? DamageCause.BLOCK_EXPLOSION : DamageCause.ENTITY_EXPLOSION; return CraftEventFactory.callEntityDamageEvent(damager, entity, damageCause, bukkitDamageSource, modifiers, modifierFunctions, cancelled, source.isCritical()); // Paper - add critical damage API -@@ -1121,7 +1121,7 @@ public class CraftEventFactory { +@@ -1122,7 +1122,7 @@ public class CraftEventFactory { } else { throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, source.getDirectBlock(), source.getMsgId())); } @@ -159,7 +159,7 @@ index 1b8a98ebd3be8df907717b02ad82398807867ac8..b04cf7cb05adcef205f84decf3564f85 } DamageCause cause; -@@ -1174,8 +1174,13 @@ public class CraftEventFactory { +@@ -1175,8 +1175,13 @@ public class CraftEventFactory { return CraftEventFactory.callEntityDamageEvent(event, damagee, cancelled); } diff --git a/patches/server/0841-Fix-force-opening-enchantment-tables.patch b/patches/server/0841-Fix-force-opening-enchantment-tables.patch index 70439d1f0f..57955b6cc3 100644 --- a/patches/server/0841-Fix-force-opening-enchantment-tables.patch +++ b/patches/server/0841-Fix-force-opening-enchantment-tables.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix force-opening enchantment tables diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 2abbcbd393660de69fec567c3e31dbc774d93920..10fad0ba0624fdb601de9cfb9dc82590bd8149ce 100644 +index 98ee3a7eff6cd1dd3fdbd7cc6a94deebcefbc565..103d5e14972516968030df255cde49c82b93c38f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -402,7 +402,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -405,7 +405,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { // If there isn't an enchant table we can force create one, won't be very useful though. BlockPos pos = CraftLocation.toBlockPosition(location); diff --git a/patches/server/0842-Add-Entity-Body-Yaw-API.patch b/patches/server/0842-Add-Entity-Body-Yaw-API.patch index 87974f97d5..826e32eacd 100644 --- a/patches/server/0842-Add-Entity-Body-Yaw-API.patch +++ b/patches/server/0842-Add-Entity-Body-Yaw-API.patch @@ -41,23 +41,23 @@ index b4ed7612a019a3d4d473dfbfed2067ea437fee06..509550bbfb7c6bcff5dffa535f40af12 // Paper start - missing entity api diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index e8ef40fed546608d995fd31dc8a9721c00537749..fbe1d5051f8767db240e4d0c256f4a1088c4339c 100644 +index 9c5ad1ffdd82ce5d12eabca07f45a37e6a939f2e..ec62e68686b7c46df299d946850ec60631ecc6be 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1112,6 +1112,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - this.damageItemStack0(this.getHandle().getItemBySlot(nmsSlot), amount, nmsSlot); +@@ -1176,4 +1176,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { + this.getHandle().frictionState = state; } - + // Paper end - friction API ++ ++ // Paper start - body yaw API + @Override + public float getBodyYaw() { + return this.getHandle().getVisualRotationYInDegrees(); + } + + @Override -+ public void setBodyYaw(float bodyYaw) { ++ public void setBodyYaw(final float bodyYaw) { + this.getHandle().setYBodyRot(bodyYaw); + } -+ - private void damageItemStack0(net.minecraft.world.item.ItemStack nmsStack, int amount, net.minecraft.world.entity.EquipmentSlot slot) { - nmsStack.hurtAndBreak(amount, this.getHandle(), livingEntity -> { - if (slot != null) { ++ // Paper end - body yaw API + } diff --git a/patches/server/0845-Add-EntityFertilizeEggEvent.patch b/patches/server/0844-Add-EntityFertilizeEggEvent.patch similarity index 97% rename from patches/server/0845-Add-EntityFertilizeEggEvent.patch rename to patches/server/0844-Add-EntityFertilizeEggEvent.patch index f1e109f30c..1cd60bd301 100644 --- a/patches/server/0845-Add-EntityFertilizeEggEvent.patch +++ b/patches/server/0844-Add-EntityFertilizeEggEvent.patch @@ -69,10 +69,10 @@ index 0e85e3ab58d848b119212fa7d2eb4f92d3efe29b..0a5b953bd8c0c7f181da4090b950e9e6 this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F); } // Paper - Call EntityDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index b04cf7cb05adcef205f84decf3564f85de0c8e2d..6c5908eecaaf2f2b41bc0074e183a2259fe4a9b2 100644 +index 82c0a13558948a5f5e5cee0e2b67fcde5a906301..3291d8e14b53185a774b0219251d8a080192992b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2108,4 +2108,28 @@ public class CraftEventFactory { +@@ -2114,4 +2114,28 @@ public class CraftEventFactory { return event.callEvent(); } // Paper end diff --git a/patches/server/0844-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0844-Update-the-flag-when-a-captured-block-state-is-outda.patch deleted file mode 100644 index acec71e5bc..0000000000 --- a/patches/server/0844-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ /dev/null @@ -1,18 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> -Date: Sat, 18 Feb 2023 16:23:18 +0100 -Subject: [PATCH] Update the flag when a captured block state is outdated - - -diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2cbb3fcae6a8e26ee4bc2a9c88e64984da15ce86..5fcdb88dd2aa8c8c57d57935d15ea92c1015670e 100644 ---- a/src/main/java/net/minecraft/world/level/Level.java -+++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -451,6 +451,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); - this.capturedBlockStates.put(pos.immutable(), blockstate); - } -+ blockstate.setFlag(flags); // Paper - update the flag also - blockstate.setData(state); - return true; - } diff --git a/patches/server/0846-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0845-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 90% rename from patches/server/0846-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0845-Fix-HumanEntity-drop-not-updating-the-client-inv.patch index 39cf518fa6..d7bf05c02c 100644 --- a/patches/server/0846-Fix-HumanEntity-drop-not-updating-the-client-inv.patch +++ b/patches/server/0845-Fix-HumanEntity-drop-not-updating-the-client-inv.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Fix HumanEntity#drop not updating the client inv public net.minecraft.server.level.ServerPlayer containerSynchronizer diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 10fad0ba0624fdb601de9cfb9dc82590bd8149ce..94c2ea713e0614de570458f6b9c418a3d67d14b5 100644 +index 103d5e14972516968030df255cde49c82b93c38f..6a52789d6e68438c1eaa2fb9af591fa9e1d381e2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -755,8 +755,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -752,8 +752,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { // Paper end @Override public boolean dropItem(boolean dropAll) { diff --git a/patches/server/0847-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0846-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0847-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0846-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0848-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0847-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0848-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0847-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0849-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0848-Fix-advancement-triggers-for-entity-damage.patch similarity index 97% rename from patches/server/0849-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0848-Fix-advancement-triggers-for-entity-damage.patch index 60dd2d1db4..be0a156199 100644 --- a/patches/server/0849-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0848-Fix-advancement-triggers-for-entity-damage.patch @@ -23,7 +23,7 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d9f9a184e22bc02fbfd1ab029abf48af654c9935..cc82b269d422f6cd720021ba009606cab1b90590 100644 +index bd8d1e90ea6d2f6d3b625f6d264c12cb3ea009e8..e2564a07e0aa4bf2fcd9a749e9fc188dd0633675 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2322,7 +2322,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0850-Fix-text-display-error-on-spawn.patch b/patches/server/0849-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0850-Fix-text-display-error-on-spawn.patch rename to patches/server/0849-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0851-Fix-inventories-returning-null-Locations.patch b/patches/server/0850-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0851-Fix-inventories-returning-null-Locations.patch rename to patches/server/0850-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0852-Add-Shearable-API.patch b/patches/server/0851-Add-Shearable-API.patch similarity index 100% rename from patches/server/0852-Add-Shearable-API.patch rename to patches/server/0851-Add-Shearable-API.patch diff --git a/patches/server/0853-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0852-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0853-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0852-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0854-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0853-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0854-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0853-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0855-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0854-Treat-sequence-violations-like-they-should-be.patch similarity index 100% rename from patches/server/0855-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0854-Treat-sequence-violations-like-they-should-be.patch diff --git a/patches/server/0856-remove-duplicate-animate-packet-for-records.patch b/patches/server/0855-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0856-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0855-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0857-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0856-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/server/0857-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0856-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/server/0858-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 100% rename from patches/server/0858-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch diff --git a/patches/server/0859-Use-array-for-gamerule-storage.patch b/patches/server/0858-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0859-Use-array-for-gamerule-storage.patch rename to patches/server/0858-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0860-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0859-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0860-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0859-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0861-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0860-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0861-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0860-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0862-Add-Mob-Experience-reward-API.patch b/patches/server/0861-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0862-Add-Mob-Experience-reward-API.patch rename to patches/server/0861-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0863-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0862-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0863-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0862-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0864-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0864-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0865-More-accurate-isInOpenWater-impl.patch b/patches/server/0864-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0865-More-accurate-isInOpenWater-impl.patch rename to patches/server/0864-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0866-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0866-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0867-Expand-PlayerItemMendEvent.patch b/patches/server/0866-Expand-PlayerItemMendEvent.patch similarity index 97% rename from patches/server/0867-Expand-PlayerItemMendEvent.patch rename to patches/server/0866-Expand-PlayerItemMendEvent.patch index 013c1be8fd..932b1017b7 100644 --- a/patches/server/0867-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0866-Expand-PlayerItemMendEvent.patch @@ -51,10 +51,10 @@ index 4996776287c58039507ad2eda9d59e3fd13c08a8..e111017c3de7b374c702fed20a5e9855 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6c5908eecaaf2f2b41bc0074e183a2259fe4a9b2..52c1d39f494ba441bc93382d895679bcd15fcbde 100644 +index 3291d8e14b53185a774b0219251d8a080192992b..e457cd3b6a5a627f18fa8ce7fca90e75e0adb8ea 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1271,10 +1271,10 @@ public class CraftEventFactory { +@@ -1272,10 +1272,10 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0868-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0867-Refresh-ProjectileSource-for-projectiles.patch similarity index 100% rename from patches/server/0868-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0867-Refresh-ProjectileSource-for-projectiles.patch diff --git a/patches/server/0869-Add-transient-modifier-API.patch b/patches/server/0868-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0869-Add-transient-modifier-API.patch rename to patches/server/0868-Add-transient-modifier-API.patch diff --git a/patches/server/0870-Fix-block-place-logic.patch b/patches/server/0869-Fix-block-place-logic.patch similarity index 97% rename from patches/server/0870-Fix-block-place-logic.patch rename to patches/server/0869-Fix-block-place-logic.patch index 10b444c4dc..16fd6d2e89 100644 --- a/patches/server/0870-Fix-block-place-logic.patch +++ b/patches/server/0869-Fix-block-place-logic.patch @@ -41,7 +41,7 @@ index 59c4550b4cb8b0317f5256efc9376265f4583b60..964d6af9eb9752b9e08f712c80b67bd9 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 5fcdb88dd2aa8c8c57d57935d15ea92c1015670e..4fe0f8ba4a2b089f44808063e72dd994d6c73e0a 100644 +index 59dba562e17e9463c1e00dee4979b61a0f68643e..336ae7f1fc4bd045183c967f8e3bfb5a967a40a1 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -560,17 +560,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0871-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0871-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0872-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0872-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0873-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 100% rename from patches/server/0873-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch diff --git a/patches/server/0874-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0873-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0874-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0873-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0875-Fix-sniffer-removeExploredLocation.patch b/patches/server/0874-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0875-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0874-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0876-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0875-Add-method-to-remove-all-active-potion-effects.patch similarity index 86% rename from patches/server/0876-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0875-Add-method-to-remove-all-active-potion-effects.patch index d2aa5b28fd..8f0290e924 100644 --- a/patches/server/0876-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/server/0875-Add-method-to-remove-all-active-potion-effects.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index fbe1d5051f8767db240e4d0c256f4a1088c4339c..993844ee3d76591be38e8d27eba37ff8723443b1 100644 +index 909e4b139d5e372946b08bbb12665a49f3a09054..4031bf7fa35cfb480fbe6f0558a455f0c6985e39 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -540,6 +540,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -556,6 +556,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return effects; } diff --git a/patches/server/0877-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0877-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0878-Add-event-for-player-editing-sign.patch b/patches/server/0877-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0878-Add-event-for-player-editing-sign.patch rename to patches/server/0877-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0879-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0878-Only-tick-item-frames-if-players-can-see-it.patch similarity index 92% rename from patches/server/0879-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0878-Only-tick-item-frames-if-players-can-see-it.patch index decd7a346e..2ae56c0857 100644 --- a/patches/server/0879-Only-tick-item-frames-if-players-can-see-it.patch +++ b/patches/server/0878-Only-tick-item-frames-if-players-can-see-it.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Only tick item frames if players can see it In the event that an item frame cannot be seen by any players, ticking the item frame every tick is unnecessary. This can be a very hot section of the entity tracker when lots of item frames are present on a server, so this reduces the logic which speeds it up. diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 3608257fabec6ad7edb056def8a6f36c50b4871e..1f0931bdd4d82c05d7b5f8b8e5c2cc6d23905c73 100644 +index 40949825392281c2f7c756007781c672ec24665d..888cbfaf49aa6d1d1b8cc87cf411a1dd53fbe89d 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -111,7 +111,7 @@ public class ServerEntity { diff --git a/patches/server/0880-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0879-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0880-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0879-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0881-Add-option-to-disable-block-updates.patch b/patches/server/0880-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0881-Add-option-to-disable-block-updates.patch rename to patches/server/0880-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0882-Call-missing-BlockDispenseEvent.patch b/patches/server/0881-Call-missing-BlockDispenseEvent.patch similarity index 97% rename from patches/server/0882-Call-missing-BlockDispenseEvent.patch rename to patches/server/0881-Call-missing-BlockDispenseEvent.patch index dc2929f750..bd92362781 100644 --- a/patches/server/0882-Call-missing-BlockDispenseEvent.patch +++ b/patches/server/0881-Call-missing-BlockDispenseEvent.patch @@ -50,10 +50,10 @@ index b83af374a33a66a6ceeca119b961eea883bba41c..175b965c92b8b8be9c671e1ee478afa9 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 52c1d39f494ba441bc93382d895679bcd15fcbde..cd6ee371910328d4ab6f4a018fa0e4a48dbc7982 100644 +index e457cd3b6a5a627f18fa8ce7fca90e75e0adb8ea..600b340bd7fc6db3914ad67684a15428b619a9a3 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2109,6 +2109,32 @@ public class CraftEventFactory { +@@ -2115,6 +2115,32 @@ public class CraftEventFactory { } // Paper end diff --git a/patches/server/0883-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 100% rename from patches/server/0883-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch diff --git a/patches/server/0884-Optimize-player-lookups-for-beacons.patch b/patches/server/0883-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0884-Optimize-player-lookups-for-beacons.patch rename to patches/server/0883-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0885-Add-Sign-getInteractableSideFor.patch b/patches/server/0884-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0885-Add-Sign-getInteractableSideFor.patch rename to patches/server/0884-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0886-Array-backed-synched-entity-data.patch b/patches/server/0885-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0886-Array-backed-synched-entity-data.patch rename to patches/server/0885-Array-backed-synched-entity-data.patch diff --git a/patches/server/0887-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0886-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0887-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0886-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0888-Fix-BanList-API.patch b/patches/server/0887-Fix-BanList-API.patch similarity index 100% rename from patches/server/0888-Fix-BanList-API.patch rename to patches/server/0887-Fix-BanList-API.patch diff --git a/patches/server/0889-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0889-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0890-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0889-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0890-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0889-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0891-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0891-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0892-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0891-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 89% rename from patches/server/0892-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0891-ExperienceOrb-should-call-EntitySpawnEvent.patch index cc8338c2f5..d365559159 100644 --- a/patches/server/0892-ExperienceOrb-should-call-EntitySpawnEvent.patch +++ b/patches/server/0891-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 cd6ee371910328d4ab6f4a018fa0e4a48dbc7982..ebb39bd51dceab1d55eea81d33273af21acfc69b 100644 +index 600b340bd7fc6db3914ad67684a15428b619a9a3..592670a6ebaed9b42d76afe66264265fc0664934 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -735,7 +735,8 @@ public class CraftEventFactory { +@@ -736,7 +736,8 @@ public class CraftEventFactory { // Spigot start - SPIGOT-7523: Merge after spawn event and only merge if the event was not cancelled (gets checked above) if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) { double radius = world.spigotConfig.expMerge; diff --git a/patches/server/0893-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0893-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0894-Add-whitelist-events.patch b/patches/server/0893-Add-whitelist-events.patch similarity index 100% rename from patches/server/0894-Add-whitelist-events.patch rename to patches/server/0893-Add-whitelist-events.patch diff --git a/patches/server/0895-Implement-PlayerFailMoveEvent.patch b/patches/server/0894-Implement-PlayerFailMoveEvent.patch similarity index 100% rename from patches/server/0895-Implement-PlayerFailMoveEvent.patch rename to patches/server/0894-Implement-PlayerFailMoveEvent.patch diff --git a/patches/server/0896-Folia-scheduler-and-owned-region-API.patch b/patches/server/0895-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0896-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0895-Folia-scheduler-and-owned-region-API.patch index 92d708382e..e9b9ddb406 100644 --- a/patches/server/0896-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0895-Folia-scheduler-and-owned-region-API.patch @@ -1148,7 +1148,7 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 97dbe5a44d2791c6dee830654c3935f4ac54aad4..48da5bdabcf38afbbd1509eca56d5c761622409f 100644 +index bfee202e1dc8ea875b9d2b4e8c3b0be3f6d94b26..28645a835a169029b734262a9f42751caa52c4c9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1497,6 +1497,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop biomeBase = cra.getHandle().registryAccess().registryOrThrow(net.minecraft.core.registries.Registries.BIOME).getHolderOrThrow(net.minecraft.resources.ResourceKey.create(net.minecraft.core.registries.Registries.BIOME, org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(biomeKey))); cra.setBiome(x, y, z, biomeBase); } diff --git a/patches/server/0907-Bandaid-fix-for-Effect.patch b/patches/server/0906-Bandaid-fix-for-Effect.patch similarity index 98% rename from patches/server/0907-Bandaid-fix-for-Effect.patch rename to patches/server/0906-Bandaid-fix-for-Effect.patch index 92c731798f..64597f03d1 100644 --- a/patches/server/0907-Bandaid-fix-for-Effect.patch +++ b/patches/server/0906-Bandaid-fix-for-Effect.patch @@ -60,10 +60,10 @@ index a4519762175c68256b1f303daca8b9408ac182bb..457e9093adb99d31ffc7f061d8c858f9 case COMPOSTER_FILL_ATTEMPT: datavalue = ((Boolean) data) ? 1 : 0; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 54cdb4b6a97250c1e15e2fce355e3699c9189948..457d5cdb510a11a069ac7f54a8ed95a74527bff3 100644 +index 51e709beb32499f2f56189a0426bba93c43e1c0d..9dadce62fc3e248fa2a8607fe87960491353c317 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1371,7 +1371,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1391,7 +1391,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { public void playEffect(Location loc, Effect effect, T data, int radius) { if (data != null) { Preconditions.checkArgument(effect.getData() != null, "Effect.%s does not have a valid Data", effect); diff --git a/patches/server/0908-SculkCatalyst-bloom-API.patch b/patches/server/0907-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/server/0908-SculkCatalyst-bloom-API.patch rename to patches/server/0907-SculkCatalyst-bloom-API.patch diff --git a/patches/server/0909-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0908-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/server/0909-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0908-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/server/0910-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0909-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/server/0910-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0909-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/server/0911-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0910-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 100% rename from patches/server/0911-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0910-Don-t-tab-complete-namespaced-commands-if-send-names.patch diff --git a/patches/server/0912-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0911-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 100% rename from patches/server/0912-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0911-Properly-handle-BlockBreakEvent-isDropItems.patch diff --git a/patches/server/0913-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0912-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/server/0913-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0912-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/server/0914-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0913-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 100% rename from patches/server/0914-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0913-Configurable-entity-tracking-range-by-Y-coordinate.patch diff --git a/patches/server/0915-Add-Listing-API-for-Player.patch b/patches/server/0914-Add-Listing-API-for-Player.patch similarity index 100% rename from patches/server/0915-Add-Listing-API-for-Player.patch rename to patches/server/0914-Add-Listing-API-for-Player.patch diff --git a/patches/server/0916-Configurable-Region-Compression-Format.patch b/patches/server/0915-Configurable-Region-Compression-Format.patch similarity index 100% rename from patches/server/0916-Configurable-Region-Compression-Format.patch rename to patches/server/0915-Configurable-Region-Compression-Format.patch diff --git a/patches/server/0917-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0916-Add-BlockFace-to-BlockDamageEvent.patch similarity index 94% rename from patches/server/0917-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/server/0916-Add-BlockFace-to-BlockDamageEvent.patch index 66bd2d2f29..d17954042f 100644 --- a/patches/server/0917-Add-BlockFace-to-BlockDamageEvent.patch +++ b/patches/server/0916-Add-BlockFace-to-BlockDamageEvent.patch @@ -18,10 +18,10 @@ index 4747b05619f37009a5a236678aceec6cfc1c0b79..d0ca98c3f9ea5c8cb1053da6b17e9a90 if (blockEvent.isCancelled()) { // Let the client know the block still exists diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ebb39bd51dceab1d55eea81d33273af21acfc69b..49aa24d64d69fdccfdbca930b149a4b9c80e2b78 100644 +index 592670a6ebaed9b42d76afe66264265fc0664934..cd237b81a09b89926b15460eccb503af5267eb34 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -650,13 +650,13 @@ public class CraftEventFactory { +@@ -651,13 +651,13 @@ public class CraftEventFactory { /** * BlockDamageEvent */ diff --git a/patches/server/0918-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0917-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/server/0918-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0917-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/server/0919-Expand-Pose-API.patch b/patches/server/0918-Expand-Pose-API.patch similarity index 100% rename from patches/server/0919-Expand-Pose-API.patch rename to patches/server/0918-Expand-Pose-API.patch diff --git a/patches/server/0920-More-DragonBattle-API.patch b/patches/server/0919-More-DragonBattle-API.patch similarity index 100% rename from patches/server/0920-More-DragonBattle-API.patch rename to patches/server/0919-More-DragonBattle-API.patch diff --git a/patches/server/0921-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0920-Deep-clone-unhandled-nbt-tags.patch similarity index 100% rename from patches/server/0921-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0920-Deep-clone-unhandled-nbt-tags.patch diff --git a/patches/server/0922-Add-PlayerPickItemEvent.patch b/patches/server/0921-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/server/0922-Add-PlayerPickItemEvent.patch rename to patches/server/0921-Add-PlayerPickItemEvent.patch diff --git a/patches/server/0923-Allow-trident-custom-damage.patch b/patches/server/0922-Allow-trident-custom-damage.patch similarity index 100% rename from patches/server/0923-Allow-trident-custom-damage.patch rename to patches/server/0922-Allow-trident-custom-damage.patch diff --git a/patches/server/0924-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0923-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/server/0924-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/server/0923-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/server/0925-Optimize-nearest-structure-border-iteration.patch b/patches/server/0924-Optimize-nearest-structure-border-iteration.patch similarity index 100% rename from patches/server/0925-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0924-Optimize-nearest-structure-border-iteration.patch diff --git a/patches/server/0926-Implement-OfflinePlayer-isConnected.patch b/patches/server/0925-Implement-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/server/0926-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0925-Implement-OfflinePlayer-isConnected.patch diff --git a/patches/server/0927-Fix-inventory-desync.patch b/patches/server/0926-Fix-inventory-desync.patch similarity index 100% rename from patches/server/0927-Fix-inventory-desync.patch rename to patches/server/0926-Fix-inventory-desync.patch diff --git a/patches/server/0928-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0927-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 94% rename from patches/server/0928-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0927-Add-titleOverride-to-InventoryOpenEvent.patch index 06ad83c295..98a9e5449f 100644 --- a/patches/server/0928-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/0927-Add-titleOverride-to-InventoryOpenEvent.patch @@ -37,10 +37,10 @@ index d4930c40f03c5f331847bf52736c563a688d7daf..7272dc058c575efee5ac2643ce41b7d1 this.initMenu(container); return OptionalInt.of(this.containerCounter); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 94c2ea713e0614de570458f6b9c418a3d67d14b5..acbb64010cd59668aa1bcb52ff1220789cadb1d3 100644 +index 6a52789d6e68438c1eaa2fb9af591fa9e1d381e2..7984365c8290ac9e526a413b56e1c8c0841e330c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -357,12 +357,16 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -360,12 +360,16 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { Preconditions.checkArgument(windowType != null, "Unknown windowType"); AbstractContainerMenu container = new CraftContainer(inventory, player, player.nextContainerCounter()); @@ -58,7 +58,7 @@ index 94c2ea713e0614de570458f6b9c418a3d67d14b5..acbb64010cd59668aa1bcb52ff122078 //player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper - Prevent opening inventories when frozen -@@ -438,7 +442,10 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -441,7 +445,10 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { } // Trigger an INVENTORY_OPEN event @@ -70,7 +70,7 @@ index 94c2ea713e0614de570458f6b9c418a3d67d14b5..acbb64010cd59668aa1bcb52ff122078 if (container == null) { return; } -@@ -449,6 +456,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -452,6 +459,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { //String title = inventory.getTitle(); // Paper - comment net.kyori.adventure.text.Component adventure$title = inventory.title(); // Paper if (adventure$title == null) adventure$title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(inventory.getTitle()); // Paper @@ -79,10 +79,10 @@ index 94c2ea713e0614de570458f6b9c418a3d67d14b5..acbb64010cd59668aa1bcb52ff122078 if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper - Prevent opening inventories when frozen player.containerMenu = container; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 49aa24d64d69fdccfdbca930b149a4b9c80e2b78..7f7ec71e352e403169603dcd95b4dd50d68d37f7 100644 +index cd237b81a09b89926b15460eccb503af5267eb34..53c3b2123d6fa78367aef53d6949e58170cb9fce 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1388,10 +1388,21 @@ public class CraftEventFactory { +@@ -1389,10 +1389,21 @@ public class CraftEventFactory { } public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container) { @@ -105,7 +105,7 @@ index 49aa24d64d69fdccfdbca930b149a4b9c80e2b78..7f7ec71e352e403169603dcd95b4dd50 if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper - Inventory close reason } -@@ -1406,10 +1417,10 @@ public class CraftEventFactory { +@@ -1407,10 +1418,10 @@ public class CraftEventFactory { if (event.isCancelled()) { container.transferTo(player.containerMenu, craftPlayer); diff --git a/patches/server/0929-Configure-sniffer-egg-hatch-time.patch b/patches/server/0928-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/server/0929-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0928-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/server/0930-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0929-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 100% rename from patches/server/0930-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0929-Do-crystal-portal-proximity-check-before-entity-look.patch diff --git a/patches/server/0931-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0931-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0932-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0931-Add-slot-sanity-checks-in-container-clicks.patch similarity index 100% rename from patches/server/0932-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0931-Add-slot-sanity-checks-in-container-clicks.patch diff --git a/patches/server/0933-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0932-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0933-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0932-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0934-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0933-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0934-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0933-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0935-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0934-Fix-silent-equipment-change-for-mobs.patch similarity index 100% rename from patches/server/0935-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0934-Fix-silent-equipment-change-for-mobs.patch diff --git a/patches/server/0936-Fix-spigot-s-Forced-Stats.patch b/patches/server/0935-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0936-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0935-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0937-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0936-Add-missing-InventoryHolders-to-inventories.patch similarity index 100% rename from patches/server/0937-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0936-Add-missing-InventoryHolders-to-inventories.patch diff --git a/patches/server/0938-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0937-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/server/0938-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0937-Do-not-read-tile-entities-in-chunks-that-are-positio.patch diff --git a/patches/server/0939-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0938-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0939-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0938-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0941-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0941-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/0942-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0940-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/0942-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0940-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/0940-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0940-Remove-Spigot-Bug-Fix-for-MC-109346.patch deleted file mode 100644 index 8cd300599d..0000000000 --- a/patches/server/0940-Remove-Spigot-Bug-Fix-for-MC-109346.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> -Date: Sat, 23 Sep 2023 01:51:22 -0400 -Subject: [PATCH] Remove Spigot Bug Fix for MC-109346 - - -diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index da45984c9b2d3a55256efddde94580505f692655..c2a4fde17673a2bc3133aa0c68608c3da75d5cc5 100644 ---- a/src/main/java/net/minecraft/server/level/ServerEntity.java -+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -348,12 +348,6 @@ public class ServerEntity { - ((LivingEntity) this.entity).detectEquipmentUpdatesPublic(); // CraftBukkit - SPIGOT-3789: sync again immediately after sending - } - -- // CraftBukkit start - MC-109346: Fix for nonsensical head yaw -- if (this.entity instanceof ServerPlayer) { -- sender.accept(new ClientboundRotateHeadPacket(this.entity, (byte) Mth.floor(this.entity.getYHeadRot() * 256.0F / 360.0F))); -- } -- // CraftBukkit end -- - if (!this.entity.getPassengers().isEmpty()) { - sender.accept(new ClientboundSetPassengersPacket(this.entity)); - } diff --git a/patches/server/0943-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0941-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/0943-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/0941-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/0944-Fix-missing-map-initialize-event-call.patch b/patches/server/0942-Fix-missing-map-initialize-event-call.patch similarity index 100% rename from patches/server/0944-Fix-missing-map-initialize-event-call.patch rename to patches/server/0942-Fix-missing-map-initialize-event-call.patch diff --git a/patches/server/0945-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/0943-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/0945-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/0943-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/0946-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/0944-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/0946-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/0944-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/0947-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0945-Fix-UnsafeValues-loadAdvancement.patch similarity index 96% rename from patches/server/0947-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/0945-Fix-UnsafeValues-loadAdvancement.patch index 0de7a22d6d..60d7a4d75a 100644 --- a/patches/server/0947-Fix-UnsafeValues-loadAdvancement.patch +++ b/patches/server/0945-Fix-UnsafeValues-loadAdvancement.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix UnsafeValues#loadAdvancement diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index fab7dc81f774889300ed0affaef71cbda36517df..6372f3a4fdf6e37ef785749ec40c3bd67b003b28 100644 +index 6cba1d9f5c6e77309399c245d209662eb4548d56..8627d9d89e0288e35c17834c23ce94673ac08236 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -321,7 +321,27 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0948-Add-player-idle-duration-API.patch b/patches/server/0946-Add-player-idle-duration-API.patch similarity index 100% rename from patches/server/0948-Add-player-idle-duration-API.patch rename to patches/server/0946-Add-player-idle-duration-API.patch diff --git a/patches/server/0949-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0947-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 100% rename from patches/server/0949-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/0947-Don-t-check-if-we-can-see-non-visible-entities.patch diff --git a/patches/server/0950-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0948-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/0950-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/0948-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/0951-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 100% rename from patches/server/0951-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch diff --git a/patches/server/0952-Optimize-VarInts.patch b/patches/server/0950-Optimize-VarInts.patch similarity index 100% rename from patches/server/0952-Optimize-VarInts.patch rename to patches/server/0950-Optimize-VarInts.patch diff --git a/patches/server/0953-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0951-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/0953-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/0951-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/0954-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0952-Add-predicate-for-blocks-when-raytracing.patch similarity index 96% rename from patches/server/0954-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/0952-Add-predicate-for-blocks-when-raytracing.patch index 2a30c191f6..efe5b6e6bc 100644 --- a/patches/server/0954-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/server/0952-Add-predicate-for-blocks-when-raytracing.patch @@ -47,10 +47,10 @@ index c978f3b2d42f512e982f289e76c2422e41b7eec6..bb8e962e63c7a2d931f9bd7f7c002aa3 Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo()); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 457d5cdb510a11a069ac7f54a8ed95a74527bff3..be4fc09f9e30cb4bb5aaad49c23a19fd84f029bc 100644 +index 9dadce62fc3e248fa2a8607fe87960491353c317..6b6e5d483adc47a8db177359fbfcd626825c460f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1105,9 +1105,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1125,9 +1125,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public RayTraceResult rayTraceEntities(Location start, Vector direction, double maxDistance, double raySize, Predicate filter) { @@ -68,7 +68,7 @@ index 457d5cdb510a11a069ac7f54a8ed95a74527bff3..be4fc09f9e30cb4bb5aaad49c23a19fd Preconditions.checkArgument(direction != null, "Vector direction cannot be null"); direction.checkFinite(); -@@ -1157,9 +1163,16 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1177,9 +1183,16 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public RayTraceResult rayTraceBlocks(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks) { @@ -87,7 +87,7 @@ index 457d5cdb510a11a069ac7f54a8ed95a74527bff3..be4fc09f9e30cb4bb5aaad49c23a19fd Preconditions.checkArgument(direction != null, "Vector direction cannot be null"); direction.checkFinite(); -@@ -1172,16 +1185,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1192,16 +1205,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { } Vector dir = direction.clone().normalize().multiply(maxDistance); diff --git a/patches/server/0955-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0953-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 92% rename from patches/server/0955-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/0953-Broadcast-take-item-packets-with-collector-as-source.patch index ad908f281c..393709e2e0 100644 --- a/patches/server/0955-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/0953-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cc82b269d422f6cd720021ba009606cab1b90590..d4fb052996d05668f1749d19b91e27044166f819 100644 +index e2564a07e0aa4bf2fcd9a749e9fc188dd0633675..8567cdfc42ea2388dd44ed1de83bebca433abe12 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3724,7 +3724,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0956-Expand-LingeringPotion-API.patch b/patches/server/0954-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/0956-Expand-LingeringPotion-API.patch rename to patches/server/0954-Expand-LingeringPotion-API.patch diff --git a/patches/server/0957-Add-MaterialTagsTest.patch b/patches/server/0955-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/0957-Add-MaterialTagsTest.patch rename to patches/server/0955-Add-MaterialTagsTest.patch diff --git a/patches/server/0958-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0956-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 96% rename from patches/server/0958-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/0956-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch index 69084fab3f..a6ef0b68f1 100644 --- a/patches/server/0958-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch +++ b/patches/server/0956-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch @@ -45,10 +45,10 @@ index 41a3ca4edf4fa662f2af13efd7b78b56e24aa4a7..0a8a53710c693a220e9475f6f3112b91 BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index be4fc09f9e30cb4bb5aaad49c23a19fd84f029bc..263d60cb498f601b1381124127c084efe424409e 100644 +index 6b6e5d483adc47a8db177359fbfcd626825c460f..cdcab87bfe2e207ee1f4f8a111682efefbd96511 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -746,7 +746,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -766,7 +766,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { LightningBolt lightning = EntityType.LIGHTNING_BOLT.create(this.world); lightning.moveTo(loc.getX(), loc.getY(), loc.getZ()); diff --git a/patches/server/0959-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0957-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/0959-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/0957-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/0960-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0958-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/0960-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/0958-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/0961-Add-UUID-attribute-modifier-API.patch b/patches/server/0959-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/0961-Add-UUID-attribute-modifier-API.patch rename to patches/server/0959-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/0962-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0960-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/server/0962-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/0960-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/0963-Lazily-create-LootContext-for-criterions.patch b/patches/server/0961-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/0963-Lazily-create-LootContext-for-criterions.patch rename to patches/server/0961-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/0964-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0962-Don-t-fire-sync-events-during-worldgen.patch similarity index 99% rename from patches/server/0964-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/0962-Don-t-fire-sync-events-during-worldgen.patch index 58ccbc1f04..1b53c1ac5c 100644 --- a/patches/server/0964-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/0962-Don-t-fire-sync-events-during-worldgen.patch @@ -68,7 +68,7 @@ index 656c68b37bc25d6b77f295f9efe0a81dd20b69c1..8ba573bb4099ee5b27b61f333e72d794 }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d4fb052996d05668f1749d19b91e27044166f819..bdae6ea5528164995d9a256be6a2f9d0cb15d8ff 100644 +index 8567cdfc42ea2388dd44ed1de83bebca433abe12..d36e1d6f7bba220f7e6b0d8d23aff26275d9f33e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1142,6 +1142,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0965-Add-Structure-check-API.patch b/patches/server/0963-Add-Structure-check-API.patch similarity index 86% rename from patches/server/0965-Add-Structure-check-API.patch rename to patches/server/0963-Add-Structure-check-API.patch index b291fdf604..551c80ce78 100644 --- a/patches/server/0965-Add-Structure-check-API.patch +++ b/patches/server/0963-Add-Structure-check-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 263d60cb498f601b1381124127c084efe424409e..18dbaf5d73898756086b94d06d08f8384224709a 100644 +index cdcab87bfe2e207ee1f4f8a111682efefbd96511..35cc9bc399386344c1acc6446262d278d57febd0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -236,6 +236,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -237,6 +237,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { }; } // Paper end diff --git a/patches/server/0966-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0964-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/0966-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/0964-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/0967-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0965-Restore-vanilla-entity-drops-behavior.patch similarity index 97% rename from patches/server/0967-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/0965-Restore-vanilla-entity-drops-behavior.patch index a82abb4271..625d431fff 100644 --- a/patches/server/0967-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/0965-Restore-vanilla-entity-drops-behavior.patch @@ -104,7 +104,7 @@ index 4125802dda07d79dd0e1f7e7dc3c0ee85fa0383c..7c99742e01e894bcc7d89a8588b2f128 return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bdae6ea5528164995d9a256be6a2f9d0cb15d8ff..211e9bb82e65bdd5811c3b4df7ac93741fc7cdc3 100644 +index d36e1d6f7bba220f7e6b0d8d23aff26275d9f33e..c43927781c579f7237cd795e71e18e5a11074c7b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -255,7 +255,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -165,10 +165,10 @@ index f62b5976e307a69ca40d51ae76126005c801df0c..bbe299afd361a107e3936c8ea1a62067 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 7f7ec71e352e403169603dcd95b4dd50d68d37f7..f2f58ae16101293a7df53c32be015111baba1504 100644 +index 53c3b2123d6fa78367aef53d6949e58170cb9fce..99292a908b36e3c75d51c6877c7a0c01d9671aa6 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -964,17 +964,23 @@ public class CraftEventFactory { +@@ -965,17 +965,23 @@ public class CraftEventFactory { } public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim) { @@ -196,7 +196,7 @@ index 7f7ec71e352e403169603dcd95b4dd50d68d37f7..f2f58ae16101293a7df53c32be015111 populateFields(victim, event); // Paper - make cancellable CraftWorld world = (CraftWorld) entity.getWorld(); Bukkit.getServer().getPluginManager().callEvent(event); -@@ -988,19 +994,23 @@ public class CraftEventFactory { +@@ -989,19 +995,23 @@ public class CraftEventFactory { victim.expToDrop = event.getDroppedExp(); lootCheck.run(); // Paper - advancement triggers before destroying items @@ -224,7 +224,7 @@ index 7f7ec71e352e403169603dcd95b4dd50d68d37f7..f2f58ae16101293a7df53c32be015111 event.setKeepInventory(keepInventory); event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel populateFields(victim, event); // Paper - make cancellable -@@ -1019,10 +1029,14 @@ public class CraftEventFactory { +@@ -1020,10 +1030,14 @@ public class CraftEventFactory { victim.expToDrop = event.getDroppedExp(); victim.newExp = event.getNewExp(); diff --git a/patches/server/0968-Dont-resend-blocks-on-interactions.patch b/patches/server/0966-Dont-resend-blocks-on-interactions.patch similarity index 100% rename from patches/server/0968-Dont-resend-blocks-on-interactions.patch rename to patches/server/0966-Dont-resend-blocks-on-interactions.patch diff --git a/patches/server/0969-add-more-scoreboard-API.patch b/patches/server/0967-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/0969-add-more-scoreboard-API.patch rename to patches/server/0967-add-more-scoreboard-API.patch diff --git a/patches/server/0970-Improve-Registry.patch b/patches/server/0968-Improve-Registry.patch similarity index 93% rename from patches/server/0970-Improve-Registry.patch rename to patches/server/0968-Improve-Registry.patch index b3e7a17ff6..740baefc42 100644 --- a/patches/server/0970-Improve-Registry.patch +++ b/patches/server/0968-Improve-Registry.patch @@ -37,29 +37,29 @@ index b12b99253543445475b73a1d3d7c6364856b49e8..4fc02698a9312496e7f9bce1c64f3173 + // Paper end - improve Registry } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java -index 2e6b04a150eae4fbac7b4c6413d81b755ac87be2..6cce693a24e0b1b485832935d398fb26c91e0be0 100644 +index 49752459ad67db3182c6d6d30ab91f2a420847a8..b1e87b52753242c7210cb250e4e272d016317c26 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java -@@ -34,6 +34,7 @@ public class CraftTrimMaterial implements TrimMaterial, Handleable this + " doesn't have a key"); // Paper return this.key; } - } + diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java -index 5a570bae1262f768d86a6078bfded427294ed135..bf13fe2f858ee35c84c5a1f3fb2f7df61a62315b 100644 +index cd5f68a6fb8290c238ba466a34d955eb90667459..b1a3d3f2f9948e41ed41a5d374f78f95899199ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java -@@ -34,6 +34,7 @@ public class CraftTrimPattern implements TrimPattern, Handleable this + " doesn't have a key"); // Paper return this.key; } - } + diff --git a/src/test/java/org/bukkit/registry/PerRegistryTest.java b/src/test/java/org/bukkit/registry/PerRegistryTest.java index 1c4966520b6401e6571aa44d5934dfa280bc80e3..010de6fbb75eb5d51639695d260f916072fdb22d 100644 --- a/src/test/java/org/bukkit/registry/PerRegistryTest.java diff --git a/patches/server/0971-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0969-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 97% rename from patches/server/0971-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/0969-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index 5ef39afe5c..1977393bff 100644 --- a/patches/server/0971-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/0969-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,7 +26,7 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 211e9bb82e65bdd5811c3b4df7ac93741fc7cdc3..e2e5ec647725f1f16067003ec773530d72fc5fcf 100644 +index c43927781c579f7237cd795e71e18e5a11074c7b..693ea3891f18f071cdd79f9162f1521472b3ed24 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4201,7 +4201,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0972-Add-experience-points-API.patch b/patches/server/0970-Add-experience-points-API.patch similarity index 100% rename from patches/server/0972-Add-experience-points-API.patch rename to patches/server/0970-Add-experience-points-API.patch diff --git a/patches/server/0973-Add-drops-to-shear-events.patch b/patches/server/0971-Add-drops-to-shear-events.patch similarity index 98% rename from patches/server/0973-Add-drops-to-shear-events.patch rename to patches/server/0971-Add-drops-to-shear-events.patch index 57405a32c2..3d83041ef9 100644 --- a/patches/server/0973-Add-drops-to-shear-events.patch +++ b/patches/server/0971-Add-drops-to-shear-events.patch @@ -233,16 +233,16 @@ index 54c01fdaf507a30196fb8f38888a570f9e393559..9eab1170cb123d3b60a0231470251670 } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index f2f58ae16101293a7df53c32be015111baba1504..4c2e8129481384a143384d327e14320023735b1a 100644 +index 99292a908b36e3c75d51c6877c7a0c01d9671aa6..0a041d0e56dfe1319e5174cb0e6085dc35fa5c48 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1668,20 +1668,20 @@ public class CraftEventFactory { - return event; +@@ -1674,20 +1674,20 @@ public class CraftEventFactory { + player.level().getCraftServer().getPluginManager().callEvent(event); } - public static BlockShearEntityEvent callBlockShearEntityEvent(Entity animal, org.bukkit.block.Block dispenser, CraftItemStack is) { - BlockShearEntityEvent bse = new BlockShearEntityEvent(dispenser, animal.getBukkitEntity(), is); -+ public static BlockShearEntityEvent callBlockShearEntityEvent(Entity animal, Block dispenser, CraftItemStack is, List drops) { // Paper - custom shear drops ++ public static BlockShearEntityEvent callBlockShearEntityEvent(Entity animal, org.bukkit.block.Block dispenser, CraftItemStack is, List drops) { // Paper - custom shear drops + BlockShearEntityEvent bse = new BlockShearEntityEvent(dispenser, animal.getBukkitEntity(), is, Lists.transform(drops, CraftItemStack::asCraftMirror)); // Paper - custom shear drops Bukkit.getPluginManager().callEvent(bse); return bse; diff --git a/patches/server/0974-Add-PlayerShieldDisableEvent.patch b/patches/server/0972-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/server/0974-Add-PlayerShieldDisableEvent.patch rename to patches/server/0972-Add-PlayerShieldDisableEvent.patch diff --git a/patches/server/0975-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0973-Validate-ResourceLocation-in-NBT-reading.patch similarity index 99% rename from patches/server/0975-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/0973-Validate-ResourceLocation-in-NBT-reading.patch index 74748ab8d8..e5ce3cf93b 100644 --- a/patches/server/0975-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/0973-Validate-ResourceLocation-in-NBT-reading.patch @@ -53,7 +53,7 @@ index 8ba573bb4099ee5b27b61f333e72d794c48d5f29..69bdf3f2ee731e59e8d454816a9ca72c @Nullable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e2e5ec647725f1f16067003ec773530d72fc5fcf..761c7136147a5c65f700daadfc370cbd13b0b455 100644 +index 693ea3891f18f071cdd79f9162f1521472b3ed24..7f5457522835b073246054e66699fe73f7005b25 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -879,12 +879,13 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0976-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/0974-Properly-handle-experience-dropping-on-block-break.patch similarity index 98% rename from patches/server/0976-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/0974-Properly-handle-experience-dropping-on-block-break.patch index f7d4494ec0..3cc682a856 100644 --- a/patches/server/0976-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/0974-Properly-handle-experience-dropping-on-block-break.patch @@ -7,7 +7,7 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 6d98b910b1079f1b4a95c430e5500d55fbc68ec2..c0ae70e3490b56aaa464460e3c41175b27136f6b 100644 +index e881ed9de9d864e0522e1f7f97dc3debf57cf4b6..cedde2235227eb5820beefb98549994e1cca1198 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -625,7 +625,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0977-Fixup-NamespacedKey-handling.patch b/patches/server/0975-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/0977-Fixup-NamespacedKey-handling.patch rename to patches/server/0975-Fixup-NamespacedKey-handling.patch diff --git a/patches/server/0978-Expose-LootTable-of-DecoratedPot.patch b/patches/server/0976-Expose-LootTable-of-DecoratedPot.patch similarity index 100% rename from patches/server/0978-Expose-LootTable-of-DecoratedPot.patch rename to patches/server/0976-Expose-LootTable-of-DecoratedPot.patch diff --git a/patches/server/0979-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 100% rename from patches/server/0979-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch diff --git a/patches/server/0980-Rewrite-dataconverter-system.patch b/patches/server/0978-Rewrite-dataconverter-system.patch similarity index 99% rename from patches/server/0980-Rewrite-dataconverter-system.patch rename to patches/server/0978-Rewrite-dataconverter-system.patch index 0d62473208..2919728f24 100644 --- a/patches/server/0980-Rewrite-dataconverter-system.patch +++ b/patches/server/0978-Rewrite-dataconverter-system.patch @@ -24939,10 +24939,10 @@ index 49d39980054bce470ddaceeb6ab7fab83bf8dc54..63e187c65cb855031f286aad0d25ac46 } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 6372f3a4fdf6e37ef785749ec40c3bd67b003b28..1562e9832df8bf3f81fb37983a303da5bd9ceee6 100644 +index 8627d9d89e0288e35c17834c23ce94673ac08236..68ca4a408e6ee728f50918c2d28088d110a108e3 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -515,8 +515,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -520,8 +520,7 @@ public final class CraftMagicNumbers implements UnsafeValues { CompoundTag compound = deserializeNbtFromBytes(data); final int dataVersion = compound.getInt("DataVersion"); @@ -24952,7 +24952,7 @@ index 6372f3a4fdf6e37ef785749ec40c3bd67b003b28..1562e9832df8bf3f81fb37983a303da5 } @Override -@@ -536,7 +535,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -541,7 +540,7 @@ public final class CraftMagicNumbers implements UnsafeValues { CompoundTag compound = deserializeNbtFromBytes(data); int dataVersion = compound.getInt("DataVersion"); diff --git a/patches/server/0981-Starlight.patch b/patches/server/0979-Starlight.patch similarity index 99% rename from patches/server/0981-Starlight.patch rename to patches/server/0979-Starlight.patch index b4e6c66968..f7c01379eb 100644 --- a/patches/server/0981-Starlight.patch +++ b/patches/server/0979-Starlight.patch @@ -5403,10 +5403,10 @@ index 85de64c1e75e1323f8425fc53e525c215ff417ce..c6115477cc94bf47a5f459418a232412 return nbt != null ? ChunkStatus.byName(nbt.getString("Status")).getChunkType() : ChunkStatus.ChunkType.PROTOCHUNK; } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 18dbaf5d73898756086b94d06d08f8384224709a..6379f26776e2e267b84fe8f8392b53d7d89eb5ad 100644 +index 35cc9bc399386344c1acc6446262d278d57febd0..93c10b5a699f4f8a8aa97a0f666999fc4a495a5b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -496,12 +496,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -497,12 +497,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { } } diff --git a/patches/server/0982-Rewrite-chunk-system.patch b/patches/server/0980-Rewrite-chunk-system.patch similarity index 99% rename from patches/server/0982-Rewrite-chunk-system.patch rename to patches/server/0980-Rewrite-chunk-system.patch index 5094d789bb..fb45fa41de 100644 --- a/patches/server/0982-Rewrite-chunk-system.patch +++ b/patches/server/0980-Rewrite-chunk-system.patch @@ -15520,7 +15520,7 @@ index 2906cb10461b5334a7555046384c28848eec149f..329471af4f40e0a74612707cce96bb00 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 48da5bdabcf38afbbd1509eca56d5c761622409f..48e3b0f065b370f780f8a6145fba9f3f7976badb 100644 +index 28645a835a169029b734262a9f42751caa52c4c9..56d579e64b367dd21b2909eb0dbc1d7686d0c3d0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -311,7 +311,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop List getEntities(EntityTypeTest filter, AABB box, Predicate predicate); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c0ae70e3490b56aaa464460e3c41175b27136f6b..0df6572c94854526899890fba7e9da681b729f47 100644 +index cedde2235227eb5820beefb98549994e1cca1198..9c743c980697a14d7348554fb77f242d5eaa152e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -545,6 +545,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -21420,10 +21425,10 @@ index 92369eb350fd795a4e99731d7ceda4f8b890791e..a76f966d72b749f1706363d33caa351b // Paper start - Adventure diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 6379f26776e2e267b84fe8f8392b53d7d89eb5ad..726aa0461bbf380989a5b51dbfdfdda259b8632b 100644 +index 93c10b5a699f4f8a8aa97a0f666999fc4a495a5b..75ddeceb3f6c381b95dca0a93643aaca69d418e3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -507,10 +507,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -508,10 +508,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { ChunkHolder playerChunk = this.world.getChunkSource().chunkMap.getVisibleChunkIfPresent(ChunkPos.asLong(x, z)); if (playerChunk == null) return false; @@ -21441,7 +21446,7 @@ index 6379f26776e2e267b84fe8f8392b53d7d89eb5ad..726aa0461bbf380989a5b51dbfdfdda2 ClientboundLevelChunkWithLightPacket refreshPacket = new ClientboundLevelChunkWithLightPacket(chunk, this.world.getLightEngine(), null, null); for (ServerPlayer player : playersInRange) { -@@ -518,8 +522,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -519,8 +523,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { player.connection.send(refreshPacket); } @@ -21451,7 +21456,7 @@ index 6379f26776e2e267b84fe8f8392b53d7d89eb5ad..726aa0461bbf380989a5b51dbfdfdda2 return true; } -@@ -598,20 +601,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -599,20 +602,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public Collection getPluginChunkTickets(int x, int z) { DistanceManager chunkDistanceManager = this.world.getChunkSource().chunkMap.distanceManager; @@ -21473,7 +21478,7 @@ index 6379f26776e2e267b84fe8f8392b53d7d89eb5ad..726aa0461bbf380989a5b51dbfdfdda2 } @Override -@@ -619,7 +609,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -620,7 +610,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { Map> ret = new HashMap<>(); DistanceManager chunkDistanceManager = this.world.getChunkSource().chunkMap.distanceManager; @@ -21482,7 +21487,7 @@ index 6379f26776e2e267b84fe8f8392b53d7d89eb5ad..726aa0461bbf380989a5b51dbfdfdda2 long chunkKey = chunkTickets.getLongKey(); SortedArraySet> tickets = chunkTickets.getValue(); -@@ -1288,12 +1278,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1308,12 +1298,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public int getViewDistance() { @@ -21497,7 +21502,7 @@ index 6379f26776e2e267b84fe8f8392b53d7d89eb5ad..726aa0461bbf380989a5b51dbfdfdda2 } public BlockMetadataStore getBlockMetadata() { -@@ -2459,17 +2449,20 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2479,17 +2469,20 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void setSimulationDistance(final int simulationDistance) { diff --git a/patches/server/0983-incremental-chunk-and-player-saving.patch b/patches/server/0981-incremental-chunk-and-player-saving.patch similarity index 98% rename from patches/server/0983-incremental-chunk-and-player-saving.patch rename to patches/server/0981-incremental-chunk-and-player-saving.patch index c140932b29..7f2209d3c1 100644 --- a/patches/server/0983-incremental-chunk-and-player-saving.patch +++ b/patches/server/0981-incremental-chunk-and-player-saving.patch @@ -5,7 +5,7 @@ Subject: [PATCH] incremental chunk and player saving diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 48e3b0f065b370f780f8a6145fba9f3f7976badb..79de3c639795cfc0bd86f842446e2bb3ab71d23a 100644 +index 56d579e64b367dd21b2909eb0dbc1d7686d0c3d0..c8a2686f1e60a8c1fb56ce7b5d3e2ba62ec3a987 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -908,7 +908,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 761c7136147a5c65f700daadfc370cbd13b0b455..6b58292469b5507e0e000455146a7ee1852571c5 100644 +index 7f5457522835b073246054e66699fe73f7005b25..3f3498e0a24ad8b890173ce71cd63c1fffb561df 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3746,7 +3746,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -62,7 +62,7 @@ index bb8e962e63c7a2d931f9bd7f7c002aa35cfa5fd3..0fa131a6c98adb498fc8d534e0e39647 default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) { // Paper start - Add predicate for blocks when raytracing diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 207dd58cbceb5ac5c073526b40196f42fee77168..a798e1692141bd23f8a1d4916c5cbac2a5447d1f 100644 +index 6c4af5e5e26930a7b0d140f8058d798355e4d53b..5c209e323a5559480231c6d99357ba8b89edb027 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -329,10 +329,87 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0987-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/0985-Optimize-Network-Manager-and-add-advanced-packet-sup.patch similarity index 100% rename from patches/server/0987-Optimize-Network-Manager-and-add-advanced-packet-sup.patch rename to patches/server/0985-Optimize-Network-Manager-and-add-advanced-packet-sup.patch diff --git a/patches/server/0988-Allow-Saving-of-Oversized-Chunks.patch b/patches/server/0986-Allow-Saving-of-Oversized-Chunks.patch similarity index 100% rename from patches/server/0988-Allow-Saving-of-Oversized-Chunks.patch rename to patches/server/0986-Allow-Saving-of-Oversized-Chunks.patch diff --git a/patches/server/0989-Fix-World-isChunkGenerated-calls.patch b/patches/server/0987-Fix-World-isChunkGenerated-calls.patch similarity index 98% rename from patches/server/0989-Fix-World-isChunkGenerated-calls.patch rename to patches/server/0987-Fix-World-isChunkGenerated-calls.patch index 0b3eebad3f..f6df1f113b 100644 --- a/patches/server/0989-Fix-World-isChunkGenerated-calls.patch +++ b/patches/server/0987-Fix-World-isChunkGenerated-calls.patch @@ -153,10 +153,10 @@ index f27cf743bbc379520263909541d653dd38d1be58..0db8ee3b640e6d1268e9c1cccda85459 // Paper start - don't write garbage data to disk if writing serialization fails dataoutputstream.close(); // Only write if successful diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 726aa0461bbf380989a5b51dbfdfdda259b8632b..49d8fd363391d085067253504c146c6fcf297d8f 100644 +index 75ddeceb3f6c381b95dca0a93643aaca69d418e3..18a2f8c956137b8b60b07e02df4b3a2350fc6e46 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -382,9 +382,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -383,9 +383,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean isChunkGenerated(int x, int z) { @@ -182,7 +182,7 @@ index 726aa0461bbf380989a5b51dbfdfdda259b8632b..49d8fd363391d085067253504c146c6f throw new RuntimeException(ex); } } -@@ -536,20 +550,48 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -537,20 +551,48 @@ public class CraftWorld extends CraftRegionAccessor implements World { public boolean loadChunk(int x, int z, boolean generate) { org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot warnUnsafeChunk("loading a faraway chunk", x, z); // Paper diff --git a/patches/server/0990-Flat-bedrock-generator-settings.patch b/patches/server/0988-Flat-bedrock-generator-settings.patch similarity index 100% rename from patches/server/0990-Flat-bedrock-generator-settings.patch rename to patches/server/0988-Flat-bedrock-generator-settings.patch diff --git a/patches/server/0991-Entity-Activation-Range-2.0.patch b/patches/server/0989-Entity-Activation-Range-2.0.patch similarity index 99% rename from patches/server/0991-Entity-Activation-Range-2.0.patch rename to patches/server/0989-Entity-Activation-Range-2.0.patch index fd890e7432..ecc9538fcb 100644 --- a/patches/server/0991-Entity-Activation-Range-2.0.patch +++ b/patches/server/0989-Entity-Activation-Range-2.0.patch @@ -339,7 +339,7 @@ index b149e8bcac034bb3fc118a9adcb0de45e18ed5e9..fc35cfc9d045f3e5b6a50af1d0ba83b6 + } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a798e1692141bd23f8a1d4916c5cbac2a5447d1f..1ff8eed2aceb105a41ce7ecbba6a4efd104573bd 100644 +index 5c209e323a5559480231c6d99357ba8b89edb027..4bedd5801cc8ce14387f02dfb361a00ab2960855 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -157,6 +157,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0992-Optional-per-player-mob-spawns.patch b/patches/server/0990-Optional-per-player-mob-spawns.patch similarity index 100% rename from patches/server/0992-Optional-per-player-mob-spawns.patch rename to patches/server/0990-Optional-per-player-mob-spawns.patch diff --git a/patches/server/0993-Anti-Xray.patch b/patches/server/0991-Anti-Xray.patch similarity index 99% rename from patches/server/0993-Anti-Xray.patch rename to patches/server/0991-Anti-Xray.patch index 65f22d8479..584b0a7774 100644 --- a/patches/server/0993-Anti-Xray.patch +++ b/patches/server/0991-Anti-Xray.patch @@ -1168,7 +1168,7 @@ index 8a5f245fc98514b66216dde234650bfc0adc24b4..461c27292af06a5150de8ec263d0c852 } // Paper end - Send empty chunk diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1ff8eed2aceb105a41ce7ecbba6a4efd104573bd..29368a97c6348e2d1d6241db3d57e84b9537231a 100644 +index 4bedd5801cc8ce14387f02dfb361a00ab2960855..a2f8d2858c4a43ff642761fd86512a5f0666a0d2 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -172,6 +172,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1584,10 +1584,10 @@ index a76f966d72b749f1706363d33caa351b54e9fa14..c9137151f0d2978adb432c40da686894 // Paper start - Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 49d8fd363391d085067253504c146c6fcf297d8f..bfb178c69026e9759e9afaebb9da141b62d1f144 100644 +index 18a2f8c956137b8b60b07e02df4b3a2350fc6e46..01797d9791f19dfda4b168218eadeaae97f11eab 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -530,11 +530,16 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -531,11 +531,16 @@ public class CraftWorld extends CraftRegionAccessor implements World { List playersInRange = playerChunk.playerProvider.getPlayers(playerChunk.getPos(), false); if (playersInRange.isEmpty()) return true; // Paper - rewrite player chunk loader diff --git a/patches/server/0994-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 100% rename from patches/server/0994-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch diff --git a/patches/server/0995-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0993-Optimize-Collision-to-not-load-chunks.patch similarity index 100% rename from patches/server/0995-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/0993-Optimize-Collision-to-not-load-chunks.patch diff --git a/patches/server/0996-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 100% rename from patches/server/0996-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/server/0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch diff --git a/patches/server/0997-Entity-load-save-limit-per-chunk.patch b/patches/server/0995-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/server/0997-Entity-load-save-limit-per-chunk.patch rename to patches/server/0995-Entity-load-save-limit-per-chunk.patch diff --git a/patches/server/0998-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0996-Fix-and-optimise-world-force-upgrading.patch similarity index 99% rename from patches/server/0998-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0996-Fix-and-optimise-world-force-upgrading.patch index 1e5f26c776..6c12518ffe 100644 --- a/patches/server/0998-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0996-Fix-and-optimise-world-force-upgrading.patch @@ -267,7 +267,7 @@ index 329471af4f40e0a74612707cce96bb00819e6cf2..bc391d27399d8c22e78735ca39aa8ab4 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 79de3c639795cfc0bd86f842446e2bb3ab71d23a..1dfafbe508b4e4598339f412e5fb9d92717b5d26 100644 +index c8a2686f1e60a8c1fb56ce7b5d3e2ba62ec3a987..2c381ae8a604b9aee4613614593809f634aaa89d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -584,11 +584,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { // Paper - Fix preemptive player kick on a server shutdown + packetProcessing.push(listener); // Paper - detailed watchdog information + try { // Paper - detailed watchdog information - if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerCommonPacketListenerImpl && ((ServerCommonPacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590 + if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players if (listener.shouldHandleMessage(packet)) { co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings @@ -64,6 +84,12 @@ public class PacketUtils { diff --git a/patches/server/1017-Collision-optimisations.patch b/patches/server/1015-Collision-optimisations.patch similarity index 99% rename from patches/server/1017-Collision-optimisations.patch rename to patches/server/1015-Collision-optimisations.patch index de992f75ee..176352b0ab 100644 --- a/patches/server/1017-Collision-optimisations.patch +++ b/patches/server/1015-Collision-optimisations.patch @@ -2613,7 +2613,7 @@ index cc888bbcd6a50124fa553bc4a8ffd1e8885d3856..f42dd9602805e9d538506ee4e3eac7e2 // Paper start - Affects Spawning API diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 7693163f73ea2dc9cf357893e1545b11b2049aec..3afb280e401f8f1b22bf91472b0b70c4716ac95b 100644 +index 47e83adf64df673bc40077335baf786f865411e8..bb57f97dbc2fcc7c28ebfb54ff00796fc7f51efe 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -294,6 +294,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1018-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1016-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 100% rename from patches/server/1018-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/1016-Optimise-collision-checking-in-player-move-packet-ha.patch diff --git a/patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch b/patches/server/1017-Fix-tripwire-disarming-not-working-as-intended.patch similarity index 100% rename from patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch rename to patches/server/1017-Fix-tripwire-disarming-not-working-as-intended.patch diff --git a/patches/server/1020-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1018-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/1020-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/1018-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/1021-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1019-Add-Alternate-Current-redstone-implementation.patch similarity index 99% rename from patches/server/1021-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/1019-Add-Alternate-Current-redstone-implementation.patch index ed82f9487d..66ad39643d 100644 --- a/patches/server/1021-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/1019-Add-Alternate-Current-redstone-implementation.patch @@ -2035,7 +2035,7 @@ index af9f58328c09dddb2875f79128f906b8b276ab88..c9405cbea1202e5603dde42637cf2a78 EntityCallbacks() {} diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 3afb280e401f8f1b22bf91472b0b70c4716ac95b..f476ba6c97944bdffae5aacae2e285d17541f46e 100644 +index bb57f97dbc2fcc7c28ebfb54ff00796fc7f51efe..a09017e74d972a12d0b88b4ade9a3532ce0ecd08 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1887,4 +1887,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1022-optimize-dirt-and-snow-spreading.patch b/patches/server/1020-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/1022-optimize-dirt-and-snow-spreading.patch rename to patches/server/1020-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/1023-Properly-resend-entities.patch b/patches/server/1021-Properly-resend-entities.patch similarity index 99% rename from patches/server/1023-Properly-resend-entities.patch rename to patches/server/1021-Properly-resend-entities.patch index f0d407671b..5966fb39a6 100644 --- a/patches/server/1023-Properly-resend-entities.patch +++ b/patches/server/1021-Properly-resend-entities.patch @@ -150,7 +150,7 @@ index 97b0119ac71284b3a223c089bec26d87a01d3b25..1e5f709115007ff19901c0a6c3cf884d this.sendLevelInfo(player, worldserver1); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5cedbe57f15024e6b1c278de1b3cf3e1fd84de06..34e06b4f534215f7eead54a3b0467fd5e2d478db 100644 +index e35dd853bbffbf1771543d2a59878879cd09fb9c..22458154f36ebabb22368773f4e7f6d681c24960 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3844,6 +3844,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1024-Optimize-Hoppers.patch b/patches/server/1022-Optimize-Hoppers.patch similarity index 99% rename from patches/server/1024-Optimize-Hoppers.patch rename to patches/server/1022-Optimize-Hoppers.patch index b9cc3698c6..4502d0525f 100644 --- a/patches/server/1024-Optimize-Hoppers.patch +++ b/patches/server/1022-Optimize-Hoppers.patch @@ -50,7 +50,7 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d2526c39c91dd62ad676f04afc45332d774528d1..f12bf36a247a47b8d831536a4fefd2a2ce424494 100644 +index 55204f27d3633d0aef01ac2469925d02865ab2fe..0b1ed3a19ce11faf5650c7c2f7a150a2b10bab48 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1692,6 +1692,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop modifiers, Map> modifierFunctions, boolean cancelled) { CraftDamageSource bukkitDamageSource = new CraftDamageSource(source); @@ -185,7 +185,7 @@ index 4c2e8129481384a143384d327e14320023735b1a..cb3e9672f375a1a660757a05362729dd if (source.is(DamageTypeTags.IS_EXPLOSION)) { if (damager == null) { return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), entity, DamageCause.BLOCK_EXPLOSION, bukkitDamageSource, modifiers, modifierFunctions, cancelled, source.explodedBlockState); // Paper - Include BlockState for damage -@@ -1092,9 +1092,7 @@ public class CraftEventFactory { +@@ -1093,9 +1093,7 @@ public class CraftEventFactory { } else if (damager != null || source.getDirectEntity() != null) { DamageCause cause = (source.isSweep()) ? DamageCause.ENTITY_SWEEP_ATTACK : DamageCause.ENTITY_ATTACK; diff --git a/patches/server/1054-Expanded-Hopper-API.patch b/patches/server/1052-Expanded-Hopper-API.patch similarity index 100% rename from patches/server/1054-Expanded-Hopper-API.patch rename to patches/server/1052-Expanded-Hopper-API.patch diff --git a/work/Bukkit b/work/Bukkit index 7ca2b46c1a..f02baa3869 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 7ca2b46c1a7d7479e45a79aa2db86de5c7fd20d8 +Subproject commit f02baa38696abb62cc2588af8aaed4c9e0e1b30f diff --git a/work/CraftBukkit b/work/CraftBukkit index 176c0ad39f..dfaa89bbe3 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 176c0ad39fffd8a6003e686b910fc02b669f1434 +Subproject commit dfaa89bbe33da3db95b8cc61f9897845076ba757 From a774fbaca8fb88750dac58c5beedd4c906d5a09c Mon Sep 17 00:00:00 2001 From: Bridge <29434554+bridgelol@users.noreply.github.com> Date: Sat, 6 Apr 2024 22:38:37 +0200 Subject: [PATCH 034/215] feat: Entity#teleportAsync method with TeleportFlags (#10371) * feat: Entity#teleportAsync method with TeleportFlags * use method-local class --------- Co-authored-by: Jake Potrebic --- patches/api/0143-Async-Chunks-API.patch | 32 ++++++++------ .../0172-Entity-getEntitySpawnReason.patch | 4 +- patches/api/0204-Add-entity-liquid-API.patch | 4 +- patches/api/0215-Entity-isTicking.patch | 4 +- patches/api/0257-Expose-Tracked-Players.patch | 4 +- patches/api/0297-Missing-Entity-API.patch | 6 +-- ...22-Add-Raw-Byte-Entity-Serialization.patch | 4 +- .../api/0328-Entity-powdered-snow-API.patch | 4 +- patches/api/0338-Freeze-Tick-Lock-API.patch | 4 +- patches/api/0367-Collision-API.patch | 4 +- .../0394-Add-Sneaking-API-for-Entities.patch | 4 +- .../api/0400-Add-Entity-Body-Yaw-API.patch | 4 +- ...Folia-scheduler-and-owned-region-API.patch | 4 +- ...-API-for-an-entity-s-scoreboard-name.patch | 4 +- patches/api/0425-Expand-Pose-API.patch | 4 +- patches/server/0009-MC-Utils.patch | 42 ------------------- patches/server/0032-Entity-Origin-API.patch | 13 +++--- .../server/0139-Entity-fromMobSpawner.patch | 13 +++--- .../0287-Entity-getEntitySpawnReason.patch | 13 +++--- .../server/0398-Add-entity-liquid-API.patch | 9 ++-- patches/server/0433-Entity-isTicking.patch | 9 ++-- .../server/0516-Expose-Tracked-Players.patch | 9 ++-- patches/server/0585-Missing-Entity-API.patch | 8 ++-- ...26-Add-Raw-Byte-Entity-Serialization.patch | 16 +++---- .../0676-Entity-powdered-snow-API.patch | 16 +++---- patches/server/0764-More-Teleport-API.patch | 42 ++++++++++++++++++- patches/server/0771-Collision-API.patch | 4 +- .../server/0842-Add-Entity-Body-Yaw-API.patch | 16 +++---- ...-API-for-an-entity-s-scoreboard-name.patch | 4 +- 29 files changed, 160 insertions(+), 144 deletions(-) diff --git a/patches/api/0143-Async-Chunks-API.patch b/patches/api/0143-Async-Chunks-API.patch index 5511aebb55..30c484e7aa 100644 --- a/patches/api/0143-Async-Chunks-API.patch +++ b/patches/api/0143-Async-Chunks-API.patch @@ -485,10 +485,10 @@ index 8bef6168caf0932a5a64cf69eb7988fa3191b13a..ab183821b93dcfed1e881b481f0a3166 * Get a list of all players in this World * diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 57a1d07d0430019fd38c72b9f58c7145927ecd02..a0ed358156f9cbeb9e3cbb910ac17785edd30152 100644 +index 57a1d07d0430019fd38c72b9f58c7145927ecd02..8a7a4a8cf5f0b88664859cd43b0b01e6d261715d 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -168,6 +168,33 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -168,6 +168,39 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ public boolean teleport(@NotNull Entity destination, @NotNull TeleportCause cause); @@ -498,25 +498,31 @@ index 57a1d07d0430019fd38c72b9f58c7145927ecd02..a0ed358156f9cbeb9e3cbb910ac17785 + * @param loc Location to teleport to + * @return A future that will be completed with the result of the teleport + */ -+ @NotNull -+ public default java.util.concurrent.CompletableFuture teleportAsync(@NotNull Location loc) { -+ return teleportAsync(loc, TeleportCause.PLUGIN); ++ default java.util.concurrent.@NotNull CompletableFuture teleportAsync(final @NotNull Location loc) { ++ return this.teleportAsync(loc, TeleportCause.PLUGIN); + } ++ + /** + * Loads/Generates(in 1.13+) the Chunk asynchronously, and then teleports the entity when the chunk is ready. + * @param loc Location to teleport to + * @param cause Reason for teleport + * @return A future that will be completed with the result of the teleport + */ -+ @NotNull -+ public default java.util.concurrent.CompletableFuture teleportAsync(@NotNull Location loc, @NotNull TeleportCause cause) { -+ java.util.concurrent.CompletableFuture future = new java.util.concurrent.CompletableFuture<>(); -+ loc.getWorld().getChunkAtAsyncUrgently(loc).thenAccept((chunk) -> future.complete(teleport(loc, cause))).exceptionally(ex -> { -+ future.completeExceptionally(ex); -+ return null; -+ }); -+ return future; ++ default java.util.concurrent.@NotNull CompletableFuture teleportAsync(final @NotNull Location loc, final @NotNull TeleportCause cause) { ++ final class Holder { ++ static final io.papermc.paper.entity.TeleportFlag[] EMPTY_FLAGS = new io.papermc.paper.entity.TeleportFlag[0]; ++ } ++ return this.teleportAsync(loc, cause, Holder.EMPTY_FLAGS); + } ++ ++ /** ++ * Loads/Generates(in 1.13+) the Chunk asynchronously, and then teleports the entity when the chunk is ready. ++ * @param loc Location to teleport to ++ * @param cause Reason for teleport ++ * @param teleportFlags Flags to be used in this teleportation ++ * @return A future that will be completed with the result of the teleport ++ */ ++ java.util.concurrent.@NotNull CompletableFuture teleportAsync(@NotNull Location loc, @NotNull TeleportCause cause, @NotNull io.papermc.paper.entity.TeleportFlag @NotNull... teleportFlags); + // Paper end + /** diff --git a/patches/api/0172-Entity-getEntitySpawnReason.patch b/patches/api/0172-Entity-getEntitySpawnReason.patch index 3d4f99585c..25cf10b844 100644 --- a/patches/api/0172-Entity-getEntitySpawnReason.patch +++ b/patches/api/0172-Entity-getEntitySpawnReason.patch @@ -12,10 +12,10 @@ or DEFAULT since data was not stored. Co-authored-by: Aurora diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index a0ed358156f9cbeb9e3cbb910ac17785edd30152..8a01590cc0ee7517dc4c2a52e95aad2680610a43 100644 +index 8a7a4a8cf5f0b88664859cd43b0b01e6d261715d..11a77f977c6abc031cf5a4d58924bc7af5e7ea53 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -836,5 +836,11 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -842,5 +842,11 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent // TODO remove impl here return getLocation().getChunk(); } diff --git a/patches/api/0204-Add-entity-liquid-API.patch b/patches/api/0204-Add-entity-liquid-API.patch index ec3be0e7d1..f1e3bccd46 100644 --- a/patches/api/0204-Add-entity-liquid-API.patch +++ b/patches/api/0204-Add-entity-liquid-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add entity liquid API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 8a01590cc0ee7517dc4c2a52e95aad2680610a43..4d6d75387b9a3ec467982e17a5131cd10f302260 100644 +index 11a77f977c6abc031cf5a4d58924bc7af5e7ea53..3deccdf110c2cb74444b5d715082fbbdaa8f20ce 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -842,5 +842,40 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -848,5 +848,40 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason(); diff --git a/patches/api/0215-Entity-isTicking.patch b/patches/api/0215-Entity-isTicking.patch index bd622ba9b5..778cc4b6a6 100644 --- a/patches/api/0215-Entity-isTicking.patch +++ b/patches/api/0215-Entity-isTicking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 4d6d75387b9a3ec467982e17a5131cd10f302260..56e3a0649089e2546658144a3f09135be3a4e5e8 100644 +index 3deccdf110c2cb74444b5d715082fbbdaa8f20ce..9711a8077238383f23fb7aa2c20b2c089776e3f8 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -877,5 +877,10 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -883,5 +883,10 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * Check if entity is in lava */ boolean isInLava(); diff --git a/patches/api/0257-Expose-Tracked-Players.patch b/patches/api/0257-Expose-Tracked-Players.patch index f3f9ff4532..6c5f47bccd 100644 --- a/patches/api/0257-Expose-Tracked-Players.patch +++ b/patches/api/0257-Expose-Tracked-Players.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose Tracked Players diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 56e3a0649089e2546658144a3f09135be3a4e5e8..d68ccecaadcf7a906058e66a750f4cfce5dd7b3f 100644 +index 9711a8077238383f23fb7aa2c20b2c089776e3f8..b32683b5e4431950d9dccec3ae11f6377c7b0da7 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -882,5 +882,14 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -888,5 +888,14 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * Check if entity is inside a ticking chunk */ boolean isTicking(); diff --git a/patches/api/0297-Missing-Entity-API.patch b/patches/api/0297-Missing-Entity-API.patch index 2b32abe3c3..ee44607e5c 100644 --- a/patches/api/0297-Missing-Entity-API.patch +++ b/patches/api/0297-Missing-Entity-API.patch @@ -417,10 +417,10 @@ index 9e7f42caab1204036f4203354c115fd40c6def92..138d2530de2410f4a9424dabd3e5ce0c + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index d68ccecaadcf7a906058e66a750f4cfce5dd7b3f..578c22b0aef9c89a3c33b75c33bcdc60bdab6b49 100644 +index b32683b5e4431950d9dccec3ae11f6377c7b0da7..b2466aa08ebb26f3a5edd6a4b2c7e12f7a90ef0a 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -283,6 +283,40 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -289,6 +289,40 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean isFrozen(); @@ -585,7 +585,7 @@ index 6b3c9bef9a8a34ddc6ff42cf358541a2665bf5e3..9c618a27d590f186f29c5d9094fc565e + // Paper end } diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 99f314f25d1d6118e0884822d428c47060373bec..13eb80455dd589e87c39a7a5570ef093c7660205 100644 +index a253ac2b60b038177e6c4f20d8367be36f10b1bd..2036e7b464f631054abb94333a8674d31bdce800 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -992,6 +992,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch index bfc735d882..9e3ef08d86 100644 --- a/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch @@ -24,10 +24,10 @@ index ca0b126bff245ed3fe69bc49c28499f7a7aa9556..6426d8585bba71b3e998b1eb078ac0fc * Creates and returns the next EntityId available. *

      diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 578c22b0aef9c89a3c33b75c33bcdc60bdab6b49..621ee3fd49ee96143df2f24889e9aef74448a544 100644 +index b2466aa08ebb26f3a5edd6a4b2c7e12f7a90ef0a..d4f84318265343242a9fca565e456c7a8c1d68f7 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -925,5 +925,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -931,5 +931,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @Deprecated @NotNull Set getTrackedPlayers(); diff --git a/patches/api/0328-Entity-powdered-snow-API.patch b/patches/api/0328-Entity-powdered-snow-API.patch index 2b48461850..0eaf448d96 100644 --- a/patches/api/0328-Entity-powdered-snow-API.patch +++ b/patches/api/0328-Entity-powdered-snow-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity powdered snow API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 9cb84eababf159b04618a605ff03cdaee72c9502..a7b37ba26d8999a78a747fe5a41e15327ae3a2ee 100644 +index d4f84318265343242a9fca565e456c7a8c1d68f7..6db147a2330e8046c1bfb5ec2acd8dd30827d475 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -952,5 +952,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -958,5 +958,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return Whether the entity was successfully spawned. */ public boolean spawnAt(@NotNull Location location, @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason); diff --git a/patches/api/0338-Freeze-Tick-Lock-API.patch b/patches/api/0338-Freeze-Tick-Lock-API.patch index f7ef909291..a6c48fa931 100644 --- a/patches/api/0338-Freeze-Tick-Lock-API.patch +++ b/patches/api/0338-Freeze-Tick-Lock-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index a7b37ba26d8999a78a747fe5a41e15327ae3a2ee..9b5fe55399594c57c1b1521bea03781fd99fdf60 100644 +index 6db147a2330e8046c1bfb5ec2acd8dd30827d475..8827defeb26593cb2c2391e505b008f1190b01f3 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -317,6 +317,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -323,6 +323,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent boolean hasNoPhysics(); // Paper end - missing entity api diff --git a/patches/api/0367-Collision-API.patch b/patches/api/0367-Collision-API.patch index b7bf3a1ae3..ced31795fc 100644 --- a/patches/api/0367-Collision-API.patch +++ b/patches/api/0367-Collision-API.patch @@ -25,10 +25,10 @@ index 44ee56a5956cc17194c767a0c1071a2abffe818a..43dd6c59cceba12f27e6b265acc3ad97 // Paper end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index e2f315db8d137d7bc1b6fc83ed29032152f881f2..4951afd12de6145f671bae40a4df6e2222bc3fd8 100644 +index bc1547381b08d1acbbef885d9c3ecd63f3550426..8e2fa4dba0337a175acfee24fc59423ab4714977 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1002,4 +1002,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1008,4 +1008,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean isInPowderedSnow(); // Paper end diff --git a/patches/api/0394-Add-Sneaking-API-for-Entities.patch b/patches/api/0394-Add-Sneaking-API-for-Entities.patch index be37d7f75d..7c75bb16f2 100644 --- a/patches/api/0394-Add-Sneaking-API-for-Entities.patch +++ b/patches/api/0394-Add-Sneaking-API-for-Entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Sneaking API for Entities diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 4951afd12de6145f671bae40a4df6e2222bc3fd8..909926485a66e09988f7787b1d5ee2cf9c012558 100644 +index 8e2fa4dba0337a175acfee24fc59423ab4714977..2d6f7b2bf4cb23ef43a4dcbab2ecd2a7c7c2809c 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -813,6 +813,25 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -819,6 +819,25 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @NotNull Pose getPose(); diff --git a/patches/api/0400-Add-Entity-Body-Yaw-API.patch b/patches/api/0400-Add-Entity-Body-Yaw-API.patch index 3697d7ccc9..2236bdf2cf 100644 --- a/patches/api/0400-Add-Entity-Body-Yaw-API.patch +++ b/patches/api/0400-Add-Entity-Body-Yaw-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index d6e4c7cdd34b03295825b3c5ad76626f8f48ec0e..11df702c6f8282aa96ae1ed6b9b29c81fbfadbad 100644 +index 2d6f7b2bf4cb23ef43a4dcbab2ecd2a7c7c2809c..0be4107270fb7fdba5c7d0e6f3964d33337f91f0 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1020,6 +1020,43 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1026,6 +1026,43 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return true if in powdered snow. */ boolean isInPowderedSnow(); diff --git a/patches/api/0411-Folia-scheduler-and-owned-region-API.patch b/patches/api/0411-Folia-scheduler-and-owned-region-API.patch index b94a139667..402fbd4d66 100644 --- a/patches/api/0411-Folia-scheduler-and-owned-region-API.patch +++ b/patches/api/0411-Folia-scheduler-and-owned-region-API.patch @@ -769,10 +769,10 @@ index d433a9d2fe0bb487865fec33307cc4c45af475a0..f819de247080d58803a2851a4cab28d2 + // Paper end - Folia region threading API } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 17d5a5458ee51d8db243326745875ef31ba95fb3..05076e0648407d026b3adba43756e57f7e925abe 100644 +index 0be4107270fb7fdba5c7d0e6f3964d33337f91f0..c01c3f6576d4c0a8a173080ce01509d3eb678611 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1080,4 +1080,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1086,4 +1086,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean wouldCollideUsing(@NotNull BoundingBox boundingBox); // Paper end - Collision API diff --git a/patches/api/0420-API-for-an-entity-s-scoreboard-name.patch b/patches/api/0420-API-for-an-entity-s-scoreboard-name.patch index 67e76951f0..efef8c0b08 100644 --- a/patches/api/0420-API-for-an-entity-s-scoreboard-name.patch +++ b/patches/api/0420-API-for-an-entity-s-scoreboard-name.patch @@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different methods depending on the implementation of Entity you were working with. diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 05076e0648407d026b3adba43756e57f7e925abe..a7045fdf70e7dac94034ed6727a4eb29f31a9cdf 100644 +index c01c3f6576d4c0a8a173080ce01509d3eb678611..2a30cda9efb24829f9c6a265e8be2dd848fa7c7c 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1091,4 +1091,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1097,4 +1097,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @NotNull io.papermc.paper.threadedregions.scheduler.EntityScheduler getScheduler(); // Paper end - Folia schedulers diff --git a/patches/api/0425-Expand-Pose-API.patch b/patches/api/0425-Expand-Pose-API.patch index 0c88faca26..42cbaf8eb9 100644 --- a/patches/api/0425-Expand-Pose-API.patch +++ b/patches/api/0425-Expand-Pose-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index a7045fdf70e7dac94034ed6727a4eb29f31a9cdf..66f9e50d96710a41ac009271a499318fcf119c54 100644 +index 2a30cda9efb24829f9c6a265e8be2dd848fa7c7c..23def071492ccd715693d534cc506936e18f0f46 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -830,6 +830,42 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -836,6 +836,42 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @param sneak true if the entity should be sneaking */ void setSneaking(boolean sneak); diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index f510b63b5f..8cb6342c33 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -7850,48 +7850,6 @@ index 0630680d1ff7ffd2e9c323a800213b1137817642..f012ba9c55241afb159136e8b55e7740 + public void setSendViewDistance(final int viewDistance) { + throw new UnsupportedOperationException("Not implemented yet"); + } -+ // Paper end - } -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index f5a5496e21e29c6ae9f497f5939823078ac8c1c0..7126d8cdeea5eb23176af6a97a99b33961749d71 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -898,4 +898,37 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - return this.spigot; - } - // Spigot end -+ -+ // Paper start -+ @Override -+ public java.util.concurrent.CompletableFuture teleportAsync(Location location, TeleportCause cause) { -+ Preconditions.checkArgument(location != null, "location"); -+ location.checkFinite(); -+ Location locationClone = location.clone(); // clone so we don't need to worry about mutations after this call. -+ -+ net.minecraft.server.level.ServerLevel world = ((CraftWorld)locationClone.getWorld()).getHandle(); -+ java.util.concurrent.CompletableFuture ret = new java.util.concurrent.CompletableFuture<>(); -+ -+ world.loadChunksForMoveAsync(getHandle().getBoundingBoxAt(locationClone.getX(), locationClone.getY(), locationClone.getZ()), -+ this instanceof CraftPlayer ? ca.spottedleaf.concurrentutil.executor.standard.PrioritisedExecutor.Priority.HIGHER : ca.spottedleaf.concurrentutil.executor.standard.PrioritisedExecutor.Priority.NORMAL, (list) -> { -+ net.minecraft.server.level.ServerChunkCache chunkProviderServer = world.getChunkSource(); -+ for (net.minecraft.world.level.chunk.ChunkAccess chunk : list) { -+ chunkProviderServer.addTicketAtLevel(net.minecraft.server.level.TicketType.POST_TELEPORT, chunk.getPos(), 33, CraftEntity.this.getEntityId()); -+ } -+ net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> { -+ try { -+ ret.complete(CraftEntity.this.teleport(locationClone, cause) ? Boolean.TRUE : Boolean.FALSE); -+ } catch (Throwable throwable) { -+ if (throwable instanceof ThreadDeath) { -+ throw (ThreadDeath)throwable; -+ } -+ net.minecraft.server.MinecraftServer.LOGGER.error("Failed to teleport entity " + CraftEntity.this, throwable); -+ ret.completeExceptionally(throwable); -+ } -+ }); -+ }); -+ -+ return ret; -+ } + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/patches/server/0032-Entity-Origin-API.patch b/patches/server/0032-Entity-Origin-API.patch index c0c5164e71..17fa38a37c 100644 --- a/patches/server/0032-Entity-Origin-API.patch +++ b/patches/server/0032-Entity-Origin-API.patch @@ -25,7 +25,7 @@ index 13725b794e923a4de0d06edcba1adf1b04611c95..4c0e12d9f36c78eeae4dcb2f58d41503 public void onTrackingEnd(Entity entity) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cdb4acbaf019608c57d7a40c6928ddc9c00fd1d5..c21c4d6df21bc9741f087ac4a328aad04b1cda38 100644 +index 360e322ee298048bd280160a49f000384d930c3a..6f687387d8f817646dacf0e0373d50db8ee80dd5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -320,7 +320,27 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -94,14 +94,15 @@ index cdb4acbaf019608c57d7a40c6928ddc9c00fd1d5..c21c4d6df21bc9741f087ac4a328aad0 CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Entity being loaded"); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index e78a378f0de48cde3702774970e6cda241b8ddda..6871fe86c9cda00d0187f3df827772200eca1bcc 100644 +index 0f51f05f334d262b3435cebce47c3b9f08936398..85d77772b003e56382f8c3b55fc11a9ae1ec535f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -968,5 +968,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - - return ret; +@@ -936,4 +936,21 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + return this.spigot; } + // Spigot end + ++ // Paper start - entity origin API + @Override + public Location getOrigin() { + Vector originVector = this.getHandle().getOriginVector(); @@ -116,5 +117,5 @@ index e78a378f0de48cde3702774970e6cda241b8ddda..6871fe86c9cda00d0187f3df82777220 + //noinspection ConstantConditions + return originVector.toLocation(world); + } - // Paper end ++ // Paper end - entity origin API } diff --git a/patches/server/0139-Entity-fromMobSpawner.patch b/patches/server/0139-Entity-fromMobSpawner.patch index eb0d96afdd..71a54b17f9 100644 --- a/patches/server/0139-Entity-fromMobSpawner.patch +++ b/patches/server/0139-Entity-fromMobSpawner.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity#fromMobSpawner() diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c261971ab482abfa5a1ca51abd189eff16421534..fe314015f8cbc44e29a8ec73ecca4eeadd1da39f 100644 +index 6d31ced629fabef4de2ef9a26586cea0cffa155c..0cc82ffdcebbdd92fa953e7c52a20911f46a503c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -395,6 +395,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -49,17 +49,18 @@ index a46293dafeb73f9206b92a2850df18a6a5f688b4..487e4211d6486d2b3052c931c27cee97 if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) { continue; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 4a875d038f1ab7f2bdc5f290a6ad71e4b61c6822..d715dcc9155ad9938bd4fbe0cde43079f614f203 100644 +index 1be5c322abcec8ec32b84dec02d386e53cb5e16a..4808c62d3d951b201061659c91d1001e4b9b49ef 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1013,5 +1013,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - //noinspection ConstantConditions +@@ -983,4 +983,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return originVector.toLocation(world); } + // Paper end - entity origin API + ++ // Paper start - Entity#fromMobSpawner + @Override + public boolean fromMobSpawner() { -+ return getHandle().spawnedViaMobSpawner; ++ return this.getHandle().spawnedViaMobSpawner; + } - // Paper end ++ // Paper end - Entity#fromMobSpawner } diff --git a/patches/server/0287-Entity-getEntitySpawnReason.patch b/patches/server/0287-Entity-getEntitySpawnReason.patch index 08c359b0fa..1593a0a103 100644 --- a/patches/server/0287-Entity-getEntitySpawnReason.patch +++ b/patches/server/0287-Entity-getEntitySpawnReason.patch @@ -59,7 +59,7 @@ index 28b81e29be07902ad4d04aeb18bffd49757c3029..bc440f9a239d3935bf6837edf815d4fd }); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cb453b843ecf82454a8ade369d424d5e7bbda4c4..92521a46de31b13812d82a844ddc178df2b34919 100644 +index f746829f1e94ee58821e56ec4192269add00395b..257be4dd3f38c089dd970b9ac6f292b4f010a01c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -238,6 +238,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -133,17 +133,18 @@ index faad948f089575e4988d989790cc1dd13f8a79cd..e143f42e71ac774d49b75e6d85591aa1 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 34e4dd733a2e9ccc3c7f1b228825428100e583e9..d898b26d6d9c6999aa645f201bdbbd6e30073c0f 100644 +index 6fddbcec673564ac531a852f631f6acc460accbd..9ed122efb2b380bb2c1b50fdfe75bf3e679c9c6e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1019,5 +1019,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - public boolean fromMobSpawner() { - return getHandle().spawnedViaMobSpawner; +@@ -991,4 +991,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + return this.getHandle().spawnedViaMobSpawner; } + // Paper end - Entity#fromMobSpawner + ++ // Paper start - entity spawn reason API + @Override + public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason() { + return getHandle().spawnReason; + } - // Paper end ++ // Paper end - entity spawn reason API } diff --git a/patches/server/0398-Add-entity-liquid-API.patch b/patches/server/0398-Add-entity-liquid-API.patch index a13db460a4..bbfe602323 100644 --- a/patches/server/0398-Add-entity-liquid-API.patch +++ b/patches/server/0398-Add-entity-liquid-API.patch @@ -8,14 +8,15 @@ public net.minecraft.world.entity.Entity isInRain()Z public net.minecraft.world.entity.Entity isInBubbleColumn()Z diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index d898b26d6d9c6999aa645f201bdbbd6e30073c0f..061b7215a678c8ec563bdb9c2a8beb65061faf0e 100644 +index 9ed122efb2b380bb2c1b50fdfe75bf3e679c9c6e..326978aedbd9cc81db2bf1d5398c1cd2ce68a866 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1024,5 +1024,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason() { +@@ -998,4 +998,41 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return getHandle().spawnReason; } + // Paper end - entity spawn reason API + ++ // Paper start - entity liquid API + @Override + public boolean isUnderWater() { + return getHandle().isUnderWater(); @@ -50,5 +51,5 @@ index d898b26d6d9c6999aa645f201bdbbd6e30073c0f..061b7215a678c8ec563bdb9c2a8beb65 + public boolean isInLava() { + return getHandle().isInLava(); + } - // Paper end ++ // Paper end - entity liquid API } diff --git a/patches/server/0433-Entity-isTicking.patch b/patches/server/0433-Entity-isTicking.patch index 205f3da8d5..1b453a84c9 100644 --- a/patches/server/0433-Entity-isTicking.patch +++ b/patches/server/0433-Entity-isTicking.patch @@ -19,17 +19,18 @@ index 44610d4e3fb69e6cf5629d9e895e93d8dd5e09e9..2c0c41ae455ae5894e6bd85830741143 // Paper end - Expose entity id counter } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index c8033bde8976c128da832befe4225238737a992a..103e8707ae9434c8e60059f75dafdd9e0fcc8b39 100644 +index f664fd4aa8d79e95787848b5a3e0ed7bc182fa25..ef8f8b3f97405250ebe058c67c4099da66a8e773 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1059,5 +1059,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - public boolean isInLava() { +@@ -1035,4 +1035,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return getHandle().isInLava(); } + // Paper end - entity liquid API + ++ // Paper start - isTicking API + @Override + public boolean isTicking() { + return getHandle().isTicking(); + } - // Paper end ++ // Paper end - isTicking API } diff --git a/patches/server/0516-Expose-Tracked-Players.patch b/patches/server/0516-Expose-Tracked-Players.patch index e31f586e35..144143bd1f 100644 --- a/patches/server/0516-Expose-Tracked-Players.patch +++ b/patches/server/0516-Expose-Tracked-Players.patch @@ -5,14 +5,15 @@ Subject: [PATCH] Expose Tracked Players diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 103e8707ae9434c8e60059f75dafdd9e0fcc8b39..07158732dd6a5b7d622b7f2ea10ca87b50365b8a 100644 +index ef8f8b3f97405250ebe058c67c4099da66a8e773..524d3118663f5531e530dcdfa5da4ded2415468f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1064,5 +1064,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - public boolean isTicking() { +@@ -1042,4 +1042,19 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return getHandle().isTicking(); } + // Paper end - isTicking API + ++ // Paper start - tracked players API + @Override + public Set getTrackedPlayers() { + if (this.entity.tracker == null) { @@ -25,5 +26,5 @@ index 103e8707ae9434c8e60059f75dafdd9e0fcc8b39..07158732dd6a5b7d622b7f2ea10ca87b + } + return set; + } - // Paper end ++ // Paper end - tracked players API } diff --git a/patches/server/0585-Missing-Entity-API.patch b/patches/server/0585-Missing-Entity-API.patch index 3558c5f72f..2d5619dd11 100644 --- a/patches/server/0585-Missing-Entity-API.patch +++ b/patches/server/0585-Missing-Entity-API.patch @@ -671,13 +671,13 @@ index fc0f0e841dc974d080e1abb9bbafb5165801131f..d657fd2c507a5b215aeab0a5f3e9c2ee + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 07158732dd6a5b7d622b7f2ea10ca87b50365b8a..ebbefcdea6356384f27e964bd551bad2f9e696e8 100644 +index 524d3118663f5531e530dcdfa5da4ded2415468f..65ce8ab201e7e36f6d2637e906af325e11e425dd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1078,4 +1078,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1057,4 +1057,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return set; } - // Paper end + // Paper end - tracked players API + + // Paper start - missing entity api + @Override @@ -796,7 +796,7 @@ index 2cec61a1bb050c1ef81c5fc3d0afafe9ff29d459..97fa4e1e70203194bd939618b2fad926 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index aaacc38b0b2dd435ef5cb6a934cfcd6659c4ca15..9c69fe09b2cf1172fe0e16f6799cc67bc0ccd397 100644 +index 0a039d3ce686b7e47361c60f141943b621898707..e2a566c4f9402fe035c3363faff84e49956a536b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -921,14 +921,29 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch index 4e9c2e327f..55d631cdee 100644 --- a/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch @@ -27,14 +27,14 @@ index 7dbbf0884b70acb37c3400364736fa8f6b68c964..5dce3d38ecd7b7639f02f3e1e92f3723 return this.isPassenger() ? false : this.saveAsPassenger(nbt); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index ebbefcdea6356384f27e964bd551bad2f9e696e8..06febdb103f98dd16cca32d7345b0ca6b52dcade 100644 +index 65ce8ab201e7e36f6d2637e906af325e11e425dd..c819fa8e5b69c23558a89b68f9a5a31e1b233ca3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1077,6 +1077,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - } - return set; +@@ -1058,6 +1058,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } -+ + // Paper end - tracked players API + ++ // Paper start - raw entity serialization API + @Override + public boolean spawnAt(Location location, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) { + Preconditions.checkNotNull(location, "location cannot be null"); @@ -44,9 +44,11 @@ index ebbefcdea6356384f27e964bd551bad2f9e696e8..06febdb103f98dd16cca32d7345b0ca6 + this.entity.setRot(location.getYaw(), location.getPitch()); + return !this.entity.valid && this.entity.level().addFreshEntity(this.entity, reason); + } - // Paper end - ++ // Paper end - raw entity serialization API ++ // Paper start - missing entity api + @Override + public boolean isInvisible() { // Paper - moved up from LivingEntity diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java index 2734f4187a4b92ef461e1f2fdae9139c6f54d8fc..be82e1d52d7026facb20bf07f4b3a394e77ab708 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java diff --git a/patches/server/0676-Entity-powdered-snow-API.patch b/patches/server/0676-Entity-powdered-snow-API.patch index 60a2d3839b..449adb8c8d 100644 --- a/patches/server/0676-Entity-powdered-snow-API.patch +++ b/patches/server/0676-Entity-powdered-snow-API.patch @@ -7,21 +7,23 @@ Subject: [PATCH] Entity powdered snow API public net.minecraft.world.entity.monster.Skeleton inPowderSnowTime diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 06febdb103f98dd16cca32d7345b0ca6b52dcade..8f0df02a81c36244a3906efa6605f5eba030bfb9 100644 +index c819fa8e5b69c23558a89b68f9a5a31e1b233ca3..25c064a7da80ef98a758d7cb8bd1aa3de452e2e4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1087,6 +1087,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - this.entity.setRot(location.getYaw(), location.getPitch()); - return !this.entity.valid && this.entity.level().addFreshEntity(this.entity, reason); +@@ -1070,6 +1070,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } -+ + // Paper end - raw entity serialization API + ++ // Paper start - entity powdered snow API + @Override + public boolean isInPowderedSnow() { + return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed. + } - // Paper end - ++ // Paper end - entity powdered snow API ++ // Paper start - missing entity api + @Override + public boolean isInvisible() { // Paper - moved up from LivingEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java index a0ea54181de6c6685deef265cbe9f66aabbca42b..6f98da9be6aef35e3b5c940188b872459a383c8e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java diff --git a/patches/server/0764-More-Teleport-API.patch b/patches/server/0764-More-Teleport-API.patch index c593fa72c5..763d23ba14 100644 --- a/patches/server/0764-More-Teleport-API.patch +++ b/patches/server/0764-More-Teleport-API.patch @@ -29,7 +29,7 @@ index 5775d071f714e7b9d959bfa94510b865f489e68e..27eb4bc4d1276ea36b97d0faeed2acee d0 = to.getX(); d1 = to.getY(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 88e05b8ec5f442b3ad14e3b39a06beeca5c169ae..70c1b20c2b25fbe53255f1753d86570c975767ab 100644 +index 46bc34741394740de46546bd4ce7db35c757316c..79e58d7a72a599cd84d479be62f72c523e37dd07 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -219,15 +219,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -71,6 +71,46 @@ index 88e05b8ec5f442b3ad14e3b39a06beeca5c169ae..70c1b20c2b25fbe53255f1753d86570c // Let the server handle cross world teleports if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) { +@@ -948,6 +969,39 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + return CraftEntity.perm; + } + ++ // Paper start - more teleport API / async chunk API ++ @Override ++ public java.util.concurrent.CompletableFuture teleportAsync(final Location location, final TeleportCause cause, final io.papermc.paper.entity.TeleportFlag... teleportFlags) { ++ Preconditions.checkArgument(location != null, "location"); ++ location.checkFinite(); ++ Location locationClone = location.clone(); // clone so we don't need to worry about mutations after this call. ++ ++ net.minecraft.server.level.ServerLevel world = ((CraftWorld)locationClone.getWorld()).getHandle(); ++ java.util.concurrent.CompletableFuture ret = new java.util.concurrent.CompletableFuture<>(); ++ ++ world.loadChunksForMoveAsync(getHandle().getBoundingBoxAt(locationClone.getX(), locationClone.getY(), locationClone.getZ()), ++ this instanceof CraftPlayer ? ca.spottedleaf.concurrentutil.executor.standard.PrioritisedExecutor.Priority.HIGHER : ca.spottedleaf.concurrentutil.executor.standard.PrioritisedExecutor.Priority.NORMAL, (list) -> { ++ net.minecraft.server.level.ServerChunkCache chunkProviderServer = world.getChunkSource(); ++ for (net.minecraft.world.level.chunk.ChunkAccess chunk : list) { ++ chunkProviderServer.addTicketAtLevel(net.minecraft.server.level.TicketType.POST_TELEPORT, chunk.getPos(), 33, CraftEntity.this.getEntityId()); ++ } ++ net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> { ++ try { ++ ret.complete(CraftEntity.this.teleport(locationClone, cause, teleportFlags) ? Boolean.TRUE : Boolean.FALSE); ++ } catch (Throwable throwable) { ++ if (throwable instanceof ThreadDeath) { ++ throw (ThreadDeath)throwable; ++ } ++ net.minecraft.server.MinecraftServer.LOGGER.error("Failed to teleport entity " + CraftEntity.this, throwable); ++ ret.completeExceptionally(throwable); ++ } ++ }); ++ }); ++ ++ return ret; ++ } ++ // Paper end - more teleport API / async chunk API ++ + // Spigot start + private final org.bukkit.entity.Entity.Spigot spigot = new org.bukkit.entity.Entity.Spigot() + { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 11e144bf561cc3c4dc1d8b712f915cc167f4d4ed..f606250106f1bcf5870dff1167f2902f85f7784a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/patches/server/0771-Collision-API.patch b/patches/server/0771-Collision-API.patch index 8cc69f84e5..67db25ca90 100644 --- a/patches/server/0771-Collision-API.patch +++ b/patches/server/0771-Collision-API.patch @@ -22,10 +22,10 @@ index fbcf1320ef9c1817b24aa8724cd6cf07319c20b9..5680e9772a2d90e997d2d0aacdda9edd // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 70c1b20c2b25fbe53255f1753d86570c975767ab..254df37281a358cc0ac99b46f34daf2fd9774d5a 100644 +index 79e58d7a72a599cd84d479be62f72c523e37dd07..f6d6b2c7aefc39a6e6e2b0e61fd9afb334bee764 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1148,4 +1148,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1164,4 +1164,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return this.getHandle().noPhysics; } // Paper end - missing entity api diff --git a/patches/server/0842-Add-Entity-Body-Yaw-API.patch b/patches/server/0842-Add-Entity-Body-Yaw-API.patch index 826e32eacd..7164c139b9 100644 --- a/patches/server/0842-Add-Entity-Body-Yaw-API.patch +++ b/patches/server/0842-Add-Entity-Body-Yaw-API.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index b4ed7612a019a3d4d473dfbfed2067ea437fee06..509550bbfb7c6bcff5dffa535f40af12aab898a8 100644 +index 4dfbcaba4615bd761c1eb9d5994168c7202fc571..8025b3e9afebc9ad0c08453403422589bf5dd27d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1136,6 +1136,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - public boolean isInPowderedSnow() { - return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed. +@@ -1154,6 +1154,33 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } -+ + // Paper end - entity powdered snow API + ++ // Paper start - entity body yaw API + @Override + public double getX() { + return this.entity.getX(); @@ -37,9 +37,11 @@ index b4ed7612a019a3d4d473dfbfed2067ea437fee06..509550bbfb7c6bcff5dffa535f40af12 + public float getYaw() { + return this.entity.getBukkitYaw(); + } - // Paper end - ++ // Paper end - entity body yaw API ++ // Paper start - missing entity api + @Override + public boolean isInvisible() { // Paper - moved up from LivingEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java index 9c5ad1ffdd82ce5d12eabca07f45a37e6a939f2e..ec62e68686b7c46df299d946850ec60631ecc6be 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java diff --git a/patches/server/0908-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0908-API-for-an-entity-s-scoreboard-name.patch index dbff93ae56..c85896cb5a 100644 --- a/patches/server/0908-API-for-an-entity-s-scoreboard-name.patch +++ b/patches/server/0908-API-for-an-entity-s-scoreboard-name.patch @@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different methods depending on the implementation of Entity you were working with. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 8086eae45b03fd53bc7cac625b51fc10d8523f4f..d91d56175e91fb06138901bad56c1c2544b3d20e 100644 +index a47d3dba348a058ea9ca675b7f6490a46c1ad970..cbcfb0bc3a85b60e13014245f256e5c356b4b79b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1216,4 +1216,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1234,4 +1234,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return !this.getHandle().level().noCollision(this.getHandle(), aabb); } // Paper end - Collision API From 06361fa662d82745f26642c79a20db82acbb8c30 Mon Sep 17 00:00:00 2001 From: Pierpaolo Coletta Date: Sat, 6 Apr 2024 23:16:54 +0200 Subject: [PATCH 035/215] Fix invalid block entities created during world gen (#10375) --- ...invalid-block-entity-during-world-ge.patch | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 patches/server/1053-Fix-creation-of-invalid-block-entity-during-world-ge.patch diff --git a/patches/server/1053-Fix-creation-of-invalid-block-entity-during-world-ge.patch b/patches/server/1053-Fix-creation-of-invalid-block-entity-during-world-ge.patch new file mode 100644 index 0000000000..5f6f4e6b9c --- /dev/null +++ b/patches/server/1053-Fix-creation-of-invalid-block-entity-during-world-ge.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Pierpaolo Coletta +Date: Sat, 30 Mar 2024 21:06:10 +0100 +Subject: [PATCH] Fix creation of invalid block entity during world generation + + +diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java +index 5ece375eaf6bcc61864997a389bb5e24625e4505..9c3f8f79c2b3389a118dce9a1558edda52446833 100644 +--- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java ++++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java +@@ -352,6 +352,7 @@ public class WorldGenRegion implements WorldGenLevel { + ichunkaccess.removeBlockEntity(pos); + } + } else { ++ ichunkaccess.removeBlockEntity(pos); // Paper - Clear the block entity before setting up a DUMMY block entity + CompoundTag nbttagcompound = new CompoundTag(); + + nbttagcompound.putInt("x", pos.getX()); +diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +index 6ec3fc801453fd54c25b642e6fa71c19b463311d..465458e8a7dbaf9afb32709a71c7b2620d1e1fd2 100644 +--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java ++++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +@@ -1169,9 +1169,14 @@ public class LevelChunk extends ChunkAccess { + if (this.blockEntity.getType().isValid(iblockdata)) { + this.ticker.tick(LevelChunk.this.level, this.blockEntity.getBlockPos(), iblockdata, this.blockEntity); + this.loggedInvalidBlockState = false; +- } else if (!this.loggedInvalidBlockState) { +- this.loggedInvalidBlockState = true; +- LevelChunk.LOGGER.warn("Block entity {} @ {} state {} invalid for ticking:", new Object[]{LogUtils.defer(this::getType), LogUtils.defer(this::getPos), iblockdata}); ++ // Paper start - Remove the Block Entity if it's invalid ++ } else { ++ LevelChunk.this.removeBlockEntity(this.getPos()); ++ if (!this.loggedInvalidBlockState) { ++ this.loggedInvalidBlockState = true; ++ LevelChunk.LOGGER.warn("Block entity {} @ {} state {} invalid for ticking:", new Object[]{LogUtils.defer(this::getType), LogUtils.defer(this::getPos), iblockdata}); ++ } ++ // Paper end - Remove the Block Entity if it's invalid + } + + gameprofilerfiller.pop(); From bbee11fb0e45f1a59de18f9b4e7d55f9d0d5d55f Mon Sep 17 00:00:00 2001 From: powercas_gamer Date: Sat, 6 Apr 2024 23:20:29 +0200 Subject: [PATCH 036/215] Deprecate Bukkit#getLogger (#10388) * Deprecate Bukkit#getLogger * fix typo in MaterialSetTags * change to Internal and squash into other patch * improve api note message --------- Co-authored-by: Jake Potrebic --- patches/api/0154-Add-Material-Tags.patch | 6 +-- .../0173-Fix-Spigot-annotation-mistakes.patch | 44 ++++++++++++++++--- ...181-Expose-the-internal-current-tick.patch | 8 ++-- patches/api/0187-Add-tick-times-API.patch | 8 ++-- ...188-Expose-MinecraftServer-isRunning.patch | 8 ++-- patches/api/0196-Add-Mob-Goal-API.patch | 8 ++-- ...-Add-getOfflinePlayerIfCached-String.patch | 8 ++-- patches/api/0280-Add-basic-Datapack-API.patch | 8 ++-- ...llow-delegation-to-vanilla-chunk-gen.patch | 8 ++-- ...-command-sender-which-forwards-feedb.patch | 8 ++-- patches/api/0347-Custom-Potion-Mixes.patch | 8 ++-- ...Folia-scheduler-and-owned-region-API.patch | 8 ++-- ...-API-for-updating-recipes-on-clients.patch | 12 ++--- patches/api/0463-improve-BanList-types.patch | 8 ++-- 14 files changed, 90 insertions(+), 60 deletions(-) diff --git a/patches/api/0154-Add-Material-Tags.patch b/patches/api/0154-Add-Material-Tags.patch index f69ba8cace..12194664b8 100644 --- a/patches/api/0154-Add-Material-Tags.patch +++ b/patches/api/0154-Add-Material-Tags.patch @@ -115,7 +115,7 @@ index 0000000000000000000000000000000000000000..a02a02aa0c87e0f0ed9e509e4dcab015 +} diff --git a/src/main/java/com/destroystokyo/paper/MaterialTags.java b/src/main/java/com/destroystokyo/paper/MaterialTags.java new file mode 100644 -index 0000000000000000000000000000000000000000..4e7a1e26d3dddd2ccba4fa5d02e6752313507612 +index 0000000000000000000000000000000000000000..6dc176b694ff4f50ca4b665c3cf82212cf21f16f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/MaterialTags.java @@ -0,0 +1,717 @@ @@ -518,7 +518,7 @@ index 0000000000000000000000000000000000000000..4e7a1e26d3dddd2ccba4fa5d02e67523 + /** + * Covers the variants of a redstone torch. + */ -+ public static final MaterialSetTag REDSTONE_TORCH = new MaterialSetTag(keyFor("restone_torch")) ++ public static final MaterialSetTag REDSTONE_TORCH = new MaterialSetTag(keyFor("redstone_torch")) + .add(Material.REDSTONE_TORCH, Material.REDSTONE_WALL_TORCH) + .ensureSize("REDSTONE_TORCH", 2).lock(); + @@ -1132,7 +1132,7 @@ index 0000000000000000000000000000000000000000..5376e51adf5af15572b0d760b17f2de6 + .ensureSize("WATER_BASED", 11).lock(); +} diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java -index 85c48fa2d11e6ec8d10f6924ea57f9a9dd800d12..971bc2e3ae0c265664e2fc3105f4be3027edce26 100644 +index ec50179dd92402ad016bb2100251db5c5bf9d0c2..894e72aa97cd272ae57a91165cca0737a6d5742d 100644 --- a/src/main/java/org/bukkit/Tag.java +++ b/src/main/java/org/bukkit/Tag.java @@ -11,6 +11,10 @@ import org.jetbrains.annotations.NotNull; diff --git a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch index 77f24e2f0d..4208c6a42e 100644 --- a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch @@ -40,7 +40,7 @@ index ac420f0059fc50d3e1294f85df7515c9e17ff78f..24daba85ce4129fb0babe67570059ca8 public static Art getById(int id) { return BY_ID.get(id); diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index ac84e6d10a337f767477177ef90ad10d754341e6..567a0cda774ce2e28e1466c0c6b1e07b931b4008 100644 +index ac84e6d10a337f767477177ef90ad10d754341e6..4716b9a9ebaf3deb0a262d4ea1da492547be4913 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -868,9 +868,8 @@ public final class Bukkit { @@ -54,7 +54,22 @@ index ac84e6d10a337f767477177ef90ad10d754341e6..567a0cda774ce2e28e1466c0c6b1e07b @Nullable public static MapView getMap(int id) { return server.getMap(id); -@@ -1337,10 +1336,8 @@ public final class Bukkit { +@@ -949,8 +948,14 @@ public final class Bukkit { + * Returns the primary logger associated with this server instance. + * + * @return Logger associated with this server ++ * @see org.bukkit.plugin.Plugin#getSLF4JLogger() ++ * @apiNote This logger is for the Minecraft server software, not for specific plugins. You should ++ * use a logger for a specific plugin, either via {@link org.bukkit.plugin.Plugin#getSLF4JLogger()} ++ * or {@link org.bukkit.plugin.Plugin#getLogger()} or create a specific logger for a class via slf4j. ++ * That way, log messages contain contextual information about the source of the message. + */ + @NotNull ++ @org.jetbrains.annotations.ApiStatus.Internal // Paper - internalize Bukkit#getLogger + public static Logger getLogger() { + return server.getLogger(); + } +@@ -1337,10 +1342,8 @@ public final class Bukkit { * @param name the name the player to retrieve * @return an offline player * @see #getOfflinePlayer(java.util.UUID) @@ -66,7 +81,7 @@ index ac84e6d10a337f767477177ef90ad10d754341e6..567a0cda774ce2e28e1466c0c6b1e07b @NotNull public static OfflinePlayer getOfflinePlayer(@NotNull String name) { return server.getOfflinePlayer(name); -@@ -1931,7 +1928,7 @@ public final class Bukkit { +@@ -1931,7 +1934,7 @@ public final class Bukkit { * * @return the scoreboard manager or null if no worlds are loaded. */ @@ -519,7 +534,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 050cdd5147814b39d158f0ce0fa8f5aa20894cf7..e5844d4a9808984fa21049401ed117102a1c4db8 100644 +index 050cdd5147814b39d158f0ce0fa8f5aa20894cf7..1f98a99eea0fb9a7ebef5d650640e7dac392416e 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -728,9 +728,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -533,7 +548,22 @@ index 050cdd5147814b39d158f0ce0fa8f5aa20894cf7..e5844d4a9808984fa21049401ed11710 @Nullable public MapView getMap(int id); -@@ -1127,10 +1126,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -797,8 +796,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi + * Returns the primary logger associated with this server instance. + * + * @return Logger associated with this server ++ * @see org.bukkit.plugin.Plugin#getSLF4JLogger() ++ * @apiNote This logger is for the Minecraft server software, not for specific plugins. You should ++ * use a logger for a specific plugin, either via {@link org.bukkit.plugin.Plugin#getSLF4JLogger()} ++ * or {@link org.bukkit.plugin.Plugin#getLogger()} or create a specific logger for a class via slf4j. ++ * That way, log messages contain contextual information about the source of the message. + */ + @NotNull ++ @org.jetbrains.annotations.ApiStatus.Internal // Paper - internalize Bukkit#getLogger + public Logger getLogger(); + + /** +@@ -1127,10 +1132,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @param name the name the player to retrieve * @return an offline player * @see #getOfflinePlayer(java.util.UUID) @@ -545,7 +575,7 @@ index 050cdd5147814b39d158f0ce0fa8f5aa20894cf7..e5844d4a9808984fa21049401ed11710 @NotNull public OfflinePlayer getOfflinePlayer(@NotNull String name); -@@ -1630,7 +1627,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1630,7 +1633,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * * @return the scoreboard manager or null if no worlds are loaded. */ @@ -818,7 +848,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 71a4dc422b9ff25dd9bac58e5996d9996c4bc479..582d6d8eed0b0145fa58c977013c4914e99c40a4 100644 +index 6dbd3524af80adc9dd7a94444e668220d3fccaea..3e5b7dc8f72bd211a18ec6a930c4f02beea4205a 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -716,7 +716,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0181-Expose-the-internal-current-tick.patch b/patches/api/0181-Expose-the-internal-current-tick.patch index 9a0fe90fb6..4db7cb0ddf 100644 --- a/patches/api/0181-Expose-the-internal-current-tick.patch +++ b/patches/api/0181-Expose-the-internal-current-tick.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 567a0cda774ce2e28e1466c0c6b1e07b931b4008..80144dc81249f7198bee5e6281362fd704e006d4 100644 +index 4716b9a9ebaf3deb0a262d4ea1da492547be4913..999f72af999a95642b5865144d1da9bd9f86aaee 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2469,6 +2469,10 @@ public final class Bukkit { +@@ -2475,6 +2475,10 @@ public final class Bukkit { public static com.destroystokyo.paper.profile.PlayerProfile createProfileExact(@Nullable UUID uuid, @Nullable String name) { return server.createProfileExact(uuid, name); } @@ -20,10 +20,10 @@ index 567a0cda774ce2e28e1466c0c6b1e07b931b4008..80144dc81249f7198bee5e6281362fd7 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index e5844d4a9808984fa21049401ed117102a1c4db8..031fd20bb361fb9befe62ec8006f42156bfe2747 100644 +index 1f98a99eea0fb9a7ebef5d650640e7dac392416e..8445a62af2ca5dd47b4905d75b31d9d6ea0623ea 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2149,5 +2149,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2155,5 +2155,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull com.destroystokyo.paper.profile.PlayerProfile createProfileExact(@Nullable UUID uuid, @Nullable String name); diff --git a/patches/api/0187-Add-tick-times-API.patch b/patches/api/0187-Add-tick-times-API.patch index c2d69a38e7..350b7fda96 100644 --- a/patches/api/0187-Add-tick-times-API.patch +++ b/patches/api/0187-Add-tick-times-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add tick times API diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 80144dc81249f7198bee5e6281362fd704e006d4..a839e8684de0c915f8b7edfe5e87978d774f7bde 100644 +index 999f72af999a95642b5865144d1da9bd9f86aaee..10aea8b80b49a6c47b04de4d3f33eb786f08651b 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2141,6 +2141,25 @@ public final class Bukkit { +@@ -2147,6 +2147,25 @@ public final class Bukkit { public static double[] getTPS() { return server.getTPS(); } @@ -35,10 +35,10 @@ index 80144dc81249f7198bee5e6281362fd704e006d4..a839e8684de0c915f8b7edfe5e87978d /** diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 031fd20bb361fb9befe62ec8006f42156bfe2747..496e769cb77d856b4a0b4dc63ac466fdf6cbd3f9 100644 +index 8445a62af2ca5dd47b4905d75b31d9d6ea0623ea..4b3fadfc90299cc717d85cb9856662e2b3230872 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1811,6 +1811,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1817,6 +1817,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull public double[] getTPS(); diff --git a/patches/api/0188-Expose-MinecraftServer-isRunning.patch b/patches/api/0188-Expose-MinecraftServer-isRunning.patch index 641ee5ac54..7800f62ac6 100644 --- a/patches/api/0188-Expose-MinecraftServer-isRunning.patch +++ b/patches/api/0188-Expose-MinecraftServer-isRunning.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index a839e8684de0c915f8b7edfe5e87978d774f7bde..00320a15e4edbcbab182b4064b05d3a19dc441ce 100644 +index 10aea8b80b49a6c47b04de4d3f33eb786f08651b..803ca460cf91f6760d7b16e1310a23d6b09725b3 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 { +@@ -2498,6 +2498,15 @@ public final class Bukkit { public static int getCurrentTick() { return server.getCurrentTick(); } @@ -26,10 +26,10 @@ index a839e8684de0c915f8b7edfe5e87978d774f7bde..00320a15e4edbcbab182b4064b05d3a1 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 496e769cb77d856b4a0b4dc63ac466fdf6cbd3f9..d606b1d1ac37a13607c893e14ad88b26d1296ab0 100644 +index 4b3fadfc90299cc717d85cb9856662e2b3230872..1575218ee7eb563b17b542b578c10d125889a7be 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2171,5 +2171,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2177,5 +2177,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return Current tick */ int getCurrentTick(); diff --git a/patches/api/0196-Add-Mob-Goal-API.patch b/patches/api/0196-Add-Mob-Goal-API.patch index 5f64cd9ab9..4b35a66541 100644 --- a/patches/api/0196-Add-Mob-Goal-API.patch +++ b/patches/api/0196-Add-Mob-Goal-API.patch @@ -226,10 +226,10 @@ index 0000000000000000000000000000000000000000..e21f7574763dd4f13794f91bbef192ef + Collection> getRunningGoalsWithout(@NotNull T mob, @NotNull GoalType type); +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index ed65e84868f6b3b9272c8266244d7ab3725a7699..946dc3c3bde31c7a02ac4733ee8c88e63d8baff8 100644 +index 377e9979c5bbc50398d521ff038956f80d7376b1..9e14744feb0c5ad0b8df1bcbaf19d75327ad2148 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2513,6 +2513,16 @@ public final class Bukkit { +@@ -2519,6 +2519,16 @@ public final class Bukkit { public static boolean isStopping() { return server.isStopping(); } @@ -247,10 +247,10 @@ index ed65e84868f6b3b9272c8266244d7ab3725a7699..946dc3c3bde31c7a02ac4733ee8c88e6 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index e87718db19c902fe385328866767e46c397b7e86..000713e09564c96a7d3c9ceb0371de26a11ff82e 100644 +index 7ed98561c6320132501c89d70254870e6ec03e77..1fda10dcabdcfe0cd51c3532576bddeb4fa877b8 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2188,5 +2188,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2194,5 +2194,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return true if server is in the process of being shutdown */ boolean isStopping(); diff --git a/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch b/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch index de11733eec..2e8d4ad4b3 100644 --- a/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch +++ b/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String) diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 946dc3c3bde31c7a02ac4733ee8c88e63d8baff8..b4341f5c9adcebd13a0f62ebc32d081a65d71ba4 100644 +index 9e14744feb0c5ad0b8df1bcbaf19d75327ad2148..e832c6a8a10bc29d9ab20cbdf394cf836eb2f6a5 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1355,6 +1355,27 @@ public final class Bukkit { +@@ -1361,6 +1361,27 @@ public final class Bukkit { return server.getOfflinePlayer(name); } @@ -37,10 +37,10 @@ index 946dc3c3bde31c7a02ac4733ee8c88e63d8baff8..b4341f5c9adcebd13a0f62ebc32d081a * Gets the player by the given UUID, regardless if they are offline or * online. diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 000713e09564c96a7d3c9ceb0371de26a11ff82e..3c64eb18b7cb6ac371b094a581da8a033e90d00f 100644 +index 1fda10dcabdcfe0cd51c3532576bddeb4fa877b8..9477563308adc64fff065eb0a50654baa0d22b84 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1141,6 +1141,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1147,6 +1147,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public OfflinePlayer getOfflinePlayer(@NotNull String name); diff --git a/patches/api/0280-Add-basic-Datapack-API.patch b/patches/api/0280-Add-basic-Datapack-API.patch index dafb02a98d..61600f3668 100644 --- a/patches/api/0280-Add-basic-Datapack-API.patch +++ b/patches/api/0280-Add-basic-Datapack-API.patch @@ -70,7 +70,7 @@ index 0000000000000000000000000000000000000000..58f78d5e91beacaf710f62461cf869f7 + +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 7e049d9934df2259ea566aaa69ce118ce829529d..8ca65a413295c1f104cc47f2f71cbc80345a9812 100644 +index 4b3c91575f2609ad1b1177384f6f21151a535054..6ac4c0c6c2245e6bee9575ff4804994648112d78 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -328,9 +328,11 @@ public final class Bukkit { @@ -85,7 +85,7 @@ index 7e049d9934df2259ea566aaa69ce118ce829529d..8ca65a413295c1f104cc47f2f71cbc80 public static DataPackManager getDataPackManager() { return server.getDataPackManager(); } -@@ -2556,6 +2558,14 @@ public final class Bukkit { +@@ -2562,6 +2564,14 @@ public final class Bukkit { public static com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() { return server.getMobGoals(); } @@ -101,7 +101,7 @@ index 7e049d9934df2259ea566aaa69ce118ce829529d..8ca65a413295c1f104cc47f2f71cbc80 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index c3e0b40a845a30790f31a0cf591bfa7f0cd87fee..be0d3ea564503441910aecdfe3d45b0303facc19 100644 +index 5bb94245c33105e57131b3d0867ef707c4aed79c..052d0e420f2631ff925bb5df4a41a1cecc2d7e16 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -264,9 +264,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -116,7 +116,7 @@ index c3e0b40a845a30790f31a0cf591bfa7f0cd87fee..be0d3ea564503441910aecdfe3d45b03 public DataPackManager getDataPackManager(); /** -@@ -2226,5 +2228,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2232,5 +2234,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull com.destroystokyo.paper.entity.ai.MobGoals getMobGoals(); diff --git a/patches/api/0324-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0324-Allow-delegation-to-vanilla-chunk-gen.patch index e8f75d98e2..df4b25e905 100644 --- a/patches/api/0324-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/api/0324-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 8ca65a413295c1f104cc47f2f71cbc80345a9812..03a94d0b332f531832bfad9839ec60a2ad91222c 100644 +index 6ac4c0c6c2245e6bee9575ff4804994648112d78..3d0e5045f0d6bf3bee4a94e552a57d2b7d481c02 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2076,6 +2076,24 @@ public final class Bukkit { +@@ -2082,6 +2082,24 @@ public final class Bukkit { return server.createChunkData(world); } @@ -34,10 +34,10 @@ index 8ca65a413295c1f104cc47f2f71cbc80345a9812..03a94d0b332f531832bfad9839ec60a2 * 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 be0d3ea564503441910aecdfe3d45b0303facc19..a1a9ed907eaa89e2915855eb2946d27ef3521b61 100644 +index 052d0e420f2631ff925bb5df4a41a1cecc2d7e16..b4e520b82c026c62e5bd3840aa80cdc8d177b6f1 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1754,6 +1754,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1760,6 +1760,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public ChunkGenerator.ChunkData createChunkData(@NotNull World world); diff --git a/patches/api/0341-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/api/0341-API-for-creating-command-sender-which-forwards-feedb.patch index 5c1c336819..b73fdc4cb4 100644 --- a/patches/api/0341-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/api/0341-API-for-creating-command-sender-which-forwards-feedb.patch @@ -5,10 +5,10 @@ Subject: [PATCH] API for creating command sender which forwards feedback diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 03a94d0b332f531832bfad9839ec60a2ad91222c..c64f6ccfcd08c851900e734a194b1de4c8e32b07 100644 +index 3d0e5045f0d6bf3bee4a94e552a57d2b7d481c02..f941836afda889d8824b1f89bfe9a66cf71ed2a0 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1565,6 +1565,20 @@ public final class Bukkit { +@@ -1571,6 +1571,20 @@ public final class Bukkit { return server.getConsoleSender(); } @@ -30,10 +30,10 @@ index 03a94d0b332f531832bfad9839ec60a2ad91222c..c64f6ccfcd08c851900e734a194b1de4 * 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 a1a9ed907eaa89e2915855eb2946d27ef3521b61..d6c3fefbd407ae3aa1be9e71d05b6370f09dd905 100644 +index b4e520b82c026c62e5bd3840aa80cdc8d177b6f1..aee14b81d16c26c3c7e1c5849a829bfe012aa5fb 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1318,6 +1318,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1324,6 +1324,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public ConsoleCommandSender getConsoleSender(); diff --git a/patches/api/0347-Custom-Potion-Mixes.patch b/patches/api/0347-Custom-Potion-Mixes.patch index 3881038adb..e070ceabb2 100644 --- a/patches/api/0347-Custom-Potion-Mixes.patch +++ b/patches/api/0347-Custom-Potion-Mixes.patch @@ -155,10 +155,10 @@ index 0000000000000000000000000000000000000000..3ede1e8f7bf0436fdc5bf395c0f9eaf1 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index c64f6ccfcd08c851900e734a194b1de4c8e32b07..986d506ae0eb91363e7fdfa19b1f9d0d840a5207 100644 +index f941836afda889d8824b1f89bfe9a66cf71ed2a0..22ec7dda6853db6539e98e8d39d8a13be8926f07 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2598,6 +2598,15 @@ public final class Bukkit { +@@ -2604,6 +2604,15 @@ public final class Bukkit { public static io.papermc.paper.datapack.DatapackManager getDatapackManager() { return server.getDatapackManager(); } @@ -175,10 +175,10 @@ index c64f6ccfcd08c851900e734a194b1de4c8e32b07..986d506ae0eb91363e7fdfa19b1f9d0d @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index d6c3fefbd407ae3aa1be9e71d05b6370f09dd905..33458df42b41e9ef5d9728d526cc45b8199f25b4 100644 +index aee14b81d16c26c3c7e1c5849a829bfe012aa5fb..96f9f3ac492eb6f4628d47f0be4239ab9bc7df54 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2262,5 +2262,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2268,5 +2268,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull io.papermc.paper.datapack.DatapackManager getDatapackManager(); diff --git a/patches/api/0411-Folia-scheduler-and-owned-region-API.patch b/patches/api/0411-Folia-scheduler-and-owned-region-API.patch index 402fbd4d66..2913858508 100644 --- a/patches/api/0411-Folia-scheduler-and-owned-region-API.patch +++ b/patches/api/0411-Folia-scheduler-and-owned-region-API.patch @@ -499,10 +499,10 @@ index 0000000000000000000000000000000000000000..a6b50c9d8af589cc4747e14d343d2045 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index da505ee90f49983a9458cdf371db32228791fb53..63a4f5cc3f2e8fbff47543de76e42a79996dbe81 100644 +index a24de4474114af533e1e8b78c4fd0e8c5edd14b8..010d7e8a831b32060a471ef877ac43ce237a7258 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2629,6 +2629,141 @@ public final class Bukkit { +@@ -2635,6 +2635,141 @@ public final class Bukkit { } // Paper end @@ -645,10 +645,10 @@ index da505ee90f49983a9458cdf371db32228791fb53..63a4f5cc3f2e8fbff47543de76e42a79 public static Server.Spigot spigot() { return server.spigot(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index d433a9d2fe0bb487865fec33307cc4c45af475a0..f819de247080d58803a2851a4cab28d2b3765495 100644 +index c8704bc90a4f7040e5fa1c0377d5533bd14a4249..627913905269739e91c5007e372856e321cb9312 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2291,4 +2291,119 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2297,4 +2297,119 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull org.bukkit.potion.PotionBrewer getPotionBrewer(); // Paper end diff --git a/patches/api/0416-API-for-updating-recipes-on-clients.patch b/patches/api/0416-API-for-updating-recipes-on-clients.patch index c1665b9ba0..0ab07c3ae5 100644 --- a/patches/api/0416-API-for-updating-recipes-on-clients.patch +++ b/patches/api/0416-API-for-updating-recipes-on-clients.patch @@ -5,7 +5,7 @@ Subject: [PATCH] API for updating recipes on clients diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 63a4f5cc3f2e8fbff47543de76e42a79996dbe81..b82260cdee74a82b78c103467f7e2888ba4d06c1 100644 +index 010d7e8a831b32060a471ef877ac43ce237a7258..0865830a8d9f29dee47c34a192e26e4c1304a12c 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -990,6 +990,26 @@ public final class Bukkit { @@ -35,7 +35,7 @@ index 63a4f5cc3f2e8fbff47543de76e42a79996dbe81..b82260cdee74a82b78c103467f7e2888 /** * Returns the primary logger associated with this server instance. * -@@ -1044,6 +1064,20 @@ public final class Bukkit { +@@ -1050,6 +1070,20 @@ public final class Bukkit { return server.addRecipe(recipe); } @@ -56,7 +56,7 @@ index 63a4f5cc3f2e8fbff47543de76e42a79996dbe81..b82260cdee74a82b78c103467f7e2888 /** * Get a list of all recipes for a given item. The stack size is ignored * in comparisons. If the durability is -1, it will match any data value. -@@ -1235,6 +1269,24 @@ public final class Bukkit { +@@ -1241,6 +1275,24 @@ public final class Bukkit { return server.removeRecipe(key); } @@ -82,7 +82,7 @@ index 63a4f5cc3f2e8fbff47543de76e42a79996dbe81..b82260cdee74a82b78c103467f7e2888 * Gets a list of command aliases defined in the server properties. * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index f819de247080d58803a2851a4cab28d2b3765495..f18f5db804053e072134508ef38252391895549a 100644 +index 627913905269739e91c5007e372856e321cb9312..bc55bf7361fb41a91766fcb2f1e4620e3db64781 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -836,6 +836,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -108,7 +108,7 @@ index f819de247080d58803a2851a4cab28d2b3765495..f18f5db804053e072134508ef3825239 /** * Returns the primary logger associated with this server instance. * -@@ -871,15 +887,34 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -877,15 +893,34 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi public boolean dispatchCommand(@NotNull CommandSender sender, @NotNull String commandLine) throws CommandException; /** @@ -144,7 +144,7 @@ index f819de247080d58803a2851a4cab28d2b3765495..f18f5db804053e072134508ef3825239 /** * Get a list of all recipes for a given item. The stack size is ignored * in comparisons. If the durability is -1, it will match any data value. -@@ -1048,6 +1083,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1054,6 +1089,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ public boolean removeRecipe(@NotNull NamespacedKey key); diff --git a/patches/api/0463-improve-BanList-types.patch b/patches/api/0463-improve-BanList-types.patch index 4fe0de3900..f1738e1190 100644 --- a/patches/api/0463-improve-BanList-types.patch +++ b/patches/api/0463-improve-BanList-types.patch @@ -68,10 +68,10 @@ index a77c0411a68a9bad33ddfb335b7a996a843e478c..0e0baadde9e34d28db56dc68e66aaf66 /** * Banned player names diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index ca27559cf4aa1c2e44fdca2022e213b1b1c80f4e..db46e3233edf18bd91a6da8612ccc9f0080d5c17 100644 +index 8e2942664f73b0f92beb30c7a94b720610a43c15..9a428153f34291bdc026a71f7e60e285b7794b0c 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1633,11 +1633,27 @@ public final class Bukkit { +@@ -1639,11 +1639,27 @@ public final class Bukkit { * @param The ban target * * @return a ban list of the specified type @@ -100,10 +100,10 @@ index ca27559cf4aa1c2e44fdca2022e213b1b1c80f4e..db46e3233edf18bd91a6da8612ccc9f0 /** * Gets a set containing all player operators. diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index b4f8281d3797ec825a7671f38077cd65d5a1d76e..0eb61b090d6f8fa6d99735ff3680dac774c52c1f 100644 +index 78daaaa3b4f1ec1d05652287d9f9b08689bc2cbf..4ff1b38eb65f97344257204cf018f176f247ed36 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1394,10 +1394,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1400,10 +1400,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @param The ban target * * @return a ban list of the specified type From d8456ee65b75adfa854ca56c1badc160f27ddd9a Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Sat, 6 Apr 2024 23:26:56 +0200 Subject: [PATCH 037/215] Don't throw NPE for unplaced blockstate on #getDrops (#10366) --- patches/api/0374-Add-getDrops-to-BlockState.patch | 15 +++++++++++---- .../server/0788-Add-getDrops-to-BlockState.patch | 15 +++------------ 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/patches/api/0374-Add-getDrops-to-BlockState.patch b/patches/api/0374-Add-getDrops-to-BlockState.patch index 0a8d8ad13a..f25ab4169f 100644 --- a/patches/api/0374-Add-getDrops-to-BlockState.patch +++ b/patches/api/0374-Add-getDrops-to-BlockState.patch @@ -7,10 +7,10 @@ Originally added isPreferredTool to BlockData but upstream added that. diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java -index c439cf0bb6c50db2b3304c60e50046f096392f9f..ef35316fa66ac8d9c7836b9c8af56dcefbf6ff2e 100644 +index c439cf0bb6c50db2b3304c60e50046f096392f9f..19837f0eae67854f48e777bc7d4a13b53fa4b436 100644 --- a/src/main/java/org/bukkit/block/BlockState.java +++ b/src/main/java/org/bukkit/block/BlockState.java -@@ -243,5 +243,34 @@ public interface BlockState extends Metadatable { +@@ -243,5 +243,41 @@ public interface BlockState extends Metadatable { * @return true if collidable */ boolean isCollidable(); @@ -19,9 +19,12 @@ index c439cf0bb6c50db2b3304c60e50046f096392f9f..ef35316fa66ac8d9c7836b9c8af56dce + * Returns an immutable list of items which would drop by destroying this block state. + * + * @return an immutable list of dropped items for the block state ++ * @throws IllegalStateException if this block state is not placed + */ + @NotNull -+ java.util.@org.jetbrains.annotations.Unmodifiable Collection getDrops(); ++ default java.util.@org.jetbrains.annotations.Unmodifiable Collection getDrops() { ++ return this.getDrops(null); ++ } + + /** + * Returns an immutable list of items which would drop by destroying this block state @@ -29,9 +32,12 @@ index c439cf0bb6c50db2b3304c60e50046f096392f9f..ef35316fa66ac8d9c7836b9c8af56dce + * + * @param tool The tool or item in hand used for digging + * @return an immutable list of dropped items for the block state ++ * @throws IllegalStateException if this block state is not placed + */ + @NotNull -+ java.util.@org.jetbrains.annotations.Unmodifiable Collection getDrops(@Nullable org.bukkit.inventory.ItemStack tool); ++ default java.util.@org.jetbrains.annotations.Unmodifiable Collection getDrops(@Nullable org.bukkit.inventory.ItemStack tool) { ++ return this.getDrops(tool, null); ++ } + + /** + * Returns an immutable list of items which would drop by the entity destroying this @@ -40,6 +46,7 @@ index c439cf0bb6c50db2b3304c60e50046f096392f9f..ef35316fa66ac8d9c7836b9c8af56dce + * @param tool The tool or item in hand used for digging + * @param entity the entity destroying the block + * @return an immutable list of dropped items for the block state ++ * @throws IllegalStateException if this block state is not placed + */ + @NotNull + java.util.@org.jetbrains.annotations.Unmodifiable Collection getDrops(@Nullable org.bukkit.inventory.ItemStack tool, @Nullable org.bukkit.entity.Entity entity); diff --git a/patches/server/0788-Add-getDrops-to-BlockState.patch b/patches/server/0788-Add-getDrops-to-BlockState.patch index 93f48ad578..ba33e973c5 100644 --- a/patches/server/0788-Add-getDrops-to-BlockState.patch +++ b/patches/server/0788-Add-getDrops-to-BlockState.patch @@ -7,26 +7,17 @@ Originally added isPreferredTool to BlockData but upstream added that. diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java -index 08716e757b2e100f7bc47a046f02db664d882aba..d11d854ae90b99aa2ce227994d07fe1fe9b4a60a 100644 +index 08716e757b2e100f7bc47a046f02db664d882aba..2cfaa59a0bb6b5253b5a8dcc38ae65e0f085fd3f 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java -@@ -337,5 +337,33 @@ public class CraftBlockState implements BlockState { +@@ -337,5 +337,24 @@ public class CraftBlockState implements BlockState { public boolean isCollidable() { return this.data.getBlock().hasCollision; } + + @Override -+ public java.util.Collection getDrops() { -+ return this.getDrops(null); -+ } -+ -+ @Override -+ public java.util.Collection getDrops(org.bukkit.inventory.ItemStack item) { -+ return this.getDrops(item, null); -+ } -+ -+ @Override + public java.util.Collection getDrops(org.bukkit.inventory.ItemStack item, org.bukkit.entity.Entity entity) { ++ this.requirePlaced(); + net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item); + + // Modelled off EntityHuman#hasBlock From 182e79bce1260a11558232e626867b3a3b319155 Mon Sep 17 00:00:00 2001 From: Tamion <70228790+notTamion@users.noreply.github.com> Date: Sat, 6 Apr 2024 23:44:27 +0200 Subject: [PATCH 038/215] Add more item use API (#10304) --- .../0117-LivingEntity-Active-Item-API.patch | 33 +++++++++++++++++-- patches/api/0185-Entity-Jump-API.patch | 4 +-- ...yPickupItemAnimation-to-LivingEntity.patch | 4 +-- ...224-Add-LivingEntity-clearActiveItem.patch | 4 +-- ...9-Expose-LivingEntity-hurt-direction.patch | 4 +-- patches/api/0297-Missing-Entity-API.patch | 2 +- ...-swingHand-EquipmentSlot-convenience.patch | 4 +-- .../api/0380-Add-entity-knockback-API.patch | 4 +-- patches/api/0387-ItemStack-damage-API.patch | 4 +-- .../api/0400-Add-Entity-Body-Yaw-API.patch | 4 +-- .../0204-LivingEntity-Active-Item-API.patch | 23 +++++++++++-- patches/server/0328-Entity-Jump-API.patch | 4 +-- ...yPickupItemAnimation-to-LivingEntity.patch | 4 +-- ...456-Add-LivingEntity-clearActiveItem.patch | 4 +-- ...7-Expose-LivingEntity-hurt-direction.patch | 4 +-- .../server/0559-More-Enchantment-API.patch | 4 +-- .../0797-Add-entity-knockback-API.patch | 4 +-- .../server/0815-ItemStack-damage-API.patch | 4 +-- patches/server/0816-Friction-API.patch | 4 +-- .../server/0842-Add-Entity-Body-Yaw-API.patch | 4 +-- 20 files changed, 87 insertions(+), 39 deletions(-) diff --git a/patches/api/0117-LivingEntity-Active-Item-API.patch b/patches/api/0117-LivingEntity-Active-Item-API.patch index ce3d823f36..1324ec1fdc 100644 --- a/patches/api/0117-LivingEntity-Active-Item-API.patch +++ b/patches/api/0117-LivingEntity-Active-Item-API.patch @@ -23,7 +23,7 @@ index 2308fa3ca898bcb6c0ac2d4853f82a3398bf51f3..15115b1049bc5053796b84539acbf576 /** diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 4a4a749449bc561a73e6747386c8ad51e623fc1e..c75315b921a1854fbbdbe8ecdfba7dacdaa155c1 100644 +index 4a4a749449bc561a73e6747386c8ad51e623fc1e..81a851580f81b2d6f6a2b2ebec38530f1d68530d 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -202,15 +202,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @@ -56,13 +56,42 @@ index 4a4a749449bc561a73e6747386c8ad51e623fc1e..c75315b921a1854fbbdbe8ecdfba7dac public void setItemInUseTicks(int ticks); /** -@@ -850,4 +856,101 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -850,4 +856,130 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void setShieldBlockingDelay(int delay); // Paper end + + // Paper start - active item API + /** ++ * Starts using the item in the specified hand, making it the ++ * currently active item. When, for example, called on a skeleton, ++ * this will cause it to start drawing its bow. ++ *

      ++ * Only HAND or OFF_HAND may be used for the hand parameter. ++ *

      ++ * When used on a player, the client will stop using the item ++ * if right click is held down. ++ *

      ++ * This method does not make any guarantees about the effect of this method ++ * as such depends on the entity and its state. ++ * ++ * @param hand the hand that contains the item to be used ++ */ ++ @org.jetbrains.annotations.ApiStatus.Experimental ++ void startUsingItem(@NotNull org.bukkit.inventory.EquipmentSlot hand); ++ ++ /** ++ * Finishes using the currently active item. When, for example, a ++ * skeleton is drawing its bow, this will cause it to release and ++ * fire the arrow. ++ *

      ++ * This method does not make any guarantees about the effect of this method ++ * as such depends on the entity and its state. ++ */ ++ @org.jetbrains.annotations.ApiStatus.Experimental ++ void completeUsingActiveItem(); ++ ++ /** + * Gets the item being actively "used" or consumed. + * + * @return the item diff --git a/patches/api/0185-Entity-Jump-API.patch b/patches/api/0185-Entity-Jump-API.patch index ea563c013a..cdbac20564 100644 --- a/patches/api/0185-Entity-Jump-API.patch +++ b/patches/api/0185-Entity-Jump-API.patch @@ -61,10 +61,10 @@ index 0000000000000000000000000000000000000000..a6306c957fcacdcbcc8037b4ee33a167 + } +} diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 3e5b7dc8f72bd211a18ec6a930c4f02beea4205a..0a0e3fe33158f0424398c0abf50ea55825c452c5 100644 +index c2d6a2d45d733fff7cb6bf1d687bdff35d2be7f4..c7c242fb4ac106edad87032f0accd14d128a5b37 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1118,4 +1118,26 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1147,4 +1147,26 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource return this.getActiveItemHand(); } // Paper end - active item API diff --git a/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch index 809eb90a68..bc76c0005c 100644 --- a/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch +++ b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 0a0e3fe33158f0424398c0abf50ea55825c452c5..d9dee0486c5f7c9a948a2c1a3497e2745d747965 100644 +index c7c242fb4ac106edad87032f0accd14d128a5b37..5d8433cbea6cfe6a7621d7ab110f7aa0ed120136 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1140,4 +1140,29 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1169,4 +1169,29 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void setJumping(boolean jumping); // Paper end - entity jump API diff --git a/patches/api/0224-Add-LivingEntity-clearActiveItem.patch b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch index e3e004cb9d..463b79867d 100644 --- a/patches/api/0224-Add-LivingEntity-clearActiveItem.patch +++ b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 898cbd4f690777ce855244331f95e624c6a1fbd4..66dfeb4490505a3eaed547dd86e6c68b85ba5568 100644 +index 5d8433cbea6cfe6a7621d7ab110f7aa0ed120136..f00ae13ee252c52963c7c8ce95cde984b8721f46 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1030,6 +1030,11 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1059,6 +1059,11 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ org.bukkit.inventory.@NotNull ItemStack getActiveItem(); diff --git a/patches/api/0229-Expose-LivingEntity-hurt-direction.patch b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch index a7a62153d3..0f5490de89 100644 --- a/patches/api/0229-Expose-LivingEntity-hurt-direction.patch +++ b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch @@ -26,10 +26,10 @@ index 5ecfb98540c00da05b13bc5370debb89c52cc76f..083d5798ccc7f37c6df5e234c7ef2332 * Get the sleep ticks of the player. This value may be capped. * diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 546ecf762d588b8a8239c832fbbe96b8714a07cb..8d2a74e17e4b7089ff91d263b669e8623d7e688a 100644 +index f00ae13ee252c52963c7c8ce95cde984b8721f46..9c8202d672e293c963218a7f3b0d51aa4e7dec5a 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1170,4 +1170,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1199,4 +1199,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void playPickupItemAnimation(@NotNull Item item, int quantity); // Paper end - pickup animation API diff --git a/patches/api/0297-Missing-Entity-API.patch b/patches/api/0297-Missing-Entity-API.patch index ee44607e5c..be2838d08e 100644 --- a/patches/api/0297-Missing-Entity-API.patch +++ b/patches/api/0297-Missing-Entity-API.patch @@ -661,7 +661,7 @@ index a253ac2b60b038177e6c4f20d8367be36f10b1bd..2036e7b464f631054abb94333a8674d3 + // Paper start - active item API /** - * Gets the item being actively "used" or consumed. + * Starts using the item in the specified hand, making it the diff --git a/src/main/java/org/bukkit/entity/Llama.java b/src/main/java/org/bukkit/entity/Llama.java index d23226ccb0f6c25028f000ce31346cd0a8898e6a..bc84b892cae5fe7019a3ad481e9da79956efa1fe 100644 --- a/src/main/java/org/bukkit/entity/Llama.java diff --git a/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch index e870d6f074..75708a14a8 100644 --- a/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch +++ b/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add LivingEntity#swingHand(EquipmentSlot) convenience method diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 7ed163813bb13ea6e1b60a94f4ef98b3b55f163c..ec3e597a9e683e5966ef4fff3300c30bde1dd49d 100644 +index 5500f5273624b133b48327fe74b0b2e2708d76c4..bdd34708b2e75aaa8a3365c0d7284d85e7cb61e5 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1300,4 +1300,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1329,4 +1329,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @Deprecated void setHurtDirection(float hurtDirection); // Paper end - hurt direction API diff --git a/patches/api/0380-Add-entity-knockback-API.patch b/patches/api/0380-Add-entity-knockback-API.patch index 4dbce197ca..024e3244b0 100644 --- a/patches/api/0380-Add-entity-knockback-API.patch +++ b/patches/api/0380-Add-entity-knockback-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index ec3e597a9e683e5966ef4fff3300c30bde1dd49d..b5d882622d9b350b81b6c61348515cbc5aa65777 100644 +index bdd34708b2e75aaa8a3365c0d7284d85e7cb61e5..3943b5cb1306fb1eb830e56cea696fdc587c09f4 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1320,4 +1320,18 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1349,4 +1349,18 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource } } // Paper end - swing hand API diff --git a/patches/api/0387-ItemStack-damage-API.patch b/patches/api/0387-ItemStack-damage-API.patch index a07dfddbc3..2bcc0d05b3 100644 --- a/patches/api/0387-ItemStack-damage-API.patch +++ b/patches/api/0387-ItemStack-damage-API.patch @@ -8,10 +8,10 @@ to simulate damage done to an itemstack and all the logic associated with damaging them diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index b5d882622d9b350b81b6c61348515cbc5aa65777..6807354bf157060cbddb395dd6220040b84e7c8d 100644 +index 3943b5cb1306fb1eb830e56cea696fdc587c09f4..a8b442cf03887ebe212a298d35cea5f6383ccfab 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1334,4 +1334,53 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1363,4 +1363,53 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void knockback(double strength, double directionX, double directionZ); // Paper end - knockback API diff --git a/patches/api/0400-Add-Entity-Body-Yaw-API.patch b/patches/api/0400-Add-Entity-Body-Yaw-API.patch index 2236bdf2cf..6b8119d161 100644 --- a/patches/api/0400-Add-Entity-Body-Yaw-API.patch +++ b/patches/api/0400-Add-Entity-Body-Yaw-API.patch @@ -53,10 +53,10 @@ index 2d6f7b2bf4cb23ef43a4dcbab2ecd2a7c7c2809c..0be4107270fb7fdba5c7d0e6f3964d33 // Paper start - Collision API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 92c33fc9680159ab4e901cfba08092d868845c63..e3ff310a83b320c26de63e9239db63de271321c2 100644 +index 30222c65bcc78ff3fe5c0937c64c6fe7b0b2fe36..2e6a6c9e8e150f940842f8f134b18987412e4766 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1383,4 +1383,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1412,4 +1412,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void damageItemStack(org.bukkit.inventory.@NotNull EquipmentSlot slot, int amount); // Paper end - ItemStack damage API diff --git a/patches/server/0204-LivingEntity-Active-Item-API.patch b/patches/server/0204-LivingEntity-Active-Item-API.patch index e50ff8549c..a9e0dd9922 100644 --- a/patches/server/0204-LivingEntity-Active-Item-API.patch +++ b/patches/server/0204-LivingEntity-Active-Item-API.patch @@ -6,19 +6,38 @@ Subject: [PATCH] LivingEntity Active Item API API relating to items being actively used by a LivingEntity such as a bow or eating food. +== AT == +public net/minecraft/world/entity/LivingEntity completeUsingItem()V +public net/minecraft/server/level/ServerPlayer completeUsingItem()V + Co-authored-by: Jake Potrebic diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 1c6abeff5b541cdea914ac956f2ab1d2e1c5769f..de52fdc1c94f69de7c5c5099fc586fdeba60b6fa 100644 +index 1c6abeff5b541cdea914ac956f2ab1d2e1c5769f..0fe087cd6037b4dd694cc3c5c3eac8203ea6d519 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -866,4 +866,38 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -866,4 +866,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { getHandle().setShieldBlockingDelay(delay); } // Paper end + + // Paper start - active item API + @Override ++ public void startUsingItem(org.bukkit.inventory.EquipmentSlot hand) { ++ Preconditions.checkArgument(hand != null, "hand must not be null"); ++ switch (hand) { ++ case HAND -> getHandle().startUsingItem(InteractionHand.MAIN_HAND); ++ case OFF_HAND -> getHandle().startUsingItem(InteractionHand.OFF_HAND); ++ default -> throw new IllegalArgumentException("hand may only be HAND or OFF_HAND"); ++ } ++ } ++ ++ @Override ++ public void completeUsingActiveItem() { ++ getHandle().completeUsingItem(); ++ } ++ ++ @Override + public ItemStack getActiveItem() { + return this.getHandle().getUseItem().asBukkitMirror(); + } diff --git a/patches/server/0328-Entity-Jump-API.patch b/patches/server/0328-Entity-Jump-API.patch index 4a9bec8fff..5dcf9bf76f 100644 --- a/patches/server/0328-Entity-Jump-API.patch +++ b/patches/server/0328-Entity-Jump-API.patch @@ -50,10 +50,10 @@ index aba20a4352d8983b01ab5d329187588f68d3e405..aac60e85cd6dba7d87f4a1663c2c6295 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 88ea46392182b02131a2a5c953fe90e1ecbd4ae5..1bca024bfbb4b68eacd2b3bb382aa74456db2145 100644 +index 5def5bccd8fce86ce015567e65fefae329819c18..29fa2231cc5d9c3ac36d508f14408d6077b6594c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -961,4 +961,20 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -976,4 +976,20 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(this.getHandle().getUsedItemHand()); } // Paper end - active item API diff --git a/patches/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch index 84a2b07d42..bbe6fcba47 100644 --- a/patches/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch +++ b/patches/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 8cfa39acde6d32625ae87e9d031d8dc767783e61..e54b164ea2f28cdbb89166fb9b0b9cd9d12c0ca9 100644 +index d84503ab329ebeb4c74f10f9897661ee6799e3d3..87033a5d8dd5b67475657c3749f428a8e841a2f2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -977,4 +977,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -992,4 +992,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } } // Paper end - entity jump API diff --git a/patches/server/0456-Add-LivingEntity-clearActiveItem.patch b/patches/server/0456-Add-LivingEntity-clearActiveItem.patch index df8f1cd672..d6a35cba69 100644 --- a/patches/server/0456-Add-LivingEntity-clearActiveItem.patch +++ b/patches/server/0456-Add-LivingEntity-clearActiveItem.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index d90a56de3ec0236c82668d0f7ce01a8515de6450..baeb521f44389e6bf5d7b4237ebd5c805ae6f43c 100644 +index 87033a5d8dd5b67475657c3749f428a8e841a2f2..6848cdb3271b37972e98af78e85125409c650c4d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -934,6 +934,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -949,6 +949,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return this.getHandle().getUseItem().asBukkitMirror(); } diff --git a/patches/server/0467-Expose-LivingEntity-hurt-direction.patch b/patches/server/0467-Expose-LivingEntity-hurt-direction.patch index 11fa41f95b..fa32a9fe84 100644 --- a/patches/server/0467-Expose-LivingEntity-hurt-direction.patch +++ b/patches/server/0467-Expose-LivingEntity-hurt-direction.patch @@ -36,10 +36,10 @@ index d5a8f019e88de30400733cdc3178eb982ccca341..e7726862f99cb16b7335b06675af73db public int getSleepTicks() { return this.getHandle().sleepCounter; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 1333f5116e824e1024519808e824a979b9745c9f..24e8f6a89dc186c3f8f4356cb9a60115fc0096c0 100644 +index 6848cdb3271b37972e98af78e85125409c650c4d..4ac52885618bf062eb34672b8fc60331a9c8f76a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -991,4 +991,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1006,4 +1006,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { this.getHandle().take(((CraftItem) item).getHandle(), quantity); } // Paper end - pickup animation API diff --git a/patches/server/0559-More-Enchantment-API.patch b/patches/server/0559-More-Enchantment-API.patch index e5f8796fac..c2c88eec8b 100644 --- a/patches/server/0559-More-Enchantment-API.patch +++ b/patches/server/0559-More-Enchantment-API.patch @@ -78,10 +78,10 @@ index 3feaaca5aaee12e48fa2e5f5d05329c9980b161e..a151b5d7c6e41b08e57c806bc43e067a @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 9c37509faeeaf11645dbfc6ddb2eac6aac7b3c59..18f2775d6417f775d6ebb6560450c05e63e3299d 100644 +index 0a4df9971c66676dba90fb03c840e25a41103bc0..646763f591e67e27c992663379fa3d4b322a3de3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1010,4 +1010,22 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1025,4 +1025,22 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { throw new UnsupportedOperationException("Cannot set the hurt direction on a non player"); } // Paper end - hurt direction API diff --git a/patches/server/0797-Add-entity-knockback-API.patch b/patches/server/0797-Add-entity-knockback-API.patch index 6a577fa67c..8f119833a2 100644 --- a/patches/server/0797-Add-entity-knockback-API.patch +++ b/patches/server/0797-Add-entity-knockback-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 163c3a07abf187d6d2f3fb3bc30eb8f0c26b247f..be915e4ab474d8f06c63b5aaee5b9277aef0f706 100644 +index 9ae20d759965bc9b88b52c15372155ad10bcc199..8be0e064f1f7e98e6bfd5915cd4eaf814b5f1d26 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1106,4 +1106,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1121,4 +1121,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { throw new IllegalArgumentException(entityCategory + " is an unrecognized entity category"); } // Paper end - more enchant API diff --git a/patches/server/0815-ItemStack-damage-API.patch b/patches/server/0815-ItemStack-damage-API.patch index f7b51b4edd..207d179c13 100644 --- a/patches/server/0815-ItemStack-damage-API.patch +++ b/patches/server/0815-ItemStack-damage-API.patch @@ -11,10 +11,10 @@ the logic associated with damaging them public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index be915e4ab474d8f06c63b5aaee5b9277aef0f706..6359bb77c6d05db733a7f92d30230a2889a5b0ea 100644 +index 8be0e064f1f7e98e6bfd5915cd4eaf814b5f1d26..711eb84fee6c46341928a765970defa47e1fe0c3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1114,4 +1114,52 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1129,4 +1129,52 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { this.getHandle().knockback(strength, directionX, directionZ); }; // Paper end - knockback API diff --git a/patches/server/0816-Friction-API.patch b/patches/server/0816-Friction-API.patch index 6cecc44554..2b74be2e4e 100644 --- a/patches/server/0816-Friction-API.patch +++ b/patches/server/0816-Friction-API.patch @@ -133,10 +133,10 @@ index 1a291dd8a287db30e71dcb315599fc4b038764c4..30d62ee4d5cd2ddacb8783b5bbbf475d public int getHealth() { return this.getHandle().health; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 6359bb77c6d05db733a7f92d30230a2889a5b0ea..9c5ad1ffdd82ce5d12eabca07f45a37e6a939f2e 100644 +index 711eb84fee6c46341928a765970defa47e1fe0c3..b0c03854ee9936b1dac9cbf89e9977d978712d56 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1162,4 +1162,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1177,4 +1177,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { }); } // Paper end - ItemStack damage API diff --git a/patches/server/0842-Add-Entity-Body-Yaw-API.patch b/patches/server/0842-Add-Entity-Body-Yaw-API.patch index 7164c139b9..d8eb3655e9 100644 --- a/patches/server/0842-Add-Entity-Body-Yaw-API.patch +++ b/patches/server/0842-Add-Entity-Body-Yaw-API.patch @@ -43,10 +43,10 @@ index 4dfbcaba4615bd761c1eb9d5994168c7202fc571..8025b3e9afebc9ad0c08453403422589 @Override public boolean isInvisible() { // Paper - moved up from LivingEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 9c5ad1ffdd82ce5d12eabca07f45a37e6a939f2e..ec62e68686b7c46df299d946850ec60631ecc6be 100644 +index b0c03854ee9936b1dac9cbf89e9977d978712d56..ab1e1a56f3811d4446a6b0a7461c0bddd8015228 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1176,4 +1176,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1191,4 +1191,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { this.getHandle().frictionState = state; } // Paper end - friction API From acf838f5354292eeb2888ae763c9125f0c270409 Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Sat, 6 Apr 2024 23:51:47 +0200 Subject: [PATCH 039/215] Backport some stuff from the generators branch (#10365) --- .../generator/types/goal/MobGoalNames.java | 1 + .../0173-Fix-Spigot-annotation-mistakes.patch | 17 +++++++++++++++ ...dd-missing-block-data-mins-and-maxes.patch | 20 ++++++++++++++++++ ...add-missing-Experimental-annotations.patch | 17 +++++++++++---- .../0464-Suspicious-Effect-Entry-API.patch | 21 ++++++++++--------- ...dd-missing-block-data-mins-and-maxes.patch | 18 ++++++++++++++++ ...low-changing-bed-s-occupied-property.patch | 16 -------------- 7 files changed, 80 insertions(+), 30 deletions(-) diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java index cc7a416166..37506e3f84 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java @@ -232,6 +232,7 @@ public class MobGoalNames { bukkitMap.put(net.minecraft.world.entity.monster.warden.Warden.class, org.bukkit.entity.Warden.class); bukkitMap.put(net.minecraft.world.entity.animal.allay.Allay.class, org.bukkit.entity.Allay.class); bukkitMap.put(net.minecraft.world.entity.animal.sniffer.Sniffer.class, org.bukkit.entity.Sniffer.class); + bukkitMap.put(net.minecraft.world.entity.monster.breeze.Breeze.class, org.bukkit.entity.Breeze.class); // } diff --git a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch index 4208c6a42e..daafa8ea7f 100644 --- a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch @@ -964,6 +964,23 @@ index f101ffde9e7b3f6c3ab6f1cffb8d6f4e720634b2..8abc129f5953807e7a451166dabcf3e1 + // @Deprecated // Paper - is stable API void setBackgroundColor(@Nullable Color color); + /** +diff --git a/src/main/java/org/bukkit/entity/memory/MemoryKey.java b/src/main/java/org/bukkit/entity/memory/MemoryKey.java +index 8f601e85df580ef8106eaff8b9eafb5691a4874b..d615c006c9153fb65024241604b744fbfc383efc 100644 +--- a/src/main/java/org/bukkit/entity/memory/MemoryKey.java ++++ b/src/main/java/org/bukkit/entity/memory/MemoryKey.java +@@ -69,6 +69,12 @@ public final class MemoryKey implements Keyed { + public static final MemoryKey LIKED_NOTEBLOCK_POSITION = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock"), Location.class); + public static final MemoryKey LIKED_NOTEBLOCK_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock_cooldown_ticks"), Integer.class); + public static final MemoryKey ITEM_PICKUP_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("item_pickup_cooldown_ticks"), Integer.class); ++ /** ++ * @deprecated this constant uses the wrong generic type, the sniffer now stores different positions ++ * from possibly different worlds. Use the relevant methods in {@link org.bukkit.entity.Sniffer} directly ++ * for now. ++ */ ++ @Deprecated // Paper + public static final MemoryKey SNIFFER_EXPLORED_POSITIONS = new MemoryKey<>(NamespacedKey.minecraft("sniffer_explored_positions"), Location.class); + /** diff --git a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java index e9a6e5be5f33a342f7e5c496f0f1c64b2f302ace..f0db59a556deaefefbdaca121585c0fd199c13c2 100644 diff --git a/patches/api/0346-Add-missing-block-data-mins-and-maxes.patch b/patches/api/0346-Add-missing-block-data-mins-and-maxes.patch index 600497b952..63a647706a 100644 --- a/patches/api/0346-Add-missing-block-data-mins-and-maxes.patch +++ b/patches/api/0346-Add-missing-block-data-mins-and-maxes.patch @@ -65,3 +65,23 @@ index 3ea21dfad26222ee70fbc627595f54de1a28aa96..cd013a7c42648d819d1e91c7cf9f97a8 + int getMinimumDistance(); + // Paper end } +diff --git a/src/main/java/org/bukkit/block/data/type/PinkPetals.java b/src/main/java/org/bukkit/block/data/type/PinkPetals.java +index a84b36f7587eb2ed9e9177973b3166dc94cdf3df..eae9c9cdd0f47a7480ee23ac7b655692f5ee9c1e 100644 +--- a/src/main/java/org/bukkit/block/data/type/PinkPetals.java ++++ b/src/main/java/org/bukkit/block/data/type/PinkPetals.java +@@ -21,6 +21,15 @@ public interface PinkPetals extends Directional { + */ + void setFlowerAmount(int flower_amount); + ++ // Paper start ++ /** ++ * Gets the minimum allowed value of the 'flower_amount' property. ++ * ++ * @return the minimum 'flower_amount' value ++ */ ++ int getMinimumFlowerAmount(); ++ // Paper end ++ + /** + * Gets the maximum allowed value of the 'flower_amount' property. + * diff --git a/patches/api/0444-add-missing-Experimental-annotations.patch b/patches/api/0444-add-missing-Experimental-annotations.patch index 568617597e..714fd8e1a3 100644 --- a/patches/api/0444-add-missing-Experimental-annotations.patch +++ b/patches/api/0444-add-missing-Experimental-annotations.patch @@ -28,7 +28,7 @@ index 5269df59f0e8099a72c6b628ac1b8c84a0d1a5d5..775fda4b299e1d6dba9b293b2f98505e public static final FeatureFlag UPDATE_121 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_21")); } diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..f9af60356da4668cec8b24e73f5747ab82e35a91 100644 +index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..ec117c47401ea1a04beb0e5ee9d4d394db7c5c4e 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java @@ -144,54 +144,67 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla @@ -233,7 +233,16 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..f9af60356da4668cec8b24e73f5747ab WAXED_OXIDIZED_COPPER_TRAPDOOR(21450, TrapDoor.class), /** * BlockData: {@link Gate} -@@ -2628,6 +2665,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -2522,6 +2559,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + EGG(21603, 16), + COMPASS(24139), + RECOVERY_COMPASS(12710), ++ @MinecraftExperimental // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + BUNDLE(16835, 1), + FISHING_ROD(4167, 1, 64), + CLOCK(14980), +@@ -2628,6 +2667,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla * BlockData: {@link Crafter} */ @MinecraftExperimental @@ -241,7 +250,7 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..f9af60356da4668cec8b24e73f5747ab CRAFTER(25243, Crafter.class), FILLED_MAP(23504), SHEARS(27971, 1, 238), -@@ -2667,6 +2705,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -2667,6 +2707,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla BEE_SPAWN_EGG(22924), BLAZE_SPAWN_EGG(4759), @MinecraftExperimental @@ -249,7 +258,7 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..f9af60356da4668cec8b24e73f5747ab BREEZE_SPAWN_EGG(7580), CAT_SPAWN_EGG(29583), CAMEL_SPAWN_EGG(14760), -@@ -3162,88 +3201,106 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -3162,88 +3203,106 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla * BlockData: {@link Waterlogged} */ @MinecraftExperimental diff --git a/patches/api/0464-Suspicious-Effect-Entry-API.patch b/patches/api/0464-Suspicious-Effect-Entry-API.patch index 410dfe9df1..7c9548be79 100644 --- a/patches/api/0464-Suspicious-Effect-Entry-API.patch +++ b/patches/api/0464-Suspicious-Effect-Entry-API.patch @@ -15,12 +15,13 @@ Co-authored-by: Yannick Lamprecht diff --git a/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntry.java b/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntry.java new file mode 100644 -index 0000000000000000000000000000000000000000..c8446678e39e777bd2c9992d5c577f4c7606ce15 +index 0000000000000000000000000000000000000000..6a96e339ff1466df5743b5d42a31ce6a67e48f16 --- /dev/null +++ b/src/main/java/io/papermc/paper/potion/SuspiciousEffectEntry.java -@@ -0,0 +1,37 @@ +@@ -0,0 +1,38 @@ +package io.papermc.paper.potion; + ++import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; @@ -31,24 +32,24 @@ index 0000000000000000000000000000000000000000..c8446678e39e777bd2c9992d5c577f4c +public sealed interface SuspiciousEffectEntry permits SuspiciousEffectEntryImpl { + + /** -+ * Gets the effect type. ++ * Gets the effect type. + * -+ * @return type -+ */ ++ * @return effect type ++ */ + @NotNull PotionEffectType effect(); + + /** -+ * Gets the duration for this effect instance. -+ * -+ * @return duration (in ticks) -+ */ ++ * Gets the duration for this effect instance. ++ * ++ * @return duration (in ticks) or {@link PotionEffect#INFINITE_DURATION} ++ */ + int duration(); + + /** + * Creates a new instance of SuspiciousEffectEntry. + * + * @param effectType effect type -+ * @param duration duration (in ticks) ++ * @param duration duration (in ticks) or {@link PotionEffect#INFINITE_DURATION} + * @return new instance of an entry + */ + @Contract(value = "_, _ -> new", pure = true) diff --git a/patches/server/0707-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0707-Add-missing-block-data-mins-and-maxes.patch index defc7411be..fe8170196d 100644 --- a/patches/server/0707-Add-missing-block-data-mins-and-maxes.patch +++ b/patches/server/0707-Add-missing-block-data-mins-and-maxes.patch @@ -150,3 +150,21 @@ index 7a1f2fd2f7f8f1b46352fe2c4d0cdf23a88020fd..8b621aaeadcf2cc6e2ccdbab92f4ae2b + } + // Paper end } +diff --git a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPinkPetals.java b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPinkPetals.java +index 78b220a6f460cd91ad1574c0d32f3e4288eaf431..0f7df1b4c58ba731832958043ba345ec77737e54 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPinkPetals.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPinkPetals.java +@@ -27,6 +27,13 @@ public final class CraftPinkPetals extends org.bukkit.craftbukkit.block.data.Cra + this.set(CraftPinkPetals.FLOWER_AMOUNT, flower_amount); + } + ++ // Paper start ++ @Override ++ public int getMinimumFlowerAmount() { ++ return getMin(CraftPinkPetals.FLOWER_AMOUNT); ++ } ++ // Paper end ++ + @Override + public int getMaximumFlowerAmount() { + return getMax(CraftPinkPetals.FLOWER_AMOUNT); diff --git a/patches/server/0796-Allow-changing-bed-s-occupied-property.patch b/patches/server/0796-Allow-changing-bed-s-occupied-property.patch index f1d50caf78..d8b51d7f0b 100644 --- a/patches/server/0796-Allow-changing-bed-s-occupied-property.patch +++ b/patches/server/0796-Allow-changing-bed-s-occupied-property.patch @@ -4,22 +4,6 @@ Date: Wed, 12 Oct 2022 00:36:55 +0300 Subject: [PATCH] Allow changing bed's 'occupied' property -diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBed.java b/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBed.java -index f636a6b69143e88fc3bebd11620083ab6a419d48..e6ff5225fe8253cbaa79ed15b4c12f3735fc7021 100644 ---- a/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBed.java -+++ b/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBed.java -@@ -22,4 +22,11 @@ public abstract class CraftBed extends CraftBlockData implements Bed { - public boolean isOccupied() { - return this.get(CraftBed.OCCUPIED); - } -+ -+ // Paper start -+ @Override -+ public void setOccupied(boolean occupied) { -+ set(CraftBed.OCCUPIED, occupied); -+ } -+ // Paper end - } diff --git a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBed.java b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBed.java index 2ccf3fbe3f991b7a014cff3bcd424e6a81bc310a..e5450d3511389bf3bd6461fb6ec65ea82e4ae9f0 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBed.java From 3d31e45e7eb3c528e9309f6e600f67b21dd3c297 Mon Sep 17 00:00:00 2001 From: Evan <50347938+Badbird5907@users.noreply.github.com> Date: Sat, 6 Apr 2024 18:28:17 -0400 Subject: [PATCH 040/215] Add BlockBreakProgressUpdateEvent (#10300) --- ...68-Add-BlockBreakProgressUpdateEvent.patch | 68 +++++++++++++++++++ ...54-Add-BlockBreakProgressUpdateEvent.patch | 28 ++++++++ 2 files changed, 96 insertions(+) create mode 100644 patches/api/0468-Add-BlockBreakProgressUpdateEvent.patch create mode 100644 patches/server/1054-Add-BlockBreakProgressUpdateEvent.patch diff --git a/patches/api/0468-Add-BlockBreakProgressUpdateEvent.patch b/patches/api/0468-Add-BlockBreakProgressUpdateEvent.patch new file mode 100644 index 0000000000..a2b5a83baf --- /dev/null +++ b/patches/api/0468-Add-BlockBreakProgressUpdateEvent.patch @@ -0,0 +1,68 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Badbird5907 <50347938+Badbird5907@users.noreply.github.com> +Date: Mon, 4 Mar 2024 22:18:33 -0500 +Subject: [PATCH] Add BlockBreakProgressUpdateEvent + + +diff --git a/src/main/java/io/papermc/paper/event/block/BlockBreakProgressUpdateEvent.java b/src/main/java/io/papermc/paper/event/block/BlockBreakProgressUpdateEvent.java +new file mode 100644 +index 0000000000000000000000000000000000000000..0cd1ab085222eae1a8df8ad85b26b49b6dd93a09 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/event/block/BlockBreakProgressUpdateEvent.java +@@ -0,0 +1,56 @@ ++package io.papermc.paper.event.block; ++ ++import org.bukkit.block.Block; ++import org.bukkit.entity.Entity; ++import org.bukkit.event.HandlerList; ++import org.bukkit.event.block.BlockEvent; ++import org.jetbrains.annotations.ApiStatus; ++import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.Range; ++ ++/** ++ * Called when the progress of a block break is updated. ++ */ ++public class BlockBreakProgressUpdateEvent extends BlockEvent { ++ private static final HandlerList HANDLER_LIST = new HandlerList(); ++ ++ private final float progress; ++ private final Entity entity; ++ ++ @ApiStatus.Internal ++ public BlockBreakProgressUpdateEvent(@NotNull final Block block, final float progress, @NotNull final Entity entity) { ++ super(block); ++ this.progress = progress; ++ this.entity = entity; ++ } ++ ++ /** ++ * The progress of the block break ++ *

      ++ * The progress ranges from 0.0 - 1.0, where 0 is no damage and ++ * 1.0 is the most damaged ++ * ++ * @return The progress of the block break ++ */ ++ public float getProgress() { ++ return progress; ++ } ++ ++ /** ++ * The entity breaking the block. ++ * ++ * @return The entity breaking the block ++ */ ++ @NotNull ++ public Entity getEntity() { ++ return entity; ++ } ++ ++ @Override ++ public @NotNull HandlerList getHandlers() { ++ return HANDLER_LIST; ++ } ++ public static @NotNull HandlerList getHandlerList() { ++ return HANDLER_LIST; ++ } ++} diff --git a/patches/server/1054-Add-BlockBreakProgressUpdateEvent.patch b/patches/server/1054-Add-BlockBreakProgressUpdateEvent.patch new file mode 100644 index 0000000000..382b360aff --- /dev/null +++ b/patches/server/1054-Add-BlockBreakProgressUpdateEvent.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Badbird5907 <50347938+Badbird5907@users.noreply.github.com> +Date: Mon, 4 Mar 2024 22:18:28 -0500 +Subject: [PATCH] Add BlockBreakProgressUpdateEvent + + +diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java +index bf5e47e8c3706590fdc0731bd9a5858b56d06136..502bdc726b7890b00ee36871d905dea44e8719e3 100644 +--- a/src/main/java/net/minecraft/server/level/ServerLevel.java ++++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +@@ -1772,6 +1772,17 @@ public class ServerLevel extends Level implements WorldGenLevel { + if (entity instanceof Player) entityhuman = (Player) entity; + // CraftBukkit end + ++ // Paper start - Add BlockBreakProgressUpdateEvent ++ // If a plugin is using this method to send destroy packets for a client-side only entity id, no block progress occurred on the server. ++ // Hence, do not call the event. ++ if (entity != null) { ++ float progressFloat = Mth.clamp(progress, 0, 10) / 10.0f; ++ org.bukkit.craftbukkit.block.CraftBlock bukkitBlock = org.bukkit.craftbukkit.block.CraftBlock.at(this, pos); ++ new io.papermc.paper.event.block.BlockBreakProgressUpdateEvent(bukkitBlock, progressFloat, entity.getBukkitEntity()) ++ .callEvent(); ++ } ++ // Paper end - Add BlockBreakProgressUpdateEvent ++ + while (iterator.hasNext()) { + ServerPlayer entityplayer = (ServerPlayer) iterator.next(); + From 8e75001cb8ffd0dc6abb12ee8a35164b8349d6aa Mon Sep 17 00:00:00 2001 From: Noah van der Aa Date: Sun, 7 Apr 2024 01:36:59 +0200 Subject: [PATCH 041/215] Disable vertical air friction when item entities have friction disabled (#10369) --- patches/server/0816-Friction-API.patch | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/patches/server/0816-Friction-API.patch b/patches/server/0816-Friction-API.patch index 2b74be2e4e..7da72213c7 100644 --- a/patches/server/0816-Friction-API.patch +++ b/patches/server/0816-Friction-API.patch @@ -55,7 +55,7 @@ index 0708502b46ec55d533c7d890b892a57779678854..834607dde3841105b3524b43f5938029 this.getAttributes().load(nbt.getList("Attributes", 10)); } diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index d0dac3dc89b9bb645a1d8498802fb8c6bff6a78e..c7f06c3cfb737bd17a706798bf9cf0e1af5f0cc0 100644 +index d0dac3dc89b9bb645a1d8498802fb8c6bff6a78e..29ce703a79f7893ac990ad80e0f1c1cf63546e6c 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -58,6 +58,7 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -66,7 +66,7 @@ index d0dac3dc89b9bb645a1d8498802fb8c6bff6a78e..c7f06c3cfb737bd17a706798bf9cf0e1 public ItemEntity(EntityType type, Level world) { super(type, world); -@@ -179,7 +180,11 @@ public class ItemEntity extends Entity implements TraceableEntity { +@@ -179,11 +180,15 @@ public class ItemEntity extends Entity implements TraceableEntity { this.move(MoverType.SELF, this.getDeltaMovement()); float f1 = 0.98F; @@ -79,6 +79,11 @@ index d0dac3dc89b9bb645a1d8498802fb8c6bff6a78e..c7f06c3cfb737bd17a706798bf9cf0e1 f1 = this.level().getBlockState(this.getBlockPosBelowThatAffectsMyMovement()).getBlock().getFriction() * 0.98F; } +- this.setDeltaMovement(this.getDeltaMovement().multiply((double) f1, 0.98D, (double) f1)); ++ this.setDeltaMovement(this.getDeltaMovement().multiply((double) f1, frictionState == net.kyori.adventure.util.TriState.FALSE ? 1D : 0.98D, (double) f1)); // Paper - Friction API + if (this.onGround()) { + Vec3 vec3d1 = this.getDeltaMovement(); + @@ -388,6 +393,11 @@ public class ItemEntity extends Entity implements TraceableEntity { @Override From 241d8e26fbaf89aae7aa377273b62172c0402b1c Mon Sep 17 00:00:00 2001 From: Joseph Burton Date: Sun, 7 Apr 2024 00:50:43 +0100 Subject: [PATCH 042/215] Ignore minecart in activation range (#10359) --- ...tities-to-activation-range-ignore-list.patch} | 8 +++++--- .../0315-Fix-items-not-falling-correctly.patch | 4 ++-- .../0989-Entity-Activation-Range-2.0.patch | 16 ++++++++-------- 3 files changed, 15 insertions(+), 13 deletions(-) rename patches/server/{0036-Always-tick-falling-blocks.patch => 0036-Add-more-entities-to-activation-range-ignore-list.patch} (67%) diff --git a/patches/server/0036-Always-tick-falling-blocks.patch b/patches/server/0036-Add-more-entities-to-activation-range-ignore-list.patch similarity index 67% rename from patches/server/0036-Always-tick-falling-blocks.patch rename to patches/server/0036-Add-more-entities-to-activation-range-ignore-list.patch index 24f946fa58..c402bdafa2 100644 --- a/patches/server/0036-Always-tick-falling-blocks.patch +++ b/patches/server/0036-Add-more-entities-to-activation-range-ignore-list.patch @@ -1,18 +1,20 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 2 Mar 2016 00:32:25 -0600 -Subject: [PATCH] Always tick falling blocks +Subject: [PATCH] Add more entities to activation range ignore list diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index a5da6c1cae0afbde684be250e2fc3c0c32a1265b..e5ff35531a933268f2b8b6c15c234de4482931d5 100644 +index a5da6c1cae0afbde684be250e2fc3c0c32a1265b..6d51464f6368151e8acc532414ee223714584e96 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -92,6 +92,7 @@ public class ActivationRange +@@ -92,6 +92,9 @@ public class ActivationRange || entity instanceof AbstractHurtingProjectile || entity instanceof LightningBolt || entity instanceof PrimedTnt + || entity instanceof net.minecraft.world.entity.item.FallingBlockEntity // Paper - Always tick falling blocks ++ || entity instanceof net.minecraft.world.entity.vehicle.AbstractMinecart // Paper ++ || entity instanceof net.minecraft.world.entity.vehicle.Boat // Paper || entity instanceof EndCrystal || entity instanceof FireworkRocketEntity || entity instanceof ThrownTrident ) diff --git a/patches/server/0315-Fix-items-not-falling-correctly.patch b/patches/server/0315-Fix-items-not-falling-correctly.patch index 304ae24a45..785cf5a8ff 100644 --- a/patches/server/0315-Fix-items-not-falling-correctly.patch +++ b/patches/server/0315-Fix-items-not-falling-correctly.patch @@ -28,10 +28,10 @@ index bfbbb9382cf483a23acf35c17250f6f9223f7507..5994cb69575d365f435f5ef6da5fa61e float f1 = 0.98F; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index e5ff35531a933268f2b8b6c15c234de4482931d5..90df7e83d9166c22a56a31db22d843768229b9ab 100644 +index 6d51464f6368151e8acc532414ee223714584e96..9fb9fa62c32445ac3c3883a6433759c86dcfc428 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -254,7 +254,7 @@ public class ActivationRange +@@ -256,7 +256,7 @@ public class ActivationRange isActive = true; } // Add a little performance juice to active entities. Skip 1/4 if not immune. diff --git a/patches/server/0989-Entity-Activation-Range-2.0.patch b/patches/server/0989-Entity-Activation-Range-2.0.patch index ecc9538fcb..c26295b371 100644 --- a/patches/server/0989-Entity-Activation-Range-2.0.patch +++ b/patches/server/0989-Entity-Activation-Range-2.0.patch @@ -111,7 +111,7 @@ index bd8c96e914b156284bdbb960f168e63e1f122920..abb4c32e8b35de332fa517523e8c598e } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3f620c4b8415f09a8d4664481b2d41d421ee836e..703b32362cf6a23dfe9326aa4e0ee74511e0d2cb 100644 +index 3f620c4b8415f09a8d4664481b2d41d421ee836e..132ab49c02b83c37e1a64fc19f9bdfc04f52f2ed 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -412,6 +412,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -137,7 +137,7 @@ index 3f620c4b8415f09a8d4664481b2d41d421ee836e..703b32362cf6a23dfe9326aa4e0ee745 this.setDeltaMovement(Vec3.ZERO); } + // Paper start - ignore movement changes while inactive. -+ if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) { ++ if (isTemporarilyActive && !(this instanceof ItemEntity) && movement == getDeltaMovement() && movementType == MoverType.SELF) { + setDeltaMovement(Vec3.ZERO); + this.level.getProfiler().pop(); + return; @@ -371,7 +371,7 @@ index b1061db1d9b3bfde61d5016e10556c4320095827..c71690dbc3dc52803945f1608f0ee3ba } } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 90df7e83d9166c22a56a31db22d843768229b9ab..c39894e824334f1dc52e0466cf9d84f7e219be70 100644 +index 9fb9fa62c32445ac3c3883a6433759c86dcfc428..3283ed99c35ffed6805567705e0518d9f84feedc 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -1,33 +1,43 @@ @@ -499,7 +499,7 @@ index 90df7e83d9166c22a56a31db22d843768229b9ab..c39894e824334f1dc52e0466cf9d84f7 || entity instanceof Player || entity instanceof ThrowableProjectile || entity instanceof EnderDragon -@@ -116,10 +170,25 @@ public class ActivationRange +@@ -118,10 +172,25 @@ public class ActivationRange final int raiderActivationRange = world.spigotConfig.raiderActivationRange; final int animalActivationRange = world.spigotConfig.animalActivationRange; final int monsterActivationRange = world.spigotConfig.monsterActivationRange; @@ -525,7 +525,7 @@ index 90df7e83d9166c22a56a31db22d843768229b9ab..c39894e824334f1dc52e0466cf9d84f7 maxRange = Math.min( ( world.spigotConfig.simulationDistance << 4 ) - 8, maxRange ); for ( Player player : world.players() ) -@@ -130,13 +199,30 @@ public class ActivationRange +@@ -132,13 +201,30 @@ public class ActivationRange continue; } @@ -562,7 +562,7 @@ index 90df7e83d9166c22a56a31db22d843768229b9ab..c39894e824334f1dc52e0466cf9d84f7 } MinecraftTimings.entityActivationCheckTimer.stopTiming(); } -@@ -169,60 +255,118 @@ public class ActivationRange +@@ -171,60 +257,118 @@ public class ActivationRange * @param entity * @return */ @@ -698,7 +698,7 @@ index 90df7e83d9166c22a56a31db22d843768229b9ab..c39894e824334f1dc52e0466cf9d84f7 } /** -@@ -237,8 +381,19 @@ public class ActivationRange +@@ -239,8 +383,19 @@ public class ActivationRange if ( entity instanceof FireworkRocketEntity ) { return true; } @@ -719,7 +719,7 @@ index 90df7e83d9166c22a56a31db22d843768229b9ab..c39894e824334f1dc52e0466cf9d84f7 // Should this entity tick? if ( !isActive ) -@@ -246,15 +401,19 @@ public class ActivationRange +@@ -248,15 +403,19 @@ public class ActivationRange if ( ( MinecraftServer.currentTick - entity.activatedTick - 1 ) % 20 == 0 ) { // Check immunities every 20 ticks. From 12071620558a64575ac641d9b93c120a66e5e3a7 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 7 Apr 2024 01:45:43 +0100 Subject: [PATCH 043/215] Allow player-list API to self un/list (#10358) --- patches/server/0914-Add-Listing-API-for-Player.patch | 6 ++---- patches/server/0946-Add-player-idle-duration-API.patch | 4 ++-- patches/server/0980-Rewrite-chunk-system.patch | 4 ++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/patches/server/0914-Add-Listing-API-for-Player.patch b/patches/server/0914-Add-Listing-API-for-Player.patch index fa29159689..05e8427ee0 100644 --- a/patches/server/0914-Add-Listing-API-for-Player.patch +++ b/patches/server/0914-Add-Listing-API-for-Player.patch @@ -111,7 +111,7 @@ index bc0e9fb41fe22e0a603837fcbdd82134f51d21d9..d38fe02af4cc35ed5b22acec41bedb76 // Paper end - Use single player info update packet on join player.sentListPacket = true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 15817a84ad5db54ec299f933387f4ad1e0e74b33..458c7039bddf63a0affbf14c24ba73d66cc13fac 100644 +index 15817a84ad5db54ec299f933387f4ad1e0e74b33..15c7724e406655cffddad1a14081d737dab7ef44 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -188,6 +188,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -131,7 +131,7 @@ index 15817a84ad5db54ec299f933387f4ad1e0e74b33..458c7039bddf63a0affbf14c24ba73d6 if (original != null) otherPlayer.setUUID(original); // Paper - uuid override } -@@ -2102,6 +2103,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2102,6 +2103,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return (entity != null) ? this.canSee(entity) : false; // If we can't find it, we can't see it } @@ -145,7 +145,6 @@ index 15817a84ad5db54ec299f933387f4ad1e0e74b33..458c7039bddf63a0affbf14c24ba73d6 + public boolean unlistPlayer(@NotNull Player other) { + Preconditions.checkNotNull(other, "hidden entity cannot be null"); + if (this.getHandle().connection == null) return false; -+ if (this.equals(other)) return false; + if (!this.canSee(other)) return false; + + if (unlistedEntities.add(other.getUniqueId())) { @@ -160,7 +159,6 @@ index 15817a84ad5db54ec299f933387f4ad1e0e74b33..458c7039bddf63a0affbf14c24ba73d6 + public boolean listPlayer(@NotNull Player other) { + Preconditions.checkNotNull(other, "hidden entity cannot be null"); + if (this.getHandle().connection == null) return false; -+ if (this.equals(other)) return false; + if (!this.canSee(other)) throw new IllegalStateException("Player cannot see other player"); + + if (this.unlistedEntities.remove(other.getUniqueId())) { diff --git a/patches/server/0946-Add-player-idle-duration-API.patch b/patches/server/0946-Add-player-idle-duration-API.patch index 717b1d7291..350f2962a2 100644 --- a/patches/server/0946-Add-player-idle-duration-API.patch +++ b/patches/server/0946-Add-player-idle-duration-API.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5b5167947c82ca66a89aab456a2eb5b523887d33..ff3db4efd2c10b3351453656937e88064267fb22 100644 +index a0bca5349074afd8012df429bb548c0f2640b432..eee2ed951ebcf0ad58aa7dc95ed9adc927322748 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3337,6 +3337,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3335,6 +3335,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end diff --git a/patches/server/0980-Rewrite-chunk-system.patch b/patches/server/0980-Rewrite-chunk-system.patch index fb45fa41de..19cbac85d0 100644 --- a/patches/server/0980-Rewrite-chunk-system.patch +++ b/patches/server/0980-Rewrite-chunk-system.patch @@ -21527,10 +21527,10 @@ index 93c10b5a699f4f8a8aa97a0f666999fc4a495a5b..75ddeceb3f6c381b95dca0a93643aaca // Paper start - implement pointers diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e874d76437fc4c86fd4ed2d03e416dd1ff528b76..616d2e479d91673695ade0db151a0099b568904f 100644 +index 77b459274e578779f5c79a7940bf47c782b9db06..e77bf7f432387bdfa7f69d31b014e8cd254fd4ca 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3400,31 +3400,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3398,31 +3398,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public int getViewDistance() { From 5436d44bf2509ff89129f8790ee4643f09c72871 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 7 Apr 2024 22:20:51 -0700 Subject: [PATCH 044/215] Deprecate several Keyed#getKey methods (#10357) - Structure (can already be defined inline in datapacks - PatternType (can be defined inline in 1.20.5 data components) - MusicInstrument (same as above) --- patches/api/0446-Improve-Registry.patch | 57 +++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/patches/api/0446-Improve-Registry.patch b/patches/api/0446-Improve-Registry.patch index 0e4b32604c..43e30a4477 100644 --- a/patches/api/0446-Improve-Registry.patch +++ b/patches/api/0446-Improve-Registry.patch @@ -9,6 +9,27 @@ items need to exist without having a key and so getKey() methods on Keyed objects that have a registry are marked as Deprecated or Obsolete. +diff --git a/src/main/java/org/bukkit/MusicInstrument.java b/src/main/java/org/bukkit/MusicInstrument.java +index ee5368372e136541eafe1d7ffb395de670fe4843..31a81ac909976492f0c6b93ad49008878a3bcae2 100644 +--- a/src/main/java/org/bukkit/MusicInstrument.java ++++ b/src/main/java/org/bukkit/MusicInstrument.java +@@ -53,6 +53,16 @@ public abstract class MusicInstrument implements Keyed, net.kyori.adventure.tran + return instrument; + } + ++ // Paper start - deprecate getKey ++ /** ++ * @deprecated use {@link Registry#getKey(Keyed)} and {@link Registry#INSTRUMENT}. MusicInstruments ++ * can exist without a key. ++ */ ++ @Deprecated ++ @Override ++ public abstract @NotNull NamespacedKey getKey(); ++ // Paper end - deprecate getKey ++ + // Paper start - translation key + @Override + public @NotNull String translationKey() { diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java index 18c672f3855a329bf8f87a9de81b677e8e360b41..e1fb4d8cca6a9c59047b1396f5c40bea957d777a 100644 --- a/src/main/java/org/bukkit/Registry.java @@ -76,6 +97,42 @@ index 18c672f3855a329bf8f87a9de81b677e8e360b41..e1fb4d8cca6a9c59047b1396f5c40bea + // Paper end - improve Registry } } +diff --git a/src/main/java/org/bukkit/block/banner/PatternType.java b/src/main/java/org/bukkit/block/banner/PatternType.java +index 1c5c6303de815dd4ffa68f47dd2b6fa187fd4b70..7cdcc70d1bc33c88b217638725713e9cde450bdb 100644 +--- a/src/main/java/org/bukkit/block/banner/PatternType.java ++++ b/src/main/java/org/bukkit/block/banner/PatternType.java +@@ -67,6 +67,13 @@ public enum PatternType implements Keyed { + this.key = NamespacedKey.minecraft(key); + } + ++ // Paper start - deprecate getKey ++ /** ++ * @deprecated use {@link Registry#getKey(Keyed)} and {@link Registry#BANNER_PATTERN}. PatternTypes ++ * can exist without a key. ++ */ ++ @Deprecated ++ // Paper end - deprecate getKey + @Override + @NotNull + public NamespacedKey getKey() { +diff --git a/src/main/java/org/bukkit/generator/structure/Structure.java b/src/main/java/org/bukkit/generator/structure/Structure.java +index 8e39f282c771ddafe5d890dcf065c56f0c633647..baa3d6d38353ba6d9d0863dd7deaba3c830b2400 100644 +--- a/src/main/java/org/bukkit/generator/structure/Structure.java ++++ b/src/main/java/org/bukkit/generator/structure/Structure.java +@@ -63,4 +63,13 @@ public abstract class Structure implements Keyed { + */ + @NotNull + public abstract StructureType getStructureType(); ++ // Paper start - deprecate getKey ++ /** ++ * @deprecated use {@link Registry#getKey(Keyed)} and {@link Registry#STRUCTURE}. Structures ++ * can exist without a key. ++ */ ++ @Override ++ @Deprecated ++ public abstract @NotNull NamespacedKey getKey(); ++ // Paper end - deprecate getKey + } diff --git a/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java b/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java index 941fac4eee338870d8c30cb1f64cab572cf54548..74816d6da4d7c8d2fa8a7b93fdc4bf29c8d12803 100644 --- a/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java From a7f1dc6a0700d984dc8d147d754c9d58f74ecb38 Mon Sep 17 00:00:00 2001 From: gecko10000 <60494179+gecko10000@users.noreply.github.com> Date: Fri, 12 Apr 2024 10:21:31 -0700 Subject: [PATCH 045/215] Change online mode default for Velocity configuration (#10413) --- patches/server/0005-Paper-config-files.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 21f0044039..a1510b54e6 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -15,7 +15,7 @@ public net.minecraft.server.dedicated.DedicatedServerProperties reload(Lnet/mine public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES diff --git a/build.gradle.kts b/build.gradle.kts -index beb50d67ea2c1933a115766627b2adabd2032929..b8970d0064b9b64e1c50ab373818c38611fd9f5e 100644 +index 69155f6badcd79b3479654363ca1f1d8a138a7ad..8332781de54d73cb5803828e98882a731daed81f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,6 +11,7 @@ dependencies { @@ -482,7 +482,7 @@ index 0000000000000000000000000000000000000000..c01b4393439838976965823298f12e47 +} diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java new file mode 100644 -index 0000000000000000000000000000000000000000..0aab42ac5d5b0fb8b59eb71d8d3b1ebbc7c76da7 +index 0000000000000000000000000000000000000000..a8268886d4a039975b6fed94b8dc325a8270f5fd --- /dev/null +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -0,0 +1,313 @@ @@ -575,7 +575,7 @@ index 0000000000000000000000000000000000000000..0aab42ac5d5b0fb8b59eb71d8d3b1ebb + + public class Velocity extends ConfigurationPart { + public boolean enabled = false; -+ public boolean onlineMode = false; ++ public boolean onlineMode = true; + public String secret = ""; + + @PostProcess @@ -4985,7 +4985,7 @@ index 680a308c466c0056d4213e61f69cf13ee3ff5c61..cd39509d383c47319b71797e5d1df41c 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 96210dd54e8ff6dc0375a8d03bf14fec1b26aaeb..19725db76dc3a12356993aed7edba507b52fe4d7 100644 +index 67d347741db1c5a9a6568ee084388a59e35b16ea..cc6d96c5015b4e5614e8091dc9113e82e9babc25 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 { From 37db2d7e4c10510a39b083600befec5dfc7cfbd4 Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Fri, 12 Apr 2024 20:58:44 +0200 Subject: [PATCH 046/215] [ci skip] Update book page/char limit for book meta doc (#10415) --- patches/api/0006-Adventure.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch index 3bf28e3242..60ac42acc1 100644 --- a/patches/api/0006-Adventure.patch +++ b/patches/api/0006-Adventure.patch @@ -4356,7 +4356,7 @@ index 88cdce67e6a55712cb56e946f2f09c82ddbc1d15..e76c847e57f3d32757129d56922862a4 + // Paper end } diff --git a/src/main/java/org/bukkit/inventory/meta/BookMeta.java b/src/main/java/org/bukkit/inventory/meta/BookMeta.java -index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..86c9e4229a1936c5893016e5b8087aa9fd06ddab 100644 +index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f006905d6a988 100644 --- a/src/main/java/org/bukkit/inventory/meta/BookMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/BookMeta.java @@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable; @@ -4431,7 +4431,7 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..86c9e4229a1936c5893016e5b8087aa9 + * Sets the specified page in the book. Pages of the book must be + * contiguous. + *

      -+ * The data can be up to 256 characters in length, additional characters ++ * The data can be up to 1024 characters in length, additional characters + * are truncated. + *

      + * Pages are 1-indexed. @@ -4442,8 +4442,8 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..86c9e4229a1936c5893016e5b8087aa9 + void page(int page, net.kyori.adventure.text.@NotNull Component data); + + /** -+ * Adds new pages to the end of the book. Up to a maximum of 50 pages with -+ * 256 characters per page. ++ * Adds new pages to the end of the book. Up to a maximum of 100 pages with ++ * 1024 characters per page. + * + * @param pages A list of strings, each being a page + */ From 526795bacd07c019fe3652c96d74cc9f91ecb1fd Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Fri, 12 Apr 2024 12:14:06 -0700 Subject: [PATCH 047/215] Update patches to handle vineflower decompiler (#10406) * Update patches to handle vineflower decompiler * update patches again to handle inlined simple lambdas * update vf again and re-apply/rebuild patches * update patches after removal of verify-merges flag * fix compile issue * remove maven local * fix some issues * address more issues * fix collision patch * use paperweight release * more fixes * update fineflower and fix patches again * add missing comment descriptor --------- Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com> --- build.gradle.kts | 6 +- patches/api/0002-Build-system-changes.patch | 2 +- patches/api/0003-Test-changes.patch | 2 +- patches/api/0005-Add-FastUtil-to-Bukkit.patch | 2 +- ...rovide-E-TE-Chunk-count-stat-methods.patch | 2 +- ...or-plugins-modifying-the-parent-of-t.patch | 2 +- ...-get-a-BlockState-without-a-snapshot.patch | 2 +- ...96-Add-Ban-Methods-to-Player-Objects.patch | 4 +- ...vide-Chunk-Coordinates-as-a-Long-API.patch | 2 +- ...Blocks-to-be-accessed-via-a-long-key.patch | 2 +- patches/api/0141-isChunkGenerated-API.patch | 2 +- ...-ray-tracing-methods-to-LivingEntity.patch | 2 +- ...156-Add-LivingEntity-getTargetEntity.patch | 2 +- .../0173-Fix-Spigot-annotation-mistakes.patch | 2 +- ...0175-PlayerDeathEvent-getItemsToKeep.patch | 2 +- patches/api/0176-Add-Heightmap-API.patch | 2 +- .../0178-Add-BlockSoundGroup-interface.patch | 2 +- ...182-Improve-Block-breakNaturally-API.patch | 2 +- ...layerDeathEvent-shouldDropExperience.patch | 2 +- patches/api/0185-Entity-Jump-API.patch | 2 +- patches/api/0195-Expose-game-version.patch | 4 +- ...yPickupItemAnimation-to-LivingEntity.patch | 2 +- ...224-Add-LivingEntity-clearActiveItem.patch | 2 +- ...9-Expose-LivingEntity-hurt-direction.patch | 2 +- patches/api/0263-Expand-world-key-API.patch | 4 +- .../0294-Add-more-line-of-sight-methods.patch | 2 +- patches/api/0297-Missing-Entity-API.patch | 2 +- patches/api/0301-Stinger-API.patch | 2 +- .../api/0342-Implement-regenerateChunk.patch | 2 +- ...Add-method-isTickingWorlds-to-Bukkit.patch | 4 +- patches/api/0364-More-Teleport-API.patch | 2 +- ...-swingHand-EquipmentSlot-convenience.patch | 2 +- .../api/0380-Add-entity-knockback-API.patch | 2 +- patches/api/0387-ItemStack-damage-API.patch | 2 +- patches/api/0389-Friction-API.patch | 2 +- .../api/0400-Add-Entity-Body-Yaw-API.patch | 2 +- ...-to-remove-all-active-potion-effects.patch | 2 +- ...place-methods-with-old-StructureType.patch | 4 +- .../api/0443-Add-Structure-check-API.patch | 2 +- .../api/0450-Add-HiddenPotionEffect-API.patch | 2 +- patches/server/0002-Remap-fixes.patch | 12 +- .../server/0003-Build-system-changes.patch | 28 +- patches/server/0004-Test-changes.patch | 2 +- patches/server/0005-Paper-config-files.patch | 12 +- patches/server/0006-MC-Dev-fixes.patch | 200 +++------- patches/server/0008-CB-fixes.patch | 24 +- patches/server/0009-MC-Utils.patch | 44 +-- patches/server/0010-Adventure.patch | 99 +++-- patches/server/0012-Paper-Metrics.patch | 4 +- patches/server/0013-Paper-Plugins.patch | 4 +- patches/server/0014-Timings-v2.patch | 2 +- ...016-Further-improve-server-tick-loop.patch | 2 +- ...-option-to-load-extra-plugin-jars-no.patch | 2 +- .../0022-Allow-nerfed-mobs-to-jump.patch | 2 +- ...4-Allow-for-toggling-of-spawn-chunks.patch | 2 +- ...ient-crashes-server-lists-and-Mojang.patch | 4 +- .../0029-Player-affects-spawning-API.patch | 10 +- ...nfigurable-top-of-nether-void-damage.patch | 2 +- .../0037-Configurable-end-credits.patch | 2 +- patches/server/0039-Optimize-explosions.patch | 4 +- patches/server/0041-Disable-thunder.patch | 2 +- .../server/0042-Disable-ice-and-snow.patch | 2 +- ...44-Implement-PlayerLocaleChangeEvent.patch | 2 +- ...figurable-container-update-tick-rate.patch | 2 +- ...051-Improve-Player-chat-API-handling.patch | 2 +- ...e-informative-in-maxHealth-exception.patch | 2 +- ...dd-configurable-portal-search-radius.patch | 2 +- .../server/0057-Add-velocity-warnings.patch | 2 +- ...oreboards-for-non-players-by-default.patch | 4 +- .../server/0069-Add-World-Util-Methods.patch | 2 +- ...0-Custom-replacement-for-eaten-items.patch | 2 +- ...th-absorb-values-and-repair-bad-data.patch | 2 +- ...072-Use-a-Shared-Random-for-Entities.patch | 8 +- ...le-spawn-chances-for-skeleton-horses.patch | 2 +- ...Entity-AddTo-RemoveFrom-World-Events.patch | 2 +- patches/server/0077-EntityPathfindEvent.patch | 38 +- ...9-Do-not-load-chunks-for-Pathfinding.patch | 10 +- ...0080-Add-PlayerUseUnknownEntityEvent.patch | 4 +- ...g-BlockPlaceEvent-triggering-physics.patch | 2 +- patches/server/0083-Optimize-DataBits.patch | 18 +- .../0085-Configurable-Player-Collision.patch | 6 +- .../0087-Configurable-RCON-IP-address.patch | 4 +- ...ityRegainHealthEvent-isFastRegen-API.patch | 2 +- ...-to-configure-frosted_ice-properties.patch | 11 +- ...y-scoreboard-teams-to-scoreboard.dat.patch | 6 +- ...able-API-and-replenishable-lootables.patch | 24 +- .../0094-Async-GameProfileCache-saving.patch | 2 +- ...r-redstone-torch-rapid-clock-removal.patch | 2 +- .../0097-Add-server-name-parameter.patch | 2 +- ...ptimise-BlockState-s-hashCode-equals.patch | 21 +- ...onfigurable-packet-in-spam-threshold.patch | 2 +- ...04-Configurable-flying-kick-messages.patch | 2 +- ...vent-Pathfinding-out-of-World-Border.patch | 4 +- ...ize-Level.hasChunkAt-BlockPosition-Z.patch | 2 +- ...figurable-Cartographer-Treasure-Maps.patch | 15 +- ...17-Properly-fix-item-duplication-bug.patch | 2 +- patches/server/0118-Firework-API-s.patch | 16 +- ...PI-for-Reason-Source-Triggering-play.patch | 2 +- .../server/0123-Cap-Entity-Collisions.patch | 4 +- ...le-async-calls-to-restart-the-server.patch | 2 +- ...oleAppender-for-console-improvements.patch | 4 +- ...-profile-lookups-to-worldgen-threads.patch | 4 +- .../0144-Fix-this-stupid-bullshit.patch | 2 +- ...n-prefixes-using-Log4J-configuration.patch | 2 +- patches/server/0151-Add-PlayerJumpEvent.patch | 2 +- .../0156-Add-PlayerArmorChangeEvent.patch | 2 +- ...-get-a-BlockState-without-a-snapshot.patch | 2 +- .../server/0161-AsyncTabCompleteEvent.patch | 2 +- ...4-PlayerNaturallySpawnCreaturesEvent.patch | 4 +- ...nt-extended-PaperServerListPingEvent.patch | 2 +- ...81-Flag-to-disable-the-channel-limit.patch | 2 +- ...0186-Block-Enderpearl-Travel-Exploit.patch | 2 +- .../0196-Fix-CraftEntity-hashCode.patch | 2 +- ...7-Configurable-LootPool-luck-formula.patch | 6 +- ...e-shield-blocking-delay-configurable.patch | 2 +- ...ackByEntityEvent-and-EntityPushedByE.patch | 40 +- ...to-disable-ender-dragon-legacy-check.patch | 2 +- .../0208-InventoryCloseEvent-Reason-API.patch | 2 +- ...r-to-keep-logging-IO-off-main-thread.patch | 2 +- ...-more-information-to-Entity.toString.patch | 2 +- patches/server/0213-EnderDragon-Events.patch | 6 +- .../server/0214-PlayerElytraBoostEvent.patch | 4 +- .../0215-PlayerLaunchProjectileEvent.patch | 66 +++- .../0216-Improve-BlockPosition-inlining.patch | 11 +- .../server/0220-SkeletonHorse-Additions.patch | 4 +- ...nd-make-tab-spam-limits-configurable.patch | 2 +- ...ies-option-to-debug-dupe-uuid-issues.patch | 6 +- ...dd-Early-Warning-Feature-to-WatchDog.patch | 2 +- ...ptimize-BlockPosition-helper-methods.patch | 4 +- .../server/0238-Optimize-MappedRegistry.patch | 10 +- ...-ray-tracing-methods-to-LivingEntity.patch | 4 +- ...e-attack-cooldown-methods-for-Player.patch | 2 +- .../server/0245-Improve-death-events.patch | 27 +- patches/server/0247-Mob-Pathfinding-API.patch | 2 +- ...interactions-from-causing-chunk-load.patch | 2 +- ...257-Add-LivingEntity-getTargetEntity.patch | 4 +- ...xception-in-entity-and-block-entity-.patch | 6 +- ...tator-target-events-and-improve-impl.patch | 2 +- ...event-players-from-moving-into-unloa.patch | 2 +- ...65-Reset-players-airTicks-on-respawn.patch | 2 +- ...er-Thread-Pool-and-Thread-Priorities.patch | 12 +- .../0268-Optimize-World-Time-Updates.patch | 2 +- ...t-allow-digging-into-unloaded-chunks.patch | 2 +- ...e-Large-Packets-disconnecting-client.patch | 11 +- ...entity-dismount-during-teleportation.patch | 4 +- patches/server/0276-Book-Size-Limits.patch | 2 +- ...-Replace-OfflinePlayer-getLastPlayed.patch | 2 +- ...vehicle-tracking-issue-on-disconnect.patch | 2 +- ...r-remove-if-the-handle-is-a-custom-p.patch | 2 +- .../0282-Async-command-map-building.patch | 2 +- .../server/0283-Brigadier-Mojang-API.patch | 4 +- ...rove-exact-choice-recipe-ingredients.patch | 46 +-- .../0287-Entity-getEntitySpawnReason.patch | 12 +- .../server/0288-Fire-event-on-GS4-query.patch | 12 +- patches/server/0291-Server-Tick-Events.patch | 2 +- ...0292-PlayerDeathEvent-getItemsToKeep.patch | 2 +- ...n-item-frames-are-modified-MC-123450.patch | 2 +- ...le-Keep-Spawn-Loaded-range-per-world.patch | 2 +- ...ate-location-if-we-failed-to-read-it.patch | 2 +- .../0304-offset-item-frame-ticking.patch | 2 +- ...revent-consuming-the-wrong-itemstack.patch | 2 +- ...nk-loads-when-villagers-try-to-find-.patch | 6 +- ...5656-Fix-Follow-Range-Initial-Target.patch | 14 +- ...layerDeathEvent-shouldDropExperience.patch | 2 +- ...Chunks-from-Hoppers-and-other-things.patch | 6 +- ...ptimise-EntityGetter-getPlayerByUUID.patch | 2 +- ...mize-call-to-getFluid-for-explosions.patch | 2 +- .../0320-Tracking-Range-Improvements.patch | 2 +- ...x-items-vanishing-through-end-portal.patch | 2 +- .../0325-Add-debug-for-sync-chunk-loads.patch | 2 +- patches/server/0328-Entity-Jump-API.patch | 2 +- ...n-to-nerf-pigmen-from-nether-portals.patch | 2 +- ...spawn-settings-and-per-player-option.patch | 2 +- ...nnections-shouldn-t-hold-up-shutdown.patch | 6 +- ...-PlayerChunkMap-adds-crashing-server.patch | 4 +- .../server/0344-Don-t-tick-dead-players.patch | 2 +- ...move-existing-players-to-world-spawn.patch | 2 +- .../server/0347-Optimize-Pathfinding.patch | 4 +- ...duce-memory-footprint-of-CompoundTag.patch | 10 +- ...vent-opening-inventories-when-frozen.patch | 2 +- ...-entity-collision-code-if-not-needed.patch | 2 +- ...-Implement-Player-Client-Options-API.patch | 4 +- ...nEvent-when-Player-is-actually-ready.patch | 2 +- ...pawn-point-if-spawn-in-unloaded-worl.patch | 2 +- ...PlayerAttackEntityCooldownResetEvent.patch | 2 +- ...item-duplication-and-teleport-issues.patch | 2 +- ...PickItem-Packet-and-kick-for-invalid.patch | 2 +- ...-per-thread-native-byte-buffer-cache.patch | 2 +- .../server/0364-misc-debugging-dumps.patch | 2 +- ...65-Prevent-teleporting-dead-entities.patch | 2 +- ...ktraces-in-log-messages-crash-report.patch | 8 +- .../server/0367-Implement-Mob-Goal-API.patch | 2 +- .../0368-Add-villager-reputation-API.patch | 4 +- ...1-Fix-PotionEffect-ignores-icon-flag.patch | 2 +- ...Wait-for-Async-Tasks-during-shutdown.patch | 2 +- ...ston-physics-inconsistency-MC-188840.patch | 4 +- ...ssing-chunks-due-to-integer-overflow.patch | 8 +- ...ld-Difficulty-Remembering-Difficulty.patch | 2 +- ...0394-Support-old-UUID-format-for-NBT.patch | 10 +- ...k-for-portal-on-world-gen-entity-add.patch | 2 +- ...4-Bukkit-world-container-is-not-used.patch | 4 +- ...ataPlayer-leak-due-from-quitting-ear.patch | 13 +- ...ze-NetworkManager-Exception-Handling.patch | 8 +- ...Fix-some-rails-connecting-improperly.patch | 12 +- patches/server/0411-Brand-support.patch | 2 +- ...-Add-methods-to-get-translation-keys.patch | 2 +- .../0426-Cache-block-data-strings.patch | 2 +- ...ortation-and-cancel-velocity-if-tele.patch | 2 +- ...-non-whitelisted-player-when-white-l.patch | 2 +- ...x-Concurrency-issue-in-ShufflingList.patch | 14 +- ...ace-order-when-capturing-blockstates.patch | 2 +- ...blockpos-allocation-from-pathfinding.patch | 22 +- ...ix-client-lag-on-advancement-loading.patch | 2 +- .../server/0451-Add-API-for-quit-reason.patch | 2 +- ...prove-performance-of-the-end-generat.patch | 26 +- ...-should-not-bypass-cramming-gamerule.patch | 2 +- .../0462-Add-PlayerShearBlockEvent.patch | 30 +- ...0465-Player-Chunk-Load-Unload-Events.patch | 10 +- patches/server/0470-Add-TargetHitEvent.patch | 8 +- .../0471-MC-4-Fix-item-position-desync.patch | 18 +- ...8-Add-PlayerFlowerPotManipulateEvent.patch | 2 +- ...484-Add-ServerResourcesReloadedEvent.patch | 2 +- ...onfigurable-door-breaking-difficulty.patch | 4 +- ...n-for-requiring-a-player-participant.patch | 2 +- ...-shield-blocking-on-dimension-change.patch | 2 +- patches/server/0508-Add-EntityMoveEvent.patch | 4 +- .../0510-Inline-shift-direction-fields.patch | 17 +- ...-entity-allow-attribute-registration.patch | 8 +- patches/server/0517-Improve-ServerGUI.patch | 10 +- ...0518-fix-converting-txt-to-json-file.patch | 2 +- ...lternative-constructor-for-Rotations.patch | 2 +- ...telist-use-configurable-kick-message.patch | 2 +- ...ItemConsumeEvent-cancelling-properly.patch | 2 +- ...557-Expand-PlayerGameModeChangeEvent.patch | 20 +- .../0564-Add-EntityInsideBlockEvent.patch | 22 +- .../0569-Add-PlayerKickEvent-causes.patch | 40 +- ...ttedContainer-instead-of-ThreadingDe.patch | 20 +- .../0575-Fix-invulnerable-end-crystals.patch | 6 +- .../0577-Fix-dangerous-end-portal-logic.patch | 2 +- ...e-Biome-Mob-Lookups-for-Mob-Spawning.patch | 14 +- .../server/0580-Line-Of-Sight-Changes.patch | 4 +- ...PlayerDropItemEvent-using-wrong-item.patch | 2 +- patches/server/0585-Missing-Entity-API.patch | 4 +- ...etChunkIfLoadedImmediately-in-places.patch | 2 +- ...k-event-leave-message-not-being-sent.patch | 2 +- ...g-for-mobs-immune-to-default-effects.patch | 2 +- ...n-t-apply-cramming-damage-to-players.patch | 2 +- ...nd-timings-for-sensors-and-behaviors.patch | 28 +- .../0595-Add-missing-forceDrop-toggles.patch | 6 +- patches/server/0596-Stinger-API.patch | 2 +- .../server/0602-Add-PlayerSetSpawnEvent.patch | 2 +- ...mize-entity-tracker-passenger-checks.patch | 2 +- ...ptimize-indirect-passenger-iteration.patch | 2 +- ...tem-frame-map-cursor-update-interval.patch | 2 +- .../0611-Add-BlockBreakBlockEvent.patch | 4 +- .../0615-Add-back-EntityPortalExitEvent.patch | 2 +- .../0619-Add-more-advancement-API.patch | 8 +- .../0622-Fix-issues-with-mob-conversion.patch | 6 +- ...26-Add-Raw-Byte-Entity-Serialization.patch | 2 +- ...-logic-for-inventories-on-chunk-unlo.patch | 2 +- ...0630-Improve-and-expand-AsyncCatcher.patch | 4 +- ...itize-ResourceLocation-error-logging.patch | 6 +- ...ally-inline-methods-in-BlockPosition.patch | 16 +- ...d-getChunkAt-has-inlined-logic-for-l.patch | 2 +- .../0647-Ensure-valid-vehicle-status.patch | 2 +- ...or-causing-a-crash-when-trying-to-ge.patch | 4 +- ...date-head-rotation-in-missing-places.patch | 2 +- ...-unintended-light-block-manipulation.patch | 4 +- ...-t-attempt-to-teleport-dead-entities.patch | 2 +- ...sive-velocity-through-repeated-crits.patch | 2 +- ...de-code-using-deprecated-for-removal.patch | 11 +- ...oversized-item-data-in-equipment-and.patch | 8 +- ...de-unnecessary-itemmeta-from-clients.patch | 4 +- .../0666-Fix-Spigot-growth-modifiers.patch | 12 +- .../server/0669-Optimize-HashMapPalette.patch | 2 +- ...ward-CraftEntity-in-teleport-command.patch | 2 +- ...max-block-light-for-monster-spawning.patch | 4 +- ...mplifiers-greater-than-127-correctly.patch | 4 +- ...ter-animal-spawn-height-configurable.patch | 6 +- ...89-Multiple-Entries-with-Scoreboards.patch | 6 +- .../server/0695-Freeze-Tick-Lock-API.patch | 6 +- ...d-missing-structure-set-seed-configs.patch | 25 +- ...sks-fairly-for-worlds-while-waiting-.patch | 2 +- ...igurable-sculk-sensor-listener-range.patch | 19 +- ...efault-CustomSpawners-in-custom-worl.patch | 2 +- ...o-worldlist-before-initing-the-world.patch | 2 +- .../0710-Fix-Entity-Position-Desync.patch | 2 +- patches/server/0711-Custom-Potion-Mixes.patch | 18 +- ...ix-swamp-hut-cat-generation-deadlock.patch | 21 +- .../0724-Add-TameableDeathMessageEvent.patch | 4 +- ...ables-running-when-mob-loot-gamerule.patch | 2 +- ...assenger-world-matches-ridden-entity.patch | 2 +- ...llow-changing-the-EnderDragon-podium.patch | 62 +-- ...E-in-CraftPersistentDataTypeRegistry.patch | 2 +- .../0740-Add-PlayerStopUsingItemEvent.patch | 2 +- .../0743-Add-support-for-Proxy-Protocol.patch | 2 +- .../0747-Sanitize-sent-BlockEntity-NBT.patch | 4 +- ...t-selector-resolving-in-books-by-def.patch | 4 +- ...entity-loading-causing-async-lookups.patch | 2 +- ...n-on-world-create-while-being-ticked.patch | 2 +- .../0752-Add-WardenAngerChangeEvent.patch | 10 +- ...-strict-advancement-dimension-checks.patch | 6 +- ...-chunk-for-dynamic-game-event-listen.patch | 4 +- ...us-missing-EntityDropItemEvent-calls.patch | 2 +- .../0765-Add-EntityPortalReadyEvent.patch | 2 +- ...-Add-and-fix-missing-BlockFadeEvents.patch | 14 +- ...ix-plugin-loggers-on-server-shutdown.patch | 2 +- ...ook-changes-from-crashing-the-server.patch | 2 +- ...ntityChangeBlockEvent-in-more-places.patch | 16 +- .../server/0780-Missing-effect-cause.patch | 14 +- ...arameter-to-ProjectileSource-launchP.patch | 2 +- ...83-Call-BlockPhysicsEvent-more-often.patch | 4 +- .../0786-fix-Jigsaw-block-kicking-user.patch | 8 +- .../0789-Fix-a-bunch-of-vanilla-bugs.patch | 76 ++-- ...4-Add-PlayerInventorySlotChangeEvent.patch | 2 +- .../0800-Add-EntityToggleSitEvent.patch | 4 +- ...tEvent-cancellation-cant-fully-preve.patch | 2 +- ...global-player-list-where-appropriate.patch | 14 +- patches/server/0816-Friction-API.patch | 2 +- .../0819-Sync-offhand-slot-in-menus.patch | 2 +- .../0820-Player-Entity-Tracking-Events.patch | 2 +- ...and-additions-to-the-SpawnReason-API.patch | 12 +- ...-for-some-hot-BlockBehavior-and-Flui.patch | 2 +- .../0827-Add-Sneaking-API-for-Entities.patch | 2 +- .../0828-Improve-logging-and-errors.patch | 6 +- .../server/0829-Improve-PortalEvents.patch | 2 +- ...sion-moving-velocity-to-VehicleBlock.patch | 2 +- ...nk-items-during-EntityResurrectEvent.patch | 2 +- ...event-sleeping-villagers-moving-towa.patch | 20 +- .../0844-Add-EntityFertilizeEggEvent.patch | 8 +- ...vancement-triggers-for-entity-damage.patch | 2 +- ...0849-Fix-text-display-error-on-spawn.patch | 16 +- ...expired-keys-from-impacting-new-join.patch | 32 +- ...-Lazy-Initialization-for-Enum-Fields.patch | 10 +- ...access-to-lookups-field-in-RegistryO.patch | 11 +- ...esh-ProjectileSource-for-projectiles.patch | 2 +- ...ll-BlockGrowEvent-for-missing-blocks.patch | 12 +- ...-to-remove-all-active-potion-effects.patch | 2 +- ...crafting-result-amount-for-fireworks.patch | 4 +- ...-Add-option-to-disable-block-updates.patch | 36 +- ...d-chunks-for-supporting-block-checks.patch | 2 +- ...nd-water-fluid-explosion-resistance-.patch | 4 +- .../server/0893-Add-whitelist-events.patch | 4 +- ...Folia-scheduler-and-owned-region-API.patch | 4 +- ...ata-neighbour-ticks-outside-of-range.patch | 10 +- .../0914-Add-Listing-API-for-Player.patch | 31 +- ...nfigurable-Region-Compression-Format.patch | 10 +- patches/server/0918-Expand-Pose-API.patch | 4 +- ...-titleOverride-to-InventoryOpenEvent.patch | 2 +- ...928-Configure-sniffer-egg-hatch-time.patch | 6 +- ...Skip-POI-finding-if-stuck-in-vehicle.patch | 18 +- ...on-on-UpgradeData.BlockFixers-class-.patch | 10 +- patches/server/0950-Optimize-VarInts.patch | 8 +- ...tem-packets-with-collector-as-source.patch | 2 +- ...g-event-call-for-entity-teleport-API.patch | 2 +- ...ly-create-LootContext-for-criterions.patch | 6 +- ...n-t-fire-sync-events-during-worldgen.patch | 4 +- ...estore-vanilla-entity-drops-behavior.patch | 6 +- patches/server/0968-Improve-Registry.patch | 4 +- ...-on-null-loc-for-EntityTeleportEvent.patch | 2 +- ...date-ResourceLocation-in-NBT-reading.patch | 16 +- ...llocation-of-Vec3D-by-entity-tracker.patch | 4 +- .../0978-Rewrite-dataconverter-system.patch | 16 +- patches/server/0979-Starlight.patch | 107 +++--- .../server/0980-Rewrite-chunk-system.patch | 269 +++++++------ ...-incremental-chunk-and-player-saving.patch | 2 +- ...ldBounds-and-getBlockState-for-inlin.patch | 14 +- ...cing-for-EntityLiving-hasLineOfSight.patch | 2 +- ...0988-Flat-bedrock-generator-settings.patch | 15 +- .../0989-Entity-Activation-Range-2.0.patch | 33 +- .../0990-Optional-per-player-mob-spawns.patch | 2 +- patches/server/0991-Anti-Xray.patch | 85 +++-- ...ng-PreCreatureSpawnEvent-with-per-pl.patch | 2 +- ...ptimize-Collision-to-not-load-chunks.patch | 98 +++-- ...oalSelector-Goal.Flag-Set-operations.patch | 39 +- ...995-Entity-load-save-limit-per-chunk.patch | 4 +- .../0997-Improved-Watchdog-Support.patch | 6 +- .../0998-Optimize-Voxel-Shape-Merging.patch | 20 +- .../0999-Write-SavedData-IO-async.patch | 4 +- ...tance-map-to-optimise-entity-tracker.patch | 2 +- ...-Optimize-Bit-Operations-by-inlining.patch | 26 +- .../1003-Remove-streams-from-hot-code.patch | 129 +++---- ...der-Remove-Streams-Optimized-collect.patch | 39 +- ...erTradeEvent-and-PlayerPurchaseEvent.patch | 2 +- ...7-Improve-boat-collision-performance.patch | 14 +- .../1008-Optimise-general-POI-access.patch | 113 +++--- ...lementation-for-blockstate-state-loo.patch | 28 +- .../1011-Optimise-random-block-ticking.patch | 12 +- ...culate-regionfile-header-if-it-is-co.patch | 10 +- ...ocity-compression-and-cipher-natives.patch | 38 +- ...l-more-information-in-watchdog-dumps.patch | 2 +- .../server/1015-Collision-optimisations.patch | 355 ++++++++++-------- ...y-type-tags-suggestions-in-selectors.patch | 34 +- .../1021-Properly-resend-entities.patch | 4 +- patches/server/1022-Optimize-Hoppers.patch | 8 +- ...3-Improve-performance-of-mass-crafts.patch | 6 +- .../1024-Actually-optimise-explosions.patch | 12 +- .../1025-Optimise-chunk-tick-iteration.patch | 2 +- .../server/1026-Lag-compensation-ticks.patch | 2 +- ...027-Optimise-nearby-player-retrieval.patch | 39 +- ...e-Oversized-block-entities-in-chunks.patch | 6 +- .../1034-Improve-tag-parser-handling.patch | 37 +- ...ing-message-for-initial-server-start.patch | 2 +- .../server/1051-Fix-DamageSource-API.patch | 2 +- 404 files changed, 2082 insertions(+), 2153 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 20d7b5902b..8a445eca12 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { java `maven-publish` id("com.github.johnrengelman.shadow") version "8.1.1" apply false - id("io.papermc.paperweight.core") version "1.5.13" + id("io.papermc.paperweight.core") version "1.5.15" } allprojects { @@ -69,7 +69,7 @@ repositories { dependencies { paramMappings("net.fabricmc:yarn:1.20.4+build.1:mergedv2") remapper("net.fabricmc:tiny-remapper:0.10.1:fat") - decompiler("net.minecraftforge:forgeflower:2.0.627.2") + decompiler("org.vineflower:vineflower:1.11.0-20240412.144930-14") spigotDecompiler("io.papermc:patched-spigot-fernflower:0.1+build.6") paperclip("io.papermc:paperclip:3.0.3") } @@ -80,7 +80,7 @@ paperweight { paramMappingsRepo = paperMavenPublicUrl remapRepo = paperMavenPublicUrl - decompileRepo = paperMavenPublicUrl + decompileRepo = "https://s01.oss.sonatype.org/content/repositories/snapshots/" craftBukkit { fernFlowerJar = layout.file(spigotDecompiler.elements.map { it.single().asFile }) diff --git a/patches/api/0002-Build-system-changes.patch b/patches/api/0002-Build-system-changes.patch index 181ce6e8d4..c70df0a834 100644 --- a/patches/api/0002-Build-system-changes.patch +++ b/patches/api/0002-Build-system-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Build system changes diff --git a/build.gradle.kts b/build.gradle.kts -index fd076ab0df328818873028d333b0716d5b3796a9..4a62bb7c89c25e11e7f514fbcbc35a408ed83856 100644 +index 4756a5aa04f8a8f0a8f9ff2c7aa6776b5a6892a5..a1f46208d1f39de54b73c66c3c4284b6f8c86864 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,15 +18,26 @@ dependencies { diff --git a/patches/api/0003-Test-changes.patch b/patches/api/0003-Test-changes.patch index 7dff52763f..9d809b4327 100644 --- a/patches/api/0003-Test-changes.patch +++ b/patches/api/0003-Test-changes.patch @@ -12,7 +12,7 @@ Co-authored-by: Riley Park Co-authored-by: Jake Potrebic diff --git a/build.gradle.kts b/build.gradle.kts -index cc586ca58c9ef852d7154f29c2dc187047f2c64a..948bd84db9923ef43cf753b7b72bf4d0081ab43a 100644 +index a1f46208d1f39de54b73c66c3c4284b6f8c86864..be4d301b305f5cd92d2ff352bfb9c6ff9f82fd9b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -105,6 +105,12 @@ tasks.test { diff --git a/patches/api/0005-Add-FastUtil-to-Bukkit.patch b/patches/api/0005-Add-FastUtil-to-Bukkit.patch index b84756a5d7..e3121abf57 100644 --- a/patches/api/0005-Add-FastUtil-to-Bukkit.patch +++ b/patches/api/0005-Add-FastUtil-to-Bukkit.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add FastUtil to Bukkit Doesn't expose to plugins, just allows Paper-API to use it for optimization diff --git a/build.gradle.kts b/build.gradle.kts -index b9bf992867115fe6e84091a1a0b1f220de751699..cc8f297a71eb75b3388ff1cb21a297e268894aac 100644 +index 01e3a5ba74f8d4c4c2eb010b289e2a7785b11bcc..f605e7e0f812a2297b1cecf3f37b69a8edc6b4a5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,6 +23,7 @@ dependencies { diff --git a/patches/api/0052-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/api/0052-Provide-E-TE-Chunk-count-stat-methods.patch index 54af8d0c41..f53ba6d986 100644 --- a/patches/api/0052-Provide-E-TE-Chunk-count-stat-methods.patch +++ b/patches/api/0052-Provide-E-TE-Chunk-count-stat-methods.patch @@ -7,7 +7,7 @@ Provides counts without the ineffeciency of using .getEntities().size() which creates copy of the collections. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 41a181b890e029f99e52ae9aad28a86f28005f9e..fa6f6c8eccd680a4e83443e472f37650e7cd05c5 100644 +index 7176e37b37c0d22605240f3c5fd34ff7846256c9..2b38b328187b853f5b36d796d3b6b359497647d8 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -49,6 +49,33 @@ import org.jetbrains.annotations.Nullable; diff --git a/patches/api/0073-Add-workaround-for-plugins-modifying-the-parent-of-t.patch b/patches/api/0073-Add-workaround-for-plugins-modifying-the-parent-of-t.patch index 3b10918fc8..31d32bcc2b 100644 --- a/patches/api/0073-Add-workaround-for-plugins-modifying-the-parent-of-t.patch +++ b/patches/api/0073-Add-workaround-for-plugins-modifying-the-parent-of-t.patch @@ -93,7 +93,7 @@ index 7cd9f98c042dc2bb80876af35c755f81bef34651..5cd236965de12392d8c7aa81307c0ff1 /** diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -index 74b6581a97a092c44a0876e7981ff8a8e6153100..d6d3e1332e51adc5611543b2a6689efa5921a9f2 100644 +index 58d20eff7e0da2d7fcb1609d55e4284715355634..8c5597e02d71c8db66e9cd11f0a41776eb471c46 100644 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java @@ -67,6 +67,7 @@ public final class PluginClassLoader extends URLClassLoader implements io.paperm diff --git a/patches/api/0075-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/api/0075-API-to-get-a-BlockState-without-a-snapshot.patch index 323b157741..6e95f52cbd 100644 --- a/patches/api/0075-API-to-get-a-BlockState-without-a-snapshot.patch +++ b/patches/api/0075-API-to-get-a-BlockState-without-a-snapshot.patch @@ -9,7 +9,7 @@ on the real tile entity. This is useful for where performance is needed diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index 870ad6cd930653e6248abcc0fce94ffafbe9ebde..9f4d383ea3d6b26d16b8b77ca4c29d2d839ad6dd 100644 +index bda4ab21b3ac2acbe328c0c6887c33283399971e..f3b3606dc5881e931853fc2631aad9ca9083474d 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -272,6 +272,16 @@ public interface Block extends Metadatable, Translatable { diff --git a/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch b/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch index dca2c8b86c..4efdc4fed1 100644 --- a/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch +++ b/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch @@ -8,7 +8,7 @@ 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 abbf3d6f11350ab2dd47a277771d9f46221036bd..d8a3b6cb2d0cb035b2ab09e0327bc4f0be457ff7 100644 +index abbf3d6f11350ab2dd47a277771d9f46221036bd..ef85e57f812c501fac7abe7dd27c93702f66646f 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java @@ -67,6 +67,73 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio @@ -86,7 +86,7 @@ index abbf3d6f11350ab2dd47a277771d9f46221036bd..d8a3b6cb2d0cb035b2ab09e0327bc4f0 /** * 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..0c13a41b442b441cba322e03a6cd4da7efb40902 100644 +index d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..3b80cb874dccf2ed4fde4c621f0f022ba1112bcd 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1173,6 +1173,186 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0133-Provide-Chunk-Coordinates-as-a-Long-API.patch b/patches/api/0133-Provide-Chunk-Coordinates-as-a-Long-API.patch index 55e2525efc..d2a1664557 100644 --- a/patches/api/0133-Provide-Chunk-Coordinates-as-a-Long-API.patch +++ b/patches/api/0133-Provide-Chunk-Coordinates-as-a-Long-API.patch @@ -44,7 +44,7 @@ index a25f112f4d679946ddcb5ec9b4d0a0e2d1795bd3..57976bbe682d2309f7d15d5dcd3ad7f8 * Gets the world containing this chunk * diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index ad7e2b624d5929beee5268151bda3abe9dfbb786..9c22650c299ab063a7e558408ce6c203c79d11fd 100644 +index 2aafd966778ee0f6adcbb3ea3772cb2104f8e687..9e941753819214e75b9d712bb59e8d49427e6f8b 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -182,6 +182,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch b/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch index fa5588a81f..6e66f2ae02 100644 --- a/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch +++ b/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch @@ -50,7 +50,7 @@ index 41125de49db8eafce4be59cc110ce5be06836a47..042d69e6d4584eb6d678b8ea13a3e4be * @return A new location where X/Y/Z are the center of the block */ diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 9c22650c299ab063a7e558408ce6c203c79d11fd..036a8ddc82a82800275d654d3fc00a9d30215350 100644 +index 9e941753819214e75b9d712bb59e8d49427e6f8b..48f2c64491f93e5ac720bdb19a20f3f435a7e888 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -99,6 +99,41 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0141-isChunkGenerated-API.patch b/patches/api/0141-isChunkGenerated-API.patch index 642a714f64..bfe9b14df9 100644 --- a/patches/api/0141-isChunkGenerated-API.patch +++ b/patches/api/0141-isChunkGenerated-API.patch @@ -37,7 +37,7 @@ index 042d69e6d4584eb6d678b8ea13a3e4bea78703b8..02b4ffa6b918269bd64f7c518fcceef1 /** diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 036a8ddc82a82800275d654d3fc00a9d30215350..25ff747e23e7373bb96ca9109df7e46cdefdcd2e 100644 +index 48f2c64491f93e5ac720bdb19a20f3f435a7e888..8bef6168caf0932a5a64cf69eb7988fa3191b13a 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -248,6 +248,19 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch index 40f75bfea1..46969f1d74 100644 --- a/patches/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch +++ b/patches/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch @@ -78,7 +78,7 @@ index 0000000000000000000000000000000000000000..c896d172519a8552a132031cb956378d + } +} diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 3a2f5ba52c6be8930f7b411476b36afc161834c9..b7bf0cc404634693d03c6700dc50c92697951c37 100644 +index 81a851580f81b2d6f6a2b2ebec38530f1d68530d..e6e0e16d122d78a160af549e4419e49dc046fb08 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -85,6 +85,98 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0156-Add-LivingEntity-getTargetEntity.patch b/patches/api/0156-Add-LivingEntity-getTargetEntity.patch index d8cc204978..8447dca548 100644 --- a/patches/api/0156-Add-LivingEntity-getTargetEntity.patch +++ b/patches/api/0156-Add-LivingEntity-getTargetEntity.patch @@ -51,7 +51,7 @@ index 0000000000000000000000000000000000000000..af8765b213390cf75fe02a6eb68aecf7 + } +} diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index b7bf0cc404634693d03c6700dc50c92697951c37..47c4096699bc0334eacf10b6403c4a4329797f0e 100644 +index e6e0e16d122d78a160af549e4419e49dc046fb08..d8ac9ce8e448f8b3bc39ec6c140db0e25d14cec7 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -175,6 +175,77 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch index daafa8ea7f..5a9e1829f9 100644 --- a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch @@ -848,7 +848,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 6dbd3524af80adc9dd7a94444e668220d3fccaea..3e5b7dc8f72bd211a18ec6a930c4f02beea4205a 100644 +index d8ac9ce8e448f8b3bc39ec6c140db0e25d14cec7..2f9299f407692c51dca17ca38a6135dde259b895 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -716,7 +716,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0175-PlayerDeathEvent-getItemsToKeep.patch b/patches/api/0175-PlayerDeathEvent-getItemsToKeep.patch index 84583589fa..cf8c6281f8 100644 --- a/patches/api/0175-PlayerDeathEvent-getItemsToKeep.patch +++ b/patches/api/0175-PlayerDeathEvent-getItemsToKeep.patch @@ -8,7 +8,7 @@ Exposes a mutable array on items a player should keep on death Example Usage: https://gist.github.com/aikar/5bb202de6057a051a950ce1f29feb0b4 diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java -index 59b84a0e07ddc214a419d5b59ab3a86c5ab63b78..3ce76cfb09f6f5eb55e950843bdd846b2b561116 100644 +index 38f81772edacb178e21c3f273e8c41ed46177d6d..9719e183036c361b909b203593c067a551b82264 100644 --- a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java +++ b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java @@ -37,7 +37,6 @@ public class PlayerDeathEvent extends EntityDeathEvent { diff --git a/patches/api/0176-Add-Heightmap-API.patch b/patches/api/0176-Add-Heightmap-API.patch index 848d5fcfcb..bfa338c360 100644 --- a/patches/api/0176-Add-Heightmap-API.patch +++ b/patches/api/0176-Add-Heightmap-API.patch @@ -102,7 +102,7 @@ index f0878c7539696cc0676e6010e88914d3850acf20..c6049747fc286acb4e8053901fcc517e /** * Creates explosion at this location with given power diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index bc5dd4182c5dd0a0d576410a68c445e3d006ae18..24ce9966140730c581c0709b14280e62a58331fa 100644 +index 0023b9737353c3c7dcfb38a143761bd8c03acf0d..0a7c97aa289687cfbf6ae1a222f5eb2850f8f43e 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -153,6 +153,87 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0178-Add-BlockSoundGroup-interface.patch b/patches/api/0178-Add-BlockSoundGroup-interface.patch index 34ee41dfd3..91f609d1e3 100644 --- a/patches/api/0178-Add-BlockSoundGroup-interface.patch +++ b/patches/api/0178-Add-BlockSoundGroup-interface.patch @@ -76,7 +76,7 @@ index 0000000000000000000000000000000000000000..ec36942128cbacae171584c89480b4aa + Sound getFallSound(); +} diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index da03d5964f5f007ab338980cbb67e4335b1ae4b4..2011858eb3edeab1516198021436c3df294a8ab4 100644 +index c7ef0386a09a07a2317c56274ed41218dfd7153d..f468e9751f75fd355512e033c180de967de5b2d8 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -616,4 +616,25 @@ public interface Block extends Metadatable, Translatable { diff --git a/patches/api/0182-Improve-Block-breakNaturally-API.patch b/patches/api/0182-Improve-Block-breakNaturally-API.patch index d4871c1eb0..54820995ca 100644 --- a/patches/api/0182-Improve-Block-breakNaturally-API.patch +++ b/patches/api/0182-Improve-Block-breakNaturally-API.patch @@ -10,7 +10,7 @@ Adds bool param to trigger exp drops for blocks Co-authored-by: William Blake Galbreath diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index 2b267d4c9adcc13722d4a655a98ca16a0f9746ca..22cfffddb681a7ed95e19f4da6e2c272d22a6f69 100644 +index f468e9751f75fd355512e033c180de967de5b2d8..bf29d9b733afc7c62725d259f4920c4f211cc6d0 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -481,6 +481,52 @@ public interface Block extends Metadatable, Translatable { diff --git a/patches/api/0183-PlayerDeathEvent-shouldDropExperience.patch b/patches/api/0183-PlayerDeathEvent-shouldDropExperience.patch index bc0edf43a4..fafa02c732 100644 --- a/patches/api/0183-PlayerDeathEvent-shouldDropExperience.patch +++ b/patches/api/0183-PlayerDeathEvent-shouldDropExperience.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerDeathEvent#shouldDropExperience diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java -index 3ce76cfb09f6f5eb55e950843bdd846b2b561116..dad291ad8cd16d24d587e771a8b60cfb5d0bce2a 100644 +index 9719e183036c361b909b203593c067a551b82264..66e9d65a8dd05bed05d0ab46ec64206a6dae0507 100644 --- a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java +++ b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java @@ -16,6 +16,7 @@ public class PlayerDeathEvent extends EntityDeathEvent { diff --git a/patches/api/0185-Entity-Jump-API.patch b/patches/api/0185-Entity-Jump-API.patch index cdbac20564..8d8898f3c1 100644 --- a/patches/api/0185-Entity-Jump-API.patch +++ b/patches/api/0185-Entity-Jump-API.patch @@ -61,7 +61,7 @@ index 0000000000000000000000000000000000000000..a6306c957fcacdcbcc8037b4ee33a167 + } +} diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index c2d6a2d45d733fff7cb6bf1d687bdff35d2be7f4..c7c242fb4ac106edad87032f0accd14d128a5b37 100644 +index 2f9299f407692c51dca17ca38a6135dde259b895..1a7d802e8c3204408402ce58377108ffac2662b9 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1147,4 +1147,26 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0195-Expose-game-version.patch b/patches/api/0195-Expose-game-version.patch index 5cd19ffff9..698a089e9a 100644 --- a/patches/api/0195-Expose-game-version.patch +++ b/patches/api/0195-Expose-game-version.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose game version diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 00320a15e4edbcbab182b4064b05d3a19dc441ce..ed65e84868f6b3b9272c8266244d7ab3725a7699 100644 +index 803ca460cf91f6760d7b16e1310a23d6b09725b3..377e9979c5bbc50398d521ff038956f80d7376b1 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -159,6 +159,18 @@ public final class Bukkit { @@ -28,7 +28,7 @@ index 00320a15e4edbcbab182b4064b05d3a19dc441ce..ed65e84868f6b3b9272c8266244d7ab3 * Gets a view of all currently logged in players. This {@linkplain * Collections#unmodifiableCollection(Collection) view} is a reused diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index d606b1d1ac37a13607c893e14ad88b26d1296ab0..e87718db19c902fe385328866767e46c397b7e86 100644 +index 1575218ee7eb563b17b542b578c10d125889a7be..7ed98561c6320132501c89d70254870e6ec03e77 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -117,6 +117,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch index bc76c0005c..e862e67086 100644 --- a/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch +++ b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index c7c242fb4ac106edad87032f0accd14d128a5b37..5d8433cbea6cfe6a7621d7ab110f7aa0ed120136 100644 +index 1a7d802e8c3204408402ce58377108ffac2662b9..7dbb3737cd175365b89a5c8d0542b16e812b8629 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1169,4 +1169,29 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0224-Add-LivingEntity-clearActiveItem.patch b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch index 463b79867d..c90bd62fa6 100644 --- a/patches/api/0224-Add-LivingEntity-clearActiveItem.patch +++ b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 5d8433cbea6cfe6a7621d7ab110f7aa0ed120136..f00ae13ee252c52963c7c8ce95cde984b8721f46 100644 +index 7dbb3737cd175365b89a5c8d0542b16e812b8629..bd871bf479cb9f4b31832ac5cb363f314b32a047 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1059,6 +1059,11 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0229-Expose-LivingEntity-hurt-direction.patch b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch index 0f5490de89..2bff91fc78 100644 --- a/patches/api/0229-Expose-LivingEntity-hurt-direction.patch +++ b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch @@ -26,7 +26,7 @@ index 5ecfb98540c00da05b13bc5370debb89c52cc76f..083d5798ccc7f37c6df5e234c7ef2332 * Get the sleep ticks of the player. This value may be capped. * diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index f00ae13ee252c52963c7c8ce95cde984b8721f46..9c8202d672e293c963218a7f3b0d51aa4e7dec5a 100644 +index bd871bf479cb9f4b31832ac5cb363f314b32a047..54cdbfdc5d2280069045317bac919ff4689872f5 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1199,4 +1199,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0263-Expand-world-key-API.patch b/patches/api/0263-Expand-world-key-API.patch index 32ba99be6d..a6e79339f4 100644 --- a/patches/api/0263-Expand-world-key-API.patch +++ b/patches/api/0263-Expand-world-key-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand world key API diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index b4341f5c9adcebd13a0f62ebc32d081a65d71ba4..7e049d9934df2259ea566aaa69ce118ce829529d 100644 +index e832c6a8a10bc29d9ab20cbdf394cf836eb2f6a5..4b3c91575f2609ad1b1177384f6f21151a535054 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -862,6 +862,18 @@ public final class Bukkit { @@ -56,7 +56,7 @@ index 27eff0826d5b5b48697fefd9571886e7bbce74b1..d8b1fa79dc24138dc71e32c14bda71c1 // Paper end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 3c64eb18b7cb6ac371b094a581da8a033e90d00f..c3e0b40a845a30790f31a0cf591bfa7f0cd87fee 100644 +index 9477563308adc64fff065eb0a50654baa0d22b84..5bb94245c33105e57131b3d0867ef707c4aed79c 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -720,6 +720,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0294-Add-more-line-of-sight-methods.patch b/patches/api/0294-Add-more-line-of-sight-methods.patch index fbd43414de..cd8d86699e 100644 --- a/patches/api/0294-Add-more-line-of-sight-methods.patch +++ b/patches/api/0294-Add-more-line-of-sight-methods.patch @@ -23,7 +23,7 @@ index d8b1fa79dc24138dc71e32c14bda71c1d570ed88..b68367f123f029c3ff47eab6bfabd7a8 // Paper end } diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 0ed9ad6ed755c5b46ec16e33c3d56e7f80345066..99f314f25d1d6118e0884822d428c47060373bec 100644 +index 54cdbfdc5d2280069045317bac919ff4689872f5..42ece8fd69f35fe38d9e49eed1d578d19229d721 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -622,6 +622,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0297-Missing-Entity-API.patch b/patches/api/0297-Missing-Entity-API.patch index be2838d08e..76a4b85361 100644 --- a/patches/api/0297-Missing-Entity-API.patch +++ b/patches/api/0297-Missing-Entity-API.patch @@ -585,7 +585,7 @@ index 6b3c9bef9a8a34ddc6ff42cf358541a2665bf5e3..9c618a27d590f186f29c5d9094fc565e + // Paper end } diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index a253ac2b60b038177e6c4f20d8367be36f10b1bd..2036e7b464f631054abb94333a8674d31bdce800 100644 +index 42ece8fd69f35fe38d9e49eed1d578d19229d721..5d62d7393dde2ccf56e9c09d44e17fdde79cf760 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -992,6 +992,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0301-Stinger-API.patch b/patches/api/0301-Stinger-API.patch index 2feda687e5..bef937b254 100644 --- a/patches/api/0301-Stinger-API.patch +++ b/patches/api/0301-Stinger-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stinger API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 13eb80455dd589e87c39a7a5570ef093c7660205..2727eef973a40b5d96f59671e0415e9544a0550c 100644 +index 5d62d7393dde2ccf56e9c09d44e17fdde79cf760..be9fa1b6209a41712767283c6329046ca2795c09 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -451,6 +451,52 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0342-Implement-regenerateChunk.patch b/patches/api/0342-Implement-regenerateChunk.patch index 8023a26d0f..923a9fbcd0 100644 --- a/patches/api/0342-Implement-regenerateChunk.patch +++ b/patches/api/0342-Implement-regenerateChunk.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement regenerateChunk diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 6897600a6879d88cea287cde350c1e9cd11ae96d..0eb90bfff2e12cb3ed977a581912221ac4dee6f6 100644 +index 5c61b9964e9abe76b5604c73bdd211a9c1c9b619..7ff0ac9c78c3793791afbfa344a9ced3821d9638 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -486,8 +486,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0360-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0360-Add-method-isTickingWorlds-to-Bukkit.patch index 91e4d0fdac..40b7bec1d7 100644 --- a/patches/api/0360-Add-method-isTickingWorlds-to-Bukkit.patch +++ b/patches/api/0360-Add-method-isTickingWorlds-to-Bukkit.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add method isTickingWorlds() to Bukkit. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 986d506ae0eb91363e7fdfa19b1f9d0d840a5207..da505ee90f49983a9458cdf371db32228791fb53 100644 +index 22ec7dda6853db6539e98e8d39d8a13be8926f07..a24de4474114af533e1e8b78c4fd0e8c5edd14b8 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -806,12 +806,26 @@ public final class Bukkit { @@ -56,7 +56,7 @@ index 986d506ae0eb91363e7fdfa19b1f9d0d840a5207..da505ee90f49983a9458cdf371db3222 * @param world the world to unload * @param save whether to save the chunks before unloading diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 33458df42b41e9ef5d9728d526cc45b8199f25b4..d433a9d2fe0bb487865fec33307cc4c45af475a0 100644 +index 96f9f3ac492eb6f4628d47f0be4239ab9bc7df54..c8704bc90a4f7040e5fa1c0377d5533bd14a4249 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -673,34 +673,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0364-More-Teleport-API.patch b/patches/api/0364-More-Teleport-API.patch index f158c47e4e..7f4f75ceac 100644 --- a/patches/api/0364-More-Teleport-API.patch +++ b/patches/api/0364-More-Teleport-API.patch @@ -120,7 +120,7 @@ index 0000000000000000000000000000000000000000..c8b5b570d44da9524bfc59c7e11b2ae5 + +} diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 9b5fe55399594c57c1b1521bea03781fd99fdf60..e2f315db8d137d7bc1b6fc83ed29032152f881f2 100644 +index 8827defeb26593cb2c2391e505b008f1190b01f3..bc1547381b08d1acbbef885d9c3ecd63f3550426 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -126,10 +126,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch index 75708a14a8..05a81d55ae 100644 --- a/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch +++ b/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#swingHand(EquipmentSlot) convenience method diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 5500f5273624b133b48327fe74b0b2e2708d76c4..bdd34708b2e75aaa8a3365c0d7284d85e7cb61e5 100644 +index be9fa1b6209a41712767283c6329046ca2795c09..35b0eb94e291dae7a4705fa85b10d23fcd38f49e 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1329,4 +1329,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0380-Add-entity-knockback-API.patch b/patches/api/0380-Add-entity-knockback-API.patch index 024e3244b0..5d411c2968 100644 --- a/patches/api/0380-Add-entity-knockback-API.patch +++ b/patches/api/0380-Add-entity-knockback-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index bdd34708b2e75aaa8a3365c0d7284d85e7cb61e5..3943b5cb1306fb1eb830e56cea696fdc587c09f4 100644 +index 35b0eb94e291dae7a4705fa85b10d23fcd38f49e..41c5559058df9701e345f39d9d3c23e45b6d49c3 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1349,4 +1349,18 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0387-ItemStack-damage-API.patch b/patches/api/0387-ItemStack-damage-API.patch index 2bcc0d05b3..b7b9d50930 100644 --- a/patches/api/0387-ItemStack-damage-API.patch +++ b/patches/api/0387-ItemStack-damage-API.patch @@ -8,7 +8,7 @@ to simulate damage done to an itemstack and all the logic associated with damaging them diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 3943b5cb1306fb1eb830e56cea696fdc587c09f4..a8b442cf03887ebe212a298d35cea5f6383ccfab 100644 +index 41c5559058df9701e345f39d9d3c23e45b6d49c3..812ae3368f828b388d6fd05a94cd88f2d5db9fac 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1363,4 +1363,53 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0389-Friction-API.patch b/patches/api/0389-Friction-API.patch index 23fa01d063..4488bf7b41 100644 --- a/patches/api/0389-Friction-API.patch +++ b/patches/api/0389-Friction-API.patch @@ -59,7 +59,7 @@ index ced419f8655bff72f0257b639d5f7d73afe3c2e2..bcc6ba95bd21c7972865838c636a03f5 /** * Gets the item stack associated with this item drop. diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 041ff387a0f9e8037e2834118ef241ddb8970907..3a26b3c40f877a454c3c76b68b86776f05950002 100644 +index 812ae3368f828b388d6fd05a94cd88f2d5db9fac..017a743c1445e2c859fef0ef962e656035af12bd 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable; diff --git a/patches/api/0400-Add-Entity-Body-Yaw-API.patch b/patches/api/0400-Add-Entity-Body-Yaw-API.patch index 6b8119d161..a34499f0db 100644 --- a/patches/api/0400-Add-Entity-Body-Yaw-API.patch +++ b/patches/api/0400-Add-Entity-Body-Yaw-API.patch @@ -53,7 +53,7 @@ index 2d6f7b2bf4cb23ef43a4dcbab2ecd2a7c7c2809c..0be4107270fb7fdba5c7d0e6f3964d33 // Paper start - Collision API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 30222c65bcc78ff3fe5c0937c64c6fe7b0b2fe36..2e6a6c9e8e150f940842f8f134b18987412e4766 100644 +index 017a743c1445e2c859fef0ef962e656035af12bd..b8a9b56c3071d94371ab69b1a72c2e6c0692ab39 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1412,4 +1412,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch b/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch index 10afeab970..47a9befa74 100644 --- a/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 949539d4614242a8d742cd75242ce753b474edf6..de0e160632e0f0f9dee61007f139f37382f58e26 100644 +index b8a9b56c3071d94371ab69b1a72c2e6c0692ab39..80df95e93b9a919af8c2e98b09b75522ee60eae6 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -657,6 +657,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0421-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/api/0421-Deprecate-and-replace-methods-with-old-StructureType.patch index 177761f8cd..a32c35bff3 100644 --- a/patches/api/0421-Deprecate-and-replace-methods-with-old-StructureType.patch +++ b/patches/api/0421-Deprecate-and-replace-methods-with-old-StructureType.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Deprecate and replace methods with old StructureType diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index b82260cdee74a82b78c103467f7e2888ba4d06c1..ca27559cf4aa1c2e44fdca2022e213b1b1c80f4e 100644 +index 0865830a8d9f29dee47c34a192e26e4c1304a12c..8e2942664f73b0f92beb30c7a94b720610a43c15 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -935,9 +935,6 @@ public final class Bukkit { @@ -84,7 +84,7 @@ index b82260cdee74a82b78c103467f7e2888ba4d06c1..ca27559cf4aa1c2e44fdca2022e213b1 /** * Reloads the server, refreshing settings and plugin information. diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index f18f5db804053e072134508ef38252391895549a..b4f8281d3797ec825a7671f38077cd65d5a1d76e 100644 +index bc55bf7361fb41a91766fcb2f1e4620e3db64781..78daaaa3b4f1ec1d05652287d9f9b08689bc2cbf 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -800,16 +800,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0443-Add-Structure-check-API.patch b/patches/api/0443-Add-Structure-check-API.patch index 693f5dbf09..00a6416368 100644 --- a/patches/api/0443-Add-Structure-check-API.patch +++ b/patches/api/0443-Add-Structure-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index c0ad21a3dd1f3cd9a4c66000e937e89ffc183638..c5fe36050eeaff80cfb989fe2f38370215af6fe5 100644 +index 377d57b0e603898d309a9384aa8bb9fca97673e3..35fb5047dd8a8521586a9ca9f8d70881355fb7f5 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -78,6 +78,30 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0450-Add-HiddenPotionEffect-API.patch b/patches/api/0450-Add-HiddenPotionEffect-API.patch index 49d193598e..53d4b040a2 100644 --- a/patches/api/0450-Add-HiddenPotionEffect-API.patch +++ b/patches/api/0450-Add-HiddenPotionEffect-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add HiddenPotionEffect API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index de0e160632e0f0f9dee61007f139f37382f58e26..f5fe2abd28a3f5fa4f2adf1d63ea68a7b890d191 100644 +index 80df95e93b9a919af8c2e98b09b75522ee60eae6..65112eae8b92344796850b1e4c89e75443eab2fe 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -591,6 +591,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/server/0002-Remap-fixes.patch b/patches/server/0002-Remap-fixes.patch index 3f9503543f..9a1f203f9a 100644 --- a/patches/server/0002-Remap-fixes.patch +++ b/patches/server/0002-Remap-fixes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remap fixes diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index ad3035da44c6af2fa7cc53926f33526a43740313..e89fa618fa20e3e843d8de81629e6dc551777823 100644 +index 17a400bb1710afe0b2c88ba7b0a008d4dbcbfa0c..1a4cab0b9995b733aa84b89129009a99177eee9b 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java -@@ -278,9 +278,11 @@ public class BlockPos extends Vec3i { +@@ -289,9 +289,11 @@ public class BlockPos extends Vec3i { public static Iterable withinManhattan(BlockPos center, int rangeX, int rangeY, int rangeZ) { int i = rangeX + rangeY + rangeZ; @@ -20,10 +20,10 @@ index ad3035da44c6af2fa7cc53926f33526a43740313..e89fa618fa20e3e843d8de81629e6dc5 + int centerY = center.getY(); + int centerZ = center.getZ(); + // Paper end - return () -> { - return new AbstractIterator() { + return () -> new AbstractIterator() { private final BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos(); -@@ -295,7 +297,7 @@ public class BlockPos extends Vec3i { + private int currentDepth; +@@ -305,7 +307,7 @@ public class BlockPos extends Vec3i { protected BlockPos computeNext() { if (this.zMirror) { this.zMirror = false; @@ -32,7 +32,7 @@ index ad3035da44c6af2fa7cc53926f33526a43740313..e89fa618fa20e3e843d8de81629e6dc5 return this.cursor; } else { BlockPos blockPos; -@@ -321,7 +323,7 @@ public class BlockPos extends Vec3i { +@@ -331,7 +333,7 @@ public class BlockPos extends Vec3i { int k = this.currentDepth - Math.abs(i) - Math.abs(j); if (k <= rangeZ) { this.zMirror = k != 0; diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch index d9c9c0db74..c935af1a00 100644 --- a/patches/server/0003-Build-system-changes.patch +++ b/patches/server/0003-Build-system-changes.patch @@ -9,7 +9,7 @@ public net.minecraft.server.packs.VanillaPackResourcesBuilder safeGetPath(Ljava/ Co-authored-by: Jake Potrebic diff --git a/build.gradle.kts b/build.gradle.kts -index 74849d7b20e3c3831a6a6c3715a6e875d6ff8a48..ff9e7b4c4354d4475559213cdaa01728601859fa 100644 +index 4e0b810bd0a9991d10e13920f47f0b6d0a56f6aa..50d9182a4845564cd62b026700a7d0517c25e74d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,9 +9,7 @@ plugins { @@ -66,10 +66,10 @@ index 74849d7b20e3c3831a6a6c3715a6e875d6ff8a48..ff9e7b4c4354d4475559213cdaa01728 + jvmArgs("-DPaper.pushPaperAssetsRoot=true") } diff --git a/src/main/java/net/minecraft/resources/ResourceLocation.java b/src/main/java/net/minecraft/resources/ResourceLocation.java -index 68e3d54c79924d72b22eb3bc142ff47aa1700895..d3300e43523429fdd0e61c5aa9aed2e6bc78e07e 100644 +index 0064a1112f392379ff095f95738f1368240ca4cf..aed74e471126a8a66046a181973158d7d288d3f0 100644 --- a/src/main/java/net/minecraft/resources/ResourceLocation.java +++ b/src/main/java/net/minecraft/resources/ResourceLocation.java -@@ -26,6 +26,7 @@ public class ResourceLocation implements Comparable { +@@ -28,6 +28,7 @@ public class ResourceLocation implements Comparable { public static final char NAMESPACE_SEPARATOR = ':'; public static final String DEFAULT_NAMESPACE = "minecraft"; public static final String REALMS_NAMESPACE = "realms"; @@ -78,10 +78,10 @@ index 68e3d54c79924d72b22eb3bc142ff47aa1700895..d3300e43523429fdd0e61c5aa9aed2e6 private final String path; diff --git a/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java b/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java -index 1b65823e6c2070761dd08ce801268e95dad13065..978dd399430ae98d54fc4805800aa0214d4034e3 100644 +index 6a11d33eb44e0fde731b54a9200eb44b20a73c43..29ab3aae87de2bf14b31268239d935e49cb0fa98 100644 --- a/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java +++ b/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java -@@ -141,6 +141,15 @@ public class VanillaPackResourcesBuilder { +@@ -138,6 +138,15 @@ public class VanillaPackResourcesBuilder { public VanillaPackResourcesBuilder applyDevelopmentConfig() { developmentConfig.accept(this); @@ -98,18 +98,18 @@ index 1b65823e6c2070761dd08ce801268e95dad13065..978dd399430ae98d54fc4805800aa021 } diff --git a/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java b/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java -index a2a8bce29ec5540de89095574dfdc0ca9b17bbd3..d92cd89373f8373c367ce422328b9836de09096d 100644 +index dd5e32e7a64eaddab66905dba2595f2220706adb..439b9bc95ae8580fcde89f86565df39ba4040d59 100644 --- a/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java +++ b/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java -@@ -32,7 +32,7 @@ public class ServerPacksSource extends BuiltInPackSource { - - @VisibleForTesting +@@ -38,7 +38,7 @@ public class ServerPacksSource extends BuiltInPackSource { public static VanillaPackResources createVanillaPackSource() { -- return (new VanillaPackResourcesBuilder()).setMetadata(BUILT_IN_METADATA).exposeNamespace("minecraft").applyDevelopmentConfig().pushJarResources().build(); -+ return (new VanillaPackResourcesBuilder()).setMetadata(BUILT_IN_METADATA).exposeNamespace("minecraft", ResourceLocation.PAPER_NAMESPACE).applyDevelopmentConfig().pushJarResources().build(); // Paper - } - - @Override + return new VanillaPackResourcesBuilder() + .setMetadata(BUILT_IN_METADATA) +- .exposeNamespace("minecraft") ++ .exposeNamespace("minecraft", ResourceLocation.PAPER_NAMESPACE) // Paper + .applyDevelopmentConfig() + .pushJarResources() + .build(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java index 2930f37c663a1824a2d38df8e4b679aa6adbd870..67d347741db1c5a9a6568ee084388a59e35b16ea 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java diff --git a/patches/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch index b13f9277b7..9bb625b711 100644 --- a/patches/server/0004-Test-changes.patch +++ b/patches/server/0004-Test-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Test changes diff --git a/build.gradle.kts b/build.gradle.kts -index ff9e7b4c4354d4475559213cdaa01728601859fa..5304f5de52a76eee876ac8f0b2834a93b28d57aa 100644 +index 50d9182a4845564cd62b026700a7d0517c25e74d..69155f6badcd79b3479654363ca1f1d8a138a7ad 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,6 +23,7 @@ dependencies { diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index a1510b54e6..12a6e0b87c 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -4867,17 +4867,19 @@ index 42da710d18063aed6fd450fe31277d7daf0542c1..62e096c9cc05c387ca2413a490f44c6c private void readScoreboard(DimensionDataStorage persistentStateManager) { diff --git a/src/main/java/net/minecraft/server/Services.java b/src/main/java/net/minecraft/server/Services.java -index 1d611538d339345df065cd9c0c582d02e1fb0cc7..d200619b4aa820e273c26f2f6133589c727f8a0e 100644 +index dfbb04800d6f1dcbb909fcdfeb1ebf1a5efa6a48..5928e5f1934b8e247ba516595018ed5c633d3b5d 100644 --- a/src/main/java/net/minecraft/server/Services.java +++ b/src/main/java/net/minecraft/server/Services.java -@@ -10,14 +10,30 @@ import javax.annotation.Nullable; +@@ -10,16 +10,32 @@ import javax.annotation.Nullable; import net.minecraft.server.players.GameProfileCache; import net.minecraft.util.SignatureValidator; --public record Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache) { -+// Paper start - add paper configuration files -+public record Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations) { + + public record Services( +- MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache ++ MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations // Paper - add paper configuration files + ) { ++ // Paper start - add paper configuration files + public Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache) { + this(sessionService, servicesKeySet, profileRepository, profileCache, null); + } diff --git a/patches/server/0006-MC-Dev-fixes.patch b/patches/server/0006-MC-Dev-fixes.patch index 271ad7735f..671908dd6b 100644 --- a/patches/server/0006-MC-Dev-fixes.patch +++ b/patches/server/0006-MC-Dev-fixes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] MC Dev fixes diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index e89fa618fa20e3e843d8de81629e6dc551777823..2bb5e51f71cbf66819d198505aa4a5ecffd246c6 100644 +index 1a4cab0b9995b733aa84b89129009a99177eee9b..ead823fa2a143acb05b33152ee1e5ee4b4936a20 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java -@@ -383,12 +383,12 @@ public class BlockPos extends Vec3i { +@@ -405,12 +405,12 @@ public class BlockPos extends Vec3i { if (this.index == l) { return this.endOfData(); } else { @@ -20,90 +20,68 @@ index e89fa618fa20e3e843d8de81629e6dc551777823..2bb5e51f71cbf66819d198505aa4a5ec + int u = this.index / i; // Paper - decomp fix + int offsetY = u % j; // Paper - decomp fix + int offsetZ = u / j; // Paper - decomp fix - ++this.index; + this.index++; - return this.cursor.set(startX + i, startY + k, startZ + l); + return this.cursor.set(startX + offsetX, startY + offsetY, startZ + offsetZ); // Paper - decomp fix } } }; diff --git a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java -index ac523135cfdfbac507774c8f86d731de881b0442..ca70cd2e76c94f7a284c9af47c64252855f070a4 100644 +index d14613f7d37198276c251e73703b060a971fac28..e8afaa3c1fab0435acb068426091bdf776263112 100644 --- a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java +++ b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java -@@ -333,7 +333,7 @@ public class BuiltInRegistries { - LOADERS.put(resourceLocation, () -> { - return initializer.run(registry); - }); -- WRITABLE_REGISTRY.register(key, registry, lifecycle); -+ WRITABLE_REGISTRY.register((ResourceKey) key, registry, lifecycle); // Paper - decompile fix +@@ -307,7 +307,7 @@ public class BuiltInRegistries { + Bootstrap.checkBootstrapCalled(() -> "registry " + key); + ResourceLocation resourceLocation = key.location(); + LOADERS.put(resourceLocation, () -> initializer.run(registry)); +- WRITABLE_REGISTRY.register((ResourceKey>)key, registry, lifecycle); ++ WRITABLE_REGISTRY.register((ResourceKey)key, registry, lifecycle); // Paper - decompile fix return registry; } +diff --git a/src/main/java/net/minecraft/nbt/TagParser.java b/src/main/java/net/minecraft/nbt/TagParser.java +index 733303e860560f4c93372326ab4efdaf21e5ace7..ebe0efe488357ae895aaf752e9bc008b96db156f 100644 +--- a/src/main/java/net/minecraft/nbt/TagParser.java ++++ b/src/main/java/net/minecraft/nbt/TagParser.java +@@ -252,11 +252,11 @@ public class TagParser { + } + + if (typeReader == ByteTag.TYPE) { +- list.add((T)((NumericTag)tag).getAsByte()); ++ list.add((T)(Byte)((NumericTag)tag).getAsByte()); // Paper - decompile fix + } else if (typeReader == LongTag.TYPE) { +- list.add((T)((NumericTag)tag).getAsLong()); ++ list.add((T)(Long)((NumericTag)tag).getAsLong()); // Paper - decompile fix + } else { +- list.add((T)((NumericTag)tag).getAsInt()); ++ list.add((T)(Integer)((NumericTag)tag).getAsInt()); // Paper - decompile fix + } + + if (!this.hasElementSeparator()) { diff --git a/src/main/java/net/minecraft/network/ConnectionProtocol.java b/src/main/java/net/minecraft/network/ConnectionProtocol.java -index bfac303dc0c11a0e741b29f3700823c69e55c798..ac1aa37329bd4d411964ea34ea8147f6db945b9a 100644 +index 68ccf051f5a769abaa0bf9508add9303c56a1193..9d6dafb4855af9ccb7bc033ebf0fca5f75ceb9c6 100644 --- a/src/main/java/net/minecraft/network/ConnectionProtocol.java +++ b/src/main/java/net/minecraft/network/ConnectionProtocol.java -@@ -220,7 +220,7 @@ public enum ConnectionProtocol { - PLAY("play", protocol().addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet()).withBundlePacket(ClientboundBundlePacket.class, ClientboundBundlePacket::new).addPacket(ClientboundAddEntityPacket.class, ClientboundAddEntityPacket::new).addPacket(ClientboundAddExperienceOrbPacket.class, ClientboundAddExperienceOrbPacket::new).addPacket(ClientboundAnimatePacket.class, ClientboundAnimatePacket::new).addPacket(ClientboundAwardStatsPacket.class, ClientboundAwardStatsPacket::new).addPacket(ClientboundBlockChangedAckPacket.class, ClientboundBlockChangedAckPacket::new).addPacket(ClientboundBlockDestructionPacket.class, ClientboundBlockDestructionPacket::new).addPacket(ClientboundBlockEntityDataPacket.class, ClientboundBlockEntityDataPacket::new).addPacket(ClientboundBlockEventPacket.class, ClientboundBlockEventPacket::new).addPacket(ClientboundBlockUpdatePacket.class, ClientboundBlockUpdatePacket::new).addPacket(ClientboundBossEventPacket.class, ClientboundBossEventPacket::new).addPacket(ClientboundChangeDifficultyPacket.class, ClientboundChangeDifficultyPacket::new).addPacket(ClientboundChunkBatchFinishedPacket.class, ClientboundChunkBatchFinishedPacket::new).addPacket(ClientboundChunkBatchStartPacket.class, ClientboundChunkBatchStartPacket::new).addPacket(ClientboundChunksBiomesPacket.class, ClientboundChunksBiomesPacket::new).addPacket(ClientboundClearTitlesPacket.class, ClientboundClearTitlesPacket::new).addPacket(ClientboundCommandSuggestionsPacket.class, ClientboundCommandSuggestionsPacket::new).addPacket(ClientboundCommandsPacket.class, ClientboundCommandsPacket::new).addPacket(ClientboundContainerClosePacket.class, ClientboundContainerClosePacket::new).addPacket(ClientboundContainerSetContentPacket.class, ClientboundContainerSetContentPacket::new).addPacket(ClientboundContainerSetDataPacket.class, ClientboundContainerSetDataPacket::new).addPacket(ClientboundContainerSetSlotPacket.class, ClientboundContainerSetSlotPacket::new).addPacket(ClientboundCooldownPacket.class, ClientboundCooldownPacket::new).addPacket(ClientboundCustomChatCompletionsPacket.class, ClientboundCustomChatCompletionsPacket::new).addPacket(ClientboundCustomPayloadPacket.class, ClientboundCustomPayloadPacket::new).addPacket(ClientboundDamageEventPacket.class, ClientboundDamageEventPacket::new).addPacket(ClientboundDeleteChatPacket.class, ClientboundDeleteChatPacket::new).addPacket(ClientboundDisconnectPacket.class, ClientboundDisconnectPacket::new).addPacket(ClientboundDisguisedChatPacket.class, ClientboundDisguisedChatPacket::new).addPacket(ClientboundEntityEventPacket.class, ClientboundEntityEventPacket::new).addPacket(ClientboundExplodePacket.class, ClientboundExplodePacket::new).addPacket(ClientboundForgetLevelChunkPacket.class, ClientboundForgetLevelChunkPacket::new).addPacket(ClientboundGameEventPacket.class, ClientboundGameEventPacket::new).addPacket(ClientboundHorseScreenOpenPacket.class, ClientboundHorseScreenOpenPacket::new).addPacket(ClientboundHurtAnimationPacket.class, ClientboundHurtAnimationPacket::new).addPacket(ClientboundInitializeBorderPacket.class, ClientboundInitializeBorderPacket::new).addPacket(ClientboundKeepAlivePacket.class, ClientboundKeepAlivePacket::new).addPacket(ClientboundLevelChunkWithLightPacket.class, ClientboundLevelChunkWithLightPacket::new).addPacket(ClientboundLevelEventPacket.class, ClientboundLevelEventPacket::new).addPacket(ClientboundLevelParticlesPacket.class, ClientboundLevelParticlesPacket::new).addPacket(ClientboundLightUpdatePacket.class, ClientboundLightUpdatePacket::new).addPacket(ClientboundLoginPacket.class, ClientboundLoginPacket::new).addPacket(ClientboundMapItemDataPacket.class, ClientboundMapItemDataPacket::new).addPacket(ClientboundMerchantOffersPacket.class, ClientboundMerchantOffersPacket::new).addPacket(ClientboundMoveEntityPacket.Pos.class, ClientboundMoveEntityPacket.Pos::read).addPacket(ClientboundMoveEntityPacket.PosRot.class, ClientboundMoveEntityPacket.PosRot::read).addPacket(ClientboundMoveEntityPacket.Rot.class, ClientboundMoveEntityPacket.Rot::read).addPacket(ClientboundMoveVehiclePacket.class, ClientboundMoveVehiclePacket::new).addPacket(ClientboundOpenBookPacket.class, ClientboundOpenBookPacket::new).addPacket(ClientboundOpenScreenPacket.class, ClientboundOpenScreenPacket::new).addPacket(ClientboundOpenSignEditorPacket.class, ClientboundOpenSignEditorPacket::new).addPacket(ClientboundPingPacket.class, ClientboundPingPacket::new).addPacket(ClientboundPongResponsePacket.class, ClientboundPongResponsePacket::new).addPacket(ClientboundPlaceGhostRecipePacket.class, ClientboundPlaceGhostRecipePacket::new).addPacket(ClientboundPlayerAbilitiesPacket.class, ClientboundPlayerAbilitiesPacket::new).addPacket(ClientboundPlayerChatPacket.class, ClientboundPlayerChatPacket::new).addPacket(ClientboundPlayerCombatEndPacket.class, ClientboundPlayerCombatEndPacket::new).addPacket(ClientboundPlayerCombatEnterPacket.class, ClientboundPlayerCombatEnterPacket::new).addPacket(ClientboundPlayerCombatKillPacket.class, ClientboundPlayerCombatKillPacket::new).addPacket(ClientboundPlayerInfoRemovePacket.class, ClientboundPlayerInfoRemovePacket::new).addPacket(ClientboundPlayerInfoUpdatePacket.class, ClientboundPlayerInfoUpdatePacket::new).addPacket(ClientboundPlayerLookAtPacket.class, ClientboundPlayerLookAtPacket::new).addPacket(ClientboundPlayerPositionPacket.class, ClientboundPlayerPositionPacket::new).addPacket(ClientboundRecipePacket.class, ClientboundRecipePacket::new).addPacket(ClientboundRemoveEntitiesPacket.class, ClientboundRemoveEntitiesPacket::new).addPacket(ClientboundRemoveMobEffectPacket.class, ClientboundRemoveMobEffectPacket::new).addPacket(ClientboundResetScorePacket.class, ClientboundResetScorePacket::new).addPacket(ClientboundResourcePackPopPacket.class, ClientboundResourcePackPopPacket::new).addPacket(ClientboundResourcePackPushPacket.class, ClientboundResourcePackPushPacket::new).addPacket(ClientboundRespawnPacket.class, ClientboundRespawnPacket::new).addPacket(ClientboundRotateHeadPacket.class, ClientboundRotateHeadPacket::new).addPacket(ClientboundSectionBlocksUpdatePacket.class, ClientboundSectionBlocksUpdatePacket::new).addPacket(ClientboundSelectAdvancementsTabPacket.class, ClientboundSelectAdvancementsTabPacket::new).addPacket(ClientboundServerDataPacket.class, ClientboundServerDataPacket::new).addPacket(ClientboundSetActionBarTextPacket.class, ClientboundSetActionBarTextPacket::new).addPacket(ClientboundSetBorderCenterPacket.class, ClientboundSetBorderCenterPacket::new).addPacket(ClientboundSetBorderLerpSizePacket.class, ClientboundSetBorderLerpSizePacket::new).addPacket(ClientboundSetBorderSizePacket.class, ClientboundSetBorderSizePacket::new).addPacket(ClientboundSetBorderWarningDelayPacket.class, ClientboundSetBorderWarningDelayPacket::new).addPacket(ClientboundSetBorderWarningDistancePacket.class, ClientboundSetBorderWarningDistancePacket::new).addPacket(ClientboundSetCameraPacket.class, ClientboundSetCameraPacket::new).addPacket(ClientboundSetCarriedItemPacket.class, ClientboundSetCarriedItemPacket::new).addPacket(ClientboundSetChunkCacheCenterPacket.class, ClientboundSetChunkCacheCenterPacket::new).addPacket(ClientboundSetChunkCacheRadiusPacket.class, ClientboundSetChunkCacheRadiusPacket::new).addPacket(ClientboundSetDefaultSpawnPositionPacket.class, ClientboundSetDefaultSpawnPositionPacket::new).addPacket(ClientboundSetDisplayObjectivePacket.class, ClientboundSetDisplayObjectivePacket::new).addPacket(ClientboundSetEntityDataPacket.class, ClientboundSetEntityDataPacket::new).addPacket(ClientboundSetEntityLinkPacket.class, ClientboundSetEntityLinkPacket::new).addPacket(ClientboundSetEntityMotionPacket.class, ClientboundSetEntityMotionPacket::new).addPacket(ClientboundSetEquipmentPacket.class, ClientboundSetEquipmentPacket::new).addPacket(ClientboundSetExperiencePacket.class, ClientboundSetExperiencePacket::new).addPacket(ClientboundSetHealthPacket.class, ClientboundSetHealthPacket::new).addPacket(ClientboundSetObjectivePacket.class, ClientboundSetObjectivePacket::new).addPacket(ClientboundSetPassengersPacket.class, ClientboundSetPassengersPacket::new).addPacket(ClientboundSetPlayerTeamPacket.class, ClientboundSetPlayerTeamPacket::new).addPacket(ClientboundSetScorePacket.class, ClientboundSetScorePacket::new).addPacket(ClientboundSetSimulationDistancePacket.class, ClientboundSetSimulationDistancePacket::new).addPacket(ClientboundSetSubtitleTextPacket.class, ClientboundSetSubtitleTextPacket::new).addPacket(ClientboundSetTimePacket.class, ClientboundSetTimePacket::new).addPacket(ClientboundSetTitleTextPacket.class, ClientboundSetTitleTextPacket::new).addPacket(ClientboundSetTitlesAnimationPacket.class, ClientboundSetTitlesAnimationPacket::new).addPacket(ClientboundSoundEntityPacket.class, ClientboundSoundEntityPacket::new).addPacket(ClientboundSoundPacket.class, ClientboundSoundPacket::new).addPacket(ClientboundStartConfigurationPacket.class, ClientboundStartConfigurationPacket::new).addPacket(ClientboundStopSoundPacket.class, ClientboundStopSoundPacket::new).addPacket(ClientboundSystemChatPacket.class, ClientboundSystemChatPacket::new).addPacket(ClientboundTabListPacket.class, ClientboundTabListPacket::new).addPacket(ClientboundTagQueryPacket.class, ClientboundTagQueryPacket::new).addPacket(ClientboundTakeItemEntityPacket.class, ClientboundTakeItemEntityPacket::new).addPacket(ClientboundTeleportEntityPacket.class, ClientboundTeleportEntityPacket::new).addPacket(ClientboundTickingStatePacket.class, ClientboundTickingStatePacket::new).addPacket(ClientboundTickingStepPacket.class, ClientboundTickingStepPacket::new).addPacket(ClientboundUpdateAdvancementsPacket.class, ClientboundUpdateAdvancementsPacket::new).addPacket(ClientboundUpdateAttributesPacket.class, ClientboundUpdateAttributesPacket::new).addPacket(ClientboundUpdateMobEffectPacket.class, ClientboundUpdateMobEffectPacket::new).addPacket(ClientboundUpdateRecipesPacket.class, ClientboundUpdateRecipesPacket::new).addPacket(ClientboundUpdateTagsPacket.class, ClientboundUpdateTagsPacket::new)).addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ServerboundAcceptTeleportationPacket.class, ServerboundAcceptTeleportationPacket::new).addPacket(ServerboundBlockEntityTagQuery.class, ServerboundBlockEntityTagQuery::new).addPacket(ServerboundChangeDifficultyPacket.class, ServerboundChangeDifficultyPacket::new).addPacket(ServerboundChatAckPacket.class, ServerboundChatAckPacket::new).addPacket(ServerboundChatCommandPacket.class, ServerboundChatCommandPacket::new).addPacket(ServerboundChatPacket.class, ServerboundChatPacket::new).addPacket(ServerboundChatSessionUpdatePacket.class, ServerboundChatSessionUpdatePacket::new).addPacket(ServerboundChunkBatchReceivedPacket.class, ServerboundChunkBatchReceivedPacket::new).addPacket(ServerboundClientCommandPacket.class, ServerboundClientCommandPacket::new).addPacket(ServerboundClientInformationPacket.class, ServerboundClientInformationPacket::new).addPacket(ServerboundCommandSuggestionPacket.class, ServerboundCommandSuggestionPacket::new).addPacket(ServerboundConfigurationAcknowledgedPacket.class, ServerboundConfigurationAcknowledgedPacket::new).addPacket(ServerboundContainerButtonClickPacket.class, ServerboundContainerButtonClickPacket::new).addPacket(ServerboundContainerClickPacket.class, ServerboundContainerClickPacket::new).addPacket(ServerboundContainerClosePacket.class, ServerboundContainerClosePacket::new).addPacket(ServerboundContainerSlotStateChangedPacket.class, ServerboundContainerSlotStateChangedPacket::new).addPacket(ServerboundCustomPayloadPacket.class, ServerboundCustomPayloadPacket::new).addPacket(ServerboundEditBookPacket.class, ServerboundEditBookPacket::new).addPacket(ServerboundEntityTagQuery.class, ServerboundEntityTagQuery::new).addPacket(ServerboundInteractPacket.class, ServerboundInteractPacket::new).addPacket(ServerboundJigsawGeneratePacket.class, ServerboundJigsawGeneratePacket::new).addPacket(ServerboundKeepAlivePacket.class, ServerboundKeepAlivePacket::new).addPacket(ServerboundLockDifficultyPacket.class, ServerboundLockDifficultyPacket::new).addPacket(ServerboundMovePlayerPacket.Pos.class, ServerboundMovePlayerPacket.Pos::read).addPacket(ServerboundMovePlayerPacket.PosRot.class, ServerboundMovePlayerPacket.PosRot::read).addPacket(ServerboundMovePlayerPacket.Rot.class, ServerboundMovePlayerPacket.Rot::read).addPacket(ServerboundMovePlayerPacket.StatusOnly.class, ServerboundMovePlayerPacket.StatusOnly::read).addPacket(ServerboundMoveVehiclePacket.class, ServerboundMoveVehiclePacket::new).addPacket(ServerboundPaddleBoatPacket.class, ServerboundPaddleBoatPacket::new).addPacket(ServerboundPickItemPacket.class, ServerboundPickItemPacket::new).addPacket(ServerboundPingRequestPacket.class, ServerboundPingRequestPacket::new).addPacket(ServerboundPlaceRecipePacket.class, ServerboundPlaceRecipePacket::new).addPacket(ServerboundPlayerAbilitiesPacket.class, ServerboundPlayerAbilitiesPacket::new).addPacket(ServerboundPlayerActionPacket.class, ServerboundPlayerActionPacket::new).addPacket(ServerboundPlayerCommandPacket.class, ServerboundPlayerCommandPacket::new).addPacket(ServerboundPlayerInputPacket.class, ServerboundPlayerInputPacket::new).addPacket(ServerboundPongPacket.class, ServerboundPongPacket::new).addPacket(ServerboundRecipeBookChangeSettingsPacket.class, ServerboundRecipeBookChangeSettingsPacket::new).addPacket(ServerboundRecipeBookSeenRecipePacket.class, ServerboundRecipeBookSeenRecipePacket::new).addPacket(ServerboundRenameItemPacket.class, ServerboundRenameItemPacket::new).addPacket(ServerboundResourcePackPacket.class, ServerboundResourcePackPacket::new).addPacket(ServerboundSeenAdvancementsPacket.class, ServerboundSeenAdvancementsPacket::new).addPacket(ServerboundSelectTradePacket.class, ServerboundSelectTradePacket::new).addPacket(ServerboundSetBeaconPacket.class, ServerboundSetBeaconPacket::new).addPacket(ServerboundSetCarriedItemPacket.class, ServerboundSetCarriedItemPacket::new).addPacket(ServerboundSetCommandBlockPacket.class, ServerboundSetCommandBlockPacket::new).addPacket(ServerboundSetCommandMinecartPacket.class, ServerboundSetCommandMinecartPacket::new).addPacket(ServerboundSetCreativeModeSlotPacket.class, ServerboundSetCreativeModeSlotPacket::new).addPacket(ServerboundSetJigsawBlockPacket.class, ServerboundSetJigsawBlockPacket::new).addPacket(ServerboundSetStructureBlockPacket.class, ServerboundSetStructureBlockPacket::new).addPacket(ServerboundSignUpdatePacket.class, ServerboundSignUpdatePacket::new).addPacket(ServerboundSwingPacket.class, ServerboundSwingPacket::new).addPacket(ServerboundTeleportToEntityPacket.class, ServerboundTeleportToEntityPacket::new).addPacket(ServerboundUseItemOnPacket.class, ServerboundUseItemOnPacket::new).addPacket(ServerboundUseItemPacket.class, ServerboundUseItemPacket::new))), - STATUS("status", protocol().addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ServerboundStatusRequestPacket.class, ServerboundStatusRequestPacket::new).addPacket(ServerboundPingRequestPacket.class, ServerboundPingRequestPacket::new)).addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ClientboundStatusResponsePacket.class, ClientboundStatusResponsePacket::new).addPacket(ClientboundPongResponsePacket.class, ClientboundPongResponsePacket::new))), - LOGIN("login", protocol().addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ClientboundLoginDisconnectPacket.class, ClientboundLoginDisconnectPacket::new).addPacket(ClientboundHelloPacket.class, ClientboundHelloPacket::new).addPacket(ClientboundGameProfilePacket.class, ClientboundGameProfilePacket::new).addPacket(ClientboundLoginCompressionPacket.class, ClientboundLoginCompressionPacket::new).addPacket(ClientboundCustomQueryPacket.class, ClientboundCustomQueryPacket::new)).addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ServerboundHelloPacket.class, ServerboundHelloPacket::new).addPacket(ServerboundKeyPacket.class, ServerboundKeyPacket::new).addPacket(ServerboundCustomQueryAnswerPacket.class, ServerboundCustomQueryAnswerPacket::read).addPacket(ServerboundLoginAcknowledgedPacket.class, ServerboundLoginAcknowledgedPacket::new))), -- CONFIGURATION("configuration", protocol().addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ClientboundCustomPayloadPacket.class, ClientboundCustomPayloadPacket::new).addPacket(ClientboundDisconnectPacket.class, ClientboundDisconnectPacket::new).addPacket(ClientboundFinishConfigurationPacket.class, ClientboundFinishConfigurationPacket::new).addPacket(ClientboundKeepAlivePacket.class, ClientboundKeepAlivePacket::new).addPacket(ClientboundPingPacket.class, ClientboundPingPacket::new).addPacket(ClientboundRegistryDataPacket.class, ClientboundRegistryDataPacket::new).addPacket(ClientboundResourcePackPopPacket.class, ClientboundResourcePackPopPacket::new).addPacket(ClientboundResourcePackPushPacket.class, ClientboundResourcePackPushPacket::new).addPacket(ClientboundUpdateEnabledFeaturesPacket.class, ClientboundUpdateEnabledFeaturesPacket::new).addPacket(ClientboundUpdateTagsPacket.class, ClientboundUpdateTagsPacket::new)).addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ServerboundClientInformationPacket.class, ServerboundClientInformationPacket::new).addPacket(ServerboundCustomPayloadPacket.class, ServerboundCustomPayloadPacket::new).addPacket(ServerboundFinishConfigurationPacket.class, ServerboundFinishConfigurationPacket::new).addPacket(ServerboundKeepAlivePacket.class, ServerboundKeepAlivePacket::new).addPacket(ServerboundPongPacket.class, ServerboundPongPacket::new).addPacket(ServerboundResourcePackPacket.class, ServerboundResourcePackPacket::new))); -+ CONFIGURATION("configuration", protocol().addFlow(PacketFlow.CLIENTBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ClientboundCustomPayloadPacket.class, ClientboundCustomPayloadPacket::new).addPacket(ClientboundDisconnectPacket.class, ClientboundDisconnectPacket::new).addPacket(ClientboundFinishConfigurationPacket.class, ClientboundFinishConfigurationPacket::new).addPacket(ClientboundKeepAlivePacket.class, ClientboundKeepAlivePacket::new).addPacket(ClientboundPingPacket.class, ClientboundPingPacket::new).addPacket(ClientboundRegistryDataPacket.class, ClientboundRegistryDataPacket::new).addPacket(ClientboundResourcePackPopPacket.class, ClientboundResourcePackPopPacket::new).addPacket(ClientboundResourcePackPushPacket.class, ClientboundResourcePackPushPacket::new).addPacket(ClientboundUpdateEnabledFeaturesPacket.class, ClientboundUpdateEnabledFeaturesPacket::new).addPacket(ClientboundUpdateTagsPacket.class, ClientboundUpdateTagsPacket::new)).addFlow(PacketFlow.SERVERBOUND, (new ConnectionProtocol.PacketSet()).addPacket(ServerboundClientInformationPacket.class, ServerboundClientInformationPacket::new).addPacket(ServerboundCustomPayloadPacket.class, ServerboundCustomPayloadPacket::new).addPacket(ServerboundFinishConfigurationPacket.class, ServerboundFinishConfigurationPacket::new).addPacket(ServerboundKeepAlivePacket.class, ServerboundKeepAlivePacket::new).addPacket(ServerboundPongPacket.class, ServerboundPongPacket::new).addPacket(ServerboundResourcePackPacket.class, ServerboundResourcePackPacket::new))); // Paper - decompile fix - - public static final int NOT_REGISTERED = -1; - private final String id; -diff --git a/src/main/java/net/minecraft/network/chat/ComponentSerialization.java b/src/main/java/net/minecraft/network/chat/ComponentSerialization.java -index 60228c3778e53ca5c513cd265e5e08d151573a4f..49138ccda0f378b13c7f425be765876eb4026b06 100644 ---- a/src/main/java/net/minecraft/network/chat/ComponentSerialization.java -+++ b/src/main/java/net/minecraft/network/chat/ComponentSerialization.java -@@ -86,7 +86,7 @@ public class ComponentSerialization { - for(MapDecoder mapDecoder : this.codecs) { - DataResult dataResult = mapDecoder.decode(dynamicOps, mapLike); - if (dataResult.result().isPresent()) { -- return dataResult; -+ return (DataResult) dataResult; // Paper - decomp fix - } - } - -@@ -96,7 +96,7 @@ public class ComponentSerialization { - } - - public RecordBuilder encode(T object, DynamicOps dynamicOps, RecordBuilder recordBuilder) { -- MapEncoder mapEncoder = this.encoderGetter.apply(object); -+ MapEncoder mapEncoder = (MapEncoder) this.encoderGetter.apply(object); // Paper - decomp fix - return mapEncoder.encode(object, dynamicOps, recordBuilder); - } - -diff --git a/src/main/java/net/minecraft/network/chat/ComponentUtils.java b/src/main/java/net/minecraft/network/chat/ComponentUtils.java -index 13c8051da164bed579fbda44af059a36b8f00a0e..b6506e881ef337bfd2a7a0644296b48b7300a0f6 100644 ---- a/src/main/java/net/minecraft/network/chat/ComponentUtils.java -+++ b/src/main/java/net/minecraft/network/chat/ComponentUtils.java -@@ -129,9 +129,8 @@ public class ComponentUtils { - ComponentContents string = text.getContents(); - if (string instanceof TranslatableContents) { - TranslatableContents translatableContents = (TranslatableContents)string; -- String string = translatableContents.getKey(); - String string2 = translatableContents.getFallback(); -- return string2 != null || Language.getInstance().has(string); -+ return string2 != null || Language.getInstance().has(translatableContents.getKey()); // Paper - decompile fix - } - } - -diff --git a/src/main/java/net/minecraft/resources/RegistryDataLoader.java b/src/main/java/net/minecraft/resources/RegistryDataLoader.java -index 279df2598c54e5b035c2945c59812baf1f97356b..e1bddbbdbeea79115d0f987065c34e0f7f04d377 100644 ---- a/src/main/java/net/minecraft/resources/RegistryDataLoader.java -+++ b/src/main/java/net/minecraft/resources/RegistryDataLoader.java -@@ -92,7 +92,7 @@ public class RegistryDataLoader { - return new RegistryOps.RegistryInfoLookup() { - @Override - public Optional> lookup(ResourceKey> registryRef) { -- return Optional.ofNullable(map.get(registryRef)); -+ return Optional.ofNullable((RegistryOps.RegistryInfo) map.get(registryRef)); // Paper - decompile fix - } - }; - } +@@ -451,7 +451,7 @@ public enum ConnectionProtocol { + protocol() + .addFlow( + PacketFlow.CLIENTBOUND, +- new ConnectionProtocol.PacketSet() ++ new ConnectionProtocol.PacketSet() // Paper - decompile fix + .addPacket(ClientboundCustomPayloadPacket.class, ClientboundCustomPayloadPacket::new) + .addPacket(ClientboundDisconnectPacket.class, ClientboundDisconnectPacket::new) + .addPacket(ClientboundFinishConfigurationPacket.class, ClientboundFinishConfigurationPacket::new) +@@ -465,7 +465,7 @@ public enum ConnectionProtocol { + ) + .addFlow( + PacketFlow.SERVERBOUND, +- new ConnectionProtocol.PacketSet() ++ new ConnectionProtocol.PacketSet() // Paper - decompile fix + .addPacket(ServerboundClientInformationPacket.class, ServerboundClientInformationPacket::new) + .addPacket(ServerboundCustomPayloadPacket.class, ServerboundCustomPayloadPacket::new) + .addPacket(ServerboundFinishConfigurationPacket.class, ServerboundFinishConfigurationPacket::new) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 15bdddae68db770690ddfcb19c7ecdbedbfa8cb7..650bf3483414751fbda7bff584af55df49cef22d 100644 +index 62e096c9cc05c387ca2413a490f44c6c66a5c41e..9c23ad38f935b2f31c0e0998e685978434202900 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1863,7 +1863,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { MultiPackResourceManager resourcemanager = new MultiPackResourceManager(PackType.SERVER_DATA, immutablelist); -diff --git a/src/main/java/net/minecraft/server/level/Ticket.java b/src/main/java/net/minecraft/server/level/Ticket.java -index 2f66abf62d303342f5fe614fb3e35e7844497ffc..b346fa94b23d81da7da073f71dd12e672e0f079c 100644 ---- a/src/main/java/net/minecraft/server/level/Ticket.java -+++ b/src/main/java/net/minecraft/server/level/Ticket.java -@@ -21,7 +21,7 @@ public final class Ticket implements Comparable> { - return i; - } else { - int j = Integer.compare(System.identityHashCode(this.type), System.identityHashCode(ticket.type)); -- return j != 0 ? j : this.type.getComparator().compare(this.key, ticket.key); -+ return j != 0 ? j : this.type.getComparator().compare(this.key, (T)ticket.key); // Paper - decompile fix - } - } - diff --git a/src/main/java/net/minecraft/util/SortedArraySet.java b/src/main/java/net/minecraft/util/SortedArraySet.java -index 2dc801061025888192c3bf2c4c38b928c16a0165..ca788f0dcec4a117b410fe8348969e056b138b1e 100644 +index 661a6274a800ca9b91bdb809d026972d23c3b263..ea72dcb064a35bc6245bc5c94d592efedd8faf41 100644 --- a/src/main/java/net/minecraft/util/SortedArraySet.java +++ b/src/main/java/net/minecraft/util/SortedArraySet.java @@ -28,7 +28,7 @@ public class SortedArraySet extends AbstractSet { @@ -141,32 +106,6 @@ index 2dc801061025888192c3bf2c4c38b928c16a0165..ca788f0dcec4a117b410fe8348969e05 } public static SortedArraySet create(Comparator comparator) { -diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index e1b9e25f1f8352bf6825a5827b6b354ef7a93203..90e4e0ec0c7b0ece23c4b53f5f12b1f24e1c18ad 100644 ---- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -@@ -101,7 +101,7 @@ public class Frog extends Animal implements VariantHolder { - - @Override - public Brain getBrain() { -- return super.getBrain(); -+ return (Brain) super.getBrain(); // Paper - decompile fix - } - - @Override -diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index 9799f693dc08cdfc2974959fc792ba86c5c51ceb..7bcd5498c734873b74bee503992ec4806ae61df7 100644 ---- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -@@ -125,7 +125,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { - - @Override - public Brain getBrain() { -- return super.getBrain(); -+ return (Brain) super.getBrain(); // Paper - decompile fix - } - - @Override diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java index 04adc10f24f96804a5cb14e884224bb672360464..4259181bab2dc4f2d0409b56fdf81d966003376d 100644 --- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java @@ -180,42 +119,3 @@ index 04adc10f24f96804a5cb14e884224bb672360464..4259181bab2dc4f2d0409b56fdf81d96 })); this.byName = Maps.newHashMap(builder.build()); // CraftBukkit RecipeManager.LOGGER.info("Loaded {} recipes", map1.size()); -diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 9fbe8ef3fea77ecbbc8689cc6472d0d5f30b7166..b8fb6d1d85e07f5165bfaf7d80807e069b595851 100644 ---- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -+++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -57,7 +57,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer - } - - private static > Codec codec(IdMap idList, Codec entryCodec, PalettedContainer.Strategy provider, T defaultValue, PalettedContainerRO.Unpacker reader) { -- return RecordCodecBuilder.create((instance) -> { -+ return RecordCodecBuilder.>create((instance) -> { // Paper - decompile fix - return instance.group(entryCodec.mapResult(ExtraCodecs.orElsePartial(defaultValue)).listOf().fieldOf("palette").forGetter(PalettedContainerRO.PackedData::paletteEntries), Codec.LONG_STREAM.optionalFieldOf("data").forGetter(PalettedContainerRO.PackedData::storage)).apply(instance, PalettedContainerRO.PackedData::new); - }).comapFlatMap((serialized) -> { - return reader.read(idList, provider, serialized); -diff --git a/src/main/java/net/minecraft/world/level/entity/EntityLookup.java b/src/main/java/net/minecraft/world/level/entity/EntityLookup.java -index 6b91771a4bf559881a4f3e6c98500e09b33d16e0..21a2800db22f287b9c6a8290326fdf3b94ae94b1 100644 ---- a/src/main/java/net/minecraft/world/level/entity/EntityLookup.java -+++ b/src/main/java/net/minecraft/world/level/entity/EntityLookup.java -@@ -19,7 +19,7 @@ public class EntityLookup { - public void getEntities(EntityTypeTest filter, AbortableIterationConsumer consumer) { - for(T entityAccess : this.byId.values()) { - U entityAccess2 = (U)((EntityAccess)filter.tryCast(entityAccess)); -- if (entityAccess2 != null && consumer.accept((T)entityAccess2).shouldAbort()) { -+ if (entityAccess2 != null && consumer.accept(entityAccess2).shouldAbort()) { // Paper - decompile fix - return; - } - } -diff --git a/src/main/java/net/minecraft/world/level/entity/EntitySection.java b/src/main/java/net/minecraft/world/level/entity/EntitySection.java -index 69a19dbf58cde41680d086e78b9a12ffee602dbf..5dcb7f9cab097990148f5a7c4ccbe1556afdd514 100644 ---- a/src/main/java/net/minecraft/world/level/entity/EntitySection.java -+++ b/src/main/java/net/minecraft/world/level/entity/EntitySection.java -@@ -44,7 +44,7 @@ public class EntitySection { - } else { - for(T entityAccess : collection) { - U entityAccess2 = (U)((EntityAccess)type.tryCast(entityAccess)); -- if (entityAccess2 != null && entityAccess.getBoundingBox().intersects(box) && consumer.accept((T)entityAccess2).shouldAbort()) { -+ if (entityAccess2 != null && entityAccess.getBoundingBox().intersects(box) && consumer.accept(entityAccess2).shouldAbort()) { // Paper - decompile fix - return AbortableIterationConsumer.Continuation.ABORT; - } - } diff --git a/patches/server/0008-CB-fixes.patch b/patches/server/0008-CB-fixes.patch index 98d20522e6..98a115c15e 100644 --- a/patches/server/0008-CB-fixes.patch +++ b/patches/server/0008-CB-fixes.patch @@ -52,10 +52,10 @@ index b2f37e3caf305f7f2c19c59848717bf73bd2ef5d..87c8460324ff2d2a14e1404fcfa3adb2 @Override diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java -index 161ad6ab1443b2ce33a2d7d91d189c855db0453b..15a9736a870055d639d03063c7cf67fd769fff36 100644 +index 8fa222759b8ada1674a7d3ae1c0cdf91bfd7f915..da919ad85ce06572f8e7e4c121a2c222f975c7f5 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java -@@ -43,7 +43,7 @@ public class StructureCheck { +@@ -42,7 +42,7 @@ public class StructureCheck { private final Registry biomes; private final Registry structureConfigs; private final StructureTemplateManager structureTemplateManager; @@ -64,15 +64,15 @@ index 161ad6ab1443b2ce33a2d7d91d189c855db0453b..15a9736a870055d639d03063c7cf67fd private final ChunkGenerator chunkGenerator; private final RandomState randomState; private final LevelHeightAccessor heightAccessor; -@@ -53,7 +53,7 @@ public class StructureCheck { - private final Long2ObjectMap> loadedChunks = new Long2ObjectOpenHashMap<>(); - private final Map featureChecks = new HashMap<>(); - -- public StructureCheck(ChunkScanAccess chunkIoWorker, RegistryAccess registryManager, StructureTemplateManager structureTemplateManager, ResourceKey worldKey, ChunkGenerator chunkGenerator, RandomState noiseConfig, LevelHeightAccessor world, BiomeSource biomeSource, long seed, DataFixer dataFixer) { -+ public StructureCheck(ChunkScanAccess chunkIoWorker, RegistryAccess registryManager, StructureTemplateManager structureTemplateManager, ResourceKey worldKey, ChunkGenerator chunkGenerator, RandomState noiseConfig, LevelHeightAccessor world, BiomeSource biomeSource, long seed, DataFixer dataFixer) { // Paper - fix missing CB diff - this.storageAccess = chunkIoWorker; - this.registryAccess = registryManager; - this.structureTemplateManager = structureTemplateManager; +@@ -56,7 +56,7 @@ public class StructureCheck { + ChunkScanAccess chunkIoWorker, + RegistryAccess registryManager, + StructureTemplateManager structureTemplateManager, +- ResourceKey worldKey, ++ ResourceKey worldKey, // Paper - fix missing CB diff + ChunkGenerator chunkGenerator, + RandomState noiseConfig, + LevelHeightAccessor world, diff --git a/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java b/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java index 809fdf2da78293391aa5c60c04f4ad652b152eec..955b0abd4019fc45df84719eee6bf413e59d941a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java @@ -107,7 +107,7 @@ index cd39509d383c47319b71797e5d1df41c2b8c7ab6..2cc1871c81056acd0582184bb684e672 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 19725db76dc3a12356993aed7edba507b52fe4d7..c2e1376bb06442297bda806ed8dc92f10cbbdd9a 100644 +index cc6d96c5015b4e5614e8091dc9113e82e9babc25..6f9196120177104c6e689ff1d39a06f91d04b0c8 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -122,6 +122,7 @@ public class Main { diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index 8cb6342c33..8f3da9d5b8 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -5937,10 +5937,10 @@ index 0000000000000000000000000000000000000000..d603887f4d0464f4463172fd79bcd529 + } +} diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index d3afd54f546ae81f1c6d1a3ca9ee4e8e5c786ae4..114f4017c4133042178c57d424f10079163835dd 100644 +index 3d4c889aa278f814f3af0af62fd38db4f1f05a45..bf17c2005aa71a627c93b3bbaa773a5902b897c1 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -125,7 +125,7 @@ public class Util { +@@ -127,7 +127,7 @@ public class Util { } public static long getNanos() { @@ -5950,10 +5950,10 @@ index d3afd54f546ae81f1c6d1a3ca9ee4e8e5c786ae4..114f4017c4133042178c57d424f10079 public static long getEpochMillis() { diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java -index c77fc9b93f3213655b2cc89f4afdec893f1cd22d..c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b 100644 +index 557702f85573da753d68fcba76dde7c74de9d12b..1e2f58f2f95c558ce28706c405050c4c5701dd40 100644 --- a/src/main/java/net/minecraft/nbt/CompoundTag.java +++ b/src/main/java/net/minecraft/nbt/CompoundTag.java -@@ -164,7 +164,7 @@ public class CompoundTag implements Tag { +@@ -159,7 +159,7 @@ public class CompoundTag implements Tag { return "TAG_Compound"; } }; @@ -5962,7 +5962,7 @@ index c77fc9b93f3213655b2cc89f4afdec893f1cd22d..c77a6bb6885ffaaa4d9e1aa9d4770d5e protected CompoundTag(Map entries) { this.tags = entries; -@@ -240,6 +240,10 @@ public class CompoundTag implements Tag { +@@ -235,6 +235,10 @@ public class CompoundTag implements Tag { this.tags.put(key, NbtUtils.createUUID(value)); } @@ -5997,7 +5997,7 @@ index e7a124403f2b07c96caaaf97d1c9023f9ec2f9d9..5b267514504497de3faa7ffa490a1792 this.receiving = side; } diff --git a/src/main/java/net/minecraft/network/PacketEncoder.java b/src/main/java/net/minecraft/network/PacketEncoder.java -index 427959874b7f167184785a582163029ad4a66df2..344c5af75c4a66bb27f3f422937c6c427c15ed25 100644 +index 522c62ff1114fa8bff41f7177f1192ab4472a6ed..d0e159f54da70bf0bd834738ced5d4b414a36142 100644 --- a/src/main/java/net/minecraft/network/PacketEncoder.java +++ b/src/main/java/net/minecraft/network/PacketEncoder.java @@ -46,7 +46,7 @@ public class PacketEncoder extends MessageToByteEncoder> { @@ -6029,7 +6029,7 @@ index 929d31aa624f035eb314dece08969b102f5781fc..e94f0361cbca873f05b5b768c68c0933 + // Paper end - MC Utils - default query payloads } diff --git a/src/main/java/net/minecraft/network/protocol/login/ServerboundCustomQueryAnswerPacket.java b/src/main/java/net/minecraft/network/protocol/login/ServerboundCustomQueryAnswerPacket.java -index 44cac39893eb968aa8ea21ee571c0dcb866ce06c..5151d68ba6ec72a7124f298253c5f0af080b2ea6 100644 +index 3ad2f40a7a1a8878290c5efd3e032572daf0b558..bcc4cd142c22e8d6957a329719353d789b826a69 100644 --- a/src/main/java/net/minecraft/network/protocol/login/ServerboundCustomQueryAnswerPacket.java +++ b/src/main/java/net/minecraft/network/protocol/login/ServerboundCustomQueryAnswerPacket.java @@ -15,7 +15,17 @@ public record ServerboundCustomQueryAnswerPacket(int transactionId, @Nullable Cu @@ -6051,7 +6051,7 @@ index 44cac39893eb968aa8ea21ee571c0dcb866ce06c..5151d68ba6ec72a7124f298253c5f0af } private static CustomQueryAnswerPayload readUnknownPayload(FriendlyByteBuf buf) { -@@ -40,4 +50,21 @@ public record ServerboundCustomQueryAnswerPacket(int transactionId, @Nullable Cu +@@ -38,4 +48,21 @@ public record ServerboundCustomQueryAnswerPacket(int transactionId, @Nullable Cu public void handle(ServerLoginPacketListener listener) { listener.handleCustomQueryPacket(this); } @@ -6959,7 +6959,7 @@ index 30fc222c384938fb4fdd4c6715295aeea57094bc..9ea829aafa7a874a784d02da889576c8 public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List 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 e89125da8e53cbfaa9ec5c6e56de2f7e8466c99f..a721e9cd0958d7fceed1aba8ae55fefed4e6a887 100644 +index b758a86c3d4744674faf25a6aea53c15a62ce234..c57b91c2385d118590bc419e7e6ed586d5d87422 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -259,6 +259,8 @@ public class ServerPlayer extends Player { @@ -7036,12 +7036,12 @@ index 93e0de052ea54cc1dee1ebc017fefb634eb42f8d..2e8e786407869b53cb4d7e4ec8f91fe0 GameProfileCache usercache = this.server.getProfileCache(); String s; diff --git a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java -index 337e0a7b3c14e1b1a28744920e0dc0a69e0c5a87..f5829ae484d93b547a5437b85a9621346384a11b 100644 +index 9eba8e87e34abb23c0a32cb7ffbaaf272616418a..03e8707258e9b73cf12a4750270ab7573bb1c812 100644 --- a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java +++ b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java -@@ -78,6 +78,13 @@ public abstract class BlockableEventLoop implements Profiler +@@ -77,6 +77,13 @@ public abstract class BlockableEventLoop implements Profiler + runnable.run(); } - } + // Paper start + public void scheduleOnMain(Runnable r0) { @@ -7070,7 +7070,7 @@ index cdefbfb7a578d5f90b24f24dbc9a0fe627b91474..17e489c4650ba421a993c863426f1a20 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cb0d7779a2eeadca49a99ab31217b27f5fd49e4c..864da662a81b653cd94e2270be262e912e351e21 100644 +index 36cedbf1b17a40cf15bc7207c263173d4571b466..cdac785c54e150c0886046b8d50657c0ca958438 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -259,6 +259,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -7107,7 +7107,7 @@ index 21fa43e0c3fabf74919f7e41d074ab1f7c061967..5e9cf929674888b3a143a0691dc6936b return this.getWalkTargetValue(pos, this.level()); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Monster.java b/src/main/java/net/minecraft/world/entity/monster/Monster.java -index 86b65d66d895a4f02da002448739c122796feb4d..036d79baf372f4900681fee366bcd91c99474e5f 100644 +index f73604d762efbac400d40f536ec1782fca584efa..4701bf9ee203f2f15b0b68e84bbfa2c489b66631 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Monster.java +++ b/src/main/java/net/minecraft/world/entity/monster/Monster.java @@ -27,6 +27,7 @@ import net.minecraft.world.level.ServerLevelAccessor; @@ -7185,7 +7185,7 @@ index 1c71d2c1b16bdba1e14a8230787e4cb4ad530163..d6d8bbc98fc71997cb52521d59ebb59d FluidState getFluidState(BlockPos pos); diff --git a/src/main/java/net/minecraft/world/level/ChunkPos.java b/src/main/java/net/minecraft/world/level/ChunkPos.java -index 43bb3f5a617f4a6d719b02023a71edcb12aa9d05..2f47004a34f28a58965b1c47e78fb07ae15770cb 100644 +index 4cea6b4cad66d26a0fc66d06fa73af1eaf01b146..54cd046587c2f9dd26204bfa4eb65b8ad52b2d5e 100644 --- a/src/main/java/net/minecraft/world/level/ChunkPos.java +++ b/src/main/java/net/minecraft/world/level/ChunkPos.java @@ -20,6 +20,7 @@ public class ChunkPos { @@ -7350,7 +7350,7 @@ index bd9ea2bd012cdcf07ac322b3e0360c6c336ab1f9..bede1a64e4f04aa8e87ddb44f2cc4a1a return chunk.getBlockState(pos); } diff --git a/src/main/java/net/minecraft/world/level/LevelReader.java b/src/main/java/net/minecraft/world/level/LevelReader.java -index e6aabec35f4e27623d1fbbfb285cc78531137014..cc0d20e9f851268fe8403ac516f426ec1d008150 100644 +index daa1e9bf39666233dd80eeee0ffd76e168376889..ced67cf88c91c5270a0060a7307f36739237cbb2 100644 --- a/src/main/java/net/minecraft/world/level/LevelReader.java +++ b/src/main/java/net/minecraft/world/level/LevelReader.java @@ -26,6 +26,9 @@ public interface LevelReader extends BlockAndTintGetter, CollisionGetter, Signal @@ -7360,11 +7360,11 @@ index e6aabec35f4e27623d1fbbfb285cc78531137014..cc0d20e9f851268fe8403ac516f426ec + @Nullable ChunkAccess getChunkIfLoadedImmediately(int x, int z); // Paper - ifLoaded api (we need this since current impl blocks if the chunk is loading) + @Nullable default ChunkAccess getChunkIfLoadedImmediately(BlockPos pos) { return this.getChunkIfLoadedImmediately(pos.getX() >> 4, pos.getZ() >> 4);} + - /** @deprecated */ @Deprecated boolean hasChunk(int chunkX, int chunkZ); + diff --git a/src/main/java/net/minecraft/world/level/PathNavigationRegion.java b/src/main/java/net/minecraft/world/level/PathNavigationRegion.java -index 249b3ed33672a9a9529bd14de978722b62019314..0f1025495237aebe30132ace0832aa5718d6f9bb 100644 +index 497792978bdf0e6a53d772304770e8df3e7416ea..c5454b92ca2565461c799d7340160f9fb72c1b0f 100644 --- a/src/main/java/net/minecraft/world/level/PathNavigationRegion.java +++ b/src/main/java/net/minecraft/world/level/PathNavigationRegion.java @@ -9,6 +9,7 @@ import net.minecraft.core.Holder; @@ -7375,7 +7375,7 @@ index 249b3ed33672a9a9529bd14de978722b62019314..0f1025495237aebe30132ace0832aa57 import net.minecraft.world.entity.Entity; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.Biomes; -@@ -70,7 +71,7 @@ public class PathNavigationRegion implements BlockGetter, CollisionGetter { +@@ -67,7 +68,7 @@ public class PathNavigationRegion implements BlockGetter, CollisionGetter { private ChunkAccess getChunk(int chunkX, int chunkZ) { int i = chunkX - this.centerX; int j = chunkZ - this.centerZ; @@ -7384,7 +7384,7 @@ index 249b3ed33672a9a9529bd14de978722b62019314..0f1025495237aebe30132ace0832aa57 ChunkAccess chunkAccess = this.chunks[i][j]; return (ChunkAccess)(chunkAccess != null ? chunkAccess : new EmptyLevelChunk(this.level, new ChunkPos(chunkX, chunkZ), this.plains.get())); } else { -@@ -78,6 +79,30 @@ public class PathNavigationRegion implements BlockGetter, CollisionGetter { +@@ -75,6 +76,30 @@ public class PathNavigationRegion implements BlockGetter, CollisionGetter { } } @@ -7713,10 +7713,10 @@ index d59392c322936ce89b759ac9787c8f4f0b228af6..2d6daf76a56574c9727b404feb4f8634 private short tickingFluidCount; public final PalettedContainer states; diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -index 51a0ddcee9a9cb1040fda643a6442d2e2e15b8a0..38ec21faaa16df5485a81a581506700a5ab0a440 100644 +index 47d1a5142bdddfa89b1d84002784c1328d8ac3b4..03e5e5c5ea003ba52b9f3ee405cd77e22ea387c8 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -@@ -72,6 +72,18 @@ public class ProtoChunk extends ChunkAccess { +@@ -81,6 +81,18 @@ public class ProtoChunk extends ChunkAccess { return new ChunkAccess.TicksToSave(this.blockTicks, this.fluidTicks); } diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index f1810399dd..5ccebb831a 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -2096,10 +2096,10 @@ index 0000000000000000000000000000000000000000..c0701d4f93a4d77a8177d2dd8d5076f9 + } +} diff --git a/src/main/java/net/minecraft/ChatFormatting.java b/src/main/java/net/minecraft/ChatFormatting.java -index e7980c88d036c617420e80bda8e1972723f97b52..efbc104acc62c5af8acf35b15f1be0d9f11113c9 100644 +index 8128ad5adc43980e6b19d87b7ade90b2d7bed699..3953972ef49e1899102116f35d9153bd81430aa7 100644 --- a/src/main/java/net/minecraft/ChatFormatting.java +++ b/src/main/java/net/minecraft/ChatFormatting.java -@@ -113,6 +113,18 @@ public enum ChatFormatting implements StringRepresentable { +@@ -110,6 +110,18 @@ public enum ChatFormatting implements StringRepresentable { return name == null ? null : FORMATTING_BY_NAME.get(cleanName(name)); } @@ -2131,19 +2131,19 @@ index db93483cfee13ca4303d7452ecbb47507dc5f89e..f6938c35ac6f6116084d3e7ec9cdc918 public CommandSourceStack(CommandSource output, Vec3 pos, Vec2 rot, ServerLevel world, int level, String name, Component displayName, MinecraftServer server, @Nullable Entity entity) { this(output, pos, rot, world, level, name, displayName, server, entity, false, CommandResultCallback.EMPTY, EntityAnchorArgument.Anchor.FEET, CommandSigningContext.ANONYMOUS, TaskChainer.immediate(server)); diff --git a/src/main/java/net/minecraft/commands/arguments/MessageArgument.java b/src/main/java/net/minecraft/commands/arguments/MessageArgument.java -index 979ea69678319338c543185ba026ad0699a388d6..a3e8b2baec7ac8a61f6cbed7095f84273be385e7 100644 +index 7511445f48d9f13106b5d45b5d5bae9172fccfe4..43a47a6d8e5043ef743c5c2d8fb802d8ba3cb8ec 100644 --- a/src/main/java/net/minecraft/commands/arguments/MessageArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/MessageArgument.java -@@ -51,17 +51,21 @@ public class MessageArgument implements SignedArgument +@@ -50,17 +50,21 @@ public class MessageArgument implements SignedArgument private static void resolveSignedMessage(Consumer callback, CommandSourceStack source, PlayerChatMessage message) { MinecraftServer minecraftServer = source.getServer(); CompletableFuture completableFuture = filterPlainText(source, message); - Component component = minecraftServer.getChatDecorator().decorate(source.getPlayer(), message.decoratedContent()); -- source.getChatMessageChainer().append(completableFuture, (filtered) -> { +- source.getChatMessageChainer().append(completableFuture, filtered -> { - PlayerChatMessage playerChatMessage2 = message.withUnsignedContent(component).filter(filtered.mask()); + // Paper start - support asynchronous chat decoration + CompletableFuture componentFuture = minecraftServer.getChatDecorator().decorate(source.getPlayer(), source, message.decoratedContent()); -+ source.getChatMessageChainer().append(CompletableFuture.allOf(completableFuture, componentFuture), (filtered) -> { ++ source.getChatMessageChainer().append(CompletableFuture.allOf(completableFuture, componentFuture), filtered -> { + PlayerChatMessage playerChatMessage2 = message.withUnsignedContent(componentFuture.join().component()).filter(completableFuture.join().mask()); + // Paper end - support asynchronous chat decoration callback.accept(playerChatMessage2); @@ -2225,7 +2225,7 @@ index 9373502ede6c8a881af67db005cf12fd9313f37f..53f033d2d887909f5f905c00122d1b09 public > T readEnum(Class enumClass) { diff --git a/src/main/java/net/minecraft/network/PacketEncoder.java b/src/main/java/net/minecraft/network/PacketEncoder.java -index 344c5af75c4a66bb27f3f422937c6c427c15ed25..7070d093c80033b61a9c8495bc56153d986b6b03 100644 +index d0e159f54da70bf0bd834738ced5d4b414a36142..0d80fcee1831af59b06c4d00dc713bd4dad947fc 100644 --- a/src/main/java/net/minecraft/network/PacketEncoder.java +++ b/src/main/java/net/minecraft/network/PacketEncoder.java @@ -35,6 +35,7 @@ public class PacketEncoder extends MessageToByteEncoder> { @@ -2237,10 +2237,10 @@ index 344c5af75c4a66bb27f3f422937c6c427c15ed25..7070d093c80033b61a9c8495bc56153d try { int j = friendlyByteBuf.writerIndex(); diff --git a/src/main/java/net/minecraft/network/chat/ChatDecorator.java b/src/main/java/net/minecraft/network/chat/ChatDecorator.java -index 887b9fd625aa23c4ec828a175d63695f915232d3..8e4a4b15152c2f83444fa8017bec06bbd1389e2c 100644 +index e4624d696dcf0ddb6d42a80701dfc47ec6877540..8885e405b626daa0af1485ad734863af73b3c1f3 100644 --- a/src/main/java/net/minecraft/network/chat/ChatDecorator.java +++ b/src/main/java/net/minecraft/network/chat/ChatDecorator.java -@@ -2,12 +2,72 @@ package net.minecraft.network.chat; +@@ -2,10 +2,70 @@ package net.minecraft.network.chat; import javax.annotation.Nullable; import net.minecraft.server.level.ServerPlayer; @@ -2248,10 +2248,8 @@ index 887b9fd625aa23c4ec828a175d63695f915232d3..8e4a4b15152c2f83444fa8017bec06bb @FunctionalInterface public interface ChatDecorator { - ChatDecorator PLAIN = (sender, message) -> { -- return message; -+ return CompletableFuture.completedFuture(message); // Paper - adventure; support async chat decoration events - }; +- ChatDecorator PLAIN = (sender, message) -> message; ++ ChatDecorator PLAIN = (sender, message) -> CompletableFuture.completedFuture(message); // Paper - adventure; support async chat decoration events; - Component decorate(@Nullable ServerPlayer sender, Component message); + @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper - adventure; support chat decoration events @@ -2316,10 +2314,10 @@ index 887b9fd625aa23c4ec828a175d63695f915232d3..8e4a4b15152c2f83444fa8017bec06bb + // Paper end - adventure; support async chat decoration events } diff --git a/src/main/java/net/minecraft/network/chat/ComponentSerialization.java b/src/main/java/net/minecraft/network/chat/ComponentSerialization.java -index 49138ccda0f378b13c7f425be765876eb4026b06..30568c1be4d412bfae5bd07d45b823861ec39ab3 100644 +index 48ce8553ac13a1c660a5125e17d2a173d62ca7ff..b89386d9366543f7777e6eab961938763188345f 100644 --- a/src/main/java/net/minecraft/network/chat/ComponentSerialization.java +++ b/src/main/java/net/minecraft/network/chat/ComponentSerialization.java -@@ -55,12 +55,58 @@ public class ComponentSerialization { +@@ -51,7 +51,25 @@ public class ComponentSerialization { return ExtraCodecs.orCompressed(mapCodec3, mapCodec2); } @@ -2342,11 +2340,13 @@ index 49138ccda0f378b13c7f425be765876eb4026b06..30568c1be4d412bfae5bd07d45b82386 + + private static Codec createCodec(Codec selfCodec, @javax.annotation.Nullable java.util.Locale locale) { + // Paper end - adventure; create separate codec for each locale - ComponentContents.Type[] types = new ComponentContents.Type[]{PlainTextContents.TYPE, TranslatableContents.TYPE, KeybindContents.TYPE, ScoreContents.TYPE, SelectorContents.TYPE, NbtContents.TYPE}; - MapCodec mapCodec = createLegacyComponentMatcher(types, ComponentContents.Type::codec, ComponentContents::type, "type"); - Codec codec = RecordCodecBuilder.create((instance) -> { - return instance.group(mapCodec.forGetter(Component::getContents), ExtraCodecs.strictOptionalField(ExtraCodecs.nonEmptyList(selfCodec.listOf()), "extra", List.of()).forGetter(Component::getSiblings), Style.Serializer.MAP_CODEC.forGetter(Component::getStyle)).apply(instance, MutableComponent::new); - }); + ComponentContents.Type[] types = new ComponentContents.Type[]{ + PlainTextContents.TYPE, TranslatableContents.TYPE, KeybindContents.TYPE, ScoreContents.TYPE, SelectorContents.TYPE, NbtContents.TYPE + }; +@@ -64,6 +82,34 @@ public class ComponentSerialization { + ) + .apply(instance, MutableComponent::new) + ); + // Paper start - adventure; create separate codec for each locale + final Codec origCodec = codec; + codec = new Codec<>() { @@ -2375,11 +2375,11 @@ index 49138ccda0f378b13c7f425be765876eb4026b06..30568c1be4d412bfae5bd07d45b82386 + } + }; + // Paper end - adventure; create separate codec for each locale - return Codec.either(Codec.either(Codec.STRING, ExtraCodecs.nonEmptyList(selfCodec.listOf())), codec).xmap((either) -> { - return either.map((either2) -> { - return either2.map(Component::literal, ComponentSerialization::createFromList); + return Codec.either(Codec.either(Codec.STRING, ExtraCodecs.nonEmptyList(selfCodec.listOf())), codec) + .xmap(either -> either.map(either2 -> either2.map(Component::literal, ComponentSerialization::createFromList), text -> (Component)text), text -> { + String string = text.tryCollapseToString(); diff --git a/src/main/java/net/minecraft/network/chat/ComponentUtils.java b/src/main/java/net/minecraft/network/chat/ComponentUtils.java -index b6506e881ef337bfd2a7a0644296b48b7300a0f6..57206594f305961a33542e1f8079c75bfa7c535f 100644 +index 0030c0c91e989fcdc5b7ce6490836a0e8dd3b5d5..3365aed2b67ae0e4dd0410f5190ba474f146139b 100644 --- a/src/main/java/net/minecraft/network/chat/ComponentUtils.java +++ b/src/main/java/net/minecraft/network/chat/ComponentUtils.java @@ -41,6 +41,11 @@ public class ComponentUtils { @@ -2393,12 +2393,12 @@ index b6506e881ef337bfd2a7a0644296b48b7300a0f6..57206594f305961a33542e1f8079c75b + // Paper end - adventure; pass actual vanilla component MutableComponent mutableComponent = text.getContents().resolve(source, sender, depth + 1); - for(Component component : text.getSiblings()) { + for (Component component : text.getSiblings()) { diff --git a/src/main/java/net/minecraft/network/chat/MessageSignature.java b/src/main/java/net/minecraft/network/chat/MessageSignature.java -index df9997873c4bbec184379ec14dca1bf4566eb89d..a3e2d03ffe9392cc69e850c5db7d71889a0a27ea 100644 +index 739ef5fb6f4fa37382153ba6a308ca3b451e6b05..7c3154af5d7732037c0ee965f6f8b89424461abd 100644 --- a/src/main/java/net/minecraft/network/chat/MessageSignature.java +++ b/src/main/java/net/minecraft/network/chat/MessageSignature.java -@@ -13,11 +13,12 @@ import net.minecraft.util.SignatureUpdater; +@@ -13,6 +13,7 @@ import net.minecraft.util.SignatureUpdater; import net.minecraft.util.SignatureValidator; public record MessageSignature(byte[] bytes) { @@ -2406,14 +2406,8 @@ index df9997873c4bbec184379ec14dca1bf4566eb89d..a3e2d03ffe9392cc69e850c5db7d7188 public static final Codec CODEC = ExtraCodecs.BASE64_STRING.xmap(MessageSignature::new, MessageSignature::bytes); public static final int BYTES = 256; - public MessageSignature { -- Preconditions.checkState(bs.length == 256, "Invalid message signature size"); -+ Preconditions.checkState(bytes.length == 256, "Invalid message signature size"); // Paper - decompile fix - } - - public static MessageSignature read(FriendlyByteBuf buf) { diff --git a/src/main/java/net/minecraft/network/chat/OutgoingChatMessage.java b/src/main/java/net/minecraft/network/chat/OutgoingChatMessage.java -index f8773f2982e6cd40661d138a7c32f219cda9225c..74cf1c043beef03cfd5adf481414a5ee78bef2a6 100644 +index e2def0ca552343143e495736d533b3334686fd62..c87b708c368713a23a10ad97704575ee4df27891 100644 --- a/src/main/java/net/minecraft/network/chat/OutgoingChatMessage.java +++ b/src/main/java/net/minecraft/network/chat/OutgoingChatMessage.java @@ -7,6 +7,12 @@ public interface OutgoingChatMessage { @@ -2427,10 +2421,10 @@ index f8773f2982e6cd40661d138a7c32f219cda9225c..74cf1c043beef03cfd5adf481414a5ee + // Paper end + static OutgoingChatMessage create(PlayerChatMessage message) { - return (OutgoingChatMessage)(message.isSystem() ? new OutgoingChatMessage.Disguised(message.decoratedContent()) : new OutgoingChatMessage.Player(message)); - } -@@ -14,7 +20,12 @@ public interface OutgoingChatMessage { - public static record Disguised(Component content) implements OutgoingChatMessage { + return (OutgoingChatMessage)(message.isSystem() + ? new OutgoingChatMessage.Disguised(message.decoratedContent()) +@@ -16,7 +22,12 @@ public interface OutgoingChatMessage { + public static record Disguised(@Override Component content) implements OutgoingChatMessage { @Override public void sendToPlayer(ServerPlayer sender, boolean filterMaskEnabled, ChatType.Bound params) { - sender.connection.sendDisguisedChatMessage(this.content, params); @@ -2443,7 +2437,7 @@ index f8773f2982e6cd40661d138a7c32f219cda9225c..74cf1c043beef03cfd5adf481414a5ee } } -@@ -26,7 +37,13 @@ public interface OutgoingChatMessage { +@@ -28,7 +39,13 @@ public interface OutgoingChatMessage { @Override public void sendToPlayer(ServerPlayer sender, boolean filterMaskEnabled, ChatType.Bound params) { @@ -2458,16 +2452,17 @@ index f8773f2982e6cd40661d138a7c32f219cda9225c..74cf1c043beef03cfd5adf481414a5ee sender.connection.sendPlayerChatMessage(playerChatMessage, params); } diff --git a/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java b/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java -index 901c1aba1653ed70f4af931835ceb12a357aff55..00560ea19c29fd0e16cbe11ab0b07f12a2ff0cb6 100644 +index d89049328641faa889b7c567123ab3a2c63b8df0..81e904e78c9fec49ac244f0a62cef75e5824f2dd 100644 --- a/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java +++ b/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java -@@ -14,7 +14,53 @@ import net.minecraft.Util; - import net.minecraft.util.SignatureUpdater; +@@ -15,8 +15,54 @@ import net.minecraft.util.SignatureUpdater; import net.minecraft.util.SignatureValidator; --public record PlayerChatMessage(SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask) { -+// Paper start - adventure; support signed messages -+public record PlayerChatMessage(SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask, @Nullable net.minecraft.network.chat.ChatDecorator.Result result) { + public record PlayerChatMessage( +- SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask ++ SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask, @Nullable net.minecraft.network.chat.ChatDecorator.Result result // Paper - adventure; support signed messages + ) { ++ // Paper start - adventure; support signed messages + public PlayerChatMessage(SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask) { + this(link, signature, signedBody, unsignedContent, filterMask, null); + } @@ -2513,10 +2508,10 @@ index 901c1aba1653ed70f4af931835ceb12a357aff55..00560ea19c29fd0e16cbe11ab0b07f12 + return new AdventureView(); + } + // Paper end - adventure; support signed messages - public static final MapCodec MAP_CODEC = RecordCodecBuilder.mapCodec((instance) -> { - return instance.group(SignedMessageLink.CODEC.fieldOf("link").forGetter(PlayerChatMessage::link), MessageSignature.CODEC.optionalFieldOf("signature").forGetter((message) -> { - return Optional.ofNullable(message.signature); -@@ -39,7 +85,7 @@ public record PlayerChatMessage(SignedMessageLink link, @Nullable MessageSignatu + public static final MapCodec MAP_CODEC = RecordCodecBuilder.mapCodec( + instance -> instance.group( + SignedMessageLink.CODEC.fieldOf("link").forGetter(PlayerChatMessage::link), +@@ -47,7 +93,7 @@ public record PlayerChatMessage( } public PlayerChatMessage withUnsignedContent(Component unsignedContent) { @@ -2764,7 +2759,7 @@ index 4035faedd9f5f72f262822a9f050178d99be06e4..4c18491a627e66297627abbded1af48b public boolean logIPs() { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a721e9cd0958d7fceed1aba8ae55fefed4e6a887..27a1450696a633578cd44567f240cbc1a4c578ac 100644 +index c57b91c2385d118590bc419e7e6ed586d5d87422..7bad19b7e17bbdac3e8502b6a7e246070ba67e8c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -162,6 +162,7 @@ import net.minecraft.world.damagesource.CombatTracker; @@ -3247,7 +3242,7 @@ index 2e8e786407869b53cb4d7e4ec8f91fe0a3ad8e1a..5e00df1cd2b8a6691b2f9490b1f4c3ed } diff --git a/src/main/java/net/minecraft/world/BossEvent.java b/src/main/java/net/minecraft/world/BossEvent.java -index 4c62df5a3781ec9df4a5c5f1b528649e6e8a62d1..affd1b8c7589ba59330dc0b6fc803cce4ee57397 100644 +index 80029e66d7f78aea9327edebd001d3b88b147128..42891df5db9465005d438cc4b65da2dee63d81f2 100644 --- a/src/main/java/net/minecraft/world/BossEvent.java +++ b/src/main/java/net/minecraft/world/BossEvent.java @@ -13,6 +13,7 @@ public abstract class BossEvent { @@ -4056,7 +4051,7 @@ index 9c1063d92a49c71f4458bf1634bcf9d79302ecca..f24b4732db849893fd870b4b6a49f1c4 @Override public String getTranslationKey() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 7126d8cdeea5eb23176af6a97a99b33961749d71..e78a378f0de48cde3702774970e6cda241b8ddda 100644 +index f5a5496e21e29c6ae9f497f5939823078ac8c1c0..0f51f05f334d262b3435cebce47c3b9f08936398 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -67,6 +67,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0012-Paper-Metrics.patch b/patches/server/0012-Paper-Metrics.patch index 56286148ba..3d7bf9785a 100644 --- a/patches/server/0012-Paper-Metrics.patch +++ b/patches/server/0012-Paper-Metrics.patch @@ -698,7 +698,7 @@ index 0000000000000000000000000000000000000000..6aaed8e8bf8c721fc834da5c76ac72a4 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index faab5e8c952a2af6a286043617cded4e6ca5c3c6..813fd87df0dfed8fe46389db8333d1d9f409fbe4 100644 +index 8499eb5128d3269925ffb2c61d8532e9da47be4a..4917aa64505870a0521bc09ce4d4d3e37c03eaae 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -188,6 +188,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -710,7 +710,7 @@ index faab5e8c952a2af6a286043617cded4e6ca5c3c6..813fd87df0dfed8fe46389db8333d1d9 this.setPvpAllowed(dedicatedserverproperties.pvp); this.setFlightAllowed(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java -index 1d066ce7dcf5f548c2a34d308d4422ab4fd02e5a..0fca20580d81c461e903c8cbd1cf090f5d5083c6 100644 +index e6e070db9a6ee78e65dbff6f18cb5c8784202b9f..bd4c744c597201267418b07b9bcb522805c485eb 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java @@ -83,6 +83,7 @@ public class SpigotConfig diff --git a/patches/server/0013-Paper-Plugins.patch b/patches/server/0013-Paper-Plugins.patch index f4d48c7f53..24c7946f56 100644 --- a/patches/server/0013-Paper-Plugins.patch +++ b/patches/server/0013-Paper-Plugins.patch @@ -7117,10 +7117,10 @@ index f7114d5b8f2f93f62883e24da29afaf9f74ee1a6..8bf0630c0e06950cd99b7ae9898137f7 return foundFrame.orElse(null); diff --git a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java -index ca70cd2e76c94f7a284c9af47c64252855f070a4..b366389fd1aed47e04884e9e495df83ec7398ca3 100644 +index d14613f7d37198276c251e73703b060a971fac28..e741062f0c9c114db47124031c6fa6a6e145a5cd 100644 --- a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java +++ b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java -@@ -338,7 +338,13 @@ public class BuiltInRegistries { +@@ -312,7 +312,13 @@ public class BuiltInRegistries { } public static void bootStrap() { diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch index 184f493236..23cfa84192 100644 --- a/patches/server/0014-Timings-v2.patch +++ b/patches/server/0014-Timings-v2.patch @@ -1393,7 +1393,7 @@ index c4bc491eed487c0a7e30538b0fb46fde91cd7b31..382b55167dede435b034866bd394455f } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 864da662a81b653cd94e2270be262e912e351e21..da755e478d2ab1444c92afd0d916589b2e6f4df4 100644 +index cdac785c54e150c0886046b8d50657c0ca958438..13e8502640abad928282e4b1596f2ad97b4db765 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -142,7 +142,7 @@ import org.bukkit.event.entity.EntityTeleportEvent; diff --git a/patches/server/0016-Further-improve-server-tick-loop.patch b/patches/server/0016-Further-improve-server-tick-loop.patch index 5c66e16921..53f246d057 100644 --- a/patches/server/0016-Further-improve-server-tick-loop.patch +++ b/patches/server/0016-Further-improve-server-tick-loop.patch @@ -12,7 +12,7 @@ Previous implementation did not calculate TPS correctly. Switch to a realistic rolling average and factor in std deviation as an extra reporting variable diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a6a8b5079ceaad90a79a09cab5c38a6fde6d33ee..f32aa4e03ae02d1449101c4aa89c8e0c0fa26ba5 100644 +index 3365d2ec8426888c16873a311226fa69840fa2f0..dd93d4957459556a102b9bf712dd80cb69810cb7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -283,7 +283,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop targetPredicate) { - double d = -1.0D; -@@ -99,6 +104,20 @@ public interface EntityGetter { + double d = -1.0; +@@ -103,6 +108,20 @@ public interface EntityGetter { return this.getNearestPlayer(x, y, z, maxDistance, predicate); } @@ -132,7 +132,7 @@ index b6a3c75b84d9f768afee33aa0f226207b307c1c0..07e7851ca27ea0f8166be52b086a6504 + // Paper end - Affects Spawning API + default boolean hasNearbyAlivePlayer(double x, double y, double z, double range) { - for(Player player : this.players()) { + 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 d53e15a3a70de8e2a405d3a39ff51a3551e82dbc..a592ee955a823309f1936a607823ff93822cd369 100644 diff --git a/patches/server/0034-Configurable-top-of-nether-void-damage.patch b/patches/server/0034-Configurable-top-of-nether-void-damage.patch index e1dc631598..7885dcabd1 100644 --- a/patches/server/0034-Configurable-top-of-nether-void-damage.patch +++ b/patches/server/0034-Configurable-top-of-nether-void-damage.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable top of nether void damage Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c21c4d6df21bc9741f087ac4a328aad04b1cda38..60d94e4d8f69fb7ab8a94a926d18d38fe1c1d6c7 100644 +index 6f687387d8f817646dacf0e0373d50db8ee80dd5..c582d2f447384ca3b46c3b8159b7114d7efef52c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -683,7 +683,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0037-Configurable-end-credits.patch b/patches/server/0037-Configurable-end-credits.patch index d1085599d1..6c261dacae 100644 --- a/patches/server/0037-Configurable-end-credits.patch +++ b/patches/server/0037-Configurable-end-credits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable end credits diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 27a1450696a633578cd44567f240cbc1a4c578ac..3bb3312da2b91616d9d3bb4cb79259ee9e3479bd 100644 +index 7bad19b7e17bbdac3e8502b6a7e246070ba67e8c..68a376743e531dfe06bf6bd7b5be3e7d8e3154d8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1030,6 +1030,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0039-Optimize-explosions.patch b/patches/server/0039-Optimize-explosions.patch index 9434cb4e98..2befa1204f 100644 --- a/patches/server/0039-Optimize-explosions.patch +++ b/patches/server/0039-Optimize-explosions.patch @@ -10,7 +10,7 @@ This patch adds a per-tick cache that is used for storing and retrieving an entity's exposure during an explosion. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c6ce55d48fc71ea097a4a279fcd0dd1d4086be9b..cc2775d94f3b6ebd7f97e14e324bf292d5874de4 100644 +index b951659a8fae8929123be985d02e08f28bd1e49e..001592ec2ec34a744713d4d6c95a00955889facd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1489,6 +1489,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Co-authored-by: SoSeDiK diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 01c70d149b306030c775427f744c4dfab19411cf..dedd0aa332412eec5f976959b67da5405d980ded 100644 +index 4be0935a36bd7b2e0d83e30b6edc43a6429dac22..37cba1e693490e42908f45dc68e60ac3afebbb49 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1930,7 +1930,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0054-Be-a-bit-more-informative-in-maxHealth-exception.patch b/patches/server/0054-Be-a-bit-more-informative-in-maxHealth-exception.patch index aadcfbc397..619d3c8665 100644 --- a/patches/server/0054-Be-a-bit-more-informative-in-maxHealth-exception.patch +++ b/patches/server/0054-Be-a-bit-more-informative-in-maxHealth-exception.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Be a bit more informative in maxHealth exception diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index bcab4757869428e20c67907684e02b64d2958e88..a73a5a8291ddd954f2c7b73a4895933e715c5d68 100644 +index 68c2825c2d43b3c949cc4b08035b0f5d277f34f2..844a97b0eb396835ec72b4d14c9362a2ea2a8709 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -102,7 +102,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0056-Add-configurable-portal-search-radius.patch b/patches/server/0056-Add-configurable-portal-search-radius.patch index 7bba890fae..df6cdd9f85 100644 --- a/patches/server/0056-Add-configurable-portal-search-radius.patch +++ b/patches/server/0056-Add-configurable-portal-search-radius.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add configurable portal search radius diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 60d94e4d8f69fb7ab8a94a926d18d38fe1c1d6c7..71c4b75901ca55e3e08fd59f0e906a0cc5334b89 100644 +index c582d2f447384ca3b46c3b8159b7114d7efef52c..8444518356f32486ee4064446f8c1396276ad015 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3192,7 +3192,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0057-Add-velocity-warnings.patch b/patches/server/0057-Add-velocity-warnings.patch index 8439175a6d..ad776ec3f5 100644 --- a/patches/server/0057-Add-velocity-warnings.patch +++ b/patches/server/0057-Add-velocity-warnings.patch @@ -17,7 +17,7 @@ index 6135e8c0669886260afacdaa7405bf55597b17a6..2b2d0c8ed68eb86812877026a0bb5c4a static { ConfigurationSerialization.registerClass(CraftOfflinePlayer.class); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 6871fe86c9cda00d0187f3df827772200eca1bcc..4a875d038f1ab7f2bdc5f290a6ad71e4b61c6822 100644 +index 85d77772b003e56382f8c3b55fc11a9ae1ec535f..1be5c322abcec8ec32b84dec02d386e53cb5e16a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -129,10 +129,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0060-Disable-Scoreboards-for-non-players-by-default.patch b/patches/server/0060-Disable-Scoreboards-for-non-players-by-default.patch index b0ec269133..fae95eea55 100644 --- a/patches/server/0060-Disable-Scoreboards-for-non-players-by-default.patch +++ b/patches/server/0060-Disable-Scoreboards-for-non-players-by-default.patch @@ -11,7 +11,7 @@ So avoid looking up scoreboards and short circuit to the "not on a team" logic which is most likely to be true. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 71c4b75901ca55e3e08fd59f0e906a0cc5334b89..4dc659760272a13fc8c0f05c543bed634784af6c 100644 +index 8444518356f32486ee4064446f8c1396276ad015..9fb52c98455d547bdde6d56689528e78a5ddfed5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2820,6 +2820,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -23,7 +23,7 @@ index 71c4b75901ca55e3e08fd59f0e906a0cc5334b89..4dc659760272a13fc8c0f05c543bed63 } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5ae9f9a4cb903909cb26a612a847d12515c52d91..7f85da14097ad559e5a8f82474f7a71a078b3e77 100644 +index 13e8502640abad928282e4b1596f2ad97b4db765..99e91dd930bb33a006b2be3ad678df5861eb8eeb 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -841,6 +841,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0069-Add-World-Util-Methods.patch b/patches/server/0069-Add-World-Util-Methods.patch index 527a47153c..80106855ae 100644 --- a/patches/server/0069-Add-World-Util-Methods.patch +++ b/patches/server/0069-Add-World-Util-Methods.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add World Util Methods Methods that can be used for other patches to help improve logic. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index eb2b4ba79488c3d43421c39852c36c4387372f38..c3138a2ff6446fb72d9eb1bd31f851d7df6b94f2 100644 +index b91df88036d3ec2579883a9c65a7b80d4c0be81b..2ad3c16bf36972ff55269612f02cdb4f558f35b7 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -347,6 +347,22 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0070-Custom-replacement-for-eaten-items.patch b/patches/server/0070-Custom-replacement-for-eaten-items.patch index dc47f3b1f3..fe631ab089 100644 --- a/patches/server/0070-Custom-replacement-for-eaten-items.patch +++ b/patches/server/0070-Custom-replacement-for-eaten-items.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Custom replacement for eaten items diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7f85da14097ad559e5a8f82474f7a71a078b3e77..2356ceb62216086e7ac19e994803d5f6a0f89f83 100644 +index 99e91dd930bb33a006b2be3ad678df5861eb8eeb..13438b60bb3891e40bf0b5e942e0b2ba744121f9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3719,10 +3719,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch index cc09649ab9..5e32ddcea2 100644 --- a/patches/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch +++ b/patches/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch @@ -5,7 +5,7 @@ Subject: [PATCH] handle NaN health/absorb values and repair bad data diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2356ceb62216086e7ac19e994803d5f6a0f89f83..ba79c3153a2679d6a0d9ed3d1a25a999f7e78950 100644 +index 13438b60bb3891e40bf0b5e942e0b2ba744121f9..8447a47e1c493001ea9f54392e02f14da14cb25d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -802,7 +802,13 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0072-Use-a-Shared-Random-for-Entities.patch b/patches/server/0072-Use-a-Shared-Random-for-Entities.patch index 072a1ee29a..95f53b5fed 100644 --- a/patches/server/0072-Use-a-Shared-Random-for-Entities.patch +++ b/patches/server/0072-Use-a-Shared-Random-for-Entities.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use a Shared Random for Entities Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4dc659760272a13fc8c0f05c543bed634784af6c..93dc90cc4e90d9db4712efff80f811d7c9d55caa 100644 +index 9fb52c98455d547bdde6d56689528e78a5ddfed5..52220795bf8a73c63837b4e07b1abf99c0344322 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -166,6 +166,79 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -99,15 +99,15 @@ index 4dc659760272a13fc8c0f05c543bed634784af6c..93dc90cc4e90d9db4712efff80f811d7 this.fluidHeight = new Object2DoubleArrayMap(2); this.fluidOnEyes = new HashSet(); diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java -index 891d8b4c8cb73d5e310970066831ab3e2af14e91..4f32597c7af34d599f6658fe4962d41624e60419 100644 +index 1d1a4a52f3a2361688fa81ca0a2cd2e00abe652d..051fb9f1e0d91b1cb1e2dec9a03f3b26fe64c82a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Squid.java +++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java @@ -44,7 +44,7 @@ public class Squid extends WaterAnimal { public Squid(EntityType type, Level world) { super(type, world); -- this.random.setSeed((long)this.getId()); -+ //this.random.setSeed((long)this.getId()); // Paper - Share random for entities to make them more random +- this.random.setSeed(this.getId()); ++ //this.random.setSeed(this.getId()); // Paper - Share random for entities to make them more random this.tentacleSpeed = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F; } diff --git a/patches/server/0073-Configurable-spawn-chances-for-skeleton-horses.patch b/patches/server/0073-Configurable-spawn-chances-for-skeleton-horses.patch index 604e850fb3..e950cd8144 100644 --- a/patches/server/0073-Configurable-spawn-chances-for-skeleton-horses.patch +++ b/patches/server/0073-Configurable-spawn-chances-for-skeleton-horses.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable spawn chances for skeleton horses diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c9113f7e0d9e1b9861f667c40e2702c6bb1d4e53..a127acc6c44bfd078e06c74b408d62df6e85d1fe 100644 +index 5a20dc552423717f91178068dc5f8a30be13ea54..ea4eacf66651798185e1c445979a465e173571d0 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -614,7 +614,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0075-Entity-AddTo-RemoveFrom-World-Events.patch b/patches/server/0075-Entity-AddTo-RemoveFrom-World-Events.patch index 953744dca3..5c270f17c5 100644 --- a/patches/server/0075-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/patches/server/0075-Entity-AddTo-RemoveFrom-World-Events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity AddTo/RemoveFrom World Events diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5975cc2fa72609ea5f3e6f99155d6e5bc321a321..0da9a1f428e2fa412de08296e1bafaea0ddd05d0 100644 +index 1c3b12692094c1eaa086ebb2f060b22aaf9d9b39..211f785adf6b8bfc6b974da7898cb2f4359626c9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2161,6 +2161,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0077-EntityPathfindEvent.patch b/patches/server/0077-EntityPathfindEvent.patch index c262d243bd..d46df1d840 100644 --- a/patches/server/0077-EntityPathfindEvent.patch +++ b/patches/server/0077-EntityPathfindEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] EntityPathfindEvent Fires when an Entity decides to start moving to a location. diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java -index 3db41017c6690d4519564496edd8e7365b2f5a22..e35c38feb62c3345d82636081decc09db9f061ab 100644 +index d3a279a1a14f99aee8dd516552e5c60de92b4969..a3e0c5af4cc9323c02e88e768cbda9e46854aea1 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java @@ -40,7 +40,7 @@ public class FlyingPathNavigation extends PathNavigation { @@ -19,7 +19,7 @@ index 3db41017c6690d4519564496edd8e7365b2f5a22..e35c38feb62c3345d82636081decc09d @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java -index 12564909abff7da4e5a4bb3d004a7ede2ffda12d..47de460ff5435ea6712c800c77093126908d0fce 100644 +index e8e515dc312e266f7991f150e83a2371f914c15a..8d433e354ecc91f823822a95224c9d2e2a59bbbd 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java @@ -41,7 +41,7 @@ public class GroundPathNavigation extends PathNavigation { @@ -28,10 +28,10 @@ index 12564909abff7da4e5a4bb3d004a7ede2ffda12d..47de460ff5435ea6712c800c77093126 @Override - public Path createPath(BlockPos target, int distance) { + public Path createPath(BlockPos target, @javax.annotation.Nullable Entity entity, int distance) { // Paper - EntityPathfindEvent - LevelChunk levelChunk = this.level.getChunkSource().getChunkNow(SectionPos.blockToSectionCoord(target.getX()), SectionPos.blockToSectionCoord(target.getZ())); - if (levelChunk == null) { - return null; -@@ -52,7 +52,7 @@ public class GroundPathNavigation extends PathNavigation { + LevelChunk levelChunk = this.level + .getChunkSource() + .getChunkNow(SectionPos.blockToSectionCoord(target.getX()), SectionPos.blockToSectionCoord(target.getZ())); +@@ -56,7 +56,7 @@ public class GroundPathNavigation extends PathNavigation { } if (blockPos.getY() > this.level.getMinBuildHeight()) { @@ -39,16 +39,18 @@ index 12564909abff7da4e5a4bb3d004a7ede2ffda12d..47de460ff5435ea6712c800c77093126 + return super.createPath(blockPos.above(), entity, distance); // Paper - EntityPathfindEvent } - while(blockPos.getY() < this.level.getMaxBuildHeight() && levelChunk.getBlockState(blockPos).isAir()) { -@@ -63,20 +63,20 @@ public class GroundPathNavigation extends PathNavigation { + while (blockPos.getY() < this.level.getMaxBuildHeight() && levelChunk.getBlockState(blockPos).isAir()) { +@@ -67,7 +67,7 @@ public class GroundPathNavigation extends PathNavigation { } if (!levelChunk.getBlockState(target).isSolid()) { - return super.createPath(target, distance); + return super.createPath(target, entity, distance); // Paper - EntityPathfindEvent } else { - BlockPos blockPos2; - for(blockPos2 = target.above(); blockPos2.getY() < this.level.getMaxBuildHeight() && levelChunk.getBlockState(blockPos2).isSolid(); blockPos2 = blockPos2.above()) { + BlockPos blockPos2 = target.above(); + +@@ -75,14 +75,14 @@ public class GroundPathNavigation extends PathNavigation { + blockPos2 = blockPos2.above(); } - return super.createPath(blockPos2, distance); @@ -65,10 +67,10 @@ index 12564909abff7da4e5a4bb3d004a7ede2ffda12d..47de460ff5435ea6712c800c77093126 private int getSurfaceY() { diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..85b3da93b6dd8e1a40d884db0721f30b9b237c69 100644 +index 480a95a7fb342b3f92306079055a06f15541200a..b5347d972c657706f8b2ed4ebf2365ba9a480895 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -@@ -110,7 +110,13 @@ public abstract class PathNavigation { +@@ -109,7 +109,13 @@ public abstract class PathNavigation { @Nullable public Path createPath(BlockPos target, int distance) { @@ -83,7 +85,7 @@ index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..85b3da93b6dd8e1a40d884db0721f30b } @Nullable -@@ -120,7 +126,7 @@ public abstract class PathNavigation { +@@ -119,7 +125,7 @@ public abstract class PathNavigation { @Nullable public Path createPath(Entity entity, int distance) { @@ -92,7 +94,7 @@ index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..85b3da93b6dd8e1a40d884db0721f30b } @Nullable -@@ -130,6 +136,17 @@ public abstract class PathNavigation { +@@ -129,6 +135,17 @@ public abstract class PathNavigation { @Nullable protected Path createPath(Set positions, int range, boolean useHeadPos, int distance, float followRange) { @@ -109,8 +111,8 @@ index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..85b3da93b6dd8e1a40d884db0721f30b + // Paper end - EntityPathfindEvent if (positions.isEmpty()) { return null; - } else if (this.mob.getY() < (double)this.level.getMinBuildHeight()) { -@@ -139,6 +156,23 @@ public abstract class PathNavigation { + } else if (this.mob.getY() < this.level.getMinBuildHeight()) { +@@ -138,6 +155,23 @@ public abstract class PathNavigation { } else if (this.path != null && !this.path.isDone() && positions.contains(this.targetPos)) { return this.path; } else { @@ -133,9 +135,9 @@ index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..85b3da93b6dd8e1a40d884db0721f30b + // Paper end - EntityPathfindEvent this.level.getProfiler().push("pathfind"); BlockPos blockPos = useHeadPos ? this.mob.blockPosition().above() : this.mob.blockPosition(); - int i = (int)(followRange + (float)range); + int i = (int)(followRange + range); diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java -index e9b49c72aa73dfcef6c136d9ed7bb5044fe8405d..185550dce31b3b31a1d1dfcebb29147131bfad66 100644 +index 0398771544d9d8751dbfea0a27aec2b5eee21383..35c95dd6be4898fcc6f55c262a1f99d7b0d34f29 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java @@ -16,9 +16,9 @@ public class WallClimberNavigation extends GroundPathNavigation { diff --git a/patches/server/0079-Do-not-load-chunks-for-Pathfinding.patch b/patches/server/0079-Do-not-load-chunks-for-Pathfinding.patch index 3dfd3d8f38..55c9f2fd6e 100644 --- a/patches/server/0079-Do-not-load-chunks-for-Pathfinding.patch +++ b/patches/server/0079-Do-not-load-chunks-for-Pathfinding.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Do not load chunks for Pathfinding diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java -index cd6778fa1d4261caf846ae71702621d2ec6b98c1..dbb6a7d950b1a6f58a845b4d399ead6eb6d4fe14 100644 +index 79baaf943a01912c423823e1c153c062d5316232..9e51dcaae00967bcfd30615b1d978c333fafaa8f 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java -@@ -465,7 +465,12 @@ public class WalkNodeEvaluator extends NodeEvaluator { - for(int n = -1; n <= 1; ++n) { +@@ -469,7 +469,12 @@ public class WalkNodeEvaluator extends NodeEvaluator { + for (int n = -1; n <= 1; n++) { if (l != 0 || n != 0) { pos.set(i + l, j + m, k + n); - BlockState blockState = world.getBlockState(pos); @@ -22,7 +22,7 @@ index cd6778fa1d4261caf846ae71702621d2ec6b98c1..dbb6a7d950b1a6f58a845b4d399ead6e if (blockState.is(Blocks.CACTUS) || blockState.is(Blocks.SWEET_BERRY_BUSH)) { return BlockPathTypes.DANGER_OTHER; } -@@ -481,6 +486,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { +@@ -485,6 +490,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { if (blockState.is(Blocks.WITHER_ROSE) || blockState.is(Blocks.POINTED_DRIPSTONE)) { return BlockPathTypes.DAMAGE_CAUTIOUS; } @@ -30,7 +30,7 @@ index cd6778fa1d4261caf846ae71702621d2ec6b98c1..dbb6a7d950b1a6f58a845b4d399ead6e } } } -@@ -490,7 +496,8 @@ public class WalkNodeEvaluator extends NodeEvaluator { +@@ -494,7 +500,8 @@ public class WalkNodeEvaluator extends NodeEvaluator { } protected static BlockPathTypes getBlockPathTypeRaw(BlockGetter world, BlockPos pos) { diff --git a/patches/server/0080-Add-PlayerUseUnknownEntityEvent.patch b/patches/server/0080-Add-PlayerUseUnknownEntityEvent.patch index 6b9696541f..06d7226a38 100644 --- a/patches/server/0080-Add-PlayerUseUnknownEntityEvent.patch +++ b/patches/server/0080-Add-PlayerUseUnknownEntityEvent.patch @@ -9,10 +9,10 @@ virtual entities/entities that are not actually known to the server. Co-authored-by: Nassim Jahnke diff --git a/src/main/java/net/minecraft/network/protocol/game/ServerboundInteractPacket.java b/src/main/java/net/minecraft/network/protocol/game/ServerboundInteractPacket.java -index 644a0fdea6576647539b96528717dbaeab498d93..221e64a66ff12a8de5c75992fc26a54a03b317e7 100644 +index b1bc671490329379e0a61466c13ca88c49259721..3a377e887989f591c671fec31208255252b58a78 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ServerboundInteractPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundInteractPacket.java -@@ -169,4 +169,14 @@ public class ServerboundInteractPacket implements Packet> 32 >> this.divideShift); +- return (int)(index * l + m >> 32 >> this.divideShift); + //long l = Integer.toUnsignedLong(this.divideMul); // Paper - Perf: Optimize SimpleBitStorage + //long m = Integer.toUnsignedLong(this.divideAdd); // Paper - Perf: Optimize SimpleBitStorage -+ return (int) ((long) index * this.divideMulUnsigned + this.divideAddUnsigned >> 32 >> this.divideShift); // Paper - Perf: Optimize SimpleBitStorage ++ return (int) (index * this.divideMulUnsigned + this.divideAddUnsigned >> 32 >> this.divideShift); // Paper - Perf: Optimize SimpleBitStorage } @Override @@ -58,7 +58,7 @@ index f677cc252d5510a2365e73dc42bd266e56115e83..acd820b19aff4e093536cc47002a8994 int i = this.cellIndex(index); long l = this.data[i]; int j = (index - i * this.valuesPerLong) * this.bits; -@@ -91,9 +91,9 @@ public class SimpleBitStorage implements BitStorage { +@@ -282,9 +282,9 @@ public class SimpleBitStorage implements BitStorage { } @Override @@ -71,7 +71,7 @@ index f677cc252d5510a2365e73dc42bd266e56115e83..acd820b19aff4e093536cc47002a8994 int i = this.cellIndex(index); long l = this.data[i]; int j = (index - i * this.valuesPerLong) * this.bits; -@@ -101,8 +101,8 @@ public class SimpleBitStorage implements BitStorage { +@@ -292,8 +292,8 @@ public class SimpleBitStorage implements BitStorage { } @Override @@ -83,7 +83,7 @@ index f677cc252d5510a2365e73dc42bd266e56115e83..acd820b19aff4e093536cc47002a8994 long l = this.data[i]; int j = (index - i * this.valuesPerLong) * this.bits; diff --git a/src/main/java/net/minecraft/util/ZeroBitStorage.java b/src/main/java/net/minecraft/util/ZeroBitStorage.java -index 0710c72441c832a93275f3f9bd9dd7643dc0f229..b7a3f15dc1ed9e9322a86921052984c7cbd3262a 100644 +index 8dd5a5899e9b5d8b3f1a6064dd7c1580313da69e..50040c497a819cd1229042ab3cb057d34a32cacc 100644 --- a/src/main/java/net/minecraft/util/ZeroBitStorage.java +++ b/src/main/java/net/minecraft/util/ZeroBitStorage.java @@ -13,21 +13,21 @@ public class ZeroBitStorage implements BitStorage { diff --git a/patches/server/0085-Configurable-Player-Collision.patch b/patches/server/0085-Configurable-Player-Collision.patch index 2404b35354..d1204a16fd 100644 --- a/patches/server/0085-Configurable-Player-Collision.patch +++ b/patches/server/0085-Configurable-Player-Collision.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable Player Collision diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java -index 3d2a689d11bfa230bab61a2a65c6051328f6b78d..cf31771648549ab6d7e4e38b30409ca48a976bea 100644 +index f767bc67fb2b63e0476771b7caabc702ce05c800..0f05f1c2a30fef68ae635f4a2476b8cd1b6a127d 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java -@@ -193,7 +193,7 @@ public class ClientboundSetPlayerTeamPacket implements Packet 11 - state.getValue(AGE) - state.getLightBlock(world, pos) && this.slightlyMelt(state, world, pos)) { - BlockPos.MutableBlockPos mutableBlockPos = new BlockPos.MutableBlockPos(); - -@@ -47,12 +48,12 @@ public class FrostedIceBlock extends IceBlock { + if ((random.nextInt(3) == 0 || this.fewerNeigboursThan(world, pos, 4)) + && world.getMaxLocalRawBrightness(pos) > 11 - state.getValue(AGE) - state.getLightBlock(world, pos) + && this.slightlyMelt(state, world, pos)) { +@@ -49,11 +50,11 @@ public class FrostedIceBlock extends IceBlock { mutableBlockPos.setWithOffset(pos, direction); BlockState blockState = world.getBlockState(mutableBlockPos); if (blockState.is(this) && !this.slightlyMelt(blockState, world, mutableBlockPos)) { @@ -24,7 +24,6 @@ index 5c8f0751def701359b388eabeb14d1dc83438c5a..f3ec0f8b8faca6aa073e76af2477f78a + world.scheduleTick(mutableBlockPos, this, Mth.nextInt(random, world.paperConfig().environment.frostedIce.delay.min, world.paperConfig().environment.frostedIce.delay.max)); // Paper - Frosted ice options } } - } else { - world.scheduleTick(pos, this, Mth.nextInt(random, 20, 40)); + world.scheduleTick(pos, this, Mth.nextInt(random, world.paperConfig().environment.frostedIce.delay.min, world.paperConfig().environment.frostedIce.delay.max)); // Paper - Frosted ice options diff --git a/patches/server/0091-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch b/patches/server/0091-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch index ca99379663..5ec276607a 100644 --- a/patches/server/0091-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch +++ b/patches/server/0091-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Don't save empty scoreboard teams to scoreboard.dat diff --git a/src/main/java/net/minecraft/world/scores/ScoreboardSaveData.java b/src/main/java/net/minecraft/world/scores/ScoreboardSaveData.java -index 28e631be85fb06245e152e1f5e0bae16b7358cfd..6c3ed29e13ea78ceb1c9bb11ce0d9938bb8b4c62 100644 +index 9341349fb16256701450e452270fb85ef213e4d6..df7d9aa45d09e5aaee8c94d48bab99279335fff4 100644 --- a/src/main/java/net/minecraft/world/scores/ScoreboardSaveData.java +++ b/src/main/java/net/minecraft/world/scores/ScoreboardSaveData.java -@@ -148,6 +148,7 @@ public class ScoreboardSaveData extends SavedData { +@@ -144,6 +144,7 @@ public class ScoreboardSaveData extends SavedData { ListTag listTag = new ListTag(); - for(PlayerTeam playerTeam : this.scoreboard.getPlayerTeams()) { + for (PlayerTeam playerTeam : this.scoreboard.getPlayerTeams()) { + if (!io.papermc.paper.configuration.GlobalConfiguration.get().scoreboards.saveEmptyScoreboardTeams && playerTeam.getPlayers().isEmpty()) continue; // Paper - Don't save empty scoreboard teams to scoreboard.dat CompoundTag compoundTag = new CompoundTag(); compoundTag.putString("Name", playerTeam.getName()); diff --git a/patches/server/0092-LootTable-API-and-replenishable-lootables.patch b/patches/server/0092-LootTable-API-and-replenishable-lootables.patch index d3cd902aae..f17c37b15c 100644 --- a/patches/server/0092-LootTable-API-and-replenishable-lootables.patch +++ b/patches/server/0092-LootTable-API-and-replenishable-lootables.patch @@ -504,7 +504,7 @@ index 0000000000000000000000000000000000000000..9cfa5d36a6991067a3866e0d437749fa + } +} diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 93dc90cc4e90d9db4712efff80f811d7c9d55caa..3112eace3d9d3d7b21dfc267993cb9d84819dc11 100644 +index 52220795bf8a73c63837b4e07b1abf99c0344322..a6a97dca29c900278885b5ab1741229fcfaf7b36 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -239,6 +239,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -596,34 +596,32 @@ index 0e68f692bb9b397cffd7352e7340465b5e3719f4..58af87b8faf4f8d6bdb111c49a429466 public List transaction = new java.util.ArrayList(); private int maxStack = MAX_STACK; diff --git a/src/main/java/net/minecraft/world/entity/vehicle/ContainerEntity.java b/src/main/java/net/minecraft/world/entity/vehicle/ContainerEntity.java -index e0fbacd574e0c83c2e1d164ded8e9ccf4af30480..7529751afa2932fd16bc4591189b0358268a7b14 100644 +index 23551b97bdd865c30d7402cff0e221cfe4b1d9d4..f4ad1eea5bced6997edbc3a5ed1360b12b70f68f 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/ContainerEntity.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/ContainerEntity.java -@@ -59,10 +59,9 @@ public interface ContainerEntity extends Container, MenuProvider { +@@ -59,9 +59,8 @@ public interface ContainerEntity extends Container, MenuProvider { if (this.getLootTableSeed() != 0L) { nbt.putLong("LootTableSeed", this.getLootTableSeed()); } - } else { - ContainerHelper.saveAllItems(nbt, this.getItemStacks()); } - + ContainerHelper.saveAllItems(nbt, this.getItemStacks()); // Paper - always save the items, table may still remain } default void readChestVehicleSaveData(CompoundTag nbt) { -@@ -70,10 +69,9 @@ public interface ContainerEntity extends Container, MenuProvider { +@@ -69,9 +68,8 @@ public interface ContainerEntity extends Container, MenuProvider { if (nbt.contains("LootTable", 8)) { this.setLootTable(new ResourceLocation(nbt.getString("LootTable"))); this.setLootTableSeed(nbt.getLong("LootTableSeed")); - } else { - ContainerHelper.loadAllItems(nbt, this.getItemStacks()); } - + ContainerHelper.loadAllItems(nbt, this.getItemStacks()); // Paper - always load the items, table may still remain } default void chestVehicleDestroyed(DamageSource source, Level world, Entity vehicle) { -@@ -96,13 +94,13 @@ public interface ContainerEntity extends Container, MenuProvider { +@@ -93,13 +91,13 @@ public interface ContainerEntity extends Container, MenuProvider { default void unpackChestVehicleLootTable(@Nullable Player player) { MinecraftServer minecraftServer = this.level().getServer(); @@ -634,14 +632,14 @@ index e0fbacd574e0c83c2e1d164ded8e9ccf4af30480..7529751afa2932fd16bc4591189b0358 CriteriaTriggers.GENERATE_LOOT.trigger((ServerPlayer)player, this.getLootTable()); } -- this.setLootTable((ResourceLocation)null); +- this.setLootTable(null); + this.getLootableData().processRefill(player); // Paper - LootParams.Builder builder = (new LootParams.Builder((ServerLevel)this.level())).withParameter(LootContextParams.ORIGIN, this.position()); + LootParams.Builder builder = new LootParams.Builder((ServerLevel)this.level()).withParameter(LootContextParams.ORIGIN, this.position()); if (player != null) { builder.withLuck(player.getLuck()).withParameter(LootContextParams.THIS_ENTITY, player); -@@ -176,4 +174,13 @@ public interface ContainerEntity extends Container, MenuProvider { +@@ -171,4 +169,13 @@ public interface ContainerEntity extends Container, MenuProvider { default boolean isChestVehicleStillValid(Player player) { - return !this.isRemoved() && this.position().closerThan(player.position(), 8.0D); + return !this.isRemoved() && this.position().closerThan(player.position(), 8.0); } + // Paper start + default Entity getEntity() { @@ -654,7 +652,7 @@ index e0fbacd574e0c83c2e1d164ded8e9ccf4af30480..7529751afa2932fd16bc4591189b0358 + // Paper end } diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -index aa4181e59f88be04a3605352fa5ceb3e04149dd3..e4e827a57c2913c719282cc0d5da33586607677b 100644 +index 1c3763d892e4e2df23ccf7a9fdb126e59b36ab65..f33c4633094002a3dd0c54353b62f7b358628be3 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java @@ -17,6 +17,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc @@ -717,7 +715,7 @@ index aa4181e59f88be04a3605352fa5ceb3e04149dd3..e4e827a57c2913c719282cc0d5da3358 + @Override public boolean isEmpty() { - this.unpackLootTable((Player)null); + this.unpackLootTable(null); diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBrushableBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBrushableBlock.java index 86076a9d2a3b1044c96518cbaeee66d60a8a22c6..c268513bc5719d80e1c3d73de53b85ec7f852fa9 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBrushableBlock.java diff --git a/patches/server/0094-Async-GameProfileCache-saving.patch b/patches/server/0094-Async-GameProfileCache-saving.patch index 702f554313..24ad3a2b3a 100644 --- a/patches/server/0094-Async-GameProfileCache-saving.patch +++ b/patches/server/0094-Async-GameProfileCache-saving.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Async GameProfileCache saving diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2c500fed04982c502b3e6fb1687b38bfaaa37f69..fcaa31ccd6f6e6affaccf76403dbab26e6932571 100644 +index 20ee0fd8f5a808436fae60b64fc3e8966146ba71..b9c006bef0491c401ae3a447a3f67742a75cb74f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -980,7 +980,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { @@ -23,10 +23,10 @@ index 3084343b724098de9791bb74ffb037a499c0c430..8da64429eaf083578c672cd34f52dd42 return true; } else { diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java -index 647e295c7761b95db6da28f6fd043ec963f27872..0a7a6c0e7635d0ada101074d4229df7edc6dd31b 100644 +index bc7890e8ccfb133992605b06b37114424ccb093d..cd7efe4a09e114ab68a90365a6f5363a5c4c17a2 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java -@@ -45,8 +45,7 @@ public class EnumProperty & StringRepresentable> extends Prope +@@ -44,8 +44,7 @@ public class EnumProperty & StringRepresentable> extends Prope return value.getSerializedName(); } @@ -37,7 +37,7 @@ index 647e295c7761b95db6da28f6fd043ec963f27872..0a7a6c0e7635d0ada101074d4229df7e return true; } else { diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java -index d6c1b1817ba79a652c4094f003a7d899d4939971..cbe6e4579cc55a427dd8f8fe403478faf6d35b8f 100644 +index 3c590d400032d8266de63aae301fedbd83d37a1d..3a850321a4bcc68058483b5fd53e829c425a68af 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java @@ -35,8 +35,7 @@ public class IntegerProperty extends Property { @@ -51,21 +51,14 @@ index d6c1b1817ba79a652c4094f003a7d899d4939971..cbe6e4579cc55a427dd8f8fe403478fa return true; } else { diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java -index d1f2e29623b15fdb99ba082fd757a54fd4713761..08c2e4ba9147fbea41e0fce26ad20586832a525b 100644 +index ce06c1702e9ff2e966d94a0d622264e16ded493c..bad6c58b0adc1ca630d3e943a86a2bc66dd94c9f 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java -@@ -70,14 +70,7 @@ public abstract class Property> { +@@ -70,7 +70,7 @@ public abstract class Property> { @Override public boolean equals(Object object) { -- if (this == object) { -- return true; -- } else if (!(object instanceof Property)) { -- return false; -- } else { -- Property property = (Property)object; -- return this.clazz.equals(property.clazz) && this.name.equals(property.name); -- } +- return this == object || object instanceof Property property && this.clazz.equals(property.clazz) && this.name.equals(property.name); + return this == object; // Paper - Perf: Optimize hashCode/equals } diff --git a/patches/server/0103-Configurable-packet-in-spam-threshold.patch b/patches/server/0103-Configurable-packet-in-spam-threshold.patch index 73f1819cfc..45836f3841 100644 --- a/patches/server/0103-Configurable-packet-in-spam-threshold.patch +++ b/patches/server/0103-Configurable-packet-in-spam-threshold.patch @@ -5,7 +5,7 @@ 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 c1c1abd45cae5f1fe010e73199e4b228f919c6a6..f9581c2f53e7a73b942505be8f00ffc3ac1774a9 100644 +index 801e1727bd291f647c91e2c325810ead070f3752..b5471f86e4c9b5167ac96eb7a114cde0f6a35a9e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1529,13 +1529,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0104-Configurable-flying-kick-messages.patch b/patches/server/0104-Configurable-flying-kick-messages.patch index 055290f358..e0b03a6592 100644 --- a/patches/server/0104-Configurable-flying-kick-messages.patch +++ b/patches/server/0104-Configurable-flying-kick-messages.patch @@ -5,7 +5,7 @@ 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 f9581c2f53e7a73b942505be8f00ffc3ac1774a9..6fec49a0833300ff0e4ef0f22d21480dfac9a2c7 100644 +index b5471f86e4c9b5167ac96eb7a114cde0f6a35a9e..69e525776d57b2fe80d8bb9e94e981e553f329a3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -338,7 +338,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0111-Prevent-Pathfinding-out-of-World-Border.patch b/patches/server/0111-Prevent-Pathfinding-out-of-World-Border.patch index f473b6a56e..6c97c14e17 100644 --- a/patches/server/0111-Prevent-Pathfinding-out-of-World-Border.patch +++ b/patches/server/0111-Prevent-Pathfinding-out-of-World-Border.patch @@ -13,10 +13,10 @@ by adding code to all overrides in: to return BLOCKED if it is outside the world border. diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index 85b3da93b6dd8e1a40d884db0721f30b9b237c69..c3b406e6302ae0ac1ef56253ab614ca201a7a1c8 100644 +index fa5088945adc5e41e34cc2dc21a1762d106254c8..25a9f1fd69fbafab5129740e26e9741e35885ce0 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -@@ -159,7 +159,7 @@ public abstract class PathNavigation { +@@ -158,7 +158,7 @@ public abstract class PathNavigation { // Paper start - EntityPathfindEvent boolean copiedSet = false; for (BlockPos possibleTarget : positions) { diff --git a/patches/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch b/patches/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch index 16a0ca9ffb..5a64d1f8f3 100644 --- a/patches/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch +++ b/patches/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimize Level.hasChunkAt(BlockPosition)Z Reduce method invocations for World.isLoaded(BlockPosition)Z diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 610ce2574a61fcee00f5224b554b285079a75698..e4a2afc20efcfd7a6107dc56217ae8451dd5a7d6 100644 +index 1ecde4f1dff5bfa67c526a699061f1952da59fae..926e4f9760e07ab66405132de2e96306211e5b9c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -348,6 +348,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0114-Configurable-Cartographer-Treasure-Maps.patch b/patches/server/0114-Configurable-Cartographer-Treasure-Maps.patch index 61fc245ddd..7253601c50 100644 --- a/patches/server/0114-Configurable-Cartographer-Treasure-Maps.patch +++ b/patches/server/0114-Configurable-Cartographer-Treasure-Maps.patch @@ -9,10 +9,10 @@ Also allow turning off treasure maps all together as they can eat up Map ID's which are limited in quantity. diff --git a/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java b/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java -index 43fb44b8cd164b0815335a32f04879b301a54728..318b7c7cb2a88e8d4dc4456154431fe7bfe2e0dc 100644 +index 22dd4d2a53cc99bcc863f7ef75e2e7b711ceb2b6..9b9afc01c287528b911e13cabd95f41c0d822a48 100644 --- a/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java +++ b/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java -@@ -451,7 +451,8 @@ public class VillagerTrades { +@@ -1641,7 +1641,8 @@ public class VillagerTrades { return null; } else { ServerLevel serverLevel = (ServerLevel)entity.level(); @@ -23,14 +23,13 @@ index 43fb44b8cd164b0815335a32f04879b301a54728..318b7c7cb2a88e8d4dc4456154431fe7 ItemStack itemStack = MapItem.create(serverLevel, blockPos.getX(), blockPos.getZ(), (byte)2, true, true); MapItem.renderBiomePreviewMap(serverLevel, itemStack); diff --git a/src/main/java/net/minecraft/world/level/storage/loot/functions/ExplorationMapFunction.java b/src/main/java/net/minecraft/world/level/storage/loot/functions/ExplorationMapFunction.java -index dcc6da6641e78cd80bd148ba644475811a1fbf4d..76b6544e75e52f931bed5bd9b25eda41957beaf7 100644 +index 59fa50fb8614d1492e31362feccc100701b56b8e..0bf1291fa4abf7f17381a48651a846379cedb3e1 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/functions/ExplorationMapFunction.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/functions/ExplorationMapFunction.java -@@ -75,7 +75,16 @@ public class ExplorationMapFunction extends LootItemConditionalFunction { +@@ -83,8 +83,17 @@ public class ExplorationMapFunction extends LootItemConditionalFunction { Vec3 vec3 = context.getParamOrNull(LootContextParams.ORIGIN); if (vec3 != null) { ServerLevel serverLevel = context.getLevel(); -- BlockPos blockPos = serverLevel.findNearestMapStructure(this.destination, BlockPos.containing(vec3), this.searchRadius, this.skipKnownStructures); + // Paper start - Configurable cartographer treasure maps + if (!serverLevel.paperConfig().environment.treasureMaps.enabled) { + /* @@ -39,8 +38,10 @@ index dcc6da6641e78cd80bd148ba644475811a1fbf4d..76b6544e75e52f931bed5bd9b25eda41 + */ + return stack; + } -+ BlockPos blockPos = serverLevel.findNearestMapStructure(this.destination, BlockPos.containing(vec3), this.searchRadius, !serverLevel.paperConfig().environment.treasureMaps.findAlreadyDiscoveredLootTable.or(!this.skipKnownStructures)); + // Paper end - Configurable cartographer treasure maps + BlockPos blockPos = serverLevel.findNearestMapStructure( +- this.destination, BlockPos.containing(vec3), this.searchRadius, this.skipKnownStructures ++ this.destination, BlockPos.containing(vec3), this.searchRadius, !serverLevel.paperConfig().environment.treasureMaps.findAlreadyDiscoveredLootTable.or(!this.skipKnownStructures) // Paper - Configurable cartographer treasure maps + ); if (blockPos != null) { ItemStack itemStack = MapItem.create(serverLevel, blockPos.getX(), blockPos.getZ(), this.zoom, true, true); - MapItem.renderBiomePreviewMap(serverLevel, itemStack); diff --git a/patches/server/0117-Properly-fix-item-duplication-bug.patch b/patches/server/0117-Properly-fix-item-duplication-bug.patch index 47c56686b2..0d3f7e5666 100644 --- a/patches/server/0117-Properly-fix-item-duplication-bug.patch +++ b/patches/server/0117-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 429f3ed00c0c6d7c89138aa9a4b770e3e68b7ed7..f1f090b7d9ac21f6430756ddb02b734f7dda0c7c 100644 +index 50264a1da70f120f9adf1619dd72d834ba14e499..54f343a1979794781757b221514f70aa0f7a5dec 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2451,7 +2451,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0118-Firework-API-s.patch b/patches/server/0118-Firework-API-s.patch index a137c1c66f..88b85d9e5f 100644 --- a/patches/server/0118-Firework-API-s.patch +++ b/patches/server/0118-Firework-API-s.patch @@ -7,14 +7,14 @@ Subject: [PATCH] Firework API's public net.minecraft.world.entity.projectile.FireworkRocketEntity attachedToEntity diff --git a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java -index 9d637e005205a32fa5406ba47de7cd2b22ead9cf..5b3b59057b962438c6f4fc8a1507342865b3bc11 100644 +index 9d637e005205a32fa5406ba47de7cd2b22ead9cf..813c4a52c8ddd70e252125ebfd3654346c71f13c 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java @@ -40,6 +40,7 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier { public int lifetime; @Nullable public LivingEntity attachedToEntity; -+ public java.util.UUID spawningEntity; // Paper ++ @Nullable public java.util.UUID spawningEntity; // Paper public FireworkRocketEntity(EntityType type, Level world) { super(type, world); @@ -56,18 +56,18 @@ index ac7371882d15746e9353865635d0bb716f890c53..ba570f1c9654e1004e068a1efe2118f3 object = CrossbowItem.getArrow(world, shooter, crossbow, projectile); if (creative || simulated != 0.0F) { diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -index 5cafb6f0b507127665393741b372286da098d603..7c627d27300247db9122ab2081049345ef306073 100644 +index 2a5a55b60cc83649e6e768a144667e021f46e27e..0bfb2667914b8001d1808bdbcf7fda6f0ff781a9 100644 --- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java +++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -@@ -46,6 +46,7 @@ public class FireworkRocketItem extends Item { - Vec3 vec3 = context.getClickLocation(); - Direction direction = context.getClickedFace(); - FireworkRocketEntity fireworkRocketEntity = new FireworkRocketEntity(level, context.getPlayer(), vec3.x + (double)direction.getStepX() * 0.15D, vec3.y + (double)direction.getStepY() * 0.15D, vec3.z + (double)direction.getStepZ() * 0.15D, itemStack); +@@ -53,6 +53,7 @@ public class FireworkRocketItem extends Item { + vec3.z + direction.getStepZ() * 0.15, + itemStack + ); + fireworkRocketEntity.spawningEntity = context.getPlayer() == null ? null : context.getPlayer().getUUID(); // Paper level.addFreshEntity(fireworkRocketEntity); itemStack.shrink(1); } -@@ -59,6 +60,7 @@ public class FireworkRocketItem extends Item { +@@ -66,6 +67,7 @@ public class FireworkRocketItem extends Item { ItemStack itemStack = user.getItemInHand(hand); if (!world.isClientSide) { FireworkRocketEntity fireworkRocketEntity = new FireworkRocketEntity(world, itemStack, user); diff --git a/patches/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch index 0294d6985b..698992e2b7 100644 --- a/patches/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch +++ b/patches/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch @@ -127,7 +127,7 @@ index 7ce46bd254e0f14b1bbafe37e0eb97a468a07083..00b46fd0b4a718756f8b21f203fd5679 @Override diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5ba65d647903077b39d9475ef28bfa0c400edd7a..2c3439d12e40003032904ebdb480fa95dd2a9682 100644 +index eec88cb65aae7986e53cba336f6e0bf5ff3011b3..a49d20bab5c49721fb41e2429c7fb721ef3c2f98 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1795,7 +1795,8 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0123-Cap-Entity-Collisions.patch b/patches/server/0123-Cap-Entity-Collisions.patch index 7faa5f0876..a84c864799 100644 --- a/patches/server/0123-Cap-Entity-Collisions.patch +++ b/patches/server/0123-Cap-Entity-Collisions.patch @@ -12,7 +12,7 @@ just as it does in Vanilla, but entity pushing logic will be capped. You can set this to 0 to disable collisions. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3112eace3d9d3d7b21dfc267993cb9d84819dc11..c261971ab482abfa5a1ca51abd189eff16421534 100644 +index a6a97dca29c900278885b5ab1741229fcfaf7b36..6d31ced629fabef4de2ef9a26586cea0cffa155c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -394,6 +394,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -24,7 +24,7 @@ index 3112eace3d9d3d7b21dfc267993cb9d84819dc11..c261971ab482abfa5a1ca51abd189eff @javax.annotation.Nullable private org.bukkit.util.Vector origin; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2c3439d12e40003032904ebdb480fa95dd2a9682..ded2c573533699133309d9ed5250e6a0ce97cc54 100644 +index a49d20bab5c49721fb41e2429c7fb721ef3c2f98..589fba7264d8041e6f766779fe8e3d5071398fed 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3369,10 +3369,12 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0125-Properly-handle-async-calls-to-restart-the-server.patch b/patches/server/0125-Properly-handle-async-calls-to-restart-the-server.patch index 0bacd60877..09c60eff3e 100644 --- a/patches/server/0125-Properly-handle-async-calls-to-restart-the-server.patch +++ b/patches/server/0125-Properly-handle-async-calls-to-restart-the-server.patch @@ -30,7 +30,7 @@ will have plugins and worlds saving to the disk has a high potential to result in corruption/dataloss. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fcaa31ccd6f6e6affaccf76403dbab26e6932571..1d8e17f4b862e71cc5ef8c5eabfb80dc427aec51 100644 +index b9c006bef0491c401ae3a447a3f67742a75cb74f..48513e585ce02c301983adbe1224e95ff7f9a345 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -236,6 +236,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/build.gradle.kts b/build.gradle.kts -index 1219b12750edb855df0962d14d7f3c1859d78b2e..511dfff4870c197b6f69169cc0504ef05988bb9c 100644 +index 8332781de54d73cb5803828e98882a731daed81f..cadb6a2cae98a8df97c392bfbd5a1440bccd16f4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,9 +6,30 @@ plugins { @@ -413,7 +413,7 @@ index 827579f59d34b61912a67b40624f0f41524185fd..f7d937c6a11e24afe767411428210f3c @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 adae906894144a1684a0dab15226649fd4bf6354..1bd54fbadc9b1b5207325c78298cc72f61455ac7 100644 +index db36453ff46afded45268b3701488e23305aa2eb..e5df5469f20ccffcbe9cd227df6f5c60e82206bf 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/0133-Do-not-submit-profile-lookups-to-worldgen-threads.patch b/patches/server/0133-Do-not-submit-profile-lookups-to-worldgen-threads.patch index 144dfef087..5e3192ef74 100644 --- a/patches/server/0133-Do-not-submit-profile-lookups-to-worldgen-threads.patch +++ b/patches/server/0133-Do-not-submit-profile-lookups-to-worldgen-threads.patch @@ -10,10 +10,10 @@ out due to a sync load, as the worldgen threads will be stalling on profile lookups. diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 114f4017c4133042178c57d424f10079163835dd..aa52b271bd556a29f774fde375b713d0d187521b 100644 +index 9a12feebbae4a9fdfd24214c2ffa61e717d6e358..1f1422a000eb9a0fb819f26d42b3f39ed683a8da 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -89,6 +89,22 @@ public class Util { +@@ -91,6 +91,22 @@ public class Util { private static final ExecutorService BACKGROUND_EXECUTOR = makeExecutor("Main"); private static final ExecutorService IO_POOL = makeIoExecutor("IO-Worker-", false); private static final ExecutorService DOWNLOAD_POOL = makeIoExecutor("Download-", true); diff --git a/patches/server/0144-Fix-this-stupid-bullshit.patch b/patches/server/0144-Fix-this-stupid-bullshit.patch index f71529aaed..67c72e7d54 100644 --- a/patches/server/0144-Fix-this-stupid-bullshit.patch +++ b/patches/server/0144-Fix-this-stupid-bullshit.patch @@ -31,7 +31,7 @@ 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 1bd54fbadc9b1b5207325c78298cc72f61455ac7..a7a376e91fca80dd96f5a3e8910eba9772c67bfe 100644 +index e5df5469f20ccffcbe9cd227df6f5c60e82206bf..d8a7287849407c4756d4ebe4b55c358970320ce3 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -258,10 +258,12 @@ public class Main { diff --git a/patches/server/0149-Handle-plugin-prefixes-using-Log4J-configuration.patch b/patches/server/0149-Handle-plugin-prefixes-using-Log4J-configuration.patch index 8dc571bba3..42bd840658 100644 --- a/patches/server/0149-Handle-plugin-prefixes-using-Log4J-configuration.patch +++ b/patches/server/0149-Handle-plugin-prefixes-using-Log4J-configuration.patch @@ -15,7 +15,7 @@ This may cause additional prefixes to be disabled for plugins bypassing the plugin logger. diff --git a/build.gradle.kts b/build.gradle.kts -index 7a3c96318f95fcd6cf6fd94415958382d1193ec6..38ded67b38bb5dc7c59eb610b81ac33d88d25dac 100644 +index cadb6a2cae98a8df97c392bfbd5a1440bccd16f4..ca6e0c77acbcf3b32eb8b5c0f86701f52dfeea0c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -25,7 +25,7 @@ dependencies { diff --git a/patches/server/0151-Add-PlayerJumpEvent.patch b/patches/server/0151-Add-PlayerJumpEvent.patch index e24d0d58ee..cbd161bc48 100644 --- a/patches/server/0151-Add-PlayerJumpEvent.patch +++ b/patches/server/0151-Add-PlayerJumpEvent.patch @@ -5,7 +5,7 @@ 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 12cfc3ed36d6eebd477dfd9058b2852e0a0d98eb..3c4431123c39256fdf704111d350c1005e4d9ef9 100644 +index 00870f788b40fc0943ef54da1e84c6e357640a32..fa8db93541dc62dc61bccc53c1aaeb3666d80ee1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1218,7 +1218,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0156-Add-PlayerArmorChangeEvent.patch b/patches/server/0156-Add-PlayerArmorChangeEvent.patch index b880ce1c49..e93b77f565 100644 --- a/patches/server/0156-Add-PlayerArmorChangeEvent.patch +++ b/patches/server/0156-Add-PlayerArmorChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmorChangeEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ded2c573533699133309d9ed5250e6a0ce97cc54..bbf3286cb69f931be528726e45784eec9f8e0af3 100644 +index 589fba7264d8041e6f766779fe8e3d5071398fed..96805bc64fd3593373ba9eecf29bd13d33d9e053 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3068,6 +3068,13 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch index 423d453874..5b11c72288 100644 --- a/patches/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch +++ b/patches/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch @@ -69,7 +69,7 @@ index a1c1a101aa424e74309f6f4c0a53a6a8db5df441..013298c424025cd88f15d61e50d196f7 public Biome getBiome() { return this.getWorld().getBiome(this.getX(), this.getY(), this.getZ()); diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java -index 22af1b41eec06d660dbe47c463014bcdd96fc5b6..f046f507a095e0cb8f839b9b4b06add3a671486b 100644 +index fa490e01d1358762eda7f41db532024fc4c7605a..e7fd9ebd47af277d6dbced0f17e954722c202776 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java @@ -17,15 +17,26 @@ public class CraftBlockEntityState extends CraftBlockStat diff --git a/patches/server/0161-AsyncTabCompleteEvent.patch b/patches/server/0161-AsyncTabCompleteEvent.patch index 665a68f81e..621c5319a5 100644 --- a/patches/server/0161-AsyncTabCompleteEvent.patch +++ b/patches/server/0161-AsyncTabCompleteEvent.patch @@ -16,7 +16,7 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent Co-authored-by: Aikar diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3c4431123c39256fdf704111d350c1005e4d9ef9..f60d754cb617df3c5ab8654eba66016c1cc04617 100644 +index fa8db93541dc62dc61bccc53c1aaeb3666d80ee1..5d4730b9ced378c1e77d7734f2f8aba6d09a19d0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -688,21 +688,58 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch b/patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch index 86df19fb45..b535464839 100644 --- a/patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch +++ b/patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch @@ -9,7 +9,7 @@ from triggering monster spawns on a server. Also a highly more effecient way to blanket block spawns in a world diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 7245b93a4935aece23567fda0474104686485395..de328a93abcf23d3ff265557a7d8bad5be56287c 100644 +index 97bb0fc7e890273f2f975f137ec1194a1a83fde7..2a0e81a3ec0774ad98e2d74ac7672c167e28f38e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1203,7 +1203,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -60,7 +60,7 @@ index e0ae7274da59ff043cd423d282ed8db0382561d4..369e4bf5ff52cb774f1acaf760b8bd27 boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getLevelData().getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit Iterator iterator1 = list.iterator(); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f1f090b7d9ac21f6430756ddb02b734f7dda0c7c..19cd69fc911bb9b95257b1fdc19645bbdfe05de3 100644 +index 54f343a1979794781757b221514f70aa0f7a5dec..98d229fb8f342775482f2ed199265bda3f043a96 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -265,6 +265,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0174-Implement-extended-PaperServerListPingEvent.patch b/patches/server/0174-Implement-extended-PaperServerListPingEvent.patch index 2c073bc562..919b4393df 100644 --- a/patches/server/0174-Implement-extended-PaperServerListPingEvent.patch +++ b/patches/server/0174-Implement-extended-PaperServerListPingEvent.patch @@ -181,7 +181,7 @@ index 0000000000000000000000000000000000000000..6b0bdc266109cdfb874f08bf74323603 + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6587cd9ea257d0f6f1308ea8ca4d0245178b2870..0f3589ae1c5577c612b93289fc42cdb977486b6b 100644 +index 22b9d4bebee30877225b08b46cec6084b12a9c5a..09bd8a6576647c612e9d7f807780b1e20478a534 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,6 +3,9 @@ package net.minecraft.server; diff --git a/patches/server/0181-Flag-to-disable-the-channel-limit.patch b/patches/server/0181-Flag-to-disable-the-channel-limit.patch index 4c3389e676..11af2999d9 100644 --- a/patches/server/0181-Flag-to-disable-the-channel-limit.patch +++ b/patches/server/0181-Flag-to-disable-the-channel-limit.patch @@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs. provide an optional flag to disable this check, at your own risk. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f33aee99de2007701bd593917a63e05c7fa5e349..a77c15a9c351c9cd5e8b4832016ec6de30483ed6 100644 +index ac42d245f14c9b0565f64689b4646d84791b6a86..dbf67a52ae2e18589952b2d019b5258324ff3edc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -196,6 +196,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0186-Block-Enderpearl-Travel-Exploit.patch b/patches/server/0186-Block-Enderpearl-Travel-Exploit.patch index ffdce6c524..969fd2b959 100644 --- a/patches/server/0186-Block-Enderpearl-Travel-Exploit.patch +++ b/patches/server/0186-Block-Enderpearl-Travel-Exploit.patch @@ -16,7 +16,7 @@ public net.minecraft.world.entity.projectile.Projectile cachedOwner public net.minecraft.world.entity.projectile.Projectile ownerUUID diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5f0885c13116ad070dc076cca5a527b2a616c541..6cadfd678f1b2323a763ffd9220de7394620328b 100644 +index 76246fdacf70309918ce413f494bdb4d8683241d..d2266bc75f2c1b0b02405eea0711a7b53d1a9e7a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2114,6 +2114,12 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0196-Fix-CraftEntity-hashCode.patch b/patches/server/0196-Fix-CraftEntity-hashCode.patch index 9ff8123f58..1622a61ea9 100644 --- a/patches/server/0196-Fix-CraftEntity-hashCode.patch +++ b/patches/server/0196-Fix-CraftEntity-hashCode.patch @@ -21,7 +21,7 @@ check is essentially the same as this.getHandle() == other.getHandle() However, replaced it too to make it clearer of intent. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index d715dcc9155ad9938bd4fbe0cde43079f614f203..34e4dd733a2e9ccc3c7f1b228825428100e583e9 100644 +index 4808c62d3d951b201061659c91d1001e4b9b49ef..6fddbcec673564ac531a852f631f6acc460accbd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -500,14 +500,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0197-Configurable-LootPool-luck-formula.patch b/patches/server/0197-Configurable-LootPool-luck-formula.patch index 6df631b746..db6f8a2d2d 100644 --- a/patches/server/0197-Configurable-LootPool-luck-formula.patch +++ b/patches/server/0197-Configurable-LootPool-luck-formula.patch @@ -36,14 +36,14 @@ This change will result in some major changes to fishing formulas. I would love to see this change in Vanilla, so Mojang please pull :) diff --git a/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java b/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java -index 6d5a2806345ff86e143e16ecedc2f1e8d80f5b85..0cf437dd75b97b9ba39f5134ae2ae5f33b94f653 100644 +index 55c097609812e899beda2eafea58e163edd6b71f..4f73aae0342ddcefba19e14d5400c960c2acf70c 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java -@@ -122,9 +122,35 @@ public abstract class LootPoolSingletonContainer extends LootPoolEntryContainer +@@ -127,9 +127,35 @@ public abstract class LootPoolSingletonContainer extends LootPoolEntryContainer protected abstract class EntryBase implements LootPoolEntry { @Override public int getWeight(float luck) { -- return Math.max(Mth.floor((float)LootPoolSingletonContainer.this.weight + (float)LootPoolSingletonContainer.this.quality * luck), 0); +- return Math.max(Mth.floor(LootPoolSingletonContainer.this.weight + LootPoolSingletonContainer.this.quality * luck), 0); + // Paper start - Configurable LootPool luck formula + // SEE: https://luckformula.emc.gs for details and data + if (LootPoolSingletonContainer.this.lastLuck != null && LootPoolSingletonContainer.this.lastLuck == luck) { diff --git a/patches/server/0199-Make-shield-blocking-delay-configurable.patch b/patches/server/0199-Make-shield-blocking-delay-configurable.patch index ae7ebd4f8e..cd4b92ec72 100644 --- a/patches/server/0199-Make-shield-blocking-delay-configurable.patch +++ b/patches/server/0199-Make-shield-blocking-delay-configurable.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make shield blocking delay configurable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4af3e59b9ad84aaf1a5dd8f1373b781233ba07d6..7810739098ee52efafbbd5355d4d16dadcb5ac35 100644 +index 96805bc64fd3593373ba9eecf29bd13d33d9e053..e3dfef027fb7f6aedd3e3411af6457671b5507a7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3828,12 +3828,24 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch b/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch index d9acc8f055..30c6ae6beb 100644 --- a/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch +++ b/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch @@ -9,7 +9,7 @@ Co-authored-by: aerulion This event is called when an entity receives knockback by another entity. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fe314015f8cbc44e29a8ec73ecca4eeadd1da39f..d2d1a3e3c8accbdfeecafa86f9cc9f16007c3930 100644 +index 0cc82ffdcebbdd92fa953e7c52a20911f46a503c..165cc45e2ae99e606533e5e5294e431ed5e3a2dd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1868,9 +1868,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -39,7 +39,7 @@ index fe314015f8cbc44e29a8ec73ecca4eeadd1da39f..d2d1a3e3c8accbdfeecafa86f9cc9f16 protected void markHurt() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 21bef887193c777ec1e311b3bf5c0213180ea4ca..83a56061ce23d3d6f7d8ad3201ce325106f8a4d0 100644 +index e3dfef027fb7f6aedd3e3411af6457671b5507a7..88af8a11dfc3b645c5a2b5fb629a73fc1e2b2f80 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1569,7 +1569,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -85,29 +85,29 @@ index 21bef887193c777ec1e311b3bf5c0213180ea4ca..83a56061ce23d3d6f7d8ad3201ce3251 } } diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java b/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java -index e319a46a21a94314c5d496820b1ac4879dcf56b9..fcc0a7789c79b956f097bc6d34e0c37e0b90a2db 100644 +index a93212d3cbf18a8cf392515fd466475264bba5ef..347986ef559ebcecdb67e2f5d31a31049acc48f5 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java -@@ -77,7 +77,7 @@ public class RamTarget extends Behavior { - float f = 0.25F * (float)(i - j); +@@ -83,7 +83,7 @@ public class RamTarget extends Behavior { + float f = 0.25F * (i - j); float g = Mth.clamp(entity.getSpeed() * 1.65F, 0.2F, 3.0F) + f; float h = livingEntity.isDamageSourceBlocked(world.damageSources().mobAttack(entity)) ? 0.5F : 1.0F; -- livingEntity.knockback((double)(h * g) * this.getKnockbackForce.applyAsDouble(entity), this.ramDirection.x(), this.ramDirection.z()); -+ livingEntity.knockback((double)(h * g) * this.getKnockbackForce.applyAsDouble(entity), this.ramDirection.x(), this.ramDirection.z(), entity, org.bukkit.event.entity.EntityKnockbackEvent.KnockbackCause.ENTITY_ATTACK); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent +- livingEntity.knockback(h * g * this.getKnockbackForce.applyAsDouble(entity), this.ramDirection.x(), this.ramDirection.z()); ++ livingEntity.knockback(h * g * this.getKnockbackForce.applyAsDouble(entity), this.ramDirection.x(), this.ramDirection.z(), entity, org.bukkit.event.entity.EntityKnockbackEvent.KnockbackCause.ENTITY_ATTACK); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent this.finishRam(world, entity); - world.playSound((Player)null, entity, this.getImpactSound.apply(entity), SoundSource.NEUTRAL, 1.0F, 1.0F); + world.playSound(null, entity, this.getImpactSound.apply(entity), SoundSource.NEUTRAL, 1.0F, 1.0F); } else if (this.hasRammedHornBreakingBlock(world, entity)) { diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java b/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java -index 29cfd065f246bbd3d3c2a5bbd32c3f4813a02951..771d798fa3b367043129f41101c65f13f0b466fa 100644 +index ce329b00fa25e9defabead0e594d734b8ed6724e..fe9c5afadd9041ab32d9e03fe6dab2a2d00262f2 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java -@@ -68,7 +68,7 @@ public class SonicBoom extends Behavior { - target.hurt(world.damageSources().sonicBoom(entity), 10.0F); - double d = 0.5D * (1.0D - target.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE)); - double e = 2.5D * (1.0D - target.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE)); -- target.push(vec33.x() * e, vec33.y() * d, vec33.z() * e); -+ target.push(vec33.x() * e, vec33.y() * d, vec33.z() * e, entity); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent - }); +@@ -81,7 +81,7 @@ public class SonicBoom extends Behavior { + target.hurt(world.damageSources().sonicBoom(entity), 10.0F); + double d = 0.5 * (1.0 - target.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE)); + double e = 2.5 * (1.0 - target.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE)); +- target.push(vec33.x() * e, vec33.y() * d, vec33.z() * e); ++ target.push(vec33.x() * e, vec33.y() * d, vec33.z() * e, entity); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent + }); } } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -166,13 +166,13 @@ index 041f1650b853138e4286fe83a08d79d276054ce7..aba20a4352d8983b01ab5d329187588f @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java -index 81003ce3f05c6be6f52a92b86a4721235f4ce12a..cae7e3e85c3b911f50f8a06badf695c3df2847e5 100644 +index 889dca53d7a113f0b70791c75885de1c66fecdff..06cb2a4a941ccdd7371f05f7c3c6951dc6c66b04 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java @@ -40,7 +40,7 @@ public interface HoglinBase { - double j = f * (double)(attacker.level().random.nextFloat() * 0.5F + 0.2F); - Vec3 vec3 = (new Vec3(g, 0.0D, h)).normalize().scale(j).yRot(i); - double k = f * (double)attacker.level().random.nextFloat() * 0.5D; + double j = f * (attacker.level().random.nextFloat() * 0.5F + 0.2F); + Vec3 vec3 = new Vec3(g, 0.0, h).normalize().scale(j).yRot(i); + double k = f * attacker.level().random.nextFloat() * 0.5; - target.push(vec3.x, k, vec3.z); + target.push(vec3.x, k, vec3.z, attacker); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent target.hurtMarked = true; diff --git a/patches/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch b/patches/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch index 8a9728d94f..9b0dd03eba 100644 --- a/patches/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch +++ b/patches/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch @@ -5,7 +5,7 @@ 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 38c2aed0785b3b5bcceba572a1a6f5fb0224964d..cad7a1b28c9d7a3e67dbf0865cbf232ebd39a8d9 100644 +index 141df4dba676fd0a714d5d48d385ee71084a7990..1c716cf65d77e54ba8f90c8cf736e20c64f5df2e 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 @@ -106,6 +106,10 @@ public class EndDragonFight { diff --git a/patches/server/0208-InventoryCloseEvent-Reason-API.patch b/patches/server/0208-InventoryCloseEvent-Reason-API.patch index 91a388c934..aa589afd1b 100644 --- a/patches/server/0208-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0208-InventoryCloseEvent-Reason-API.patch @@ -29,7 +29,7 @@ index 256b9c6cbf52c252f8174d0aa74e1270fb092ae9..113dce44ce086272fe7f20a2007efade } // 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 19cd69fc911bb9b95257b1fdc19645bbdfe05de3..38a3b264ba72631c27203a178ac0bbdd36e10a10 100644 +index 98d229fb8f342775482f2ed199265bda3f043a96..0b039c43bd3bd46f31477fc75585038270242de2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -648,7 +648,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch b/patches/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch index 50b3a6608f..d999d8b2ce 100644 --- a/patches/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch +++ b/patches/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use AsyncAppender to keep logging IO off main thread diff --git a/build.gradle.kts b/build.gradle.kts -index 38ded67b38bb5dc7c59eb610b81ac33d88d25dac..30edfbf16e7bed29b3261b51d9e4f3124beef026 100644 +index ca6e0c77acbcf3b32eb8b5c0f86701f52dfeea0c..470c55412e7a4f09235947adc72944b903d6543d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -36,6 +36,7 @@ dependencies { diff --git a/patches/server/0212-add-more-information-to-Entity.toString.patch b/patches/server/0212-add-more-information-to-Entity.toString.patch index 9b1f740570..beef9001e2 100644 --- a/patches/server/0212-add-more-information-to-Entity.toString.patch +++ b/patches/server/0212-add-more-information-to-Entity.toString.patch @@ -6,7 +6,7 @@ Subject: [PATCH] add more information to Entity.toString() UUID, ticks lived, valid, dead diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 17a8c7e42b31513a4586cd2d40b2d58911814f75..b718e5a1dd49dc855a1161106b53a1d6615e8b69 100644 +index 165cc45e2ae99e606533e5e5294e431ed5e3a2dd..36f0a43cc301840406eab260b162295fe760f8bb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3166,7 +3166,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0213-EnderDragon-Events.patch b/patches/server/0213-EnderDragon-Events.patch index c2dbb91e76..f2eba33113 100644 --- a/patches/server/0213-EnderDragon-Events.patch +++ b/patches/server/0213-EnderDragon-Events.patch @@ -23,10 +23,10 @@ index 3eaf64a6f66c6a844e30967e6b87432e559a59e7..5c5c71db73a2bfebbb33cebd6325a0f4 } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java -index f54576f6450e24f574bfe7f4b8e2ad5d8c9f1ba3..561e9525c37952c6b2fb52811b3767eb1044773b 100644 +index e78ed9b2392e752718361cf7bf25c1dfc2911ce2..13f60a16f07c50a278b158d64180009020a4dca6 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java -@@ -74,7 +74,9 @@ public class DragonStrafePlayerPhase extends AbstractDragonPhaseInstance { +@@ -76,7 +76,9 @@ public class DragonStrafePlayerPhase extends AbstractDragonPhaseInstance { DragonFireball dragonFireball = new DragonFireball(this.dragon.level(), this.dragon, r, s, t); dragonFireball.moveTo(o, p, q, 0.0F, 0.0F); @@ -35,7 +35,7 @@ index f54576f6450e24f574bfe7f4b8e2ad5d8c9f1ba3..561e9525c37952c6b2fb52811b3767eb + else dragonFireball.discard(null); // Paper - EnderDragon Events this.fireballCharge = 0; if (this.currentPath != null) { - while(!this.currentPath.isDone()) { + while (!this.currentPath.isDone()) { diff --git a/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java b/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java index a425659d89165610fdb1afa3095bf4ac867646ae..58723ea75f7db9bf3889b99139669b14a284a3a1 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java diff --git a/patches/server/0214-PlayerElytraBoostEvent.patch b/patches/server/0214-PlayerElytraBoostEvent.patch index 902f983c36..b9afdb2bf1 100644 --- a/patches/server/0214-PlayerElytraBoostEvent.patch +++ b/patches/server/0214-PlayerElytraBoostEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] PlayerElytraBoostEvent diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -index 7c627d27300247db9122ab2081049345ef306073..6e6c9477b70b0e1ab36bca9fa91806a283ebedd1 100644 +index 3749cfca8f007973d1a2206d8f2ba15283a550e1..eb655eb01e4841ca163666f21dae00f0632a11e5 100644 --- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java +++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -@@ -61,12 +61,19 @@ public class FireworkRocketItem extends Item { +@@ -68,12 +68,19 @@ public class FireworkRocketItem extends Item { if (!world.isClientSide) { FireworkRocketEntity fireworkRocketEntity = new FireworkRocketEntity(world, itemStack, user); fireworkRocketEntity.spawningEntity = user.getUUID(); // Paper diff --git a/patches/server/0215-PlayerLaunchProjectileEvent.patch b/patches/server/0215-PlayerLaunchProjectileEvent.patch index 5d9bed5608..6e2265c0d2 100644 --- a/patches/server/0215-PlayerLaunchProjectileEvent.patch +++ b/patches/server/0215-PlayerLaunchProjectileEvent.patch @@ -88,15 +88,24 @@ index c7d4745aed77b23562cde7c68b8870fa239428d4..8c8cf8705107c95d9a4eab28b5845ae1 return InteractionResultHolder.sidedSuccess(itemstack, world.isClientSide()); } diff --git a/src/main/java/net/minecraft/world/item/ExperienceBottleItem.java b/src/main/java/net/minecraft/world/item/ExperienceBottleItem.java -index 72dfb7b652f515bf9df201d524a851ab56706544..39fe6734c8dcd34c563e33e717937bbd91882e1e 100644 +index fe03ef2e400b246f7f3a9333506f22b63ae28690..ad147f392e7ef151d971d462431ab67d378cc920 100644 --- a/src/main/java/net/minecraft/world/item/ExperienceBottleItem.java +++ b/src/main/java/net/minecraft/world/item/ExperienceBottleItem.java -@@ -22,18 +22,37 @@ public class ExperienceBottleItem extends Item { +@@ -22,27 +22,46 @@ public class ExperienceBottleItem extends Item { @Override public InteractionResultHolder use(Level world, Player user, InteractionHand hand) { ItemStack itemStack = user.getItemInHand(hand); -- world.playSound((Player)null, user.getX(), user.getY(), user.getZ(), SoundEvents.EXPERIENCE_BOTTLE_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); -+ // world.playSound((Player)null, user.getX(), user.getY(), user.getZ(), SoundEvents.EXPERIENCE_BOTTLE_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); // Paper - PlayerLaunchProjectileEvent; moved down +- world.playSound( +- null, +- user.getX(), +- user.getY(), +- user.getZ(), +- SoundEvents.EXPERIENCE_BOTTLE_THROW, +- SoundSource.NEUTRAL, +- 0.5F, +- 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F) +- ); ++ // Paper - PlayerLaunchProjectileEvent; moved down if (!world.isClientSide) { ThrownExperienceBottle thrownExperienceBottle = new ThrownExperienceBottle(world, user); thrownExperienceBottle.setItem(itemStack); @@ -111,7 +120,16 @@ index 72dfb7b652f515bf9df201d524a851ab56706544..39fe6734c8dcd34c563e33e717937bbd + ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); + } + -+ world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.EXPERIENCE_BOTTLE_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (net.minecraft.world.entity.Entity.SHARED_RANDOM.nextFloat() * 0.4F + 0.8F)); ++ world.playSound( ++ null, ++ user.getX(), ++ user.getY(), ++ user.getZ(), ++ SoundEvents.EXPERIENCE_BOTTLE_THROW, ++ SoundSource.NEUTRAL, ++ 0.5F, ++ 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F) ++ ); + user.awardStat(Stats.ITEM_USED.get(this)); + } else { + if (user instanceof net.minecraft.server.level.ServerPlayer) { @@ -132,12 +150,12 @@ index 72dfb7b652f515bf9df201d524a851ab56706544..39fe6734c8dcd34c563e33e717937bbd return InteractionResultHolder.sidedSuccess(itemStack, world.isClientSide()); } diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -index 6e6c9477b70b0e1ab36bca9fa91806a283ebedd1..0821c06a4c66edc8fcee09fc192335a588d2944b 100644 +index eb655eb01e4841ca163666f21dae00f0632a11e5..8a82b8bec014b70d672cfaae84510ed84fd2ea97 100644 --- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java +++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -@@ -47,8 +47,12 @@ public class FireworkRocketItem extends Item { - Direction direction = context.getClickedFace(); - FireworkRocketEntity fireworkRocketEntity = new FireworkRocketEntity(level, context.getPlayer(), vec3.x + (double)direction.getStepX() * 0.15D, vec3.y + (double)direction.getStepY() * 0.15D, vec3.z + (double)direction.getStepZ() * 0.15D, itemStack); +@@ -54,8 +54,12 @@ public class FireworkRocketItem extends Item { + itemStack + ); fireworkRocketEntity.spawningEntity = context.getPlayer() == null ? null : context.getPlayer().getUUID(); // Paper - level.addFreshEntity(fireworkRocketEntity); - itemStack.shrink(1); @@ -151,18 +169,26 @@ index 6e6c9477b70b0e1ab36bca9fa91806a283ebedd1..0821c06a4c66edc8fcee09fc192335a5 return InteractionResult.sidedSuccess(level.isClientSide); diff --git a/src/main/java/net/minecraft/world/item/LingeringPotionItem.java b/src/main/java/net/minecraft/world/item/LingeringPotionItem.java -index 04370590e6c8051ad17f937576b4cd88f6afb5d9..8526251e45899499bc4d9b6254fa1b190a3843d8 100644 +index a822d82b577be20b5c8aa9ba1a4a0d6e4a493354..fec53407acc9bb95ae91e02a44ebc0e8d51355cf 100644 --- a/src/main/java/net/minecraft/world/item/LingeringPotionItem.java +++ b/src/main/java/net/minecraft/world/item/LingeringPotionItem.java -@@ -23,7 +23,12 @@ public class LingeringPotionItem extends ThrowablePotionItem { +@@ -23,6 +23,10 @@ public class LingeringPotionItem extends ThrowablePotionItem { @Override public InteractionResultHolder use(Level world, Player user, InteractionHand hand) { + // Paper start - PlayerLaunchProjectileEvent + InteractionResultHolder wrapper = super.use(world, user, hand); + if (wrapper.getResult() != net.minecraft.world.InteractionResult.FAIL) { - world.playSound((Player)null, user.getX(), user.getY(), user.getZ(), SoundEvents.LINGERING_POTION_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); ++ // Paper end - PlayerLaunchProjectileEvent + world.playSound( + null, + user.getX(), +@@ -33,6 +37,9 @@ public class LingeringPotionItem extends ThrowablePotionItem { + 0.5F, + 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F) + ); - return super.use(world, user, hand); ++ // Paper start - PlayerLaunchProjectileEvent + } + return wrapper; + // Paper end - PlayerLaunchProjectileEvent @@ -212,18 +238,26 @@ index d60e57e84f7d66e1858ab50ac33777feedf1c54d..bc8186a5bc3a98b35fad570729dd4ba5 return InteractionResultHolder.sidedSuccess(itemstack, world.isClientSide()); } diff --git a/src/main/java/net/minecraft/world/item/SplashPotionItem.java b/src/main/java/net/minecraft/world/item/SplashPotionItem.java -index 317e20052bcac9118e1adeb619bedaacc6fcd690..3bd127780091c6bb9ec17c88f0cf57b0b8f37e11 100644 +index 935c34ba7eb14348becdd3ac0c29766abf7ca614..73bac60b3bf6d20d415a8250d0426251c0c3265b 100644 --- a/src/main/java/net/minecraft/world/item/SplashPotionItem.java +++ b/src/main/java/net/minecraft/world/item/SplashPotionItem.java -@@ -14,7 +14,12 @@ public class SplashPotionItem extends ThrowablePotionItem { +@@ -14,6 +14,10 @@ public class SplashPotionItem extends ThrowablePotionItem { @Override public InteractionResultHolder use(Level world, Player user, InteractionHand hand) { + // Paper start - PlayerLaunchProjectileEvent + InteractionResultHolder wrapper = super.use(world, user, hand); + if (wrapper.getResult() != net.minecraft.world.InteractionResult.FAIL) { - world.playSound((Player)null, user.getX(), user.getY(), user.getZ(), SoundEvents.SPLASH_POTION_THROW, SoundSource.PLAYERS, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); ++ // Paper end - PlayerLaunchProjectileEvent + world.playSound( + null, + user.getX(), +@@ -24,6 +28,9 @@ public class SplashPotionItem extends ThrowablePotionItem { + 0.5F, + 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F) + ); - return super.use(world, user, hand); ++ // Paper start - PlayerLaunchProjectileEvent + } + return wrapper; + // Paper end - PlayerLaunchProjectileEvent @@ -267,7 +301,7 @@ index 0673f62f25532955f3552b64f122e644d42027e4..f47f793c62a919fb65c081ddb82d597a return InteractionResultHolder.sidedSuccess(itemStack, world.isClientSide()); } diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java -index 2ccbba4775d7550c5c7277aee9cab9ff7d665693..fa876ddf54780728e7f3ecfe02aa8a16b8ef6f8d 100644 +index f46d0015d707e6708b9e19cc8f20fad5d3bd590b..a792c7b7a6179aa88fc473b27ef0ca13bd91a395 100644 --- a/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java @@ -83,21 +83,26 @@ public class TridentItem extends Item implements Vanishable { diff --git a/patches/server/0216-Improve-BlockPosition-inlining.patch b/patches/server/0216-Improve-BlockPosition-inlining.patch index b9b5c09af2..52f65f41ad 100644 --- a/patches/server/0216-Improve-BlockPosition-inlining.patch +++ b/patches/server/0216-Improve-BlockPosition-inlining.patch @@ -21,19 +21,16 @@ This is based upon conclusions drawn from inspecting the assenmbly generated byt They had 'callq' (invoke) instead of 'mov' (get from memory) instructions. diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java -index 1b29c6872ebe54351f28c1f1f38b22561ba785ee..5256ff18d992250e04a6180e196c2d5d3f0928ca 100644 +index 64acf7d83d3419af603ad43172c35ed321a2d1c4..afb1e5ff7b1b6b42f81eaa7888a1ec3ded804ccb 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java +++ b/src/main/java/net/minecraft/core/Vec3i.java -@@ -38,7 +38,7 @@ public class Vec3i implements Comparable { +@@ -37,12 +37,12 @@ public class Vec3i implements Comparable { } @Override - public boolean equals(Object object) { + public final boolean equals(Object object) { // Paper - Perf: Final for inline - if (this == object) { - return true; - } else if (!(object instanceof Vec3i)) { -@@ -56,7 +56,7 @@ public class Vec3i implements Comparable { + return this == object || object instanceof Vec3i vec3i && this.getX() == vec3i.getX() && this.getY() == vec3i.getY() && this.getZ() == vec3i.getZ(); } @Override @@ -42,7 +39,7 @@ index 1b29c6872ebe54351f28c1f1f38b22561ba785ee..5256ff18d992250e04a6180e196c2d5d return (this.getY() + this.getZ() * 31) * 31 + this.getX(); } -@@ -69,15 +69,15 @@ public class Vec3i implements Comparable { +@@ -55,15 +55,15 @@ public class Vec3i implements Comparable { } } diff --git a/patches/server/0220-SkeletonHorse-Additions.patch b/patches/server/0220-SkeletonHorse-Additions.patch index 15761af470..201b108f16 100644 --- a/patches/server/0220-SkeletonHorse-Additions.patch +++ b/patches/server/0220-SkeletonHorse-Additions.patch @@ -32,10 +32,10 @@ index 8f20239f3ef7ebe41fac8ee6e024c36dafec33c4..d00fb16ae3b94dfcb10fd1a7c1671595 this.horse.setTrap(false); diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index 07e7851ca27ea0f8166be52b086a6504c0deea09..e7b6f97d8519a5797903664e5ba2a793e37a4bfc 100644 +index 72b3913d00d6f2ec01a716444debe065c48174f6..c35d5865b77203d0de6467d2793424837704e95a 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java -@@ -93,6 +93,28 @@ public interface EntityGetter { +@@ -97,6 +97,28 @@ public interface EntityGetter { return player; } diff --git a/patches/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch index 48a5038a88..eef3036873 100644 --- a/patches/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch +++ b/patches/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch @@ -22,7 +22,7 @@ to take the burden of this into their own hand without having to rely on plugins doing unsafe things. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3d6355f50d04035f62fa9eddee076d0a157c89a6..acf350e18b9e4de77b43a01afe40a72ef040d92e 100644 +index 91cc18da4f0beca4cc4a9e13627b87931262efb6..a2eb93d47f659eb5b978358ee409bbf5f5d4d35a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -256,6 +256,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 8ca9496478..18b6234816 100644 --- a/patches/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/patches/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -43,7 +43,7 @@ index 113dce44ce086272fe7f20a2007efadee142ff85..0811a2e87192b46c39f54c26ce0e56fc // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b718e5a1dd49dc855a1161106b53a1d6615e8b69..31ff851cc15216fb5855f829f3fc22c1d26ece21 100644 +index 36f0a43cc301840406eab260b162295fe760f8bb..c46ad2013439f043145fb7fc67bbcd80728e3c16 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -242,6 +242,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -55,10 +55,10 @@ index b718e5a1dd49dc855a1161106b53a1d6615e8b69..31ff851cc15216fb5855f829f3fc22c1 if (this.bukkitEntity == null) { this.bukkitEntity = CraftEntity.getEntity(this.level.getCraftServer(), this); diff --git a/src/main/java/net/minecraft/world/level/entity/EntityLookup.java b/src/main/java/net/minecraft/world/level/entity/EntityLookup.java -index 21a2800db22f287b9c6a8290326fdf3b94ae94b1..2e561ac90a8c91ea13cfc18d09f8e0abbcff9385 100644 +index 38df704dca30ef08f4d0831dc1cc48c6d6f71a4d..ed6aea7a38ef6e80c300ff9b012dcdbc390ad2c7 100644 --- a/src/main/java/net/minecraft/world/level/entity/EntityLookup.java +++ b/src/main/java/net/minecraft/world/level/entity/EntityLookup.java -@@ -34,6 +34,14 @@ public class EntityLookup { +@@ -33,6 +33,14 @@ public class EntityLookup { UUID uUID = entity.getUUID(); if (this.byUuid.containsKey(uUID)) { LOGGER.warn("Duplicate entity UUID {}: {}", uUID, entity); diff --git a/patches/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch index 4fee792554..76d44df2fe 100644 --- a/patches/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch +++ b/patches/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch @@ -9,7 +9,7 @@ thread dumps at an interval until the point of crash. This will help diagnose what was going on in that time before the crash. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0f3589ae1c5577c612b93289fc42cdb977486b6b..0b704d5d39263b66f7846a9c4a116ac4d96383cf 100644 +index 09bd8a6576647c612e9d7f807780b1e20478a534..3e6008d27ed81453f6b4448f0334b8d343f66694 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1092,6 +1092,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements WritableRegistry { +@@ -36,11 +36,11 @@ public class MappedRegistry implements WritableRegistry { private static final Logger LOGGER = LogUtils.getLogger(); final ResourceKey> key; private final ObjectList> byId = new ObjectArrayList<>(256); -- private final Reference2IntMap toId = Util.make(new Reference2IntOpenHashMap<>(), (map) -> { -+ private final Reference2IntMap toId = Util.make(new Reference2IntOpenHashMap<>(2048), (map) -> { // Paper - Perf: Use bigger expected size to reduce collisions - map.defaultReturnValue(-1); - }); +- private final Reference2IntMap toId = Util.make(new Reference2IntOpenHashMap<>(), map -> map.defaultReturnValue(-1)); - private final Map> byLocation = new HashMap<>(); - private final Map, Holder.Reference> byKey = new HashMap<>(); - private final Map> byValue = new IdentityHashMap<>(); - private final Map lifecycles = new IdentityHashMap<>(); ++ private final Reference2IntMap toId = Util.make(new Reference2IntOpenHashMap<>(2048), map -> map.defaultReturnValue(-1)); // Paper - Perf: Use bigger expected size to reduce collisions + private final Map> byLocation = new HashMap<>(2048); // Paper - Perf: Use bigger expected size to reduce collisions + private final Map, Holder.Reference> byKey = new HashMap<>(2048); // Paper - Perf: Use bigger expected size to reduce collisions + private final Map> byValue = new IdentityHashMap<>(2048); // Paper - Perf: Use bigger expected size to reduce collisions diff --git a/patches/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch index 71ee314ddc..4279bf5ba5 100644 --- a/patches/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch +++ b/patches/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ray tracing methods to LivingEntity diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 83a56061ce23d3d6f7d8ad3201ce325106f8a4d0..e8c4d42b1637752e69ea128fa7d0148bb5ffae06 100644 +index 88af8a11dfc3b645c5a2b5fb629a73fc1e2b2f80..c6c6fb195476e0d37b0007510044928ebe6e4572 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3849,6 +3849,19 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -29,7 +29,7 @@ index 83a56061ce23d3d6f7d8ad3201ce325106f8a4d0..e8c4d42b1637752e69ea128fa7d0148b public int getShieldBlockingDelay() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index be06dda82db09947f60a353b0d5504955738b6b6..eb74778c0bb6fe6b7c09209eb58195e7fedc54ac 100644 +index 0fe087cd6037b4dd694cc3c5c3eac8203ea6d519..8139ea88988e2e3551258b6686873753353ab9f8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -201,6 +201,33 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0244-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0244-Expose-attack-cooldown-methods-for-Player.patch index 2b4d1222f5..2d2577636a 100644 --- a/patches/server/0244-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/server/0244-Expose-attack-cooldown-methods-for-Player.patch @@ -5,7 +5,7 @@ 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 ddf089d73a05792d99a96bb449717d82755f5cd9..27d29187b5471fa9d1588b7e8e35539be8a861a0 100644 +index b4212f5a5b3b1e5476f7598be165ffb1defb5c21..65c56d29e04fd0853a8bfe9f943d27fe71849cc2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2897,6 +2897,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0245-Improve-death-events.patch b/patches/server/0245-Improve-death-events.patch index 50e37c3a69..245a5a43c7 100644 --- a/patches/server/0245-Improve-death-events.patch +++ b/patches/server/0245-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 38a3b264ba72631c27203a178ac0bbdd36e10a10..80cedd5221d3c0dc475c631113e8782507067cb0 100644 +index 0b039c43bd3bd46f31477fc75585038270242de2..054057482d191d8e77bf4d179d51e32b5d9ca16e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -248,6 +248,10 @@ public class ServerPlayer extends Player { @@ -80,7 +80,7 @@ index 38a3b264ba72631c27203a178ac0bbdd36e10a10..80cedd5221d3c0dc475c631113e87825 } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index de01edaa23fb8493faf46c02abcb47989ac9a582..7dbfc8f0e3eb54e86fef6d9bc68e082ae8cd4422 100644 +index c6c6fb195476e0d37b0007510044928ebe6e4572..4b3d1c8452bd759db6fc8d3d9fcf98e2a8d25084 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -260,6 +260,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -319,30 +319,27 @@ index 6376908df89af1eff3a948ca1faef5d4925f0c3b..4ac32078cb074a78a2bb83307013b849 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractChestedHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractChestedHorse.java -index bb399f775a5530a01f59332848c8ab9b8eceb2b5..14edfe103e61024b569f33de0b6608f39e749319 100644 +index e9137ea77a44eb8ded24a70f3a2b388d77379fa7..2b38ab1080d3693597e466f5517abbda9f1709f2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractChestedHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractChestedHorse.java -@@ -70,11 +70,19 @@ public abstract class AbstractChestedHorse extends AbstractHorse { +@@ -70,9 +70,17 @@ public abstract class AbstractChestedHorse extends AbstractHorse { this.spawnAtLocation(Blocks.CHEST); } -- this.setChest(false); -+ //this.setCarryingChest(false); // Paper - moved to post death logic - } - - } - ++ //this.setChest(false); // Paper - moved to post death logic ++ } ++ } ++ + // Paper start + protected void postDeathDropItems(org.bukkit.event.entity.EntityDeathEvent event) { + if (this.hasChest() && (event == null || !event.isCancelled())) { -+ this.setChest(false); -+ } -+ } + this.setChest(false); + } + } + // Paper end -+ + @Override public void addAdditionalSaveData(CompoundTag nbt) { - super.addAdditionalSaveData(nbt); diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java index 0634b88a5bbfb549d5ec5931e19f674fb9ca4cbe..11555d1b771f93234098a3bc6a6eaacddeeeb4f6 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java diff --git a/patches/server/0247-Mob-Pathfinding-API.patch b/patches/server/0247-Mob-Pathfinding-API.patch index ec6e875e5d..d48ca68f9b 100644 --- a/patches/server/0247-Mob-Pathfinding-API.patch +++ b/patches/server/0247-Mob-Pathfinding-API.patch @@ -160,7 +160,7 @@ index 0000000000000000000000000000000000000000..064712e7b27a200b29c72076a82f4f56 + } +} diff --git a/src/main/java/net/minecraft/world/level/pathfinder/Path.java b/src/main/java/net/minecraft/world/level/pathfinder/Path.java -index 539dc45c3c7ffc60cf3fb47ae4df65e604e8627b..3049edb5a8b5967e5242a3896b23665888eb3472 100644 +index 339a74782ac4ac5e3cc765c3ee7b8c0c10c9d8c8..3e2b60eaeae6d6ee0d3b06182c6f7cb1eec82b8d 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/Path.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/Path.java @@ -18,6 +18,7 @@ public class Path { diff --git a/patches/server/0249-Prevent-various-interactions-from-causing-chunk-load.patch b/patches/server/0249-Prevent-various-interactions-from-causing-chunk-load.patch index 5fad22ce92..0734fec4fb 100644 --- a/patches/server/0249-Prevent-various-interactions-from-causing-chunk-load.patch +++ b/patches/server/0249-Prevent-various-interactions-from-causing-chunk-load.patch @@ -64,7 +64,7 @@ index 13ba764d51f941c2b0d1d2af88ffd0c1fc3982c0..9637c26a3c381869f0a4dfe9189c0095 Vec3 vec3d1 = new Vec3((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D); BlockHitResult movingobjectpositionblock = world.clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, this.enderman)); diff --git a/src/main/java/net/minecraft/world/item/CompassItem.java b/src/main/java/net/minecraft/world/item/CompassItem.java -index 5d3047a420efe59063e90bfc7b42392127e0ad7d..b3c67c954acf7e518d89d6af65a55d6f22dac059 100644 +index 0f74cdc825c66fac9f085f5d2aa408ba9844b253..a83fc0e62d8f48aaf60d21dca04678e954b6b3c2 100644 --- a/src/main/java/net/minecraft/world/item/CompassItem.java +++ b/src/main/java/net/minecraft/world/item/CompassItem.java @@ -77,7 +77,7 @@ public class CompassItem extends Item implements Vanishable { diff --git a/patches/server/0257-Add-LivingEntity-getTargetEntity.patch b/patches/server/0257-Add-LivingEntity-getTargetEntity.patch index 577dd4e729..796d844555 100644 --- a/patches/server/0257-Add-LivingEntity-getTargetEntity.patch +++ b/patches/server/0257-Add-LivingEntity-getTargetEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#getTargetEntity diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 39ff6dd7ee8e821f5693f6a6e01b713b25d30393..5a1dc8f196b274a822db4aa1fa48cd066f12da94 100644 +index 4b3d1c8452bd759db6fc8d3d9fcf98e2a8d25084..1a328de32b69b69814e11a5b6bc55bfccf408d6b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -115,6 +115,7 @@ import net.minecraft.world.level.storage.loot.LootTable; @@ -56,7 +56,7 @@ index 39ff6dd7ee8e821f5693f6a6e01b713b25d30393..5a1dc8f196b274a822db4aa1fa48cd06 public int getShieldBlockingDelay() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index eb74778c0bb6fe6b7c09209eb58195e7fedc54ac..c9a487c1b85d46c1ce25147bd8a610a5631cdb5d 100644 +index 8139ea88988e2e3551258b6686873753353ab9f8..5def5bccd8fce86ce015567e65fefae329819c18 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -1,5 +1,6 @@ diff --git a/patches/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch b/patches/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch index 40b73f5045..99c5fe4d1e 100644 --- a/patches/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch +++ b/patches/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch @@ -89,15 +89,15 @@ index 25ec3ab534872500a2eb51cd44062e2754c404bb..a1097950766ad31393340b423ea3f98a this.lockKey = LockCode.fromTag(nbt); diff --git a/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java -index 3a8bdb788b07b0a8cda3d4b872ede52ca9a005c4..65e1381bb2d10bd212463feb602c60f8fdb9ade1 100644 +index 00de0cc29775a219a763431fd4d54b2fa2585477..4d1a895f3749bdcb132de199e81a9d93330c0ee6 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java -@@ -42,7 +42,7 @@ public class EnchantmentTableBlockEntity extends BlockEntity implements Nameable +@@ -41,7 +41,7 @@ public class EnchantmentTableBlockEntity extends BlockEntity implements Nameable public void load(CompoundTag nbt) { super.load(nbt); if (nbt.contains("CustomName", 8)) { - this.name = Component.Serializer.fromJson(nbt.getString("CustomName")); + this.name = io.papermc.paper.util.MCUtil.getBaseComponentFromNbt("CustomName", nbt); // Paper - Catch ParseException } - } + diff --git a/patches/server/0261-Call-player-spectator-target-events-and-improve-impl.patch b/patches/server/0261-Call-player-spectator-target-events-and-improve-impl.patch index 4dccbd3f63..192951a6e9 100644 --- a/patches/server/0261-Call-player-spectator-target-events-and-improve-impl.patch +++ b/patches/server/0261-Call-player-spectator-target-events-and-improve-impl.patch @@ -19,7 +19,7 @@ spectate the target entity. Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 80cedd5221d3c0dc475c631113e8782507067cb0..3a991a6ef6a8c3150bdc557219424cf13f1dc0cc 100644 +index 054057482d191d8e77bf4d179d51e32b5d9ca16e..19c3eb566552f7994ae5e60dc869c94e08590fbb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2041,6 +2041,21 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch index 403e73e6ee..69b3eaf3cf 100644 --- a/patches/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch +++ b/patches/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add option to prevent players from moving into unloaded diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index acf350e18b9e4de77b43a01afe40a72ef040d92e..c827a2b9a64bba61ffdc8ee5ee35460b332a8556 100644 +index a2eb93d47f659eb5b978358ee409bbf5f5d4d35a..0d9251ceb351b7d763420c49b0bf487907c42c55 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -474,9 +474,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0265-Reset-players-airTicks-on-respawn.patch b/patches/server/0265-Reset-players-airTicks-on-respawn.patch index d2e0da64ac..86f7de966c 100644 --- a/patches/server/0265-Reset-players-airTicks-on-respawn.patch +++ b/patches/server/0265-Reset-players-airTicks-on-respawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Reset players airTicks on respawn diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3a991a6ef6a8c3150bdc557219424cf13f1dc0cc..0627d51d41d492e07b230e9c398158d656493848 100644 +index 19c3eb566552f7994ae5e60dc869c94e08590fbb..08c936288b5ac8738d7cff9fe95b1256ae32cd28 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2516,6 +2516,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0267-Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/patches/server/0267-Improve-Server-Thread-Pool-and-Thread-Priorities.patch index c37045a97f..e696041e24 100644 --- a/patches/server/0267-Improve-Server-Thread-Pool-and-Thread-Priorities.patch +++ b/patches/server/0267-Improve-Server-Thread-Pool-and-Thread-Priorities.patch @@ -38,10 +38,10 @@ index 0000000000000000000000000000000000000000..b60f59cf5cc8eb84a6055b7861857dec + } +} diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index aa52b271bd556a29f774fde375b713d0d187521b..765e4bc00a0526aab6e263dae7233f63f7f31498 100644 +index 1f1422a000eb9a0fb819f26d42b3f39ed683a8da..1bab7a03d433d3745cf9e244f5501dd3efedf583 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -86,7 +86,7 @@ public class Util { +@@ -88,7 +88,7 @@ public class Util { private static final int DEFAULT_MAX_THREADS = 255; private static final int DEFAULT_SAFE_FILE_OPERATION_RETRIES = 10; private static final String MAX_THREADS_SYSTEM_PROPERTY = "max.bg.threads"; @@ -50,7 +50,7 @@ index aa52b271bd556a29f774fde375b713d0d187521b..765e4bc00a0526aab6e263dae7233f63 private static final ExecutorService IO_POOL = makeIoExecutor("IO-Worker-", false); private static final ExecutorService DOWNLOAD_POOL = makeIoExecutor("Download-", true); // Paper start - don't submit BLOCKING PROFILE LOOKUPS to the world gen thread -@@ -152,15 +152,27 @@ public class Util { +@@ -154,15 +154,27 @@ public class Util { return FILENAME_DATE_TIME_FORMATTER.format(ZonedDateTime.now()); } @@ -75,7 +75,7 @@ index aa52b271bd556a29f774fde375b713d0d187521b..765e4bc00a0526aab6e263dae7233f63 executorService = MoreExecutors.newDirectExecutorService(); } else { - AtomicInteger atomicInteger = new AtomicInteger(1); -- executorService = new ForkJoinPool(i, (pool) -> { +- executorService = new ForkJoinPool(i, pool -> { - ForkJoinWorkerThread forkJoinWorkerThread = new ForkJoinWorkerThread(pool) { + executorService = new java.util.concurrent.ThreadPoolExecutor(i, i,0L, TimeUnit.MILLISECONDS, new java.util.concurrent.LinkedBlockingQueue<>(), target -> new io.papermc.paper.util.ServerWorkerThread(target, s, priorityModifier)); + } @@ -83,7 +83,7 @@ index aa52b271bd556a29f774fde375b713d0d187521b..765e4bc00a0526aab6e263dae7233f63 @Override protected void onTermination(Throwable throwable) { if (throwable != null) { -@@ -176,6 +188,7 @@ public class Util { +@@ -178,6 +190,7 @@ public class Util { return forkJoinWorkerThread; }, Util::onThreadException, true); } @@ -92,7 +92,7 @@ index aa52b271bd556a29f774fde375b713d0d187521b..765e4bc00a0526aab6e263dae7233f63 return executorService; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0b704d5d39263b66f7846a9c4a116ac4d96383cf..114f40c63c617f4df9e6c9bf2d50707e289f2f20 100644 +index 3e6008d27ed81453f6b4448f0334b8d343f66694..3ccd1178f0db9301fe87afb8a0d996c0acfc1b16 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -312,6 +312,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { @@ -46,7 +46,7 @@ index 7070d093c80033b61a9c8495bc56153d986b6b03..61f05f34ca33837c643f2915e753ec39 throw new IllegalArgumentException("Packet too big (is " + k + ", should be less than 8388608): " + packet); } -@@ -54,10 +54,35 @@ public class PacketEncoder extends MessageToByteEncoder> { +@@ -54,9 +54,34 @@ public class PacketEncoder extends MessageToByteEncoder> { throw var13; } finally { @@ -58,7 +58,6 @@ index 7070d093c80033b61a9c8495bc56153d986b6b03..61f05f34ca33837c643f2915e753ec39 + // Paper end - Handle large packets disconnecting client ProtocolSwapHandler.swapProtocolIfNeeded(attribute, packet); } - } } } @@ -100,7 +99,7 @@ index 700418bb0c9fbed3f161611881b1e222248ca4eb..cc658a61065d5c0021a4b88fa58b4021 return false; } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundContainerSetContentPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundContainerSetContentPacket.java -index 0e076173033278587df2b5dfbd01cc9005651eb5..dbd8b9b09b82c1b75e8be9dc7416d9f0863c8c87 100644 +index 6206d4d71dfe95b454b22f5b3055623638e145c0..6765175c98d52e5cbc191e88e0d545a05606dfd4 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundContainerSetContentPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundContainerSetContentPacket.java @@ -31,6 +31,16 @@ public class ClientboundContainerSetContentPacket implements Packet implements PlaceRecipe)recipe.value(), null)) { @@ -80,7 +81,7 @@ public class ServerPlaceRecipe implements PlaceRecipe implements PlaceRecipe implements PlaceRecipe inputs, int slot, int amount, int gridX, int gridY) { Slot slot2 = this.menu.getSlot(slot); @@ -181,13 +181,13 @@ index 4303f2b4e55191f8a53170435c6d1263782d1c8d..1534cbb5cb5da61fa7fa41bd503b0199 + } + // Paper end - Improve exact choice recipe ingredients if (!itemStack.isEmpty()) { - for(int i = 0; i < amount; ++i) { + for (int i = 0; i < amount; i++) { - this.moveItemToGrid(slot2, itemStack); + this.moveItemToGrid(slot2, itemStack, isExact); // Paper - Improve exact choice recipe ingredients } } - -@@ -130,8 +142,14 @@ public class ServerPlaceRecipe implements PlaceRecipe implements PlaceRecipe type; protected final CookingBookCategory category; protected final String group; -@@ -23,6 +23,7 @@ public abstract class AbstractCookingRecipe implements Recipe { +@@ -25,6 +25,7 @@ public abstract class AbstractCookingRecipe implements Recipe { this.result = result; this.experience = experience; this.cookingTime = cookingTime; diff --git a/patches/server/0287-Entity-getEntitySpawnReason.patch b/patches/server/0287-Entity-getEntitySpawnReason.patch index 1593a0a103..aee2a0bbb9 100644 --- a/patches/server/0287-Entity-getEntitySpawnReason.patch +++ b/patches/server/0287-Entity-getEntitySpawnReason.patch @@ -120,18 +120,18 @@ index cae8c508972d771ad96228ace8a7e6cbc34d5489..3184f73ce799cc5202d2129be736e2fe // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java -index faad948f089575e4988d989790cc1dd13f8a79cd..e143f42e71ac774d49b75e6d85591aa1189ee210 100644 +index 41fa4258fbdd2f887383b9d3def10466557c406c..d71a9fb54269f7c7e251e0e3bdd8b5a072af5201 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java -@@ -186,7 +186,7 @@ public class SculkShriekerBlockEntity extends BlockEntity implements GameEventLi - } +@@ -181,7 +181,7 @@ public class SculkShriekerBlockEntity extends BlockEntity implements GameEventLi private boolean trySummonWarden(ServerLevel world) { -- return this.warningLevel < 4 ? false : SpawnUtil.trySpawnMob(EntityType.WARDEN, MobSpawnType.TRIGGERED, world, this.getBlockPos(), 20, 5, 6, SpawnUtil.Strategy.ON_TOP_OF_COLLIDER).isPresent(); -+ return this.warningLevel < 4 ? false : SpawnUtil.trySpawnMob(EntityType.WARDEN, MobSpawnType.TRIGGERED, world, this.getBlockPos(), 20, 5, 6, SpawnUtil.Strategy.ON_TOP_OF_COLLIDER, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL, null).isPresent(); // Paper - Entity#getEntitySpawnReason + return this.warningLevel >= 4 +- && SpawnUtil.trySpawnMob(EntityType.WARDEN, MobSpawnType.TRIGGERED, world, this.getBlockPos(), 20, 5, 6, SpawnUtil.Strategy.ON_TOP_OF_COLLIDER) ++ && SpawnUtil.trySpawnMob(EntityType.WARDEN, MobSpawnType.TRIGGERED, world, this.getBlockPos(), 20, 5, 6, SpawnUtil.Strategy.ON_TOP_OF_COLLIDER, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL, null) // Paper - Entity#getEntitySpawnReason + .isPresent(); } - @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index 6fddbcec673564ac531a852f631f6acc460accbd..9ed122efb2b380bb2c1b50fdfe75bf3e679c9c6e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/patches/server/0288-Fire-event-on-GS4-query.patch b/patches/server/0288-Fire-event-on-GS4-query.patch index 70ee09cecb..c43baca1e4 100644 --- a/patches/server/0288-Fire-event-on-GS4-query.patch +++ b/patches/server/0288-Fire-event-on-GS4-query.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fire event on GS4 query diff --git a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java -index 88917d7a179739fc13c59831b15e7ddc711bed1b..1ef089dbf83de35d875c00efdf468c397be56978 100644 +index 7db3cc76543c3e020de799dc844c616e1c027849..41c0eeba9743d7ce141e4e58f96a761948ae33d7 100644 --- a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java +++ b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java @@ -106,13 +106,32 @@ public class QueryThreadGs4 extends GenericThread { @@ -45,7 +45,7 @@ index 88917d7a179739fc13c59831b15e7ddc711bed1b..1ef089dbf83de35d875c00efdf468c39 + networkDataOutputStream.writeString(queryResponse.getHostname()); + // Paper end this.sendTo(networkDataOutputStream.toByteArray(), packet); - LOGGER.debug("Status [{}]", (Object)socketAddress); + LOGGER.debug("Status [{}]", socketAddress); } @@ -147,31 +166,75 @@ public class QueryThreadGs4 extends GenericThread { this.rulesResponse.writeString("splitnum"); @@ -112,13 +112,13 @@ index 88917d7a179739fc13c59831b15e7ddc711bed1b..1ef089dbf83de35d875c00efdf468c39 - this.rulesResponse.writeString(this.worldName); + this.rulesResponse.writeString(queryResponse.getMap()); this.rulesResponse.writeString("numplayers"); -- this.rulesResponse.writeString("" + this.serverInterface.getPlayerCount()); +- this.rulesResponse.writeString(this.serverInterface.getPlayerCount() + ""); + this.rulesResponse.writeString(Integer.toString(queryResponse.getCurrentPlayers())); this.rulesResponse.writeString("maxplayers"); -- this.rulesResponse.writeString("" + this.maxPlayers); +- this.rulesResponse.writeString(this.maxPlayers + ""); + this.rulesResponse.writeString(Integer.toString(queryResponse.getMaxPlayers())); this.rulesResponse.writeString("hostport"); -- this.rulesResponse.writeString("" + this.serverPort); +- this.rulesResponse.writeString(this.serverPort + ""); + this.rulesResponse.writeString(Integer.toString(queryResponse.getPort())); this.rulesResponse.writeString("hostip"); - this.rulesResponse.writeString(this.hostIp); @@ -130,5 +130,5 @@ index 88917d7a179739fc13c59831b15e7ddc711bed1b..1ef089dbf83de35d875c00efdf468c39 - String[] strings = this.serverInterface.getPlayerNames(); + String[] strings = queryResponse.getPlayers().toArray(String[]::new); - for(String string : strings) { + for (String string : strings) { this.rulesResponse.writeString(string); diff --git a/patches/server/0291-Server-Tick-Events.patch b/patches/server/0291-Server-Tick-Events.patch index 51ca906ea2..354c364ca7 100644 --- a/patches/server/0291-Server-Tick-Events.patch +++ b/patches/server/0291-Server-Tick-Events.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Server Tick Events Fires event at start and end of a server tick diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0edd0181d7379e648155231689f1715076edcd1e..ddbe9061b518711ed4bb2e30a90817293fd7fb7d 100644 +index fea2863dc00d9765b86ac4cf925ceaf0fbef7da3..21baf9139a652f21af81e775c4a0cfd3f2a81923 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1357,6 +1357,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop extends CraftBlockStat diff --git a/patches/server/0304-offset-item-frame-ticking.patch b/patches/server/0304-offset-item-frame-ticking.patch index 58d95fb98a..cb15ef5dd8 100644 --- a/patches/server/0304-offset-item-frame-ticking.patch +++ b/patches/server/0304-offset-item-frame-ticking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] offset item frame ticking diff --git a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java -index b3d05578f38af41f242f6634864ce1d2ecac14f8..2446d649225f96748e2fbb1a53a9e1902ac22aa1 100644 +index aaa579ba04445aa350a439610d460a2415320cfc..4dea85a8ab8ae16d02e35d226fd155891ce2319a 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java +++ b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java @@ -39,7 +39,7 @@ public abstract class HangingEntity extends Entity { diff --git a/patches/server/0305-Prevent-consuming-the-wrong-itemstack.patch b/patches/server/0305-Prevent-consuming-the-wrong-itemstack.patch index 9a56dc421d..397c7c692d 100644 --- a/patches/server/0305-Prevent-consuming-the-wrong-itemstack.patch +++ b/patches/server/0305-Prevent-consuming-the-wrong-itemstack.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent consuming the wrong itemstack diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f619171b3e436d7263d5229f7f9131954a0941f8..40ad459823268af0e57a348d241ac19bb576683a 100644 +index 4be7b136dd2b35b0637a1455985ab99bbd3af0a5..b4a817e047a78723d746740c88503441625ac8e7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3730,9 +3730,14 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0308-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch b/patches/server/0308-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch index 983b04c068..82277a287f 100644 --- a/patches/server/0308-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch +++ b/patches/server/0308-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch @@ -5,16 +5,16 @@ Subject: [PATCH] Prevent sync chunk loads when villagers try to find beds diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/SleepInBed.java b/src/main/java/net/minecraft/world/entity/ai/behavior/SleepInBed.java -index 964fc8615d071d33c821f0c54ac1ebd4884df0cd..271e913a87a782dbf12686887f768d899bfb0fbf 100644 +index 6fe337e8d6db168ea181ed2597674f4829b03c47..e552ae6a7db765301a3d280dbf9348d9dc28b9c2 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/SleepInBed.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/SleepInBed.java -@@ -43,7 +43,8 @@ public class SleepInBed extends Behavior { +@@ -42,7 +42,8 @@ public class SleepInBed extends Behavior { } } - BlockState blockState = world.getBlockState(globalPos.pos()); + BlockState blockState = world.getBlockStateIfLoaded(globalPos.pos()); // Paper - Prevent sync chunk loads when villagers try to find beds + if (blockState == null) { return false; } // Paper - Prevent sync chunk loads when villagers try to find beds - return globalPos.pos().closerToCenterThan(entity.position(), 2.0D) && blockState.is(BlockTags.BEDS) && !blockState.getValue(BedBlock.OCCUPIED); + return globalPos.pos().closerToCenterThan(entity.position(), 2.0) && blockState.is(BlockTags.BEDS) && !blockState.getValue(BedBlock.OCCUPIED); } } diff --git a/patches/server/0309-MC-145656-Fix-Follow-Range-Initial-Target.patch b/patches/server/0309-MC-145656-Fix-Follow-Range-Initial-Target.patch index 20a9321020..528cf153ea 100644 --- a/patches/server/0309-MC-145656-Fix-Follow-Range-Initial-Target.patch +++ b/patches/server/0309-MC-145656-Fix-Follow-Range-Initial-Target.patch @@ -17,19 +17,19 @@ index 0dad5be671f990d0edf0a155e2534b3812438902..175ba1184fc997f562f0834b172e17dc @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java -index f29823f2e8a54bd4e81e2940b5c505b152f23e88..fae0dbfb6ac09a0c152c0f74a72583f44316def7 100644 +index bc4b9a46056e83762e29bb04485ad7c754a20336..aecb0ad814586bfc5e56755ee14379a69388b38c 100644 --- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java +++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java -@@ -76,7 +76,7 @@ public class TargetingConditions { +@@ -77,7 +77,7 @@ public class TargetingConditions { - if (this.range > 0.0D) { - double d = this.testInvisible ? targetEntity.getVisibilityPercent(baseEntity) : 1.0D; -- double e = Math.max(this.range * d, 2.0D); -+ double e = Math.max((this.useFollowRange ? this.getFollowRange(baseEntity) : this.range) * d, 2.0D); // Paper - Fix MC-145656 + if (this.range > 0.0) { + double d = this.testInvisible ? targetEntity.getVisibilityPercent(baseEntity) : 1.0; +- double e = Math.max(this.range * d, 2.0); ++ double e = Math.max((this.useFollowRange ? this.getFollowRange(baseEntity) : this.range) * d, 2.0); // Paper - Fix MC-145656 double f = baseEntity.distanceToSqr(targetEntity.getX(), targetEntity.getY(), targetEntity.getZ()); if (f > e * e) { return false; -@@ -94,4 +94,18 @@ public class TargetingConditions { +@@ -92,4 +92,18 @@ public class TargetingConditions { return true; } } diff --git a/patches/server/0311-PlayerDeathEvent-shouldDropExperience.patch b/patches/server/0311-PlayerDeathEvent-shouldDropExperience.patch index 8ce26f265a..c7a6d1afba 100644 --- a/patches/server/0311-PlayerDeathEvent-shouldDropExperience.patch +++ b/patches/server/0311-PlayerDeathEvent-shouldDropExperience.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerDeathEvent#shouldDropExperience diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 71372fad81d34bb0a4035d3a69d656db3b45d9ce..8678efd1b0ad2e6dbf49ed47d0dc959027762b40 100644 +index eb9668f94dbc36f3abc7d5c47c9b1b657aa94ced..79a0accd8230c76d792ed3f7558e8b3ea6d2f6d1 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -934,7 +934,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0313-Don-t-load-Chunks-from-Hoppers-and-other-things.patch b/patches/server/0313-Don-t-load-Chunks-from-Hoppers-and-other-things.patch index dcdab50579..3b189be4e4 100644 --- a/patches/server/0313-Don-t-load-Chunks-from-Hoppers-and-other-things.patch +++ b/patches/server/0313-Don-t-load-Chunks-from-Hoppers-and-other-things.patch @@ -13,10 +13,10 @@ This of course is undesirable, so just return the loaded side as "primary" and treat it as a single chest if the other sides are unloaded diff --git a/src/main/java/net/minecraft/world/level/block/DoubleBlockCombiner.java b/src/main/java/net/minecraft/world/level/block/DoubleBlockCombiner.java -index 0a40d9b7e394fa10d6bfb0057440e1b0e55d1fc4..c889d2e08b9e7c8ee374f0148e72bb3bc9a1d826 100644 +index 963092cd5a4e756ad6a471379a81d8996cc2b091..20c9921339ec6b5127fbadcedc19577f3906074d 100644 --- a/src/main/java/net/minecraft/world/level/block/DoubleBlockCombiner.java +++ b/src/main/java/net/minecraft/world/level/block/DoubleBlockCombiner.java -@@ -25,7 +25,12 @@ public class DoubleBlockCombiner { +@@ -34,7 +34,12 @@ public class DoubleBlockCombiner { return new DoubleBlockCombiner.NeighborCombineResult.Single<>(blockEntity); } else { BlockPos blockPos = pos.relative(directionMapper.apply(state)); @@ -29,4 +29,4 @@ index 0a40d9b7e394fa10d6bfb0057440e1b0e55d1fc4..c889d2e08b9e7c8ee374f0148e72bb3b + // Paper end - Don't load Chunks from Hoppers and other things if (blockState.is(state.getBlock())) { DoubleBlockCombiner.BlockType blockType2 = typeMapper.apply(blockState); - if (blockType2 != DoubleBlockCombiner.BlockType.SINGLE && blockType != blockType2 && blockState.getValue(directionProperty) == state.getValue(directionProperty)) { + if (blockType2 != DoubleBlockCombiner.BlockType.SINGLE diff --git a/patches/server/0314-Optimise-EntityGetter-getPlayerByUUID.patch b/patches/server/0314-Optimise-EntityGetter-getPlayerByUUID.patch index 3066fc8b68..01113bf72e 100644 --- a/patches/server/0314-Optimise-EntityGetter-getPlayerByUUID.patch +++ b/patches/server/0314-Optimise-EntityGetter-getPlayerByUUID.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimise EntityGetter#getPlayerByUUID Use the PlayerList map instead of iterating over all players diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 514b3af4f8ac04744ae44cad7c01086a3f821d5f..3f70bab49d58ec36f6153a7dae577d22c90d2918 100644 +index 20de3be232ccc7ec7bbc3c6aee9acf66fd396af1..54c0aa440cd8e7e1cedc6ef9ae963c68558b6080 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -324,6 +324,15 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0316-Optimize-call-to-getFluid-for-explosions.patch b/patches/server/0316-Optimize-call-to-getFluid-for-explosions.patch index 6afa3465ac..a63134d6ec 100644 --- a/patches/server/0316-Optimize-call-to-getFluid-for-explosions.patch +++ b/patches/server/0316-Optimize-call-to-getFluid-for-explosions.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize call to getFluid for explosions diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 00cfa26783ce0772c75166266ead258a415097bc..b03b4d366cae39081a7b70524e8615c986d76362 100644 +index ade10a9fd93f4c0f04cd56ce5e1da06af4a05060..b057a67a416928ae30bd407b3da982b73ae3be03 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -191,7 +191,7 @@ public class Explosion { diff --git a/patches/server/0320-Tracking-Range-Improvements.patch b/patches/server/0320-Tracking-Range-Improvements.patch index 6370a7e08a..2daaa84425 100644 --- a/patches/server/0320-Tracking-Range-Improvements.patch +++ b/patches/server/0320-Tracking-Range-Improvements.patch @@ -8,7 +8,7 @@ Sets tracking range of watermobs to animals instead of misc and simplifies code Also ignores Enderdragon, defaulting it to Mojang's setting diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 1b102f4c800dc6aa4e977c8ae8c9aada5d94e194..eff31fdd159dc7844bd3be3b769625a5704c2f17 100644 +index 8805fd57e7198aa9afaafe45fab13fd343e2a545..c69f1d970e1014f1be601e34bdd8b5fd749da339 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1761,6 +1761,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0321-Fix-items-vanishing-through-end-portal.patch b/patches/server/0321-Fix-items-vanishing-through-end-portal.patch index 952b1672dc..b2763538f5 100644 --- a/patches/server/0321-Fix-items-vanishing-through-end-portal.patch +++ b/patches/server/0321-Fix-items-vanishing-through-end-portal.patch @@ -13,7 +13,7 @@ Quickly loading the exact world spawn chunk before searching the heightmap resolves the issue without having to load all spawn chunks. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 92521a46de31b13812d82a844ddc178df2b34919..8a8bdd3f77462b6aff97a2341d454b11c578f97f 100644 +index 257be4dd3f38c089dd970b9ac6f292b4f010a01c..98db75a013905ddd38ffd26d615ad8d02d8ddd22 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3363,6 +3363,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0325-Add-debug-for-sync-chunk-loads.patch b/patches/server/0325-Add-debug-for-sync-chunk-loads.patch index b3e2d87143..57fda6ab95 100644 --- a/patches/server/0325-Add-debug-for-sync-chunk-loads.patch +++ b/patches/server/0325-Add-debug-for-sync-chunk-loads.patch @@ -312,7 +312,7 @@ index 326b67c15ee3df162bf4468729c49dd98b582f02..8a118a7b2878d3c99dadfa97e2ae58fd chunkproviderserver_b.managedBlock(completablefuture::isDone); this.level.timings.syncChunkLoad.stopTiming(); // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3f70bab49d58ec36f6153a7dae577d22c90d2918..14958ce7c7cb1a55da6b6dd6c32a32c9346e866b 100644 +index 54c0aa440cd8e7e1cedc6ef9ae963c68558b6080..4d1d84383c11ef1e83edb50be62173533b7a641b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -415,6 +415,13 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0328-Entity-Jump-API.patch b/patches/server/0328-Entity-Jump-API.patch index 5dcf9bf76f..d1a852319f 100644 --- a/patches/server/0328-Entity-Jump-API.patch +++ b/patches/server/0328-Entity-Jump-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Entity Jump API public net.minecraft.world.entity.LivingEntity jumping diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 169a9aa06350dccf2624534754be3a22b2f42b33..c7b8c823ea1a1cafb98b4305febd52aa3652bc37 100644 +index b4a817e047a78723d746740c88503441625ac8e7..2a417145d9fe4d029cf3738f3320c0bcd3e025a9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3304,8 +3304,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0329-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/server/0329-Add-option-to-nerf-pigmen-from-nether-portals.patch index e1d5c928f0..d5d6d0d4ca 100644 --- a/patches/server/0329-Add-option-to-nerf-pigmen-from-nether-portals.patch +++ b/patches/server/0329-Add-option-to-nerf-pigmen-from-nether-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to nerf pigmen from nether portals diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8a8bdd3f77462b6aff97a2341d454b11c578f97f..c08b856e56996cf7ad1926d717effb9a1b98d8c6 100644 +index 98db75a013905ddd38ffd26d615ad8d02d8ddd22..537461e60366580bd18e3814113ef1f8b7009b39 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -397,6 +397,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0340-Pillager-patrol-spawn-settings-and-per-player-option.patch b/patches/server/0340-Pillager-patrol-spawn-settings-and-per-player-option.patch index bcdbf37892..4d9ffc8193 100644 --- a/patches/server/0340-Pillager-patrol-spawn-settings-and-per-player-option.patch +++ b/patches/server/0340-Pillager-patrol-spawn-settings-and-per-player-option.patch @@ -10,7 +10,7 @@ When not per player it will use the Vanilla mechanic of one delay per world and the world age for the start day. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8678efd1b0ad2e6dbf49ed47d0dc959027762b40..7649367da5ff97815b710f4902b793a0f6b0e6fa 100644 +index 79a0accd8230c76d792ed3f7558e8b3ea6d2f6d1..9f0d42256d1b41242bd08939f88583e2d337ede3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -249,6 +249,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0341-Remote-Connections-shouldn-t-hold-up-shutdown.patch b/patches/server/0341-Remote-Connections-shouldn-t-hold-up-shutdown.patch index 6eb90f4536..6a31d5070a 100644 --- a/patches/server/0341-Remote-Connections-shouldn-t-hold-up-shutdown.patch +++ b/patches/server/0341-Remote-Connections-shouldn-t-hold-up-shutdown.patch @@ -24,10 +24,10 @@ index 78775feb965d6eb98a1ff655ae44b9f0399ef9aa..28fe088d97bd5fbfcc29dcc7d2a657d5 System.exit(0); // CraftBukkit diff --git a/src/main/java/net/minecraft/server/rcon/thread/RconThread.java b/src/main/java/net/minecraft/server/rcon/thread/RconThread.java -index 3bf60f640aa9fa4cabd2b3e5d3931e8467b9df24..8a493fa049dec741294098e3fee540a60f2accab 100644 +index 594fbb033b63b8c9fb8752b1fcc78f8e9f7a2a83..c12d7db2b048a327c0e8f398848cd3a9bce0ebce 100644 --- a/src/main/java/net/minecraft/server/rcon/thread/RconThread.java +++ b/src/main/java/net/minecraft/server/rcon/thread/RconThread.java -@@ -107,6 +107,14 @@ public class RconThread extends GenericThread { +@@ -104,6 +104,14 @@ public class RconThread extends GenericThread { this.clients.clear(); } @@ -41,4 +41,4 @@ index 3bf60f640aa9fa4cabd2b3e5d3931e8467b9df24..8a493fa049dec741294098e3fee540a6 + // Paper end - don't wait for remote connections private void closeSocket(ServerSocket socket) { - LOGGER.debug("closeSocket: {}", (Object)socket); + LOGGER.debug("closeSocket: {}", socket); diff --git a/patches/server/0343-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/server/0343-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch index a0fdf0378d..c5cc3ce8c7 100644 --- a/patches/server/0343-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch +++ b/patches/server/0343-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch @@ -7,7 +7,7 @@ Suspected case would be around the technique used in .stopRiding Stack will identify any causer of this and warn instead of crashing. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index eff31fdd159dc7844bd3be3b769625a5704c2f17..2c954f8a91b9f50ce69eda475b22d4159b87d277 100644 +index c69f1d970e1014f1be601e34bdd8b5fd749da339..2fba58fd5c9b17512eadacb899c59a04df5d415f 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1452,6 +1452,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -25,7 +25,7 @@ index eff31fdd159dc7844bd3be3b769625a5704c2f17..2c954f8a91b9f50ce69eda475b22d415 EntityType entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 14958ce7c7cb1a55da6b6dd6c32a32c9346e866b..d2da284aa7284c5205e656c48262061980893be6 100644 +index 4d1d84383c11ef1e83edb50be62173533b7a641b..9af1877321356348ad96b92ae8c5f4811bef50ac 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2224,7 +2224,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0344-Don-t-tick-dead-players.patch b/patches/server/0344-Don-t-tick-dead-players.patch index 7338d09f93..ed79ba1216 100644 --- a/patches/server/0344-Don-t-tick-dead-players.patch +++ b/patches/server/0344-Don-t-tick-dead-players.patch @@ -7,7 +7,7 @@ Causes sync chunk loads and who knows what all else. This is safe because Spectators are skipped in unloaded chunks too in vanilla. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7649367da5ff97815b710f4902b793a0f6b0e6fa..e695b5ee0b9ce5dad81a7f894ef1e7fd868f11eb 100644 +index 9f0d42256d1b41242bd08939f88583e2d337ede3..ca75d22e90fd879d464733813939f877ec875905 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -684,7 +684,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0346-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0346-Don-t-move-existing-players-to-world-spawn.patch index f002120e54..58204fae45 100644 --- a/patches/server/0346-Don-t-move-existing-players-to-world-spawn.patch +++ b/patches/server/0346-Don-t-move-existing-players-to-world-spawn.patch @@ -13,7 +13,7 @@ By skipping this, we avoid potential for a large spike on server start. public net.minecraft.server.level.ServerPlayer fudgeSpawnLocation(Lnet/minecraft/server/level/ServerLevel;)V diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e695b5ee0b9ce5dad81a7f894ef1e7fd868f11eb..b6698a65d778cea6b7dc9b8ebfceec2425c732b7 100644 +index ca75d22e90fd879d464733813939f877ec875905..04e54d2214d0ae0202490aceab54b8b10ef38229 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -337,7 +337,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0347-Optimize-Pathfinding.patch b/patches/server/0347-Optimize-Pathfinding.patch index 0bd6e09507..c4d6cafff0 100644 --- a/patches/server/0347-Optimize-Pathfinding.patch +++ b/patches/server/0347-Optimize-Pathfinding.patch @@ -7,10 +7,10 @@ Prevents pathfinding from spamming failures for things such as arrow attacks. diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index c3b406e6302ae0ac1ef56253ab614ca201a7a1c8..a04fb58c29b462e20ed0b702cef478e3985b7cd2 100644 +index 25a9f1fd69fbafab5129740e26e9741e35885ce0..e3a7eaf31ab19cc9f23a0c87649b74bb42976cb4 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -@@ -193,9 +193,29 @@ public abstract class PathNavigation { +@@ -192,9 +192,29 @@ public abstract class PathNavigation { return this.moveTo(this.createPath(x, y, z, 1), speed); } diff --git a/patches/server/0349-Reduce-memory-footprint-of-CompoundTag.patch b/patches/server/0349-Reduce-memory-footprint-of-CompoundTag.patch index c714de8792..56beb848eb 100644 --- a/patches/server/0349-Reduce-memory-footprint-of-CompoundTag.patch +++ b/patches/server/0349-Reduce-memory-footprint-of-CompoundTag.patch @@ -8,10 +8,10 @@ is important because we clone chunk data after reading it for safety. So, reduce the impact of the clone on GC. diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java -index c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b..2c760084cd1b84a1f2c4f6a6db8d396a1b3c5395 100644 +index 1e2f58f2f95c558ce28706c405050c4c5701dd40..c7945686a4ee50d7a9d5f1173aa90e456f68b410 100644 --- a/src/main/java/net/minecraft/nbt/CompoundTag.java +++ b/src/main/java/net/minecraft/nbt/CompoundTag.java -@@ -50,7 +50,7 @@ public class CompoundTag implements Tag { +@@ -49,7 +49,7 @@ public class CompoundTag implements Tag { private static CompoundTag loadCompound(DataInput input, NbtAccounter tracker) throws IOException { tracker.accountBytes(48L); @@ -19,8 +19,8 @@ index c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b..2c760084cd1b84a1f2c4f6a6db8d396a + it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap map = new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(8, 0.8f); // Paper - Reduce memory footprint of CompoundTag byte b; - while((b = input.readByte()) != 0) { -@@ -171,7 +171,7 @@ public class CompoundTag implements Tag { + while ((b = input.readByte()) != 0) { +@@ -166,7 +166,7 @@ public class CompoundTag implements Tag { } public CompoundTag() { @@ -29,7 +29,7 @@ index c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b..2c760084cd1b84a1f2c4f6a6db8d396a } @Override -@@ -490,8 +490,16 @@ public class CompoundTag implements Tag { +@@ -477,8 +477,16 @@ public class CompoundTag implements Tag { @Override public CompoundTag copy() { diff --git a/patches/server/0350-Prevent-opening-inventories-when-frozen.patch b/patches/server/0350-Prevent-opening-inventories-when-frozen.patch index 2ea12128dc..f1f9ea6812 100644 --- a/patches/server/0350-Prevent-opening-inventories-when-frozen.patch +++ b/patches/server/0350-Prevent-opening-inventories-when-frozen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent opening inventories when frozen diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b6698a65d778cea6b7dc9b8ebfceec2425c732b7..347747282c77f5d1dde907b99cc2c8029675dc34 100644 +index 04e54d2214d0ae0202490aceab54b8b10ef38229..3a856f28237246660665aef983e5e9fe2bac8c37 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -653,7 +653,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0351-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0351-Don-t-run-entity-collision-code-if-not-needed.patch index 5c6be151ec..4fb9ce321f 100644 --- a/patches/server/0351-Don-t-run-entity-collision-code-if-not-needed.patch +++ b/patches/server/0351-Don-t-run-entity-collision-code-if-not-needed.patch @@ -12,7 +12,7 @@ The entity's current team collision rule causes them to NEVER collide. Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f441d7a1188cecd91206d78b58457c330e4e8663..178d8e9795a6c451e0ff350d9412bc2e0ee686ae 100644 +index 2a417145d9fe4d029cf3738f3320c0bcd3e025a9..e8410acb2f4be966177a0ec62fc93b8fe2cc0af3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3419,10 +3419,24 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0352-Implement-Player-Client-Options-API.patch b/patches/server/0352-Implement-Player-Client-Options-API.patch index 2a651ebbc3..adc09129e4 100644 --- a/patches/server/0352-Implement-Player-Client-Options-API.patch +++ b/patches/server/0352-Implement-Player-Client-Options-API.patch @@ -87,7 +87,7 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 347747282c77f5d1dde907b99cc2c8029675dc34..eb0a0a9faacf3c7d879b435b637a9c8203319aa6 100644 +index 3a856f28237246660665aef983e5e9fe2bac8c37..3d7a938f72424a4f30f75563393a953cf9f11933 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -338,7 +338,7 @@ public class ServerPlayer extends Player { @@ -136,7 +136,7 @@ index 347747282c77f5d1dde907b99cc2c8029675dc34..eb0a0a9faacf3c7d879b435b637a9c82 this.adventure$locale = java.util.Objects.requireNonNullElse(net.kyori.adventure.translation.Translator.parseLocale(this.language), java.util.Locale.US); // Paper this.requestedViewDistance = clientOptions.viewDistance(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c5ea6d424c8009c8afd791e58a75174291696d05..d6bddec130167af3d72555535045568ee941bb88 100644 +index 476b7bc14b4d2e7ed30c23b65dbc7aa0c6679b6b..5ba0fa6fda6d496f7540185e6dc58439cc1e04f1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -573,6 +573,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0354-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch b/patches/server/0354-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch index be256ac7cb..79298e93c2 100644 --- a/patches/server/0354-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch +++ b/patches/server/0354-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch @@ -43,7 +43,7 @@ index 2fba58fd5c9b17512eadacb899c59a04df5d415f..4c1dd470ac561f61d7f49adf90d273b1 EntityType entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index eb0a0a9faacf3c7d879b435b637a9c8203319aa6..e5653695a3fbcd260ce44ca37291406a1033a3fa 100644 +index 3d7a938f72424a4f30f75563393a953cf9f11933..b64b20312396638b8fd596bca3794863601d2bb4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -267,6 +267,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0355-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0355-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch index 483de53840..74931d2851 100644 --- a/patches/server/0355-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch +++ b/patches/server/0355-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch @@ -87,7 +87,7 @@ index c5614cc12789fdfad3519434e115a50c12844b3b..d0e158235915e4efc8bda99d552d029c } // Paper end - Entity#getEntitySpawnReason diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c08b856e56996cf7ad1926d717effb9a1b98d8c6..7619f6e772d2fab177a83b083bcce3d2ee1d9a95 100644 +index 537461e60366580bd18e3814113ef1f8b7009b39..5863d7118d9935735400cff4a09dd8546f67bac5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2289,27 +2289,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0356-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0356-Add-PlayerAttackEntityCooldownResetEvent.patch index 35dea473a5..e8b17654bf 100644 --- a/patches/server/0356-Add-PlayerAttackEntityCooldownResetEvent.patch +++ b/patches/server/0356-Add-PlayerAttackEntityCooldownResetEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerAttackEntityCooldownResetEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 178d8e9795a6c451e0ff350d9412bc2e0ee686ae..d53069d6b0be5a82f7b34a336439fdfd356e4a79 100644 +index e8410acb2f4be966177a0ec62fc93b8fe2cc0af3..1e5ffd48251c0727e662da4d9a59bc8c23eb95ff 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2211,7 +2211,16 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0359-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0359-Fix-item-duplication-and-teleport-issues.patch index fa8f837500..7e568e11ce 100644 --- a/patches/server/0359-Fix-item-duplication-and-teleport-issues.patch +++ b/patches/server/0359-Fix-item-duplication-and-teleport-issues.patch @@ -80,7 +80,7 @@ index 5863d7118d9935735400cff4a09dd8546f67bac5..23ee63119d55b40829c03a855ae0f8b2 public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b4b2cf6875c96ab213522814ab79bfeaa9848f3b..947ea9f79b0115207e42fa80fe5368ed8c0a1d1c 100644 +index 1e5ffd48251c0727e662da4d9a59bc8c23eb95ff..685c0028032b60c025f825c55e975b08c97d86f2 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1714,9 +1714,9 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0361-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0361-Validate-PickItem-Packet-and-kick-for-invalid.patch index daa5857791..c1704d1690 100644 --- a/patches/server/0361-Validate-PickItem-Packet-and-kick-for-invalid.patch +++ b/patches/server/0361-Validate-PickItem-Packet-and-kick-for-invalid.patch @@ -5,7 +5,7 @@ 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 89da9267c4c1a884e5483c423ccc68ed1d79259b..83cd7c4157b49f2cc86a44f5040f33585ced4270 100644 +index f78f5be4a1d3e551649090b296881d8dafea1ab9..f0cacf20fbe7dbe11856d89f423c1c74a242853e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -867,7 +867,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0363-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/patches/server/0363-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch index 7501e408f6..890d937ec1 100644 --- a/patches/server/0363-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch +++ b/patches/server/0363-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch @@ -17,7 +17,7 @@ keeping long lived large direct buffers in cache. Set system properly at server startup if not set already to help protect from this. diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index ee9bb75f2850bf421cc8ff02aca5b230538d6503..db6398c1822f6ad499feddd6a915984ef9917777 100644 +index f21bff10aa56b418b1c3c3f1a40b88c4e992c26d..44f49cc8b7800eebda426a1a04a311979e4516b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -26,6 +26,7 @@ public class Main { diff --git a/patches/server/0364-misc-debugging-dumps.patch b/patches/server/0364-misc-debugging-dumps.patch index 23c37105f1..37d8c2638d 100644 --- a/patches/server/0364-misc-debugging-dumps.patch +++ b/patches/server/0364-misc-debugging-dumps.patch @@ -42,7 +42,7 @@ index 40ff3090fb17fb0f01a9b52639fb783ea57ce6b6..d39743d9626eb01c942194387dafb110 StackTraceElement[] astacktraceelement = exception.getStackTrace(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e5ecca5ae9e37e4d4d6d2adfd5f487a869ab775d..390bc01c19d5fed7ed455ddf9823697469e0d7fe 100644 +index 1a7dffb3947dab0e334cd5873c69542f383aed61..f4e9929c956585a9305c2b40a995ec4fff08e7e4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -904,6 +904,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop packet) { diff --git a/src/main/java/net/minecraft/network/PacketEncoder.java b/src/main/java/net/minecraft/network/PacketEncoder.java -index 61f05f34ca33837c643f2915e753ec3935a38314..85b8be8ffac0fb40e9cae0528271ed41473811c8 100644 +index 061eada043325142d33a0cec02e9e484d14a7fca..96d5448019d53ac3575e209c1c5c223a62a2638d 100644 --- a/src/main/java/net/minecraft/network/PacketEncoder.java +++ b/src/main/java/net/minecraft/network/PacketEncoder.java @@ -47,7 +47,14 @@ public class PacketEncoder extends MessageToByteEncoder> { diff --git a/patches/server/0367-Implement-Mob-Goal-API.patch b/patches/server/0367-Implement-Mob-Goal-API.patch index 13572c9b4d..6b2e0d999b 100644 --- a/patches/server/0367-Implement-Mob-Goal-API.patch +++ b/patches/server/0367-Implement-Mob-Goal-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement Mob Goal API diff --git a/build.gradle.kts b/build.gradle.kts -index e9cda97679ed18156baf009926d6f210093112bd..7cbfd129efcc2e971b75aaa272dee79a3b4d2d5c 100644 +index 2b3da4b69e89a6b98ec98820e55044fefdafc061..d16c0311142e44ec1048818221796c09ab7a90d8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -44,6 +44,7 @@ dependencies { diff --git a/patches/server/0368-Add-villager-reputation-API.patch b/patches/server/0368-Add-villager-reputation-API.patch index 04891189ff..5043e90bdc 100644 --- a/patches/server/0368-Add-villager-reputation-API.patch +++ b/patches/server/0368-Add-villager-reputation-API.patch @@ -9,10 +9,10 @@ public net.minecraft.world.entity.ai.gossip.GossipContainer$EntityGossips public net.minecraft.world.entity.ai.gossip.GossipContainer gossips diff --git a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java -index a28f359202e6502c6ea5e9c918ec0b3e9a3fca61..f1e717dc8320a00c0cc0ff53d97b74e7c1e109fe 100644 +index f06a5f0d9c5c877ddf963254d3124f5fe2d67282..aa32804bc9affe9a615d3ffaa513f6f09aab3f32 100644 --- a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java +++ b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java -@@ -231,6 +231,43 @@ public class GossipContainer { +@@ -216,6 +216,43 @@ public class GossipContainer { public void remove(GossipType gossipType) { this.entries.removeInt(gossipType); } diff --git a/patches/server/0371-Fix-PotionEffect-ignores-icon-flag.patch b/patches/server/0371-Fix-PotionEffect-ignores-icon-flag.patch index 208862b074..11cb193b27 100644 --- a/patches/server/0371-Fix-PotionEffect-ignores-icon-flag.patch +++ b/patches/server/0371-Fix-PotionEffect-ignores-icon-flag.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix PotionEffect ignores icon flag Co-authored-by: Tamion <70228790+notTamion@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index e5cd09c9c27f23860fc31cb22377a54e5e60bd38..7dfc5966e6262ded29c60d7423f8a1e4a42ca948 100644 +index 29fa2231cc5d9c3ac36d508f14408d6077b6594c..d84503ab329ebeb4c74f10f9897661ee6799e3d3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -484,7 +484,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0373-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0373-Wait-for-Async-Tasks-during-shutdown.patch index bf00f6de7d..780d2a450b 100644 --- a/patches/server/0373-Wait-for-Async-Tasks-during-shutdown.patch +++ b/patches/server/0373-Wait-for-Async-Tasks-during-shutdown.patch @@ -10,7 +10,7 @@ Adds a 5 second grace period for any async tasks to finish and warns if any are still running after that delay just as reload does. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 390bc01c19d5fed7ed455ddf9823697469e0d7fe..f786bf10a42fa4e9f610416959c60c52729c277b 100644 +index f4e9929c956585a9305c2b40a995ec4fff08e7e4..af68110105a9a3ec0ebd31ea9733af8dfed1037b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -931,6 +931,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoopwill throw an NPE. */ public UUID getUUID(String key) { @@ -46,10 +46,10 @@ index 2c760084cd1b84a1f2c4f6a6db8d396a1b3c5395..eea9866aecb7189455319d83561fcef3 return tag != null && tag.getType() == IntArrayTag.TYPE && ((IntArrayTag)tag).getAsIntArray().length == 4; } diff --git a/src/main/java/net/minecraft/nbt/NbtUtils.java b/src/main/java/net/minecraft/nbt/NbtUtils.java -index 4388f2a8b05f5ed2f0934c1693299a4c92072adc..ba0726157417cdde1c9bca93a9e37e68d9b2286d 100644 +index 3e395d575fab2348cd30a88511a194aba2d8e4ba..f3b11b08358fdd93464cd19b05047e10727a5799 100644 --- a/src/main/java/net/minecraft/nbt/NbtUtils.java +++ b/src/main/java/net/minecraft/nbt/NbtUtils.java -@@ -72,6 +72,14 @@ public final class NbtUtils { +@@ -65,6 +65,14 @@ public final class NbtUtils { @Nullable public static GameProfile readGameProfile(CompoundTag nbt) { UUID uUID = nbt.hasUUID("Id") ? nbt.getUUID("Id") : Util.NIL_UUID; diff --git a/patches/server/0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch index c744a5628c..4f39c3bd5a 100644 --- a/patches/server/0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch +++ b/patches/server/0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't check chunk for portal on world gen entity add diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 67ff37d395f83c1a0f5c8305375f703cbe4c0609..4aad2d99148a0d6ee06049f20de2aaa6218c1d39 100644 +index 685c0028032b60c025f825c55e975b08c97d86f2..b98f82b619a1932e6d820a2c42120efdc03fc839 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3531,7 +3531,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/patches/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch index 40af6ad187..8c7dd5304b 100644 --- a/patches/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch +++ b/patches/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch @@ -29,10 +29,10 @@ index d46b7bff34b9b43e895f713d2e73071bc62de443..567ca2f09d7bf03ef1758459829a865e String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName); LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath()); diff --git a/src/main/java/net/minecraft/server/Services.java b/src/main/java/net/minecraft/server/Services.java -index d200619b4aa820e273c26f2f6133589c727f8a0e..d89c624554ab08bd1b33a3f62b52aa57aaafb8b4 100644 +index 5928e5f1934b8e247ba516595018ed5c633d3b5d..33e3815a0c979609d4c7ab83ad91e87ac07a556d 100644 --- a/src/main/java/net/minecraft/server/Services.java +++ b/src/main/java/net/minecraft/server/Services.java -@@ -22,12 +22,12 @@ public record Services(MinecraftSessionService sessionService, ServicesKeySet se +@@ -24,12 +24,12 @@ public record Services( return java.util.Objects.requireNonNull(this.paperConfigurations); } // Paper end - add paper configuration files diff --git a/patches/server/0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/patches/server/0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch index f1039e4bf0..be48e82d6e 100644 --- a/patches/server/0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch +++ b/patches/server/0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch @@ -9,10 +9,10 @@ itself, so the criterion object stores no references - and thus needs no cleanup. diff --git a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java -index 5450734060428426981e2c1f1025b1aa5aa4d271..805459ba815520165c86a537fbb1f3e04b85bfbd 100644 +index 9a387d5dc0925304d4163e3caa22206aaa68e3b7..f43053ba082f9772b6ec02828fa2d6f387c32d26 100644 --- a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java +++ b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java -@@ -15,22 +15,22 @@ import net.minecraft.server.level.ServerPlayer; +@@ -15,32 +15,32 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.storage.loot.LootContext; public abstract class SimpleCriterionTrigger implements CriterionTrigger { @@ -21,10 +21,8 @@ index 5450734060428426981e2c1f1025b1aa5aa4d271..805459ba815520165c86a537fbb1f3e0 @Override public final void addPlayerListener(PlayerAdvancements manager, CriterionTrigger.Listener conditions) { -- this.players.computeIfAbsent(manager, (managerx) -> { -+ manager.criterionData.computeIfAbsent(this, (managerx) -> { // Paper - fix AdvancementDataPlayer leak - return Sets.newHashSet(); - }).add(conditions); +- this.players.computeIfAbsent(manager, managerx -> Sets.newHashSet()).add(conditions); ++ manager.criterionData.computeIfAbsent(this, managerx -> Sets.newHashSet()).add(conditions); // Paper - fix AdvancementDataPlayer leak } @Override @@ -38,8 +36,7 @@ index 5450734060428426981e2c1f1025b1aa5aa4d271..805459ba815520165c86a537fbb1f3e0 + manager.criterionData.remove(this); // Paper - fix AdvancementDataPlayer leak } } - -@@ -38,12 +38,12 @@ public abstract class SimpleCriterionTrigger createPacket(int id, FriendlyByteBuf buf) { + if (id < 0 || id >= this.idToDeserializer.size()) return null; // Paper - Perf: Optimize exception handling Function> function = this.idToDeserializer.get(id); - return function != null ? function.apply(buf) : null; + return (Packet)(function != null ? function.apply(buf) : null); } diff --git a/src/main/java/net/minecraft/network/Varint21FrameDecoder.java b/src/main/java/net/minecraft/network/Varint21FrameDecoder.java -index 00c170a16a57f41f881c6b282cba474ce485b34c..137b9a088c82ce6813bf8a80468675bb4992ce53 100644 +index 421dd76816063d56ea80339b77531729edd6aa55..1523d69b7b332f0085f40310a94d406da6513edc 100644 --- a/src/main/java/net/minecraft/network/Varint21FrameDecoder.java +++ b/src/main/java/net/minecraft/network/Varint21FrameDecoder.java @@ -39,6 +39,12 @@ public class Varint21FrameDecoder extends ByteToMessageDecoder { diff --git a/patches/server/0409-Fix-some-rails-connecting-improperly.patch b/patches/server/0409-Fix-some-rails-connecting-improperly.patch index 85d4d5d18d..95fe65653d 100644 --- a/patches/server/0409-Fix-some-rails-connecting-improperly.patch +++ b/patches/server/0409-Fix-some-rails-connecting-improperly.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix some rails connecting improperly diff --git a/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java b/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java -index d8dd9f26fe4344541d0544e35bbc66c5d567a80b..6bd4e4d173f34e0234f4474e49ce2d897f85386f 100644 +index e9fbbca04105370226bf5a264ba6ea96e09c3f10..93398cf061a8609f0b77a5e7f8340870019b9824 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java @@ -68,6 +68,7 @@ public abstract class BaseRailBlock extends Block implements SimpleWaterloggedBl @@ -29,7 +29,7 @@ index 41452abc7b761858ff2f3ff6a833b09c16fded4f..17242c24d73c9ffb1c976a45925f85d1 boolean flag1 = false; List list = this.getInteractingMinecartOfType(world, pos, AbstractMinecart.class, (entity) -> { diff --git a/src/main/java/net/minecraft/world/level/block/RailState.java b/src/main/java/net/minecraft/world/level/block/RailState.java -index 0cbfad97371b59de95963a09aa16f3dad7a37222..939665cbe4cce36cd64c299908a738a4d1c2140e 100644 +index 6caafa73b03ed55c95303e49735eaf3dfd34903a..aa7ebaccad8dc555d9e1dee300e75fcd968a3608 100644 --- a/src/main/java/net/minecraft/world/level/block/RailState.java +++ b/src/main/java/net/minecraft/world/level/block/RailState.java @@ -17,6 +17,12 @@ public class RailState { @@ -45,7 +45,7 @@ index 0cbfad97371b59de95963a09aa16f3dad7a37222..939665cbe4cce36cd64c299908a738a4 public RailState(Level world, BlockPos pos, BlockState state) { this.level = world; this.pos = pos; -@@ -143,6 +149,11 @@ public class RailState { +@@ -141,6 +147,11 @@ public class RailState { } private void connectTo(RailState placementHelper) { @@ -57,7 +57,7 @@ index 0cbfad97371b59de95963a09aa16f3dad7a37222..939665cbe4cce36cd64c299908a738a4 this.connections.add(placementHelper.pos); BlockPos blockPos = this.pos.north(); BlockPos blockPos2 = this.pos.south(); -@@ -333,10 +344,15 @@ public class RailState { +@@ -331,10 +342,15 @@ public class RailState { this.state = this.state.setValue(this.block.getShapeProperty(), railShape2); if (forceUpdate || this.level.getBlockState(this.pos) != this.state) { this.level.setBlock(this.pos, this.state, 3); @@ -67,14 +67,14 @@ index 0cbfad97371b59de95963a09aa16f3dad7a37222..939665cbe4cce36cd64c299908a738a4 + } + // Paper end - Fix some rails connecting improperly - for(int i = 0; i < this.connections.size(); ++i) { + for (int i = 0; i < this.connections.size(); i++) { RailState railState = this.getRail(this.connections.get(i)); - if (railState != null) { + if (railState != null && railState.isValid()) { // Paper - Fix some rails connecting improperly railState.removeSoftConnections(); if (railState.canConnectTo(this)) { railState.connectTo(this); -@@ -349,6 +365,6 @@ public class RailState { +@@ -347,6 +363,6 @@ public class RailState { } public BlockState getState() { diff --git a/patches/server/0411-Brand-support.patch b/patches/server/0411-Brand-support.patch index bccbce58fe..bc78c3b986 100644 --- a/patches/server/0411-Brand-support.patch +++ b/patches/server/0411-Brand-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 966b86a2b26a32aad2656d1f2beb6daf5b81b3b1..587cce4d3878bc5cba5f4f4e58eacce2f656e242 100644 +index 8729fb23a7d7700fbccba03d07382091134c6549..7c7e3d541733ea1784f8b90acbc8b1aecb6d7859 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -273,6 +273,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0424-Add-methods-to-get-translation-keys.patch b/patches/server/0424-Add-methods-to-get-translation-keys.patch index d602369647..26a527c94e 100644 --- a/patches/server/0424-Add-methods-to-get-translation-keys.patch +++ b/patches/server/0424-Add-methods-to-get-translation-keys.patch @@ -25,7 +25,7 @@ index f041b5d80bff9c022b007e04ef1558e9116acc6b..a586442422a2b2c06b785af0d261d3e1 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java -index f0f7fb977edb7e7009716429f007e44fa36bfcda..7aa4035a4df1ddcc71065034eafd569ca59be810 100644 +index f24b4732db849893fd870b4b6a49f1c4b3eacdec..3feaaca5aaee12e48fa2e5f5d05329c9980b161e 100644 --- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java @@ -152,6 +152,11 @@ public class CraftEnchantment extends Enchantment implements Handleable implements BehaviorControl +@@ -18,7 +18,7 @@ public class GateBehavior implements BehaviorControl private final Set> exitErasedMemories; private final GateBehavior.OrderPolicy orderPolicy; private final GateBehavior.RunningPolicy runningPolicy; @@ -18,9 +18,9 @@ index 419eadbe31b86b7192fd7a63268d547705e7c7ce..4b31a91a8d8a3b231e323692d0a0f7ae + private final ShufflingList> behaviors = new ShufflingList<>(false); // Paper - Fix Concurrency issue in ShufflingList during worldgen private Behavior.Status status = Behavior.Status.STOPPED; - public GateBehavior(Map, MemoryStatus> requiredMemoryState, Set> memoriesToForgetWhenStopped, GateBehavior.OrderPolicy order, GateBehavior.RunningPolicy runMode, List, Integer>> tasks) { + public GateBehavior( diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java -index 9fb20cd00568aeea25284ea0e80fe52cb1c3eede..9d01471da0571c92a60cd57ebd22a5f0b5648fb4 100644 +index 195eea55fabc7a9a665e0a8f04934a3aaf9f8b71..3fac11bf02652b5f51f30f99bdf516504467d0d2 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java @@ -16,12 +16,25 @@ import net.minecraft.util.RandomSource; @@ -49,13 +49,11 @@ index 9fb20cd00568aeea25284ea0e80fe52cb1c3eede..9d01471da0571c92a60cd57ebd22a5f0 this.entries = Lists.newArrayList(list); } -@@ -37,11 +50,12 @@ public class ShufflingList implements Iterable { +@@ -35,9 +48,12 @@ public class ShufflingList implements Iterable { } public ShufflingList shuffle() { -- this.entries.forEach((entry) -> { -- entry.setRandom(this.random.nextFloat()); -- }); +- this.entries.forEach(entry -> entry.setRandom(this.random.nextFloat())); - this.entries.sort(Comparator.comparingDouble(ShufflingList.WeightedEntry::getRandWeight)); - return this; + // Paper start - Fix Concurrency issue in ShufflingList during worldgen diff --git a/patches/server/0440-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0440-Retain-block-place-order-when-capturing-blockstates.patch index f568cd0d92..81ed0ec42c 100644 --- a/patches/server/0440-Retain-block-place-order-when-capturing-blockstates.patch +++ b/patches/server/0440-Retain-block-place-order-when-capturing-blockstates.patch @@ -10,7 +10,7 @@ In general, look at making this logic more robust (i.e properly handling cases where a captured entry is overriden) - but for now this will do. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index cb6c6e8c8fe744350a117f38e474ce8f5dd0a43a..1bb7cc9462cab7fbd09b944662711ae5bc5cf950 100644 +index 6d5a0aa8f8cee0897a920c2abf18efc03cad2abb..40f1b4ba266f96629b989590c7c81cd7534e93da 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -154,7 +154,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0441-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0441-Reduce-blockpos-allocation-from-pathfinding.patch index 8d14eb1a05..0ead9a9fe2 100644 --- a/patches/server/0441-Reduce-blockpos-allocation-from-pathfinding.patch +++ b/patches/server/0441-Reduce-blockpos-allocation-from-pathfinding.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Reduce blockpos allocation from pathfinding diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java -index dbb6a7d950b1a6f58a845b4d399ead6eb6d4fe14..70c7c735fdd0c1b66243915622e47eab8a57e7cc 100644 +index b125b9903454891e22a15a0a794d67be67fdb083..1cd7f0f1c7d62552e6609997c83f3df8dae13316 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java -@@ -479,7 +479,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { +@@ -483,7 +483,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { return BlockPathTypes.DANGER_FIRE; } @@ -17,12 +17,12 @@ index dbb6a7d950b1a6f58a845b4d399ead6eb6d4fe14..70c7c735fdd0c1b66243915622e47eab return BlockPathTypes.WATER_BORDER; } -@@ -510,7 +510,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { - } else if (blockState.is(Blocks.COCOA)) { - return BlockPathTypes.COCOA; - } else if (!blockState.is(Blocks.WITHER_ROSE) && !blockState.is(Blocks.POINTED_DRIPSTONE)) { -- FluidState fluidState = world.getFluidState(pos); -+ FluidState fluidState = blockState.getFluidState(); // Paper - Perf: Reduce blockpos allocation from pathfinding - if (fluidState.is(FluidTags.LAVA)) { - return BlockPathTypes.LAVA; - } else if (isBurningBlock(blockState)) { +@@ -516,7 +516,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { + } else if (blockState.is(Blocks.COCOA)) { + return BlockPathTypes.COCOA; + } else if (!blockState.is(Blocks.WITHER_ROSE) && !blockState.is(Blocks.POINTED_DRIPSTONE)) { +- FluidState fluidState = world.getFluidState(pos); ++ FluidState fluidState = blockState.getFluidState(); // Paper - Perf: Reduce blockpos allocation from pathfinding + if (fluidState.is(FluidTags.LAVA)) { + return BlockPathTypes.LAVA; + } else if (isBurningBlock(blockState)) { diff --git a/patches/server/0448-Fix-client-lag-on-advancement-loading.patch b/patches/server/0448-Fix-client-lag-on-advancement-loading.patch index 4882b3fd23..18483eae32 100644 --- a/patches/server/0448-Fix-client-lag-on-advancement-loading.patch +++ b/patches/server/0448-Fix-client-lag-on-advancement-loading.patch @@ -15,7 +15,7 @@ manually reload the advancement data for all players, which normally takes place as a part of the datapack reloading. diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 2bc3d9c02256269845d140764b7b1b201e38b569..14d094d9af9b76277859901db908b8a36b24986b 100644 +index f4a7da134584a065a34b4f6a8eaebfcb81b6d735..f10457466cbaaba2d3aa49a64092847f635ce752 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -334,7 +334,13 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0451-Add-API-for-quit-reason.patch b/patches/server/0451-Add-API-for-quit-reason.patch index b506a95e94..a5ab74ddf4 100644 --- a/patches/server/0451-Add-API-for-quit-reason.patch +++ b/patches/server/0451-Add-API-for-quit-reason.patch @@ -25,7 +25,7 @@ index 1113380f6f142d2faf36191aae158c747bed5bb9..ddc84de84c8a503a01e40c42fe83558a Connection.LOGGER.debug("Failed to sent packet", throwable); if (this.getSending() == PacketFlow.CLIENTBOUND) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 587cce4d3878bc5cba5f4f4e58eacce2f656e242..6e62c5037a69468e7b4c8115a6623d48538de307 100644 +index 7c7e3d541733ea1784f8b90acbc8b1aecb6d7859..efe511fc6ab121263fe0c09763e09e0cf10a354a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -274,6 +274,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0458-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0458-Significantly-improve-performance-of-the-end-generat.patch index dc7812a211..3ddbe5452e 100644 --- a/patches/server/0458-Significantly-improve-performance-of-the-end-generat.patch +++ b/patches/server/0458-Significantly-improve-performance-of-the-end-generat.patch @@ -12,11 +12,11 @@ Co-authored-by: Dylan Xaldin Co-authored-by: pop4959 diff --git a/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java b/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java -index fac92f37c32e0398ebc05d9a0378446fcabaef1a..01b60aaf484e1e327ca42d3573fd86d2abd749fa 100644 +index 2cf20ef14ad18346f942395546ad31f2d774f81a..ed8cfa36f41643b191714b2ae6176f58f93bd4b2 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java +++ b/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java -@@ -490,6 +490,16 @@ public final class DensityFunctions { - public static final KeyDispatchDataCodec CODEC = KeyDispatchDataCodec.of(MapCodec.unit(new DensityFunctions.EndIslandDensityFunction(0L))); +@@ -509,6 +509,16 @@ public final class DensityFunctions { + ); private static final float ISLAND_THRESHOLD = -0.9F; private final SimplexNoise islandNoise; + // Paper start - Perf: Optimize end generation @@ -32,16 +32,16 @@ index fac92f37c32e0398ebc05d9a0378446fcabaef1a..01b60aaf484e1e327ca42d3573fd86d2 public EndIslandDensityFunction(long seed) { RandomSource randomSource = new LegacyRandomSource(seed); -@@ -505,12 +515,26 @@ public final class DensityFunctions { +@@ -524,12 +534,26 @@ public final class DensityFunctions { float f = 100.0F - Mth.sqrt((long) x * (long) x + (long) z * (long) z) * 8.0F; // Paper - cast ints to long to avoid integer overflow f = Mth.clamp(f, -100.0F, 80.0F); + NoiseCache cache = noiseCache.get().computeIfAbsent(sampler, noiseKey -> new NoiseCache()); // Paper - Perf: Optimize end generation - for(int m = -12; m <= 12; ++m) { - for(int n = -12; n <= 12; ++n) { - long o = (long)(i + m); - long p = (long)(j + n); -- if (o * o + p * p > 4096L && sampler.getValue((double)o, (double)p) < (double)-0.9F) { + for (int m = -12; m <= 12; m++) { + for (int n = -12; n <= 12; n++) { + long o = i + m; + long p = j + n; +- if (o * o + p * p > 4096L && sampler.getValue(o, p) < -0.9F) { - float g = (Mth.abs((float)o) * 3439.0F + Mth.abs((float)p) * 147.0F) % 13.0F + 9.0F; + // Paper start - Perf: Optimize end generation by using a noise cache + long key = net.minecraft.world.level.ChunkPos.asLong((int) o, (int) p); @@ -50,14 +50,14 @@ index fac92f37c32e0398ebc05d9a0378446fcabaef1a..01b60aaf484e1e327ca42d3573fd86d2 + if (cache.keys[index] == key) { + g = cache.values[index]; + } else { -+ if (o * o + p * p > 4096L && sampler.getValue((double)o, (double)p) < (double)-0.9F) { -+ g = (Mth.abs((float) o) * 3439.0F + Mth.abs((float) p) * 147.0F) % 13.0F + 9.0F; ++ if (o * o + p * p > 4096L && sampler.getValue((double)o, (double)p) < -0.9F) { ++ g = (Mth.abs((float)o) * 3439.0F + Mth.abs((float)p) * 147.0F) % 13.0F + 9.0F; + } + cache.keys[index] = key; + cache.values[index] = g; + } + if (g != Float.MIN_VALUE) { + // Paper end - Perf: Optimize end generation - float h = (float)(k - m * 2); - float q = (float)(l - n * 2); + float h = k - m * 2; + float q = l - n * 2; float r = 100.0F - Mth.sqrt(h * h + q * q) * g; diff --git a/patches/server/0460-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0460-Climbing-should-not-bypass-cramming-gamerule.patch index 6d2f4c2108..290c73d192 100644 --- a/patches/server/0460-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0460-Climbing-should-not-bypass-cramming-gamerule.patch @@ -44,7 +44,7 @@ index ee4495b67c46cf1282cdd6ad15b224b0b7b10bfb..e382a29b441b656f35bc24cb90f95cb4 } else if (entity.level().isClientSide && (!(entity1 instanceof Player) || !((Player) entity1).isLocalPlayer())) { return false; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4aad2d99148a0d6ee06049f20de2aaa6218c1d39..87fb0fe5579ba09534e379d34b134c868e838143 100644 +index b98f82b619a1932e6d820a2c42120efdc03fc839..ed32b3f1107210d56e5653b2d5eddcf1deb39dfc 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3447,7 +3447,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0462-Add-PlayerShearBlockEvent.patch b/patches/server/0462-Add-PlayerShearBlockEvent.patch index 140bb100a4..e8a864c69f 100644 --- a/patches/server/0462-Add-PlayerShearBlockEvent.patch +++ b/patches/server/0462-Add-PlayerShearBlockEvent.patch @@ -39,10 +39,10 @@ index 44e72176a0da08a77fa192ee31c0fcd53f0dc22d..27f1c1ac12251f1438ee8bf14f4afb5f entityhuman1.broadcastBreakEvent(hand); }); diff --git a/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java b/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java -index df11efd22682c2ed799dabf15d2cfa5973e8dca9..cc13b74fa37b5df6fe6f1423496b9fb03d71d083 100644 +index d9c4e0cf178b9a1eed230dc7b8cfbd8f3f49c7bb..c67ee44d49693bfcb92cbbf0ed44929bf0034f13 100644 --- a/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java -@@ -35,13 +35,24 @@ public class PumpkinBlock extends Block { +@@ -35,21 +35,30 @@ public class PumpkinBlock extends Block { ItemStack itemStack = player.getItemInHand(hand); if (itemStack.is(Items.SHEARS)) { if (!world.isClientSide) { @@ -55,16 +55,22 @@ index df11efd22682c2ed799dabf15d2cfa5973e8dca9..cc13b74fa37b5df6fe6f1423496b9fb0 + // Paper end - Add PlayerShearBlockEvent Direction direction = hit.getDirection(); Direction direction2 = direction.getAxis() == Direction.Axis.Y ? player.getDirection().getOpposite() : direction; - world.playSound((Player)null, pos, SoundEvents.PUMPKIN_CARVE, SoundSource.BLOCKS, 1.0F, 1.0F); + world.playSound(null, pos, SoundEvents.PUMPKIN_CARVE, SoundSource.BLOCKS, 1.0F, 1.0F); world.setBlock(pos, Blocks.CARVED_PUMPKIN.defaultBlockState().setValue(CarvedPumpkinBlock.FACING, direction2), 11); -- ItemEntity itemEntity = new ItemEntity(world, (double)pos.getX() + 0.5D + (double)direction2.getStepX() * 0.65D, (double)pos.getY() + 0.1D, (double)pos.getZ() + 0.5D + (double)direction2.getStepZ() * 0.65D, new ItemStack(Items.PUMPKIN_SEEDS, 4)); -+ // Paper start - Add PlayerShearBlockEvent -+ for (org.bukkit.inventory.ItemStack item : event.getDrops()) { -+ ItemEntity itemEntity = new ItemEntity(world, (double) pos.getX() + 0.5D + (double) direction2.getStepX() * 0.65D, (double) pos.getY() + 0.1D, (double) pos.getZ() + 0.5D + (double) direction2.getStepZ() * 0.65D, org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item)); -+ // Paper end - Add PlayerShearBlockEvent - itemEntity.setDeltaMovement(0.05D * (double)direction2.getStepX() + world.random.nextDouble() * 0.02D, 0.05D, 0.05D * (double)direction2.getStepZ() + world.random.nextDouble() * 0.02D); ++ for (org.bukkit.inventory.ItemStack item : event.getDrops()) { // Paper - Add PlayerShearBlockEvent + ItemEntity itemEntity = new ItemEntity( + world, + pos.getX() + 0.5 + direction2.getStepX() * 0.65, + pos.getY() + 0.1, + pos.getZ() + 0.5 + direction2.getStepZ() * 0.65, +- new ItemStack(Items.PUMPKIN_SEEDS, 4) ++ org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item) // Paper - Add PlayerShearBlockEvent + ); + itemEntity.setDeltaMovement( + 0.05 * direction2.getStepX() + world.random.nextDouble() * 0.02, 0.05, 0.05 * direction2.getStepZ() + world.random.nextDouble() * 0.02 + ); world.addFreshEntity(itemEntity); + } // Paper - Add PlayerShearBlockEvent - itemStack.hurtAndBreak(1, player, (playerx) -> { - playerx.broadcastBreakEvent(hand); - }); + itemStack.hurtAndBreak(1, player, playerx -> playerx.broadcastBreakEvent(hand)); + world.gameEvent(player, GameEvent.SHEAR, pos); + player.awardStat(Stats.ITEM_USED.get(Items.SHEARS)); diff --git a/patches/server/0465-Player-Chunk-Load-Unload-Events.patch b/patches/server/0465-Player-Chunk-Load-Unload-Events.patch index 241610bb61..638b4ea18b 100644 --- a/patches/server/0465-Player-Chunk-Load-Unload-Events.patch +++ b/patches/server/0465-Player-Chunk-Load-Unload-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player Chunk Load/Unload Events diff --git a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java -index c509a1318bcef38fd4927e38b6ee9846853e2d15..13209267c26f46492a92e820889a9be0bd2287a0 100644 +index 8235d66bb1246f4bb3425d2127b5fe67e4e7eec6..b7778d5296d01870e37560d8f03d48e4a4dd62ae 100644 --- a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java +++ b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java -@@ -45,6 +45,11 @@ public class PlayerChunkSender { +@@ -44,6 +44,11 @@ public class PlayerChunkSender { public void dropChunk(ServerPlayer player, ChunkPos pos) { if (!this.pendingChunks.remove(pos.toLong()) && player.isAlive()) { player.connection.send(new ClientboundForgetLevelChunkPacket(pos)); @@ -18,12 +18,12 @@ index c509a1318bcef38fd4927e38b6ee9846853e2d15..13209267c26f46492a92e820889a9be0 + } + // Paper end - PlayerChunkUnloadEvent } - } -@@ -77,6 +82,11 @@ public class PlayerChunkSender { + +@@ -75,6 +80,11 @@ public class PlayerChunkSender { private static void sendChunk(ServerGamePacketListenerImpl handler, ServerLevel world, LevelChunk chunk) { - handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), (BitSet)null, (BitSet)null)); + handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), null, null)); + // Paper start - PlayerChunkLoadEvent + if (io.papermc.paper.event.packet.PlayerChunkLoadEvent.getHandlerList().getRegisteredListeners().length > 0) { + new io.papermc.paper.event.packet.PlayerChunkLoadEvent(new org.bukkit.craftbukkit.CraftChunk(chunk), handler.getPlayer().getBukkitEntity()).callEvent(); diff --git a/patches/server/0470-Add-TargetHitEvent.patch b/patches/server/0470-Add-TargetHitEvent.patch index f623f8091b..2afe7f45de 100644 --- a/patches/server/0470-Add-TargetHitEvent.patch +++ b/patches/server/0470-Add-TargetHitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add TargetHitEvent diff --git a/src/main/java/net/minecraft/world/level/block/TargetBlock.java b/src/main/java/net/minecraft/world/level/block/TargetBlock.java -index 5ea231aadfafdfc6d08aae472827ff1e3d62f4eb..e885f8defd5fd5059c895ee7906664f9e4561de0 100644 +index 02f6d5b523c3d4185a68adb419b2710768ed249f..da473a8b34e39cecf63fab8f7c4f77d485e5753b 100644 --- a/src/main/java/net/minecraft/world/level/block/TargetBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TargetBlock.java @@ -42,6 +42,10 @@ public class TargetBlock extends Block { @@ -16,10 +16,10 @@ index 5ea231aadfafdfc6d08aae472827ff1e3d62f4eb..e885f8defd5fd5059c895ee7906664f9 + } + private static void awardTargetHitCriteria(Projectile projectile, BlockHitResult hit, int i) { + // Paper end - Add TargetHitEvent - Entity entity = projectile.getOwner(); - if (entity instanceof ServerPlayer serverPlayer) { + if (projectile.getOwner() instanceof ServerPlayer serverPlayer) { serverPlayer.awardStat(Stats.TARGET_HIT); -@@ -53,6 +57,20 @@ public class TargetBlock extends Block { + CriteriaTriggers.TARGET_BLOCK_HIT.trigger(serverPlayer, projectile, hit.getLocation(), i); +@@ -51,6 +55,20 @@ public class TargetBlock extends Block { private static int updateRedstoneOutput(LevelAccessor world, BlockState state, BlockHitResult hitResult, Entity entity) { int i = getRedstoneStrength(hitResult, hitResult.getLocation()); int j = entity instanceof AbstractArrow ? 20 : 8; diff --git a/patches/server/0471-MC-4-Fix-item-position-desync.patch b/patches/server/0471-MC-4-Fix-item-position-desync.patch index 5b680e0dd0..597d2419e2 100644 --- a/patches/server/0471-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0471-MC-4-Fix-item-position-desync.patch @@ -9,26 +9,26 @@ loss, which forces the server to lose the same precision as the client keeping them in sync. diff --git a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java -index 05ac41e136da43284fb24a6b698ebd36318278fb..3c4ac79c094dc2fff7de94150a34b7bf814ac0de 100644 +index fb44116303ab1fed9d867087531c7601c015ddb9..a3d247c93ac1a2d872ff0e3841efc3d7b84fcbc1 100644 --- a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java +++ b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java @@ -9,12 +9,12 @@ public class VecDeltaCodec { @VisibleForTesting static long encode(double value) { -- return Math.round(value * 4096.0D); -+ return Math.round(value * 4096.0D); // Paper - Fix MC-4; diff on change +- return Math.round(value * 4096.0); ++ return Math.round(value * 4096.0); // Paper - Fix MC-4; diff on change } @VisibleForTesting static double decode(long value) { -- return (double)value / 4096.0D; -+ return (double)value / 4096.0D; // Paper - Fix MC-4; diff on change +- return value / 4096.0; ++ return value / 4096.0; // Paper - Fix MC-4; diff on change } public Vec3 decode(long x, long y, long z) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 82ccfd91dfd3cce35a35edf8f73ccdd1ddd1fd6a..18cf11ddcf51e8b6251fd6df97f85e0ed15900c4 100644 +index 82ccfd91dfd3cce35a35edf8f73ccdd1ddd1fd6a..c3ca11cc4abe85132b099af1cb27772dbf40bfe1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4186,6 +4186,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -39,9 +39,9 @@ index 82ccfd91dfd3cce35a35edf8f73ccdd1ddd1fd6a..18cf11ddcf51e8b6251fd6df97f85e0e + if (this instanceof ItemEntity) { + if (io.papermc.paper.configuration.GlobalConfiguration.get().misc.fixEntityPositionDesync) { + // encode/decode from ClientboundMoveEntityPacket -+ x = Mth.lfloor(x * 4096.0D) * (1 / 4096.0D); -+ y = Mth.lfloor(y * 4096.0D) * (1 / 4096.0D); -+ z = Mth.lfloor(z * 4096.0D) * (1 / 4096.0D); ++ x = Mth.lfloor(x * 4096.0) * (1 / 4096.0); ++ y = Mth.lfloor(y * 4096.0) * (1 / 4096.0); ++ z = Mth.lfloor(z * 4096.0) * (1 / 4096.0); + } + } + // Paper end - Fix MC-4 diff --git a/patches/server/0478-Add-PlayerFlowerPotManipulateEvent.patch b/patches/server/0478-Add-PlayerFlowerPotManipulateEvent.patch index bad384da72..ba8831c6f6 100644 --- a/patches/server/0478-Add-PlayerFlowerPotManipulateEvent.patch +++ b/patches/server/0478-Add-PlayerFlowerPotManipulateEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerFlowerPotManipulateEvent diff --git a/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java b/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java -index c450faf8c043665eab020141f3c27e3d9890cb86..fbe399fa2c27ba283e4a51f9a2559baf86fdff11 100644 +index cb77c7af329dd9fa8dc28ee3cfc475baa4b1392b..8e8fa6e0823258220b604ceef8e1f5ae15556b9a 100644 --- a/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java @@ -66,6 +66,21 @@ public class FlowerPotBlock extends Block { diff --git a/patches/server/0484-Add-ServerResourcesReloadedEvent.patch b/patches/server/0484-Add-ServerResourcesReloadedEvent.patch index b01f7c1460..9d87b0e24f 100644 --- a/patches/server/0484-Add-ServerResourcesReloadedEvent.patch +++ b/patches/server/0484-Add-ServerResourcesReloadedEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ServerResourcesReloadedEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c2892af4e98d6a436a43fea950726cc1ca60ebda..06b7816bafa3ac1093b796ca6e7bb3462df8bfec 100644 +index 99ae9628d96d6d3e42cd038eb4a0d01237cc6b1b..46cc2649ca482bd2bda37247717d8476dbb76a34 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2036,7 +2036,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index 9fec5823d99d1ae8e41d9e21f7ddb8b8e94bf887..a6af5ac9d09834940d3dd4c80b16450b90484edb 100644 +index 89a05518e1b95f6edc1ac57f6ed9c3946b87b93e..0ee020848cdfd0c069f1e8d3a9516a339d82467c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -@@ -197,7 +197,7 @@ public class Vindicator extends AbstractIllager { +@@ -196,7 +196,7 @@ public class Vindicator extends AbstractIllager { static class VindicatorBreakDoorGoal extends BreakDoorGoal { public VindicatorBreakDoorGoal(Mob mob) { diff --git a/patches/server/0496-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0496-Collision-option-for-requiring-a-player-participant.patch index 176ae99bc8..27be6dda95 100644 --- a/patches/server/0496-Collision-option-for-requiring-a-player-participant.patch +++ b/patches/server/0496-Collision-option-for-requiring-a-player-participant.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Collision option for requiring a player participant diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 18cf11ddcf51e8b6251fd6df97f85e0ed15900c4..2d8c476eb9f329ee6827340b6cec26a84901c56a 100644 +index c3ca11cc4abe85132b099af1cb27772dbf40bfe1..5b0502cfcc3d9317941d7444750a49832e1a52a1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1848,6 +1848,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0506-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0506-Reset-shield-blocking-on-dimension-change.patch index b59a53ac0f..e29d07bebd 100644 --- a/patches/server/0506-Reset-shield-blocking-on-dimension-change.patch +++ b/patches/server/0506-Reset-shield-blocking-on-dimension-change.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Reset shield blocking on dimension change diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6e62c5037a69468e7b4c8115a6623d48538de307..8c65b05e66372cf3c92f823d72e94c18fe77622b 100644 +index efe511fc6ab121263fe0c09763e09e0cf10a354a..19baf0ecd04ae058fac709889db34bf27679ab5e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1198,6 +1198,11 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0508-Add-EntityMoveEvent.patch b/patches/server/0508-Add-EntityMoveEvent.patch index 54dd0d6264..dd7d2720c2 100644 --- a/patches/server/0508-Add-EntityMoveEvent.patch +++ b/patches/server/0508-Add-EntityMoveEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 06b7816bafa3ac1093b796ca6e7bb3462df8bfec..3f061e1135bac08e6ea1530407ff2667904339a5 100644 +index 46cc2649ca482bd2bda37247717d8476dbb76a34..4416feb73fd800787db65f5841eb92b1b29cddb0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1526,6 +1526,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { - return new Direction[i]; - }); +@@ -48,6 +48,12 @@ public enum Direction implements StringRepresentable { + .sorted(Comparator.comparingInt(direction -> direction.data2d)) + .toArray(Direction[]::new); + + // Paper start - Perf: Inline shift direction fields + private final int adjX; + private final int adjY; + private final int adjZ; + // Paper end - Perf: Inline shift direction fields - ++ private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) { this.data3d = id; -@@ -61,6 +66,11 @@ public enum Direction implements StringRepresentable { + this.data2d = idHorizontal; +@@ -56,6 +62,11 @@ public enum Direction implements StringRepresentable { this.axis = axis; this.axisDirection = direction; this.normal = vector; @@ -34,7 +35,7 @@ index 3abec6de94f0ef1d788320e33653c598887f17ca..073c717bb676b9e99aada00c349fb7ee } public static Direction[] orderedByNearest(Entity entity) { -@@ -348,15 +358,15 @@ public enum Direction implements StringRepresentable { +@@ -219,15 +230,15 @@ public enum Direction implements StringRepresentable { } public int getStepX() { diff --git a/patches/server/0513-living-entity-allow-attribute-registration.patch b/patches/server/0513-living-entity-allow-attribute-registration.patch index b04ce69eb9..b05d18bed0 100644 --- a/patches/server/0513-living-entity-allow-attribute-registration.patch +++ b/patches/server/0513-living-entity-allow-attribute-registration.patch @@ -5,12 +5,12 @@ Subject: [PATCH] living entity allow attribute registration diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java -index d5dfb08f550f5644ff5164170d6c16a3b25a3748..897d7632ecfea40890433474870dd7a5e534d8ab 100644 +index 4228d28b2f697e7dc320525c1ad48a8a2aa0fdb4..b99a080ab27e24d8131fda931ca70d6d271bb01c 100644 --- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java -@@ -152,4 +152,12 @@ public class AttributeMap { +@@ -138,4 +138,12 @@ public class AttributeMap { + }, () -> LOGGER.warn("Ignoring unknown attribute '{}'", string)); } - } + + // Paper - start - living entity allow attribute registration @@ -38,7 +38,7 @@ index ea48f1119a940056c37d1d203437bfbfdf13663b..8a678df56fcf30535957e111d81ad07b + // Paper end - living entity allow attribute registration } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 6ee15dee09d3e727df01564282ba5eb6450db51b..7b65a7d1efaf90d1a2b7a601f94be4d9ebe76a2b 100644 +index 4ac52885618bf062eb34672b8fc60331a9c8f76a..0a4df9971c66676dba90fb03c840e25a41103bc0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -755,6 +755,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0517-Improve-ServerGUI.patch b/patches/server/0517-Improve-ServerGUI.patch index ea0b4bbc77..4826a41eff 100644 --- a/patches/server/0517-Improve-ServerGUI.patch +++ b/patches/server/0517-Improve-ServerGUI.patch @@ -58,10 +58,10 @@ index 2bbc57b4869caf690f53618d60359c5133ec62a8..c42a9949c4d37d45883867a54222a7ab public void windowClosing(WindowEvent windowevent) { if (!servergui.isClosing.getAndSet(true)) { diff --git a/src/main/java/net/minecraft/server/gui/StatsComponent.java b/src/main/java/net/minecraft/server/gui/StatsComponent.java -index 7938029cb7aa6f09f78fb1c648357c36edb68510..38fe7e5014332f45e41a3d5d91c28dd0acfdc3b0 100644 +index 6d77a48ce4241477cf66fbf562b542de01f420ce..a34dc23499a9d55cceb1f2b2907e4d34b0d67616 100644 --- a/src/main/java/net/minecraft/server/gui/StatsComponent.java +++ b/src/main/java/net/minecraft/server/gui/StatsComponent.java -@@ -36,8 +36,17 @@ public class StatsComponent extends JComponent { +@@ -34,8 +34,17 @@ public class StatsComponent extends JComponent { private void tick() { long l = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory(); @@ -73,13 +73,13 @@ index 7938029cb7aa6f09f78fb1c648357c36edb68510..38fe7e5014332f45e41a3d5d91c28dd0 + tpsAvg[g] = format( tps[g] ); + } this.msgs[0] = "Memory use: " + l / 1024L / 1024L + " mb (" + Runtime.getRuntime().freeMemory() * 100L / Runtime.getRuntime().maxMemory() + "% free)"; - this.msgs[1] = "Avg tick: " + DECIMAL_FORMAT.format((double)this.server.getAverageTickTimeNanos() / (double)TimeUtil.NANOSECONDS_PER_MILLISECOND) + " ms"; + this.msgs[1] = "Avg tick: " + DECIMAL_FORMAT.format((double)this.server.getAverageTickTimeNanos() / TimeUtil.NANOSECONDS_PER_MILLISECOND) + " ms"; + this.msgs[2] = "TPS from last 1m, 5m, 15m: " + String.join(", ", tpsAvg); + // Paper end - Improve ServerGUI - this.values[this.vp++ & 255] = (int)(l * 100L / Runtime.getRuntime().maxMemory()); + this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory()); this.repaint(); } -@@ -67,4 +76,10 @@ public class StatsComponent extends JComponent { +@@ -64,4 +73,10 @@ public class StatsComponent extends JComponent { public void close() { this.timer.stop(); } diff --git a/patches/server/0518-fix-converting-txt-to-json-file.patch b/patches/server/0518-fix-converting-txt-to-json-file.patch index 5f13006cc4..cd8921cdba 100644 --- a/patches/server/0518-fix-converting-txt-to-json-file.patch +++ b/patches/server/0518-fix-converting-txt-to-json-file.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix converting txt to json file diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java b/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java -index a20d47f54f12dfc0a5f76dd969238e34c958b618..1c9cf5e1c4ee05724ffcdbd77a19bca1ab2be4d3 100644 +index 929f59bce01c8e6ed4b0b551744d42e131b8fc80..22c4f8dea99f92a1eb3da2baf0a15bf9d2ca0462 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java @@ -18,6 +18,11 @@ public class DedicatedPlayerList extends PlayerList { diff --git a/patches/server/0526-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0526-Add-fast-alternative-constructor-for-Rotations.patch index 9b38f8f90d..7c07d6c0ee 100644 --- a/patches/server/0526-Add-fast-alternative-constructor-for-Rotations.patch +++ b/patches/server/0526-Add-fast-alternative-constructor-for-Rotations.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add fast alternative constructor for Rotations diff --git a/src/main/java/net/minecraft/core/Rotations.java b/src/main/java/net/minecraft/core/Rotations.java -index e4b4e78de933b93be87805501d9cbfec429cf68c..95ef904bebeaff3275f25c401ef13c68504f3514 100644 +index 63a6512437a3611f73573f9fc97d4f32fb8be861..d6f1002d0f5760383edd641165f6622f8d6672c2 100644 --- a/src/main/java/net/minecraft/core/Rotations.java +++ b/src/main/java/net/minecraft/core/Rotations.java @@ -19,6 +19,18 @@ public class Rotations { diff --git a/patches/server/0529-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0529-forced-whitelist-use-configurable-kick-message.patch index 48f96930a9..97e28a74cf 100644 --- a/patches/server/0529-forced-whitelist-use-configurable-kick-message.patch +++ b/patches/server/0529-forced-whitelist-use-configurable-kick-message.patch @@ -5,7 +5,7 @@ Subject: [PATCH] forced whitelist: use configurable kick message diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3f061e1135bac08e6ea1530407ff2667904339a5..773e4850956a7ffcd78cc241a598fd13bcfe1d20 100644 +index 4416feb73fd800787db65f5841eb92b1b29cddb0..c9545f96317fd6692889d82851d76084efa6a61d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2167,7 +2167,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop io.papermc.paper.adventure.PaperAdventure.asVanilla(event.cancelMessage()), false); } + // Paper end - Expand PlayerGameModeChangeEvent -+ ++i; ++ i++; } } diff --git a/src/main/java/net/minecraft/server/commands/GameModeCommand.java b/src/main/java/net/minecraft/server/commands/GameModeCommand.java -index aee8618e27b893b72931e925724dd683d2e6d2aa..f7c9127346261d83413ca03a1cdaa84975ae17d6 100644 +index 7f09119bc7d661e08a960dd2bd46006efe752d3e..d1da3600dc07107309b20ebe6e7c0c4da0e8de76 100644 --- a/src/main/java/net/minecraft/server/commands/GameModeCommand.java +++ b/src/main/java/net/minecraft/server/commands/GameModeCommand.java -@@ -48,9 +48,14 @@ public class GameModeCommand { +@@ -60,9 +60,14 @@ public class GameModeCommand { int i = 0; - for(ServerPlayer serverPlayer : targets) { + for (ServerPlayer serverPlayer : targets) { - if (serverPlayer.setGameMode(gameMode)) { + // Paper start - Expand PlayerGameModeChangeEvent + org.bukkit.event.player.PlayerGameModeChangeEvent event = serverPlayer.setGameMode(gameMode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.COMMAND, net.kyori.adventure.text.Component.empty()); + if (event != null && !event.isCancelled()) { logGamemodeChange(context.getSource(), serverPlayer, gameMode); - ++i; + i++; + } else if (event != null && event.cancelMessage() != null) { + context.getSource().sendSuccess(() -> io.papermc.paper.adventure.PaperAdventure.asVanilla(event.cancelMessage()), true); + // Paper end - Expand PlayerGameModeChangeEvent @@ -45,7 +45,7 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..f7c9127346261d83413ca03a1cdaa849 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8c65b05e66372cf3c92f823d72e94c18fe77622b..a09ef51e94a0bf9f51bf358e7cf77dd5d272aab2 100644 +index 19baf0ecd04ae058fac709889db34bf27679ab5e..28baa63b9b750a7f03da364d9c1fe691d3ce1706 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1940,8 +1940,16 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0564-Add-EntityInsideBlockEvent.patch b/patches/server/0564-Add-EntityInsideBlockEvent.patch index a63f8ecbfe..32ac5315b3 100644 --- a/patches/server/0564-Add-EntityInsideBlockEvent.patch +++ b/patches/server/0564-Add-EntityInsideBlockEvent.patch @@ -41,7 +41,7 @@ index 546dbe28edbba32ab2aede1260fbd2c9baa9fe1a..0d92bd6f1e4f3470a62f573add349022 if (state.getValue(BigDripleafBlock.TILT) == Tilt.NONE && BigDripleafBlock.canEntityTilt(pos, entity) && !world.hasNeighborSignal(pos)) { // CraftBukkit start - tilt dripleaf diff --git a/src/main/java/net/minecraft/world/level/block/BubbleColumnBlock.java b/src/main/java/net/minecraft/world/level/block/BubbleColumnBlock.java -index 240e01063b5d684020ed2d7d73fc60c64fd8cf2e..78d98a442ea3c14500ac6ae597ff2a5080b7ce15 100644 +index e4e80844ad447536c7f53bcbc721f73880414a76..addd8b3758254e4f4cd4e951cd065f83ad5dcdf8 100644 --- a/src/main/java/net/minecraft/world/level/block/BubbleColumnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BubbleColumnBlock.java @@ -47,6 +47,7 @@ public class BubbleColumnBlock extends Block implements BucketPickup { @@ -125,10 +125,10 @@ index 07629f6106f384751c376d2a99ba2e8b905e49c6..9ee2fd0914ff7836517ca143d51db615 ResourceKey resourcekey = world.getTypeKey() == LevelStem.END ? Level.OVERWORLD : Level.END; // CraftBukkit - SPIGOT-6152: send back to main overworld in custom ends ServerLevel worldserver = ((ServerLevel) world).getServer().getLevel(resourcekey); diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index d5c83f3b9d398b2a025e6729980b1b87b35f38a8..68978e1629381ada161225c53a236a54deae6481 100644 +index 166ed5bb0ecd66a70b970e1df77c27f2069d2808..6e283e8c3db31f03dd95c94887e647b8d82a3604 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -@@ -78,6 +78,7 @@ public class FrogspawnBlock extends Block { +@@ -79,6 +79,7 @@ public class FrogspawnBlock extends Block { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { @@ -137,10 +137,10 @@ index d5c83f3b9d398b2a025e6729980b1b87b35f38a8..68978e1629381ada161225c53a236a54 this.destroyBlock(world, pos); } diff --git a/src/main/java/net/minecraft/world/level/block/HoneyBlock.java b/src/main/java/net/minecraft/world/level/block/HoneyBlock.java -index 8b84359316e559b94ae6a2d757bda2286d99a903..39e2fe8c5f5a2a4d4f3a7be3645923b5a1dca875 100644 +index 517bd00234892d53300d5a902fda4eed4b8bef66..409b4818840916a8ddbfc1ee87c8c22902939f38 100644 --- a/src/main/java/net/minecraft/world/level/block/HoneyBlock.java +++ b/src/main/java/net/minecraft/world/level/block/HoneyBlock.java -@@ -61,6 +61,7 @@ public class HoneyBlock extends HalfTransparentBlock { +@@ -60,6 +60,7 @@ public class HoneyBlock extends HalfTransparentBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { @@ -149,7 +149,7 @@ index 8b84359316e559b94ae6a2d757bda2286d99a903..39e2fe8c5f5a2a4d4f3a7be3645923b5 this.maybeDoSlideAchievement(entity, pos); this.doSlideMovement(entity); diff --git a/src/main/java/net/minecraft/world/level/block/HopperBlock.java b/src/main/java/net/minecraft/world/level/block/HopperBlock.java -index 99a5821a55f2d2947722d64d60f4ee4ba5dfa74c..04e69d6066faf1c605aeeabe827dc20fc96a3568 100644 +index 004f37120e079465aef40830d3086a820d5752c3..4f86e3d2aec246ff0be258885128086e21457a70 100644 --- a/src/main/java/net/minecraft/world/level/block/HopperBlock.java +++ b/src/main/java/net/minecraft/world/level/block/HopperBlock.java @@ -200,6 +200,7 @@ public class HopperBlock extends BaseEntityBlock { @@ -161,7 +161,7 @@ index 99a5821a55f2d2947722d64d60f4ee4ba5dfa74c..04e69d6066faf1c605aeeabe827dc20f if (blockEntity instanceof HopperBlockEntity) { HopperBlockEntity.entityInside(world, pos, state, entity, (HopperBlockEntity)blockEntity); diff --git a/src/main/java/net/minecraft/world/level/block/LavaCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LavaCauldronBlock.java -index 7e926a4546f89da22080ef28c3858ac7b3cf80f1..29d4553df54236706c76fdec0bb14b5d9fb82ff2 100644 +index 1e6a51f7679af81a00d9f55a926baeed80ed24d3..25b3f2550a099e9938a82f2c0ff31da4e5f23614 100644 --- a/src/main/java/net/minecraft/world/level/block/LavaCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LavaCauldronBlock.java @@ -32,6 +32,7 @@ public class LavaCauldronBlock extends AbstractCauldronBlock { @@ -197,10 +197,10 @@ index 2a8f97d97ae7f268da920b5e3b9719743fa9a8e0..1b5cc5d6aa0b4313da980ce175c54145 // CraftBukkit start - Entity in portal EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ())); diff --git a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -index f7154d56ad42e0dde497e0e585cc554d34865e3b..690abba9d27ab4061de4dd3676292b1859036868 100644 +index 15696602249465fa1d13eaec3b8b06574ec06f07..c9ed129db2cadd0a33d69993961f43088725c3cb 100644 --- a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -@@ -94,6 +94,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl +@@ -98,6 +98,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { @@ -257,7 +257,7 @@ index d89a4c30599cedcb8ce17899631cb58c8a6a2195..61abbcfe97e3d3e3da5ee658672549d1 // CraftBukkit start if (!CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState())) { diff --git a/src/main/java/net/minecraft/world/level/block/WebBlock.java b/src/main/java/net/minecraft/world/level/block/WebBlock.java -index 7206dfa5bdfb94ff98bcdfc735367c22493e925e..4905de6446f07e2fff53a3c8580b64b96306c373 100644 +index 313ac5d2e2dbc9afcfcef8c97f85e56243825ab0..709d5002ad7a1004286bf2749c82e25d7f0d0133 100644 --- a/src/main/java/net/minecraft/world/level/block/WebBlock.java +++ b/src/main/java/net/minecraft/world/level/block/WebBlock.java @@ -22,6 +22,7 @@ public class WebBlock extends Block { @@ -265,7 +265,7 @@ index 7206dfa5bdfb94ff98bcdfc735367c22493e925e..4905de6446f07e2fff53a3c8580b64b9 @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { + if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent - entity.makeStuckInBlock(state, new Vec3(0.25D, (double)0.05F, 0.25D)); + entity.makeStuckInBlock(state, new Vec3(0.25, 0.05F, 0.25)); } } diff --git a/src/main/java/net/minecraft/world/level/block/WitherRoseBlock.java b/src/main/java/net/minecraft/world/level/block/WitherRoseBlock.java diff --git a/patches/server/0569-Add-PlayerKickEvent-causes.patch b/patches/server/0569-Add-PlayerKickEvent-causes.patch index cba228a0e1..17147225c5 100644 --- a/patches/server/0569-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0569-Add-PlayerKickEvent-causes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerKickEvent causes diff --git a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java -index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..ba12919c3f9aec34a9e64993b143ae92be5eb172 100644 +index e15d740275d265c460c1771cdad5556bcec9d798..0af9ed92824ccf30814eceb6a2c2e5c12661c991 100644 --- a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java +++ b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java -@@ -35,16 +35,16 @@ public class SignedMessageChain { +@@ -34,16 +34,16 @@ public class SignedMessageChain { return (signature, body) -> { SignedMessageLink signedMessageLink = this.advanceLink(); if (signedMessageLink == null) { @@ -22,14 +22,14 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..ba12919c3f9aec34a9e64993b143ae92 + throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.out_of_order_chat"), true, org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event causes } else { this.lastTimeStamp = body.timeStamp(); - PlayerChatMessage playerChatMessage = new PlayerChatMessage(signedMessageLink, signature, body, (Component)null, FilterMask.PASS_THROUGH); + PlayerChatMessage playerChatMessage = new PlayerChatMessage(signedMessageLink, signature, body, null, FilterMask.PASS_THROUGH); if (!playerChatMessage.verify(signatureValidator)) { - throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.unsigned_chat"), true); + throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.unsigned_chat"), true, org.bukkit.event.player.PlayerKickEvent.Cause.UNSIGNED_CHAT); // Paper - kick event causes } else { if (playerChatMessage.hasExpiredServer(Instant.now())) { - LOGGER.warn("Received expired chat: '{}'. Is the client/server system time unsynchronized?", (Object)body.content()); -@@ -68,10 +68,17 @@ public class SignedMessageChain { + LOGGER.warn("Received expired chat: '{}'. Is the client/server system time unsynchronized?", body.content()); +@@ -67,10 +67,17 @@ public class SignedMessageChain { public static class DecodeException extends ThrowingComponent { private final boolean shouldDisconnect; @@ -48,7 +48,7 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..ba12919c3f9aec34a9e64993b143ae92 public boolean shouldDisconnect() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 773e4850956a7ffcd78cc241a598fd13bcfe1d20..7ee46b9f98794d1fec0a8feea71fd495f9199dd0 100644 +index c9545f96317fd6692889d82851d76084efa6a61d..fdda28bd6aa3a2d3079a383157b82ff825cc992d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2167,7 +2167,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { - return Component.translatable("commands.kick.success", serverPlayer.getDisplayName(), reason); - }, true); + source.sendSuccess(() -> Component.translatable("commands.kick.success", serverPlayer.getDisplayName(), reason), true); + i++; + } diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java index 6bb846d3ee2fb54ab3ffa116607f2a83e538460e..a65a1466dab52fca75cda16a4b22fef03b6207a0 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -461,7 +461,7 @@ index e913acef00c0a1a2f49779800b46997588b46253..dcb8de1c28b767068aa10f044bd8cf72 // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/player/ProfilePublicKey.java b/src/main/java/net/minecraft/world/entity/player/ProfilePublicKey.java -index 6724d0a1af13e97bc1d3bd94fd43fef742a0deab..20ba0a0c9eae28658888a77dd2170f629bbcb65b 100644 +index f472dea0bd4f834c0c8f0aa59ae7cdae082b14af..2fa51c3a70f43cd23b8f494fc643d66cecfda7d2 100644 --- a/src/main/java/net/minecraft/world/entity/player/ProfilePublicKey.java +++ b/src/main/java/net/minecraft/world/entity/player/ProfilePublicKey.java @@ -24,7 +24,7 @@ public record ProfilePublicKey(ProfilePublicKey.Data data) { @@ -473,7 +473,7 @@ index 6724d0a1af13e97bc1d3bd94fd43fef742a0deab..20ba0a0c9eae28658888a77dd2170f62 } else { return new ProfilePublicKey(publicKeyData); } -@@ -81,8 +81,16 @@ public record ProfilePublicKey(ProfilePublicKey.Data data) { +@@ -88,8 +88,16 @@ public record ProfilePublicKey(ProfilePublicKey.Data data) { } public static class ValidationException extends ThrowingComponent { diff --git a/patches/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch index 12b8b851c3..2deed69271 100644 --- a/patches/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch +++ b/patches/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch @@ -14,10 +14,10 @@ contention situations. And this is extremely a low contention situation. diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index b8fb6d1d85e07f5165bfaf7d80807e069b595851..dd62e257e16974a6d556a7f5e2d113a2cbc08981 100644 +index 6b37d460a76156162743d77d192f34366b29e5f9..268752a0b939abcaa9c7a302d2642b0c0fa2d331 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -32,14 +32,14 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -30,14 +30,14 @@ public class PalettedContainer implements PaletteResize, PalettedContainer public final IdMap registry; private volatile PalettedContainer.Data data; private final PalettedContainer.Strategy strategy; @@ -35,7 +35,7 @@ index b8fb6d1d85e07f5165bfaf7d80807e069b595851..dd62e257e16974a6d556a7f5e2d113a2 } public static Codec> codecRW(IdMap idList, Codec entryCodec, PalettedContainer.Strategy paletteProvider, T defaultValue) { -@@ -91,7 +91,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -104,7 +104,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer } @Override @@ -44,7 +44,7 @@ index b8fb6d1d85e07f5165bfaf7d80807e069b595851..dd62e257e16974a6d556a7f5e2d113a2 PalettedContainer.Data data = this.data; PalettedContainer.Data data2 = this.createOrReuseData(data, newBits); data2.copyFrom(data.palette, data.storage); -@@ -116,7 +116,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -129,7 +129,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer return this.getAndSet(this.strategy.getIndex(x, y, z), value); } @@ -53,8 +53,8 @@ index b8fb6d1d85e07f5165bfaf7d80807e069b595851..dd62e257e16974a6d556a7f5e2d113a2 int i = this.data.palette.idFor(value); int j = this.data.storage.getAndSet(index, i); return this.data.palette.valueFor(j); -@@ -133,7 +133,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer - +@@ -145,7 +145,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer + } } - private void set(int index, T value) { @@ -62,8 +62,8 @@ index b8fb6d1d85e07f5165bfaf7d80807e069b595851..dd62e257e16974a6d556a7f5e2d113a2 int i = this.data.palette.idFor(value); this.data.storage.set(index, i); } -@@ -158,7 +158,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer - }); +@@ -168,7 +168,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer + intSet.forEach(id -> action.accept(palette.valueFor(id))); } - public void read(FriendlyByteBuf buf) { @@ -71,7 +71,7 @@ index b8fb6d1d85e07f5165bfaf7d80807e069b595851..dd62e257e16974a6d556a7f5e2d113a2 this.acquire(); try { -@@ -174,7 +174,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -183,7 +183,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer } @Override @@ -80,7 +80,7 @@ index b8fb6d1d85e07f5165bfaf7d80807e069b595851..dd62e257e16974a6d556a7f5e2d113a2 this.acquire(); try { -@@ -229,7 +229,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -231,7 +231,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer } @Override diff --git a/patches/server/0575-Fix-invulnerable-end-crystals.patch b/patches/server/0575-Fix-invulnerable-end-crystals.patch index 75347e76f0..468e11151c 100644 --- a/patches/server/0575-Fix-invulnerable-end-crystals.patch +++ b/patches/server/0575-Fix-invulnerable-end-crystals.patch @@ -52,13 +52,13 @@ index e7e01effab5f727d9b84a0575d165127e3dfe4c9..036640d49a5e891e9a0f767abe33f1f5 } diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java -index 4b685e185ebac8553f1f81d1a5a04be8166a6ca4..3b36caafde83c87c823277e2085ee82ae497b9be 100644 +index de93988e6116d63ae29add32ee02ccca631f1d9e..ad31fc599288e46a69814268cd10148a5edb375a 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java -@@ -101,6 +101,7 @@ public class SpikeFeature extends Feature { +@@ -111,6 +111,7 @@ public class SpikeFeature extends Feature { endCrystal.setBeamTarget(config.getCrystalBeamTarget()); endCrystal.setInvulnerable(config.isCrystalInvulnerable()); - endCrystal.moveTo((double)spike.getCenterX() + 0.5D, (double)(spike.getHeight() + 1), (double)spike.getCenterZ() + 0.5D, random.nextFloat() * 360.0F, 0.0F); + endCrystal.moveTo(spike.getCenterX() + 0.5, spike.getHeight() + 1, spike.getCenterZ() + 0.5, random.nextFloat() * 360.0F, 0.0F); + endCrystal.generatedByDragonFight = true; // Paper - Fix invulnerable end crystals world.addFreshEntity(endCrystal); BlockPos blockPos2 = endCrystal.blockPosition(); diff --git a/patches/server/0577-Fix-dangerous-end-portal-logic.patch b/patches/server/0577-Fix-dangerous-end-portal-logic.patch index 1b1c9918ec..fc17215428 100644 --- a/patches/server/0577-Fix-dangerous-end-portal-logic.patch +++ b/patches/server/0577-Fix-dangerous-end-portal-logic.patch @@ -11,7 +11,7 @@ Move the tick logic into the post tick, where portaling was designed to happen in the first place. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2d8c476eb9f329ee6827340b6cec26a84901c56a..e3647763bcede42f06250550985e149e39f2b0b8 100644 +index 5b0502cfcc3d9317941d7444750a49832e1a52a1..53e2ca6ddba4936a7387e07a2aae4c282a305222 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -421,6 +421,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch index 53a98e7fb8..efeca7582b 100644 --- a/patches/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch +++ b/patches/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch @@ -6,14 +6,13 @@ Subject: [PATCH] Optimize Biome Mob Lookups for Mob Spawning Uses an EnumMap as well as a Set paired List for O(1) contains calls. diff --git a/src/main/java/net/minecraft/world/level/biome/MobSpawnSettings.java b/src/main/java/net/minecraft/world/level/biome/MobSpawnSettings.java -index 4f4ef3349f512cc6e1588eb58de5b2558c0bd8b9..b10dfbaef9bde9d94c4971b47d77a1514e476f86 100644 +index c376a6cc04faf8d8545c99c0815682ea7cad98db..ffa24b71400f2041c9154817c6c767bc7dffb176 100644 --- a/src/main/java/net/minecraft/world/level/biome/MobSpawnSettings.java +++ b/src/main/java/net/minecraft/world/level/biome/MobSpawnSettings.java -@@ -61,11 +61,43 @@ public class MobSpawnSettings { +@@ -75,8 +75,40 @@ public class MobSpawnSettings { } public static class Builder { -- private final Map> spawners = Stream.of(MobCategory.values()).collect(ImmutableMap.toImmutableMap((mobCategory) -> { + // Paper start - Perf: keep track of data in a pair set to give O(1) contains calls - we have to hook removals incase plugins mess with it + public static class MobList extends java.util.ArrayList { + java.util.Set biomes = new java.util.HashSet<>(); @@ -45,12 +44,9 @@ index 4f4ef3349f512cc6e1588eb58de5b2558c0bd8b9..b10dfbaef9bde9d94c4971b47d77a151 + } + } + // use toImmutableEnumMap collector -+ private final Map> spawners = (Map) Stream.of(MobCategory.values()).collect(Maps.toImmutableEnumMap((mobCategory) -> { - return mobCategory; - }, (mobCategory) -> { -- return Lists.newArrayList(); -+ return new MobList(); // Use MobList instead of ArrayList - })); + private final Map> spawners = Stream.of(MobCategory.values()) +- .collect(ImmutableMap.toImmutableMap(mobCategory -> (MobCategory)mobCategory, mobCategory -> Lists.newArrayList())); ++ .collect(Maps.toImmutableEnumMap(mobCategory -> (MobCategory)mobCategory, mobCategory -> new MobList())); // Use MobList instead of ArrayList + // Paper end - Perf: keep track of data in a pair set to give O(1) contains calls private final Map, MobSpawnSettings.MobSpawnCost> mobSpawnCosts = Maps.newLinkedHashMap(); private float creatureGenerationProbability = 0.1F; diff --git a/patches/server/0580-Line-Of-Sight-Changes.patch b/patches/server/0580-Line-Of-Sight-Changes.patch index bb2535a35e..0e0c8ce179 100644 --- a/patches/server/0580-Line-Of-Sight-Changes.patch +++ b/patches/server/0580-Line-Of-Sight-Changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Line Of Sight Changes diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7f2111586f5a4df8824be575d6215a564f1e294a..1da8e62b57d3b971aab00fd3b2b50f1ae4a8d162 100644 +index 687f379a811ba46cb3cddda33a62039b3b329cb3..60c9bae18f277a90b464a6f1f55d074ed9046aff 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3627,7 +3627,8 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -45,7 +45,7 @@ index b9262b681b51cb68024156b28d33624fddd17b26..af14244caba22e750ee7baba03bb7ce2 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 5b9bb113db1202025c7ebb79f48b434ed8d9e3eb..aaacc38b0b2dd435ef5cb6a934cfcd6659c4ca15 100644 +index 646763f591e67e27c992663379fa3d4b322a3de3..e4a6cb02afdc6c0654ede24265d79092c998f828 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -628,6 +628,23 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch index e0ef67f1e5..4f374c8de3 100644 --- a/patches/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix PlayerDropItemEvent using wrong item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a09ef51e94a0bf9f51bf358e7cf77dd5d272aab2..d0369b9db86dc3436e6a016f138f2ffe91da6ed4 100644 +index 28baa63b9b750a7f03da364d9c1fe691d3ce1706..c917b271fb6325840bb791566e9dec607bdd819a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2342,7 +2342,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0585-Missing-Entity-API.patch b/patches/server/0585-Missing-Entity-API.patch index 2d5619dd11..15b6b347f6 100644 --- a/patches/server/0585-Missing-Entity-API.patch +++ b/patches/server/0585-Missing-Entity-API.patch @@ -113,7 +113,7 @@ index 0000000000000000000000000000000000000000..41bf71d116ffc5431586ce54abba7f8d + } +} diff --git a/src/main/java/net/minecraft/world/entity/animal/AbstractSchoolingFish.java b/src/main/java/net/minecraft/world/entity/animal/AbstractSchoolingFish.java -index 39ed3ca76d6b64ef3917280ec822721cc02afada..86b437836cb4b1f6e8ca9acd5f1f93b925cf9e51 100644 +index eef7d260dcb9a9c8ea6efef3216d33c08e3ea287..79c79f825e4c9b748d54962d06356ef425359101 100644 --- a/src/main/java/net/minecraft/world/entity/animal/AbstractSchoolingFish.java +++ b/src/main/java/net/minecraft/world/entity/animal/AbstractSchoolingFish.java @@ -52,6 +52,7 @@ public abstract class AbstractSchoolingFish extends AbstractFish { @@ -796,7 +796,7 @@ index 2cec61a1bb050c1ef81c5fc3d0afafe9ff29d459..97fa4e1e70203194bd939618b2fad926 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 0a039d3ce686b7e47361c60f141943b621898707..e2a566c4f9402fe035c3363faff84e49956a536b 100644 +index e4a6cb02afdc6c0654ede24265d79092c998f828..a3b9b512c4962c5d38598a504e8f0010304abdc0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -921,14 +921,29 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch index b45da09501..1778a6a85c 100644 --- a/patches/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch @@ -21,7 +21,7 @@ index 9e4453878246a22e320a6f8eb7aa08cb17438faf..60590ee30d2ff3b94c796bae2d7e9d9b @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1bb7cc9462cab7fbd09b944662711ae5bc5cf950..48e60e5ce01942fa5d30e043012e888989046cee 100644 +index 40f1b4ba266f96629b989590c7c81cd7534e93da..a1dbd23a5d8ea064f1b7909f3e285a4dadf34d88 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -182,6 +182,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0591-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0591-Fix-kick-event-leave-message-not-being-sent.patch index cbe89274cd..c3d3547870 100644 --- a/patches/server/0591-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0591-Fix-kick-event-leave-message-not-being-sent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix 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 d0369b9db86dc3436e6a016f138f2ffe91da6ed4..7fab0411fb7d322bf5f201e44b747d8a00638d5d 100644 +index c917b271fb6325840bb791566e9dec607bdd819a..5f69e743e2422bbcfd4678b550940960374ecabd 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -268,7 +268,6 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0592-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0592-Add-config-for-mobs-immune-to-default-effects.patch index 756da20f44..10ce8bf043 100644 --- a/patches/server/0592-Add-config-for-mobs-immune-to-default-effects.patch +++ b/patches/server/0592-Add-config-for-mobs-immune-to-default-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config for mobs immune to default effects diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f7244a0cbb06258d6e553ad35e1040e338cce4eb..a2edccc840f2ba76e236ea7441f3e4909b1a1898 100644 +index 60c9bae18f277a90b464a6f1f55d074ed9046aff..f01ace6a6e517ff3d3cd66e69e2594ae3d702072 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1172,7 +1172,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0593-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0593-Don-t-apply-cramming-damage-to-players.patch index 0882572dff..b0d6a1ad5d 100644 --- a/patches/server/0593-Don-t-apply-cramming-damage-to-players.patch +++ b/patches/server/0593-Don-t-apply-cramming-damage-to-players.patch @@ -11,7 +11,7 @@ It does not make a lot of sense to damage players if they get crammed, For those who really want it a config option is provided. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7fab0411fb7d322bf5f201e44b747d8a00638d5d..751216261df86402c23d3f0d73944ae51e849caa 100644 +index 5f69e743e2422bbcfd4678b550940960374ecabd..bb0a5e3cdfec18a71c30fde98d21affcd95a9885 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -95,6 +95,7 @@ import net.minecraft.util.Mth; diff --git a/patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch index b90b81a68f..2862657b68 100644 --- a/patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch +++ b/patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch @@ -28,10 +28,10 @@ index 4bd813161a5d76a83cdbd0a9209b9ea9e60ffe1b..e2764186bd6b838ed5cd86c15597a08d * Get a named timer for the specified tile entity type to track type specific timings. * @param entity diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java -index 4ea437253539e3ee533ca9da77a337cbf4d1e807..1e71cde7cb7654f1c21ae5e27e2fad7b58f593eb 100644 +index db231b1353a1d5ca4fb217f5ebf8d7584706478d..0a2e894d8bd1268fcbd4460745304816be46beff 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java -@@ -13,6 +13,10 @@ public abstract class Behavior implements BehaviorContro +@@ -14,6 +14,10 @@ public abstract class Behavior implements BehaviorContro private long endTimestamp; private final int minDuration; private final int maxDuration; @@ -42,7 +42,7 @@ index 4ea437253539e3ee533ca9da77a337cbf4d1e807..1e71cde7cb7654f1c21ae5e27e2fad7b public Behavior(Map, MemoryStatus> requiredMemoryState) { this(requiredMemoryState, 60); -@@ -26,6 +30,15 @@ public abstract class Behavior implements BehaviorContro +@@ -27,6 +31,15 @@ public abstract class Behavior implements BehaviorContro this.minDuration = minRunTime; this.maxDuration = maxRunTime; this.entryCondition = requiredMemoryState; @@ -58,7 +58,7 @@ index 4ea437253539e3ee533ca9da77a337cbf4d1e807..1e71cde7cb7654f1c21ae5e27e2fad7b } @Override -@@ -35,11 +48,19 @@ public abstract class Behavior implements BehaviorContro +@@ -36,11 +49,19 @@ public abstract class Behavior implements BehaviorContro @Override public final boolean tryStart(ServerLevel world, E entity, long time) { @@ -71,14 +71,14 @@ index 4ea437253539e3ee533ca9da77a337cbf4d1e807..1e71cde7cb7654f1c21ae5e27e2fad7b if (this.hasRequiredMemories(entity) && this.checkExtraStartConditions(world, entity)) { this.status = Behavior.Status.RUNNING; int i = this.minDuration + world.getRandom().nextInt(this.maxDuration + 1 - this.minDuration); - this.endTimestamp = time + (long)i; + this.endTimestamp = time + i; + this.timing.startTiming(); // Paper - behavior timings this.start(world, entity, time); + this.timing.stopTiming(); // Paper - behavior timings return true; } else { return false; -@@ -51,11 +72,13 @@ public abstract class Behavior implements BehaviorContro +@@ -52,11 +73,13 @@ public abstract class Behavior implements BehaviorContro @Override public final void tickOrStop(ServerLevel world, E entity, long time) { @@ -89,15 +89,15 @@ index 4ea437253539e3ee533ca9da77a337cbf4d1e807..1e71cde7cb7654f1c21ae5e27e2fad7b this.doStop(world, entity, time); } + this.timing.stopTiming(); // Paper - behavior timings - } + protected void tick(ServerLevel world, E entity, long time) { diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java -index 7970eebbd6935402223e6bba962bb8ba7d861dfd..fcdb9bde8e1605e30dde3e580491522d4b62cdc0 100644 +index eebe5d721a6cea42013f5293586865deb39fe9d2..de2dfaf3cb41bafd48fa4699096a0a7304cd3201 100644 --- a/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java +++ b/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java -@@ -19,8 +19,21 @@ public abstract class Sensor { - private static final TargetingConditions ATTACK_TARGET_CONDITIONS_IGNORE_INVISIBILITY_AND_LINE_OF_SIGHT = TargetingConditions.forCombat().range(16.0D).ignoreLineOfSight().ignoreInvisibilityTesting(); +@@ -26,8 +26,21 @@ public abstract class Sensor { + .ignoreInvisibilityTesting(); private final int scanRate; private long timeToTick; + // Paper start - configurable sensor tick rate and timings @@ -116,13 +116,13 @@ index 7970eebbd6935402223e6bba962bb8ba7d861dfd..fcdb9bde8e1605e30dde3e580491522d + this.timing = co.aikar.timings.MinecraftTimings.getSensorTimings(configKey, senseInterval); + // Paper end this.scanRate = senseInterval; - this.timeToTick = (long)RANDOM.nextInt(senseInterval); + this.timeToTick = RANDOM.nextInt(senseInterval); } -@@ -31,8 +44,12 @@ public abstract class Sensor { +@@ -38,8 +51,12 @@ public abstract class Sensor { public final void tick(ServerLevel world, E entity) { if (--this.timeToTick <= 0L) { -- this.timeToTick = (long)this.scanRate; +- this.timeToTick = this.scanRate; + // Paper start - configurable sensor tick rate and timings + this.timeToTick = java.util.Objects.requireNonNullElse(world.paperConfig().tickRates.sensor.get(entity.getType(), this.configKey), this.scanRate); + this.timing.startTiming(); @@ -130,5 +130,5 @@ index 7970eebbd6935402223e6bba962bb8ba7d861dfd..fcdb9bde8e1605e30dde3e580491522d this.doTick(world, entity); + this.timing.stopTiming(); // Paper - sensor timings } - } + diff --git a/patches/server/0595-Add-missing-forceDrop-toggles.patch b/patches/server/0595-Add-missing-forceDrop-toggles.patch index 273710ee36..7e8de16312 100644 --- a/patches/server/0595-Add-missing-forceDrop-toggles.patch +++ b/patches/server/0595-Add-missing-forceDrop-toggles.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add missing forceDrop toggles diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java b/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java -index 012586360a48369dad243dbb8892579a1dbcca90..edeb1899996e53d276d7481e8eddee65249a07d3 100644 +index b9c2b41d9c46c871bab44cfb1d454f4141f1627b..d975b349aa81327c6b6c23e83e9552159217f11e 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java -@@ -87,7 +87,9 @@ public class WorkAtComposter extends WorkAtPoi { +@@ -86,7 +86,9 @@ public class WorkAtComposter extends WorkAtPoi { simpleContainer.removeItemType(Items.WHEAT, m); ItemStack itemStack = simpleContainer.addItem(new ItemStack(Items.BREAD, l)); if (!itemStack.isEmpty()) { @@ -16,8 +16,8 @@ index 012586360a48369dad243dbb8892579a1dbcca90..edeb1899996e53d276d7481e8eddee65 entity.spawnAtLocation(itemStack, 0.5F); + entity.forceDrops = false; // Paper - Add missing forceDrop toggles } - } + } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java index 4224e8e75613b6ec0228b2757cb98140d83bc2e2..4abd26c7baf8f198f13dd41a3146f9ece13a4164 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java diff --git a/patches/server/0596-Stinger-API.patch b/patches/server/0596-Stinger-API.patch index eadae86e37..7a81c96422 100644 --- a/patches/server/0596-Stinger-API.patch +++ b/patches/server/0596-Stinger-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stinger API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 9c69fe09b2cf1172fe0e16f6799cc67bc0ccd397..bc7e2d24dac52091a62ce488c7fc34133dfa2aa8 100644 +index a3b9b512c4962c5d38598a504e8f0010304abdc0..4461663659f351f844ed78adc8c1ffd0531a7878 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -354,6 +354,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0602-Add-PlayerSetSpawnEvent.patch b/patches/server/0602-Add-PlayerSetSpawnEvent.patch index aae9495179..59121d7ad0 100644 --- a/patches/server/0602-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0602-Add-PlayerSetSpawnEvent.patch @@ -49,7 +49,7 @@ index a2d0699e8427b2262a2396495111125eccafbb66..15db9368227dbc29d07d74e85bd126b3 } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 751216261df86402c23d3f0d73944ae51e849caa..fb86824192f1fc850a55905757c65cafec1edb6a 100644 +index bb0a5e3cdfec18a71c30fde98d21affcd95a9885..3f4950e0c0525346a89c7402ea85edebc6b36698 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1307,7 +1307,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0604-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0604-Optimize-entity-tracker-passenger-checks.patch index 0908da4471..e1857c2d2c 100644 --- a/patches/server/0604-Optimize-entity-tracker-passenger-checks.patch +++ b/patches/server/0604-Optimize-entity-tracker-passenger-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize entity tracker passenger checks diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index fb16216b54eea81fceaf3edafa69b554ad01c807..c21cea7975844e0a04daeb1fcffc26d55fc62025 100644 +index e324c41947b823bba04e3da157e5be7a74d9f099..36e87e8650bef90fab47c4156ce12315f45b2241 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -79,7 +79,7 @@ public class ServerEntity { diff --git a/patches/server/0607-Optimize-indirect-passenger-iteration.patch b/patches/server/0607-Optimize-indirect-passenger-iteration.patch index cdd80aa9b6..ba1f9b4848 100644 --- a/patches/server/0607-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0607-Optimize-indirect-passenger-iteration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize indirect passenger iteration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e3647763bcede42f06250550985e149e39f2b0b8..f93e74226e3306a59e17dce1e4f8e72d61d75d49 100644 +index 53e2ca6ddba4936a7387e07a2aae4c282a305222..04f901236a5b9ca59ba45a5bac69ba89fc767679 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3842,20 +3842,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0608-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0608-Configurable-item-frame-map-cursor-update-interval.patch index 382372348e..18c1f05373 100644 --- a/patches/server/0608-Configurable-item-frame-map-cursor-update-interval.patch +++ b/patches/server/0608-Configurable-item-frame-map-cursor-update-interval.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable item frame map cursor update interval diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index c21cea7975844e0a04daeb1fcffc26d55fc62025..a83b4d9b61230ecf5f776269cab228cf49c5f546 100644 +index 36e87e8650bef90fab47c4156ce12315f45b2241..91563f903834c1a0636dc087f8c6376815165b6c 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -117,7 +117,7 @@ public class ServerEntity { diff --git a/patches/server/0611-Add-BlockBreakBlockEvent.patch b/patches/server/0611-Add-BlockBreakBlockEvent.patch index d621301d17..1d42076156 100644 --- a/patches/server/0611-Add-BlockBreakBlockEvent.patch +++ b/patches/server/0611-Add-BlockBreakBlockEvent.patch @@ -68,10 +68,10 @@ index 0aeb9faa1ce22359361741a591aa3d465d955970..a98ab20814cc29a25e9d29adfbb7e70d private static short getCacheKey(BlockPos from, BlockPos to) { diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -index 1897c0012800d5ba9d2fc386f3e2bf57c9d878bb..c5f9eda32f2cd172569c7b7d72f5dd3e41a34a70 100644 +index 855014986c201fdb5dffebf362951cd1edebd95d..001adec26a71a0f5e1dd77bf51a62bb25172d702 100644 --- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java +++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -@@ -64,6 +64,13 @@ public abstract class WaterFluid extends FlowingFluid { +@@ -74,6 +74,13 @@ public abstract class WaterFluid extends FlowingFluid { return world.getGameRules().getBoolean(GameRules.RULE_WATER_SOURCE_CONVERSION); } diff --git a/patches/server/0615-Add-back-EntityPortalExitEvent.patch b/patches/server/0615-Add-back-EntityPortalExitEvent.patch index 566d9576da..0f1992b626 100644 --- a/patches/server/0615-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0615-Add-back-EntityPortalExitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add back EntityPortalExitEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f93e74226e3306a59e17dce1e4f8e72d61d75d49..7dbbf0884b70acb37c3400364736fa8f6b68c964 100644 +index 04f901236a5b9ca59ba45a5bac69ba89fc767679..11985b5c0e48178a7f995dfc35dd27a172261f1c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3291,6 +3291,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0619-Add-more-advancement-API.patch b/patches/server/0619-Add-more-advancement-API.patch index 98836b6fe4..c86f1459b7 100644 --- a/patches/server/0619-Add-more-advancement-API.patch +++ b/patches/server/0619-Add-more-advancement-API.patch @@ -84,17 +84,17 @@ index 0000000000000000000000000000000000000000..adac21ce6db3ff7a56dbcd6bffc02143 + } +} diff --git a/src/main/java/net/minecraft/advancements/DisplayInfo.java b/src/main/java/net/minecraft/advancements/DisplayInfo.java -index d357deb8a9e1d4043f5fb3302b957b20ffc0cc32..54298a80bd86ae8c2bdbfc69d381173aea2f1410 100644 +index 3751b43469e92b8a3d70ec3d5413bc1571147e6e..8057d42f2484bca8e5555e3010c27b898c4245b5 100644 --- a/src/main/java/net/minecraft/advancements/DisplayInfo.java +++ b/src/main/java/net/minecraft/advancements/DisplayInfo.java -@@ -24,6 +24,7 @@ public class DisplayInfo { +@@ -34,6 +34,7 @@ public class DisplayInfo { private final boolean hidden; private float x; private float y; + public final io.papermc.paper.advancement.AdvancementDisplay paper = new io.papermc.paper.advancement.PaperAdvancementDisplay(this); // Paper - Add more advancement API - public DisplayInfo(ItemStack icon, Component title, Component description, Optional background, AdvancementType frame, boolean showToast, boolean announceToChat, boolean hidden) { - this.title = title; + public DisplayInfo( + ItemStack icon, diff --git a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java index 52baf818579a6841b77ff80e42f4f1b9f635ea08..8dfaca2efa0b0bdc97b75aaa83158a2e46361e4e 100644 --- a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java diff --git a/patches/server/0622-Fix-issues-with-mob-conversion.patch b/patches/server/0622-Fix-issues-with-mob-conversion.patch index 657dd4ec5d..af0f87afee 100644 --- a/patches/server/0622-Fix-issues-with-mob-conversion.patch +++ b/patches/server/0622-Fix-issues-with-mob-conversion.patch @@ -26,10 +26,10 @@ index e88af2dcc0f7fc5190654e2640f67d706e6c8c81..92974452d8f63fde8524cfac305ee2ef } diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index 7bcd5498c734873b74bee503992ec4806ae61df7..01a2016ac82807d28ffe407b7dbb74bdbcde503e 100644 +index 2025599c337759d8856e15b606cde604d6c64a88..050ffa4a23feba29fdf4c6a175cdff4e5009027d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -@@ -241,6 +241,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { +@@ -271,6 +271,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { if (zoglin != null) { zoglin.addEffect(new MobEffectInstance(MobEffects.CONFUSION, 200, 0)); } @@ -38,9 +38,9 @@ index 7bcd5498c734873b74bee503992ec4806ae61df7..01a2016ac82807d28ffe407b7dbb74bd + this.timeInOverworld = 0; + } + // Paper end - Fix issues with mob conversion - } + @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/AbstractPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/AbstractPiglin.java index 22c8d6233be5e4f7fb4f03176e83dbee02256b1f..c575a86ca5c1bbdd6d2faf6e4a609af8ba03cab6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/AbstractPiglin.java diff --git a/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch index 55d631cdee..2418a2e08d 100644 --- a/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add Raw Byte Entity Serialization public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7dbbf0884b70acb37c3400364736fa8f6b68c964..5dce3d38ecd7b7639f02f3e1e92f3723f4a42c39 100644 +index 11985b5c0e48178a7f995dfc35dd27a172261f1c..b9f61d08adf83bbaed522c2258db116492cb24c5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2078,6 +2078,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index e55fef3b36..abcdf89c61 100644 --- a/patches/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch @@ -28,7 +28,7 @@ index 14b3edc05a04f5049f994df5be68e4f01e8cf1ef..10eb5c342930d2efd7d919f286fe8fa6 } // 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 fb86824192f1fc850a55905757c65cafec1edb6a..48edd0bf7a6f24aaf582a96ee7cb4c29c9e3598a 100644 +index 3f4950e0c0525346a89c7402ea85edebc6b36698..5f43cd7f6cc1e14771c3df6ec1f074e670ec6206 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1581,6 +1581,18 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0630-Improve-and-expand-AsyncCatcher.patch b/patches/server/0630-Improve-and-expand-AsyncCatcher.patch index e296e8ff56..b87817eeb4 100644 --- a/patches/server/0630-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0630-Improve-and-expand-AsyncCatcher.patch @@ -29,7 +29,7 @@ index 2941445ea453e2fb88ea8de38c24bf755b93936a..666c6cb6f600973e1d84839aed715606 if (player.isRemoved()) { LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName()); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 144090912223494cf163a445d7bce868be12d6af..4d8f9c8f375282968e70278da655b6e36ab96a87 100644 +index f01ace6a6e517ff3d3cd66e69e2594ae3d702072..31eb77e4e5f07b120708edeca497ef2eef1fcf13 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1126,7 +1126,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -202,7 +202,7 @@ index 6d74a3a43aee0f7ba4c109bd2443c5fcd950fa54..0b1d918452deee4c75bc61cb6a620f69 ClientboundSoundEntityPacket packet = new ClientboundSoundEntityPacket(Holder.direct(SoundEvent.createVariableRangeEvent(new ResourceLocation(sound))), net.minecraft.sounds.SoundSource.valueOf(category.name()), craftEntity.getHandle(), volume, pitch, seed); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index bc7e2d24dac52091a62ce488c7fc34133dfa2aa8..6af7796c9505b43b2c4dfe869214b0f56dc71244 100644 +index 4461663659f351f844ed78adc8c1ffd0531a7878..5a760234a4604cec289705f1439f03c821bb0aab 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -517,6 +517,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0632-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0632-Sanitize-ResourceLocation-error-logging.patch index 1359f8648a..3c467a8134 100644 --- a/patches/server/0632-Sanitize-ResourceLocation-error-logging.patch +++ b/patches/server/0632-Sanitize-ResourceLocation-error-logging.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Sanitize ResourceLocation error logging diff --git a/src/main/java/net/minecraft/resources/ResourceLocation.java b/src/main/java/net/minecraft/resources/ResourceLocation.java -index d3300e43523429fdd0e61c5aa9aed2e6bc78e07e..5f9dcab27a07969c93555ad0892683c62cbebc8c 100644 +index aed74e471126a8a66046a181973158d7d288d3f0..3908f88959e43d2f485d5f239257e6564dbda6cd 100644 --- a/src/main/java/net/minecraft/resources/ResourceLocation.java +++ b/src/main/java/net/minecraft/resources/ResourceLocation.java -@@ -211,7 +211,7 @@ public class ResourceLocation implements Comparable { +@@ -207,7 +207,7 @@ public class ResourceLocation implements Comparable { private static String assertValidNamespace(String namespace, String path) { if (!isValidNamespace(namespace)) { @@ -17,7 +17,7 @@ index d3300e43523429fdd0e61c5aa9aed2e6bc78e07e..5f9dcab27a07969c93555ad0892683c6 } else { return namespace; } -@@ -232,7 +232,7 @@ public class ResourceLocation implements Comparable { +@@ -233,7 +233,7 @@ public class ResourceLocation implements Comparable { private static String assertValidPath(String namespace, String path) { if (!isValidPath(path)) { diff --git a/patches/server/0633-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0633-Manually-inline-methods-in-BlockPosition.patch index e97ce21f71..870042962d 100644 --- a/patches/server/0633-Manually-inline-methods-in-BlockPosition.patch +++ b/patches/server/0633-Manually-inline-methods-in-BlockPosition.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Manually inline methods in BlockPosition diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 3b3d81886d50ee6510ff366e11817a578c645089..541cef99113af865b995af2cfb7a1e4724dd8878 100644 +index 4bc994bacdf1fbb7689d799d21a50b7903bf9e59..d80e3f5f53b9d28dea574cff5c65dfa3f8148f88 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java -@@ -516,9 +516,9 @@ public class BlockPos extends Vec3i { +@@ -536,9 +536,9 @@ public class BlockPos extends Vec3i { } public BlockPos.MutableBlockPos set(int x, int y, int z) { @@ -21,7 +21,7 @@ index 3b3d81886d50ee6510ff366e11817a578c645089..541cef99113af865b995af2cfb7a1e47 return this; } -@@ -581,19 +581,19 @@ public class BlockPos extends Vec3i { +@@ -603,19 +603,19 @@ public class BlockPos extends Vec3i { @Override public BlockPos.MutableBlockPos setX(int i) { @@ -45,12 +45,12 @@ index 3b3d81886d50ee6510ff366e11817a578c645089..541cef99113af865b995af2cfb7a1e47 } diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java -index 5256ff18d992250e04a6180e196c2d5d3f0928ca..369b54b96c682717ef93d05312714b4d30efaceb 100644 +index afb1e5ff7b1b6b42f81eaa7888a1ec3ded804ccb..21387401c7958414fa6f3fd530488481d92a6eca 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java +++ b/src/main/java/net/minecraft/core/Vec3i.java -@@ -19,9 +19,9 @@ public class Vec3i implements Comparable { - return IntStream.of(vec.getX(), vec.getY(), vec.getZ()); - }); +@@ -17,9 +17,9 @@ public class Vec3i implements Comparable { + vec -> IntStream.of(vec.getX(), vec.getY(), vec.getZ()) + ); public static final Vec3i ZERO = new Vec3i(0, 0, 0); - private int x; - private int y; @@ -60,4 +60,4 @@ index 5256ff18d992250e04a6180e196c2d5d3f0928ca..369b54b96c682717ef93d05312714b4d + protected int z; // Paper - Perf: Manually inline methods in BlockPosition; protected public static Codec offsetCodec(int maxAbsValue) { - return ExtraCodecs.validate(CODEC, (vec) -> { + return ExtraCodecs.validate( diff --git a/patches/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index 3834fdb183..aea03ebfb8 100644 --- a/patches/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -10,7 +10,7 @@ chunks did get inlined, but the standard CPS.getChunkAt method was not inlined. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 48e60e5ce01942fa5d30e043012e888989046cee..275c02d480cdf25ba0e735f4a43015ec0af238b3 100644 +index a1dbd23a5d8ea064f1b7909f3e285a4dadf34d88..1ed82afbc3aaa826f8067c65fdfc3ffce36a2ce5 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -358,6 +358,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0647-Ensure-valid-vehicle-status.patch b/patches/server/0647-Ensure-valid-vehicle-status.patch index 24e12fde1c..35c8b1e952 100644 --- a/patches/server/0647-Ensure-valid-vehicle-status.patch +++ b/patches/server/0647-Ensure-valid-vehicle-status.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure valid vehicle status diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 48edd0bf7a6f24aaf582a96ee7cb4c29c9e3598a..be8c6c48287b73693ead9ae22071f2b4af7eed32 100644 +index 5f43cd7f6cc1e14771c3df6ec1f074e670ec6206..b5a3587a9074a1a2fcc2252d2db8b184b6ab6793 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -527,7 +527,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch index b766f53247..db1f49cd0a 100644 --- a/patches/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch +++ b/patches/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix CocaoDecorator causing a crash when trying to generate diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/treedecorators/CocoaDecorator.java b/src/main/java/net/minecraft/world/level/levelgen/feature/treedecorators/CocoaDecorator.java -index 42b4b306ee89a9e422d234bdaa9b43b118f8bd0a..f0085174a8f6e05f30c583b1211a7be43128e540 100644 +index 05a874404daec8d7194e0d5bc8d17f76d3cc94ef..961a772eecb759c8c2a2e1461988fdb3f06dd1b0 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/treedecorators/CocoaDecorator.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/treedecorators/CocoaDecorator.java -@@ -25,6 +25,7 @@ public class CocoaDecorator extends TreeDecorator { +@@ -26,6 +26,7 @@ public class CocoaDecorator extends TreeDecorator { @Override public void place(TreeDecorator.Context generator) { diff --git a/patches/server/0653-Update-head-rotation-in-missing-places.patch b/patches/server/0653-Update-head-rotation-in-missing-places.patch index 5fdcb1a6cb..abf2879a6e 100644 --- a/patches/server/0653-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0653-Update-head-rotation-in-missing-places.patch @@ -8,7 +8,7 @@ This is because bukkit uses a separate head rotation field for yaw. This issue only applies to players. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5dce3d38ecd7b7639f02f3e1e92f3723f4a42c39..ec23aa4f86fed6890273d06b8cfb4000daf3c515 100644 +index b9f61d08adf83bbaed522c2258db116492cb24c5..685cd5c719a0bf8d3e41aa95b0e84effe1241948 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1790,6 +1790,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0654-prevent-unintended-light-block-manipulation.patch b/patches/server/0654-prevent-unintended-light-block-manipulation.patch index 90c181a20a..9371202698 100644 --- a/patches/server/0654-prevent-unintended-light-block-manipulation.patch +++ b/patches/server/0654-prevent-unintended-light-block-manipulation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] prevent unintended light block manipulation diff --git a/src/main/java/net/minecraft/world/level/block/LightBlock.java b/src/main/java/net/minecraft/world/level/block/LightBlock.java -index a0fadee4be7c263ceaf1f4a987169b0f50308072..a847b79da488c9d6059c9da941a50de8b1bfc24f 100644 +index 0fe3186b4edbbc93f5794d23dffe58c063be8d67..95d36c3a74d0b71662864f27c54cf52ba41d384c 100644 --- a/src/main/java/net/minecraft/world/level/block/LightBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LightBlock.java -@@ -54,6 +54,7 @@ public class LightBlock extends Block implements SimpleWaterloggedBlock { +@@ -52,6 +52,7 @@ public class LightBlock extends Block implements SimpleWaterloggedBlock { @Override public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (!world.isClientSide && player.canUseGameMasterBlocks()) { diff --git a/patches/server/0660-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0660-don-t-attempt-to-teleport-dead-entities.patch index 96f8ca01bb..46478011d3 100644 --- a/patches/server/0660-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0660-don-t-attempt-to-teleport-dead-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ec23aa4f86fed6890273d06b8cfb4000daf3c515..a89cd343bee7ea919c3ba5789e37b05e6a1cf334 100644 +index 685cd5c719a0bf8d3e41aa95b0e84effe1241948..a9c1561ae9ec5a3db7a0602314c9a935ddf3fdfd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -718,7 +718,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch index e77b1154c2..f3ea39fcf2 100644 --- a/patches/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch +++ b/patches/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 18804ea960f8423d172d9119c0739226a18d4d56..d4abce0b715d5eda99505fa0e29eeab20b538fd9 100644 +index 31eb77e4e5f07b120708edeca497ef2eef1fcf13..ed6fd20ff608e764d6b0f517f6c9c85c533f1646 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2697,13 +2697,26 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch index 2ed18ebaeb..b7a4fc1608 100644 --- a/patches/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch +++ b/patches/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch @@ -7,24 +7,23 @@ Subject: [PATCH] Remove client-side code using deprecated for removal Fixes warnings on build diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 765e4bc00a0526aab6e263dae7233f63f7f31498..edf937591abf62416bd692e40b7b7a6badbe877d 100644 +index 722734ce612fb790ddc80488a795a85ebcd4a842..72e734af483dc03e1ae947b2ab3b6fa7df38ce62 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -951,17 +951,7 @@ public class Util { +@@ -935,16 +935,7 @@ public class Util { } public void openUrl(URL url) { - try { -- Process process = AccessController.doPrivileged((PrivilegedExceptionAction)(() -> { -- return Runtime.getRuntime().exec(this.getOpenUrlArguments(url)); -- })); +- Process process = AccessController.doPrivileged( +- (PrivilegedExceptionAction)(() -> Runtime.getRuntime().exec(this.getOpenUrlArguments(url))) +- ); - process.getInputStream().close(); - process.getErrorStream().close(); - process.getOutputStream().close(); - } catch (IOException | PrivilegedActionException var3) { - Util.LOGGER.error("Couldn't open url '{}'", url, var3); - } -- + throw new IllegalStateException("This method is not useful on dedicated servers."); // Paper - Fix warnings on build by removing client-only code } diff --git a/patches/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch index 66da8d4997..cd57452be8 100644 --- a/patches/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent sending oversized item data in equipment and metadata diff --git a/src/main/java/net/minecraft/network/syncher/EntityDataSerializers.java b/src/main/java/net/minecraft/network/syncher/EntityDataSerializers.java -index f9e15908143f4453c2a5817b412e8a13554553f0..06498788c169133bd563c5a87192b71802c4d4df 100644 +index 3ee4c01e4505241e575b8b2e96338ba27b793a2b..d70f77e4d5ca59c9f802ecb354fa8d53d1e10134 100644 --- a/src/main/java/net/minecraft/network/syncher/EntityDataSerializers.java +++ b/src/main/java/net/minecraft/network/syncher/EntityDataSerializers.java -@@ -42,7 +42,7 @@ public class EntityDataSerializers { +@@ -44,7 +44,7 @@ public class EntityDataSerializers { public static final EntityDataSerializer ITEM_STACK = new EntityDataSerializer() { @Override public void write(FriendlyByteBuf buf, ItemStack value) { @@ -18,7 +18,7 @@ index f9e15908143f4453c2a5817b412e8a13554553f0..06498788c169133bd563c5a87192b718 @Override diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index a83b4d9b61230ecf5f776269cab228cf49c5f546..86f6e5bad325dd3d817b643388b196121624b8c7 100644 +index 91563f903834c1a0636dc087f8c6376815165b6c..a51564e8dce3c125ed5f05cc23548a05c1e79a95 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -335,7 +335,10 @@ public class ServerEntity { @@ -34,7 +34,7 @@ index a83b4d9b61230ecf5f776269cab228cf49c5f546..86f6e5bad325dd3d817b643388b19612 } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d4abce0b715d5eda99505fa0e29eeab20b538fd9..ccbafac8e5930571928e87f1c83f9f481fcfe8c4 100644 +index ed6fd20ff608e764d6b0f517f6c9c85c533f1646..8025e351fb3e24aa67b31eca74be1bc368592851 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3208,7 +3208,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0665-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0665-Hide-unnecessary-itemmeta-from-clients.patch index 6224365ef1..97005e3398 100644 --- a/patches/server/0665-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0665-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 86f6e5bad325dd3d817b643388b196121624b8c7..062225ac8b5fbc44290352d78b215640691f3c23 100644 +index a51564e8dce3c125ed5f05cc23548a05c1e79a95..d2c2075fb0378fd7ec148281d37d886c77a78ce8 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -337,7 +337,7 @@ public class ServerEntity { @@ -33,7 +33,7 @@ index ace2cab310aa7d89e1b76bf5fdc9fd64f56b6cc7..cf173a2315f3a97a89dc2aabe81be285 } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ccbafac8e5930571928e87f1c83f9f481fcfe8c4..9af308ef5e55df9ce08b25e358e48d1c6f67d663 100644 +index 8025e351fb3e24aa67b31eca74be1bc368592851..e44a45ced6f7cd7db44388bb2e85c722b6b5ca8a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3210,7 +3210,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0666-Fix-Spigot-growth-modifiers.patch b/patches/server/0666-Fix-Spigot-growth-modifiers.patch index 92cddad5f1..6463677b83 100644 --- a/patches/server/0666-Fix-Spigot-growth-modifiers.patch +++ b/patches/server/0666-Fix-Spigot-growth-modifiers.patch @@ -13,7 +13,7 @@ Co-authored-by: Noah van der Aa Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java -index 95f897b9ef73c880aff1cfe35fe490683badfd44..1ec8c2d24ec8468d20f322d67143b9454ff266eb 100644 +index 724d77b014a738ad32a1708bd31c0f1a5d76fd57..bdd9f38dcb16b74c5916b75713dbe5082b32497d 100644 --- a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java @@ -51,9 +51,18 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl @@ -76,10 +76,10 @@ index b74e61064926a7c7fb03286651ea52c150f86107..30300ef3ec839dfa944c992ab50db4d3 return (BlockState) state.cycle(GrowingPlantHeadBlock.AGE); } diff --git a/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java b/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java -index 3c0b0732cdea6c98c58c9639be3a6971575df85b..d5257272ac8b0cf36e9f92e32a4a4ae6782f770c 100644 +index 83cc52de8cbb538f8ff2dbce0594f44b8d404b8e..d3827a6759c99d945767498d37a6dbb6b70b6d0d 100644 --- a/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java +++ b/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java -@@ -100,7 +100,7 @@ public class MangrovePropaguleBlock extends SaplingBlock implements SimpleWaterl +@@ -114,7 +114,7 @@ public class MangrovePropaguleBlock extends SaplingBlock implements SimpleWaterl @Override public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (!isHanging(state)) { @@ -87,12 +87,12 @@ index 3c0b0732cdea6c98c58c9639be3a6971575df85b..d5257272ac8b0cf36e9f92e32a4a4ae6 + if (random.nextFloat() < (world.spigotConfig.saplingModifier / (100.0F * 7))) { // Paper - Fix Spigot growth modifiers this.advanceTree(world, pos, state, random); } - + } else { diff --git a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -index 690abba9d27ab4061de4dd3676292b1859036868..591f32f7c0a7a9c843933d17dad8a34b672f49ac 100644 +index c9ed129db2cadd0a33d69993961f43088725c3cb..d06e3892cf42723f8e3f621b5497c5348fa1a715 100644 --- a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -@@ -119,7 +119,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl +@@ -123,7 +123,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl @Override public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { float f = CropBlock.getGrowthSpeed(this, world, pos); diff --git a/patches/server/0669-Optimize-HashMapPalette.patch b/patches/server/0669-Optimize-HashMapPalette.patch index a8cf001da1..d50159b901 100644 --- a/patches/server/0669-Optimize-HashMapPalette.patch +++ b/patches/server/0669-Optimize-HashMapPalette.patch @@ -24,7 +24,7 @@ to corrupted data. This is also something that Anti-Xray is currently relying on. diff --git a/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java b/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java -index 26e093243c70313b777483d9555fb1557443c9b8..92c360f02ef6be77c6c8eee3226947468194ec23 100644 +index f80cde264393f3606bc0c54ba2fd6a467f4bcb5a..c5e1040c239874dcf20b79472bf690ee7f0a9e5f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java +++ b/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java @@ -20,7 +20,7 @@ public class HashMapPalette implements Palette { diff --git a/patches/server/0674-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0674-Forward-CraftEntity-in-teleport-command.patch index 18a8c45967..d78da2d8e7 100644 --- a/patches/server/0674-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0674-Forward-CraftEntity-in-teleport-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a89cd343bee7ea919c3ba5789e37b05e6a1cf334..6c8478c9ad154b25e11085ac47552b5855b5e9d1 100644 +index a9c1561ae9ec5a3db7a0602314c9a935ddf3fdfd..a14ac8aef9aec14a3ca31a61d66f03fec0841927 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3263,6 +3263,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0678-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0678-Configurable-max-block-light-for-monster-spawning.patch index deae03d87c..421d176050 100644 --- a/patches/server/0678-Configurable-max-block-light-for-monster-spawning.patch +++ b/patches/server/0678-Configurable-max-block-light-for-monster-spawning.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable max block light for monster spawning diff --git a/src/main/java/net/minecraft/world/entity/monster/Monster.java b/src/main/java/net/minecraft/world/entity/monster/Monster.java -index 036d79baf372f4900681fee366bcd91c99474e5f..fbca4d6bc84e8be359b989ef089469838f896910 100644 +index 4701bf9ee203f2f15b0b68e84bbfa2c489b66631..759839e912c54598b257ad738481364940f88a18 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Monster.java +++ b/src/main/java/net/minecraft/world/entity/monster/Monster.java -@@ -93,7 +93,7 @@ public abstract class Monster extends PathfinderMob implements Enemy { +@@ -92,7 +92,7 @@ public abstract class Monster extends PathfinderMob implements Enemy { return false; } else { DimensionType dimensionType = world.dimensionType(); diff --git a/patches/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch index 3e88533e6f..d1a35c86e5 100644 --- a/patches/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch +++ b/patches/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Load effect amplifiers greater than 127 correctly MOJIRA: MC-118857 diff --git a/src/main/java/net/minecraft/world/effect/MobEffectInstance.java b/src/main/java/net/minecraft/world/effect/MobEffectInstance.java -index 758a9ddd3489be9502cd4e7f31b709c49ce9e009..bf304db1f9506d3e83d16cd632b9155c39346634 100644 +index 83f1d79147630084b24be20602571f36fc62a1b3..5c9a0c91ae53b575d325a294c702668d30252fcf 100644 --- a/src/main/java/net/minecraft/world/effect/MobEffectInstance.java +++ b/src/main/java/net/minecraft/world/effect/MobEffectInstance.java -@@ -293,7 +293,7 @@ public class MobEffectInstance implements Comparable { +@@ -298,7 +298,7 @@ public class MobEffectInstance implements Comparable { } private static MobEffectInstance loadSpecifiedEffect(MobEffect type, CompoundTag nbt) { diff --git a/patches/server/0685-Make-water-animal-spawn-height-configurable.patch b/patches/server/0685-Make-water-animal-spawn-height-configurable.patch index e523ed36f4..3741f45097 100644 --- a/patches/server/0685-Make-water-animal-spawn-height-configurable.patch +++ b/patches/server/0685-Make-water-animal-spawn-height-configurable.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Make water animal spawn height configurable diff --git a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java -index 27624b080e025d943b9c99627568f7dd66165548..9b897cf53f4bb5d366e6ac88dbed93c59d8fe541 100644 +index 7ef707f0098f2663ebc0ef0f5b35897c9d33c1cf..75884a9e69a28404752c1a2cf854335bb78cac01 100644 --- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java +++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java -@@ -73,6 +73,10 @@ public abstract class WaterAnimal extends PathfinderMob { - public static boolean checkSurfaceWaterAnimalSpawnRules(EntityType type, LevelAccessor world, MobSpawnType reason, BlockPos pos, RandomSource random) { +@@ -74,6 +74,10 @@ public abstract class WaterAnimal extends PathfinderMob { + ) { int i = world.getSeaLevel(); int j = i - 13; + // Paper start - Make water animal spawn height configurable diff --git a/patches/server/0689-Multiple-Entries-with-Scoreboards.patch b/patches/server/0689-Multiple-Entries-with-Scoreboards.patch index 9bfd7660c6..a0934c6d89 100644 --- a/patches/server/0689-Multiple-Entries-with-Scoreboards.patch +++ b/patches/server/0689-Multiple-Entries-with-Scoreboards.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Multiple Entries with Scoreboards diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java -index cf31771648549ab6d7e4e38b30409ca48a976bea..e70decbcf87c2a57bfa34ad7be7120d546ff8e35 100644 +index e9d03ebfbd02a46b0ba274be107e099cc24b59e3..c52b91f5a001924e7a15f246004b6dd294fa0aae 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java -@@ -42,6 +42,12 @@ public class ClientboundSetPlayerTeamPacket implements Packet type(); @@ -198,7 +197,7 @@ index 65dcb14241baadb2c9f8f16919d7b562198ad9c3..02e58161a0f5915084230831ee03050d + worldgenRandom.setLargeFeatureWithSalt(seed, chunkX, chunkZ, saltOverride); + } + // Paper end - Add missing structure set seed configs - return worldgenRandom.nextDouble() < (double)frequency; + return worldgenRandom.nextDouble() < frequency; } - private static boolean legacyArbitrarySaltProbabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency) { @@ -214,7 +213,7 @@ index 65dcb14241baadb2c9f8f16919d7b562198ad9c3..02e58161a0f5915084230831ee03050d int i = chunkX >> 4; int j = chunkZ >> 4; WorldgenRandom worldgenRandom = new WorldgenRandom(new LegacyRandomSource(0L)); -@@ -118,7 +138,7 @@ public abstract class StructurePlacement { +@@ -139,7 +159,7 @@ public abstract class StructurePlacement { @FunctionalInterface public interface FrequencyReducer { @@ -223,7 +222,7 @@ index 65dcb14241baadb2c9f8f16919d7b562198ad9c3..02e58161a0f5915084230831ee03050d } public static enum FrequencyReductionMethod implements StringRepresentable { -@@ -136,8 +156,8 @@ public abstract class StructurePlacement { +@@ -159,8 +179,8 @@ public abstract class StructurePlacement { this.reducer = generationPredicate; } diff --git a/patches/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index 06c9d9f99a..24d1f7815d 100644 --- a/patches/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,7 +9,7 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d19f2ca702ffa32c616ec821219079e2b784a460..1c1d111eba7b625bd36b95fbec83d8c5f8272b97 100644 +index 82ee16f8efb5d32bf648d416010de557e2b90865..186bbc60f6e283aeb00e339c98c034e2268f160d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1296,6 +1296,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, BlockPos pos, BlockState state) { super(type, pos, state); -@@ -48,9 +49,17 @@ public class SculkSensorBlockEntity extends BlockEntity implements GameEventList - this.vibrationData = listener; - }); +@@ -48,8 +49,16 @@ public class SculkSensorBlockEntity extends BlockEntity implements GameEventList + .resultOrPartial(LOGGER::error) + .ifPresent(listener -> this.vibrationData = listener); } + // Paper start - Configurable sculk sensor listener range + if (nbt.contains(PAPER_LISTENER_RANGE_NBT_KEY)) { @@ -54,7 +54,6 @@ index a6c226da995eecc323d69a3eff1f8d202410e069..1e699b12e58fe985f41b96882988483f + this.rangeOverride = null; + } + // Paper end - Configurable sculk sensor listener range - } + protected static final String PAPER_LISTENER_RANGE_NBT_KEY = "Paper.ListenerRange"; // Paper - Configurable sculk sensor listener range @@ -62,9 +61,9 @@ index a6c226da995eecc323d69a3eff1f8d202410e069..1e699b12e58fe985f41b96882988483f protected void saveAdditional(CompoundTag nbt) { super.saveAdditional(nbt); @@ -58,7 +67,13 @@ public class SculkSensorBlockEntity extends BlockEntity implements GameEventList - VibrationSystem.Data.CODEC.encodeStart(NbtOps.INSTANCE, this.vibrationData).resultOrPartial(LOGGER::error).ifPresent((listenerNbt) -> { - nbt.put("listener", listenerNbt); - }); + .encodeStart(NbtOps.INSTANCE, this.vibrationData) + .resultOrPartial(LOGGER::error) + .ifPresent(listenerNbt -> nbt.put("listener", listenerNbt)); + this.saveRangeOverride(nbt); // Paper - Configurable sculk sensor listener range + } + // Paper start - Configurable sculk sensor listener range diff --git a/patches/server/0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch index 903a710120..060a7d91fb 100644 --- a/patches/server/0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch +++ b/patches/server/0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch @@ -10,7 +10,7 @@ just looking at the LevelStem key, look at the DimensionType key which is one level below that. Defaults to off to keep vanilla behavior. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1c1d111eba7b625bd36b95fbec83d8c5f8272b97..239b1616ddd4cb64a0565d0f8f3bef7bbaaf23c9 100644 +index 186bbc60f6e283aeb00e339c98c034e2268f160d..5b4e4459aa0bcdcf422f4191ebda7b42892d24e4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -617,7 +617,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> CONTAINER_MIXES = Lists.newArrayList(); + private static final it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap CUSTOM_MIXES = new it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap<>(); // Paper - Custom Potion Mixes private static final List ALLOWED_CONTAINERS = Lists.newArrayList(); - private static final Predicate ALLOWED_CONTAINER = (stack) -> { - for(Ingredient ingredient : ALLOWED_CONTAINERS) { + private static final Predicate ALLOWED_CONTAINER = stack -> { + for (Ingredient ingredient : ALLOWED_CONTAINERS) { @@ -26,7 +27,7 @@ public class PotionBrewing { }; @@ -86,10 +86,10 @@ index 25e909b90293855321b8f05ab3488bad8c064853..0bba74bd22d66881fc6851797d29c144 + return true; + } + // Paper end - Custom Potion Mixes - if (!ALLOWED_CONTAINER.test(input)) { - return false; - } else { -@@ -93,6 +99,13 @@ public class PotionBrewing { + return ALLOWED_CONTAINER.test(input) && (hasContainerMix(input, ingredient) || hasPotionMix(input, ingredient)); + } + +@@ -89,6 +95,13 @@ public class PotionBrewing { public static ItemStack mix(ItemStack ingredient, ItemStack input) { if (!input.isEmpty()) { @@ -103,7 +103,7 @@ index 25e909b90293855321b8f05ab3488bad8c064853..0bba74bd22d66881fc6851797d29c144 Potion potion = PotionUtils.getPotion(input); Item item = input.getItem(); -@@ -112,6 +125,54 @@ public class PotionBrewing { +@@ -108,6 +121,54 @@ public class PotionBrewing { return input; } diff --git a/patches/server/0717-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0717-Fix-swamp-hut-cat-generation-deadlock.patch index bac78b77ff..8a176245ca 100644 --- a/patches/server/0717-Fix-swamp-hut-cat-generation-deadlock.patch +++ b/patches/server/0717-Fix-swamp-hut-cat-generation-deadlock.patch @@ -23,10 +23,10 @@ index 534630b0161c8d869e49e7a59572193550be0671..7dfd2b17e82a80683af28779d0bd8f64 this.setPersistenceRequired(); } diff --git a/src/main/java/net/minecraft/world/level/StructureManager.java b/src/main/java/net/minecraft/world/level/StructureManager.java -index b33a015b834873f279bf33a64974ef440a37df79..b59581b92aed0bc1b09008c695b0b112c3e65743 100644 +index 09e0c6b6bddcba2f4a59838ac63cda3188f71e41..07eb481380e8fd4e492f36342ba633579c1b624e 100644 --- a/src/main/java/net/minecraft/world/level/StructureManager.java +++ b/src/main/java/net/minecraft/world/level/StructureManager.java -@@ -44,7 +44,12 @@ public class StructureManager { +@@ -46,7 +46,12 @@ public class StructureManager { } public List startsForStructure(ChunkPos pos, Predicate predicate) { @@ -37,10 +37,10 @@ index b33a015b834873f279bf33a64974ef440a37df79..b59581b92aed0bc1b09008c695b0b112 + public List startsForStructure(ChunkPos pos, Predicate predicate, @Nullable ServerLevelAccessor levelAccessor) { + Map map = (levelAccessor == null ? this.level : levelAccessor).getChunk(pos.x, pos.z, ChunkStatus.STRUCTURE_REFERENCES).getAllReferences(); + // Paper end - Fix swamp hut cat generation deadlock - ImmutableList.Builder builder = ImmutableList.builder(); + Builder builder = ImmutableList.builder(); - for(Map.Entry entry : map.entrySet()) { -@@ -108,13 +113,18 @@ public class StructureManager { + for (Entry entry : map.entrySet()) { +@@ -111,10 +116,15 @@ public class StructureManager { } public StructureStart getStructureWithPieceAt(BlockPos pos, TagKey structureTag) { @@ -51,12 +51,9 @@ index b33a015b834873f279bf33a64974ef440a37df79..b59581b92aed0bc1b09008c695b0b112 + // Paper end - Fix swamp hut cat generation deadlock Registry registry = this.registryAccess().registryOrThrow(Registries.STRUCTURE); - for(StructureStart structureStart : this.startsForStructure(new ChunkPos(pos), (structure) -> { - return registry.getHolder(registry.getId(structure)).map((reference) -> { - return reference.is(structureTag); - }).orElse(false); -- })) { -+ }, levelAccessor)) { // Paper - Fix swamp hut cat generation deadlock + for (StructureStart structureStart : this.startsForStructure( +- new ChunkPos(pos), structure -> registry.getHolder(registry.getId(structure)).map(reference -> reference.is(structureTag)).orElse(false) ++ new ChunkPos(pos), structure -> registry.getHolder(registry.getId(structure)).map(reference -> reference.is(structureTag)).orElse(false), levelAccessor // Paper - Fix swamp hut cat generation deadlock + )) { if (this.structureHasPieceAt(pos, structureStart)) { return structureStart; - } diff --git a/patches/server/0724-Add-TameableDeathMessageEvent.patch b/patches/server/0724-Add-TameableDeathMessageEvent.patch index 58ea5cd5d1..a3f8770f2a 100644 --- a/patches/server/0724-Add-TameableDeathMessageEvent.patch +++ b/patches/server/0724-Add-TameableDeathMessageEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add TameableDeathMessageEvent diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -index 8f085654f3b9c540346fe4e56c71d572da7a897c..4d893c445af2b6dc74d5ad731b69eb5a488817b4 100644 +index ae474216d54317a9d102cb6832225074c94c8e4b..01b91388577b6013d7bd5c9112a03f818fee1f9c 100644 --- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java +++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -@@ -197,7 +197,12 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { +@@ -195,7 +195,12 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { @Override public void die(DamageSource damageSource) { if (!this.level().isClientSide && this.level().getGameRules().getBoolean(GameRules.RULE_SHOWDEATHMESSAGES) && this.getOwner() instanceof ServerPlayer) { diff --git a/patches/server/0726-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0726-fix-player-loottables-running-when-mob-loot-gamerule.patch index 185fdf4437..5fc7657405 100644 --- a/patches/server/0726-fix-player-loottables-running-when-mob-loot-gamerule.patch +++ b/patches/server/0726-fix-player-loottables-running-when-mob-loot-gamerule.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index be8c6c48287b73693ead9ae22071f2b4af7eed32..0db3f5b06b6c93882761450ea77ba4ee09869c61 100644 +index b5a3587a9074a1a2fcc2252d2db8b184b6ab6793..3f8f0e88339d847c44120b7657161bf43402db74 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -875,12 +875,14 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0727-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0727-Ensure-entity-passenger-world-matches-ridden-entity.patch index a841c24fcd..2c800da975 100644 --- a/patches/server/0727-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0727-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7e6ea850078179f7c63b597a788ef105802a0260..2476b3fa3ecd976c6f6fb27dc3ad815bbab0165f 100644 +index d391114787e4f7491241b6abc45dcf3f2a7f9fb5..f08908238cc9680310a2b37089b051bf6fdf5ee3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2580,7 +2580,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0729-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0729-Allow-changing-the-EnderDragon-podium.patch index fc8eed08e4..086fe76ad0 100644 --- a/patches/server/0729-Allow-changing-the-EnderDragon-podium.patch +++ b/patches/server/0729-Allow-changing-the-EnderDragon-podium.patch @@ -58,68 +58,68 @@ index 6d01175ea2092bc5f5ebb7aa066450bfec2443a1..61e4f8be9f5927b65ae03da98250d3cd f1 = Math.max((float) Math.sqrt(blockposition.distToCenterSqr(this.position())) / 4.0F, 1.0F); float f3 = 6.0F / f1; diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java -index f4028b6890fd094360a33403728588380111204d..d6ec0583dbaca95eb6a6444923cc1311a9753825 100644 +index 060e2da81c7e55a43412c47e857f91fefd88495b..8e5249e96ffb80b933616913f764e704b670a8b8 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java -@@ -32,7 +32,7 @@ public class DragonDeathPhase extends AbstractDragonPhaseInstance { - public void doServerTick() { - ++this.time; +@@ -35,7 +35,7 @@ public class DragonDeathPhase extends AbstractDragonPhaseInstance { if (this.targetLocation == null) { -- BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())); -+ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium + BlockPos blockPos = this.dragon + .level() +- .getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())); ++ .getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium this.targetLocation = Vec3.atBottomCenterOf(blockPos); } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java -index 00228e49c07eeed13b726192d5f9b8f2fc55bb75..bd7be8a5a24f1328dde28ae4a66823c12110fa02 100644 +index 90684c6bfa4025aae0abf098f44e0557c62a0760..422bf66055391b0bb58e3a68156744df8bbfecdb 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java @@ -54,7 +54,7 @@ public class DragonHoldingPatternPhase extends AbstractDragonPhaseInstance { - - private void findNewTarget() { if (this.currentPath != null && this.currentPath.isDone()) { -- BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, new BlockPos(EndPodiumFeature.getLocation(this.dragon.getFightOrigin()))); -+ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium + BlockPos blockPos = this.dragon + .level() +- .getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, new BlockPos(EndPodiumFeature.getLocation(this.dragon.getFightOrigin()))); ++ .getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, new BlockPos(this.dragon.getPodium())); // Paper - Allow changing the EnderDragon podium int i = this.dragon.getDragonFight() == null ? 0 : this.dragon.getDragonFight().getCrystalsAlive(); if (this.dragon.getRandom().nextInt(i + 3) == 0) { this.dragon.getPhaseManager().setPhase(EnderDragonPhase.LANDING_APPROACH); diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java -index 80647b1f5192e6f2b660a31413db1fa45fb92f2c..e161bfb06beeada4987272d01a0f140069b37951 100644 +index fd36333fc21696e0ec7760cb4702dd7ac5a1a0fb..0832f7103e9b94c65c7856e942c15f8bcdb2ad7f 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java -@@ -52,7 +52,7 @@ public class DragonLandingApproachPhase extends AbstractDragonPhaseInstance { - private void findNewTarget() { - if (this.currentPath == null || this.currentPath.isDone()) { +@@ -53,7 +53,7 @@ public class DragonLandingApproachPhase extends AbstractDragonPhaseInstance { int i = this.dragon.findClosestNode(); -- BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())); -+ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium - Player player = this.dragon.level().getNearestPlayer(NEAR_EGG_TARGETING, this.dragon, (double)blockPos.getX(), (double)blockPos.getY(), (double)blockPos.getZ()); + BlockPos blockPos = this.dragon + .level() +- .getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())); ++ .getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium + Player player = this.dragon.level().getNearestPlayer(NEAR_EGG_TARGETING, this.dragon, blockPos.getX(), blockPos.getY(), blockPos.getZ()); int j; if (player != null) { diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java -index 48ebc2ab8ebbdc2292af10b955384bf7d722ade2..24db7fafd31277eb1b82eac4a97b2f979c1d3816 100644 +index d913147d692e7e58bec4fac44c7e93a1822e8f65..3b960060f152d0352c2f8cdc1c71543cd7fa0dbd 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java -@@ -39,7 +39,7 @@ public class DragonLandingPhase extends AbstractDragonPhaseInstance { - @Override +@@ -41,7 +41,7 @@ public class DragonLandingPhase extends AbstractDragonPhaseInstance { public void doServerTick() { if (this.targetLocation == null) { -- this.targetLocation = Vec3.atBottomCenterOf(this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.dragon.getFightOrigin()))); -+ this.targetLocation = Vec3.atBottomCenterOf(this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium())); // Paper - Allow changing the EnderDragon podium + this.targetLocation = Vec3.atBottomCenterOf( +- this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())) ++ this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()) // Paper - Allow changing the EnderDragon podium + ); } - if (this.targetLocation.distanceToSqr(this.dragon.getX(), this.dragon.getY(), this.dragon.getZ()) < 1.0D) { diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java -index 1290090f855840bf64bf3a7ba93e3cb036630dcc..792ff77090fa582a7ffcb7b8c394badfa7586126 100644 +index b4789d22590d094d76e68e60c022366cba0b7bf6..2e0af7c7f7a98a19f7736c5c9dc7c313c3ca4406 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java -@@ -24,7 +24,7 @@ public class DragonTakeoffPhase extends AbstractDragonPhaseInstance { - @Override - public void doServerTick() { +@@ -25,7 +25,7 @@ public class DragonTakeoffPhase extends AbstractDragonPhaseInstance { if (!this.firstTick && this.currentPath != null) { -- BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())); -+ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium - if (!blockPos.closerToCenterThan(this.dragon.position(), 10.0D)) { + BlockPos blockPos = this.dragon + .level() +- .getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())); ++ .getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium + if (!blockPos.closerToCenterThan(this.dragon.position(), 10.0)) { this.dragon.getPhaseManager().setPhase(EnderDragonPhase.HOLDING_PATTERN); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java diff --git a/patches/server/0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch index feadff040a..ed8adb4503 100644 --- a/patches/server/0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch +++ b/patches/server/0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix CME in CraftPersistentDataTypeRegistry diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataTypeRegistry.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataTypeRegistry.java -index f83fbad4b579726ba5f759de3aa752caaf0aa79c..e0ef6964934ca0b280eded00b38220e3c3a0f035 100644 +index 71dc4a2285ddc86e7aa65ba1a211997ffa8fcce4..20c53aac0aef180ee12de919a8000e4b4bc619ff 100644 --- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataTypeRegistry.java +++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataTypeRegistry.java @@ -121,7 +121,7 @@ public final class CraftPersistentDataTypeRegistry { diff --git a/patches/server/0740-Add-PlayerStopUsingItemEvent.patch b/patches/server/0740-Add-PlayerStopUsingItemEvent.patch index fad59d6983..c78c171d1e 100644 --- a/patches/server/0740-Add-PlayerStopUsingItemEvent.patch +++ b/patches/server/0740-Add-PlayerStopUsingItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 511e8e789932df77999689659d1efbe311339e40..79fd521d5c4a8d6acd2b4f946dfdcc7b4e641b75 100644 +index 5de5ca787905d9e0133e5f75280748526c568203..2b7325d3bcea2175ec22a45101f5bbaf29c2231a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4045,6 +4045,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0743-Add-support-for-Proxy-Protocol.patch b/patches/server/0743-Add-support-for-Proxy-Protocol.patch index ef41da5d60..1c60d69833 100644 --- a/patches/server/0743-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0743-Add-support-for-Proxy-Protocol.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add support for Proxy Protocol diff --git a/build.gradle.kts b/build.gradle.kts -index 7cbfd129efcc2e971b75aaa272dee79a3b4d2d5c..5d35409137aff0eab242a0d4eb235e10cb7fe236 100644 +index d16c0311142e44ec1048818221796c09ab7a90d8..f9056ee057a22a11288405cd42cd0ba4c9d120c3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,7 @@ dependencies { diff --git a/patches/server/0747-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0747-Sanitize-sent-BlockEntity-NBT.patch index f607c4b19b..72cdd70ba1 100644 --- a/patches/server/0747-Sanitize-sent-BlockEntity-NBT.patch +++ b/patches/server/0747-Sanitize-sent-BlockEntity-NBT.patch @@ -18,10 +18,10 @@ index d79284a790569141c2ac8178d6ecc20b17cdd0d3..3944852921335c78a04a9dc301882ab5 public static ClientboundBlockEntityDataPacket create(BlockEntity blockEntity) { diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index f47eeb70661661610ef1a96dd9da67785825c126..89e3163b0301f8414c9400a6e00cdd85841fe2e8 100644 +index a44a82d2d5ed4d675dc1a184d5b6b935fda575dd..03b6aa2e3bd871ae59e761866b53a10f72b3cdac 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -@@ -152,6 +152,7 @@ public class ClientboundLevelChunkPacketData { +@@ -145,6 +145,7 @@ public class ClientboundLevelChunkPacketData { CompoundTag compoundTag = blockEntity.getUpdateTag(); BlockPos blockPos = blockEntity.getBlockPos(); int i = SectionPos.sectionRelative(blockPos.getX()) << 4 | SectionPos.sectionRelative(blockPos.getZ()); diff --git a/patches/server/0748-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0748-Disable-component-selector-resolving-in-books-by-def.patch index 33fd8e47d0..97082feba7 100644 --- a/patches/server/0748-Disable-component-selector-resolving-in-books-by-def.patch +++ b/patches/server/0748-Disable-component-selector-resolving-in-books-by-def.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable component selector resolving in books by default diff --git a/src/main/java/net/minecraft/world/item/WrittenBookItem.java b/src/main/java/net/minecraft/world/item/WrittenBookItem.java -index a324df312d9bb87d9e0962f8028d900933e70c07..258a636a59203c4e5415a89002c6a607338f9514 100644 +index 81bb0abea7ebd2705f84fae31e4a3d2de92d7d18..793ab8acd7445984cff2628e3f001661dc20c8e5 100644 --- a/src/main/java/net/minecraft/world/item/WrittenBookItem.java +++ b/src/main/java/net/minecraft/world/item/WrittenBookItem.java -@@ -111,7 +111,7 @@ public class WrittenBookItem extends Item { +@@ -112,7 +112,7 @@ public class WrittenBookItem extends Item { public static boolean resolveBookComponents(ItemStack book, @Nullable CommandSourceStack commandSource, @Nullable Player player) { CompoundTag compoundTag = book.getTag(); diff --git a/patches/server/0749-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0749-Prevent-entity-loading-causing-async-lookups.patch index 17a6ab001e..d02ab57220 100644 --- a/patches/server/0749-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0749-Prevent-entity-loading-causing-async-lookups.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2476b3fa3ecd976c6f6fb27dc3ad815bbab0165f..455cfdc2ce0960347605e149b88afab5ad8a3b05 100644 +index f08908238cc9680310a2b37089b051bf6fdf5ee3..936ce33bffd93ed7210b6659c27c476e1db348bb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -727,6 +727,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0750-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0750-Throw-exception-on-world-create-while-being-ticked.patch index 34fcf49e25..b8f3f47e4d 100644 --- a/patches/server/0750-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0750-Throw-exception-on-world-create-while-being-ticked.patch @@ -7,7 +7,7 @@ There are no plans to support creating worlds while worlds are being ticked themselvess. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8080eee9babe02660724eee756700a4d5e69014f..ab1f4e62b2ffed99b47ae23cae172f20ed586b27 100644 +index 03fd35ee321c80ca674cea9eb366cffcc95bc893..c2326a72a038526c850b7820faa59618eba6eb88 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -307,6 +307,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { -- return Math.min(150, (anger == null ? 0 : anger) + amount); -+ return Math.min(150, (anger == null ? 0 : anger) + amount); // Paper - diff on change (Warden#increaseAngerAt WardenAngerChangeEvent) - }); +- int i = this.angerBySuspect.computeInt(entity, (suspect, anger) -> Math.min(150, (anger == null ? 0 : anger) + amount)); ++ int i = this.angerBySuspect.computeInt(entity, (suspect, anger) -> Math.min(150, (anger == null ? 0 : anger) + amount)); // Paper - diff on change (Warden#increaseAngerAt WardenAngerChangeEvent) if (bl) { int j = this.angerByUuid.removeInt(entity.getUUID()); + i += j; diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java index b5185fcb635fbf5e5ed9d6cc9cc517cb46ada5aa..937f81a859953498abe73bea560c86e6560e1c33 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java diff --git a/patches/server/0753-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0753-Add-option-for-strict-advancement-dimension-checks.patch index 3dd4e6d490..7d0540d1db 100644 --- a/patches/server/0753-Add-option-for-strict-advancement-dimension-checks.patch +++ b/patches/server/0753-Add-option-for-strict-advancement-dimension-checks.patch @@ -11,10 +11,10 @@ distance trigger. This adds a config option to ignore that and use the exact dimension key of the worlds involved. diff --git a/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java b/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java -index 5f9cb2c7a2874e423087d04d3360af0364692b5c..428e0afef2cac9f2a19d8cfe8f2504ddd8e50887 100644 +index 079e3af44a964321d360b979f64f572057235ab8..8f2c00cd70bc99855f23f3db58567233a1fda84e 100644 --- a/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java +++ b/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java -@@ -25,7 +25,7 @@ public record LocationPredicate(Optional po +@@ -62,7 +62,7 @@ public record LocationPredicate( public boolean matches(ServerLevel world, double x, double y, double z) { if (this.position.isPresent() && !this.position.get().matches(x, y, z)) { return false; @@ -24,7 +24,7 @@ index 5f9cb2c7a2874e423087d04d3360af0364692b5c..428e0afef2cac9f2a19d8cfe8f2504dd } else { BlockPos blockPos = BlockPos.containing(x, y, z); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0db3f5b06b6c93882761450ea77ba4ee09869c61..bc95420dcf5d23d028e5df6595899a8712550be8 100644 +index 3f8f0e88339d847c44120b7657161bf43402db74..c99a672dd2d2e4972e9d4025e10e8863d0af1e6a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1272,6 +1272,12 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch index 8b8d15552f..b5557f95ef 100644 --- a/patches/server/0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch +++ b/patches/server/0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch @@ -15,10 +15,10 @@ to account for the case where the chunk is _not_ currently loaded and then later loaded. diff --git a/src/main/java/net/minecraft/world/level/gameevent/DynamicGameEventListener.java b/src/main/java/net/minecraft/world/level/gameevent/DynamicGameEventListener.java -index e64435c1dfbaf182d2292a1123701033f817ec38..47647d3db7ce36226a817df640a0b25574fb9b02 100644 +index 53eeb59257e3e943cbe7dc113674135077f0c20d..fc316f6c6db1d39bb24daa1d272e5128c71320dd 100644 --- a/src/main/java/net/minecraft/world/level/gameevent/DynamicGameEventListener.java +++ b/src/main/java/net/minecraft/world/level/gameevent/DynamicGameEventListener.java -@@ -48,7 +48,7 @@ public class DynamicGameEventListener { +@@ -41,7 +41,7 @@ public class DynamicGameEventListener { private static void ifChunkExists(LevelReader world, @Nullable SectionPos sectionPos, Consumer dispatcherConsumer) { if (sectionPos != null) { diff --git a/patches/server/0761-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0761-Add-various-missing-EntityDropItemEvent-calls.patch index a4e7c5b7d4..d3b144009b 100644 --- a/patches/server/0761-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0761-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 455cfdc2ce0960347605e149b88afab5ad8a3b05..007e5fc95dd5cb3973f45fd6a435cc102d133728 100644 +index 936ce33bffd93ed7210b6659c27c476e1db348bb..319bb4d94f8221e20557c0e0805c581447e2ee57 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2491,6 +2491,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0765-Add-EntityPortalReadyEvent.patch b/patches/server/0765-Add-EntityPortalReadyEvent.patch index 41d4a4e570..99fe9a8280 100644 --- a/patches/server/0765-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0765-Add-EntityPortalReadyEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 007e5fc95dd5cb3973f45fd6a435cc102d133728..06fbea11c20db3a1585b969b1578073821c5b316 100644 +index 319bb4d94f8221e20557c0e0805c581447e2ee57..8b44dc6cfddf77bdfe3684d1cdb15bb9125c4137 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2832,6 +2832,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0770-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0770-Add-and-fix-missing-BlockFadeEvents.patch index 2813257f0f..d164ac2642 100644 --- a/patches/server/0770-Add-and-fix-missing-BlockFadeEvents.patch +++ b/patches/server/0770-Add-and-fix-missing-BlockFadeEvents.patch @@ -10,7 +10,7 @@ potentially waterlogged block states fading. Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index 68978e1629381ada161225c53a236a54deae6481..4a1f2d326c4ece9da717a50b802af86fd9338a0b 100644 +index 6e283e8c3db31f03dd95c94887e647b8d82a3604..1a842694c076d71b14733904c2052183d86d1f5d 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java @@ -92,6 +92,11 @@ public class FrogspawnBlock extends Block { @@ -23,7 +23,7 @@ index 68978e1629381ada161225c53a236a54deae6481..4a1f2d326c4ece9da717a50b802af86f + } + // Paper end - Call BlockFadeEvent this.destroyBlock(world, pos); - world.playSound((Player)null, pos, SoundEvents.FROGSPAWN_HATCH, SoundSource.BLOCKS, 1.0F, 1.0F); + world.playSound(null, pos, SoundEvents.FROGSPAWN_HATCH, SoundSource.BLOCKS, 1.0F, 1.0F); this.spawnTadpoles(world, pos, random); diff --git a/src/main/java/net/minecraft/world/level/block/ScaffoldingBlock.java b/src/main/java/net/minecraft/world/level/block/ScaffoldingBlock.java index f660e58badfcc2a90e6dd618428a21bf5ad34969..13ee09f93ec325e416a2b29e3608e870e7f06aed 100644 @@ -39,10 +39,10 @@ index f660e58badfcc2a90e6dd618428a21bf5ad34969..13ee09f93ec325e416a2b29e3608e870 FallingBlockEntity.fall(world, pos, iblockdata1); } else { diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 615ee22b4948d6a4869dc8b2111f48056969dd79..8782b05575e4a8d5e5c667c43808442b81c13f6b 100644 +index 41bc7180d7657d43215fcb283afe1a9ccdd54e9d..1ff0e5c120418c3e5f92326580af7254fb4c699f 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -@@ -61,12 +61,26 @@ public class SnifferEggBlock extends Block { +@@ -60,12 +60,26 @@ public class SnifferEggBlock extends Block { return this.getHatchLevel(state) == 2; } @@ -57,15 +57,15 @@ index 615ee22b4948d6a4869dc8b2111f48056969dd79..8782b05575e4a8d5e5c667c43808442b @Override public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (!this.isReadyToHatch(state)) { - world.playSound((Player)null, pos, SoundEvents.SNIFFER_EGG_CRACK, SoundSource.BLOCKS, 0.7F, 0.9F + random.nextFloat() * 0.2F); + world.playSound(null, pos, SoundEvents.SNIFFER_EGG_CRACK, SoundSource.BLOCKS, 0.7F, 0.9F + random.nextFloat() * 0.2F); world.setBlock(pos, state.setValue(HATCH, Integer.valueOf(this.getHatchLevel(state) + 1)), 2); } else { + // Paper start - Call BlockFadeEvent + if (org.bukkit.craftbukkit.event.CraftEventFactory.callBlockFadeEvent(world, pos, state.getFluidState().createLegacyBlock()).isCancelled()) { -+ rescheduleTick(world, pos); ++ this.rescheduleTick(world, pos); + return; + } + // Paper end - Call BlockFadeEvent - world.playSound((Player)null, pos, SoundEvents.SNIFFER_EGG_HATCH, SoundSource.BLOCKS, 0.7F, 0.9F + random.nextFloat() * 0.2F); + world.playSound(null, pos, SoundEvents.SNIFFER_EGG_HATCH, SoundSource.BLOCKS, 0.7F, 0.9F + random.nextFloat() * 0.2F); world.destroyBlock(pos, false); Sniffer sniffer = EntityType.SNIFFER.create(world); diff --git a/patches/server/0776-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0776-Fix-plugin-loggers-on-server-shutdown.patch index 4f2b23f29b..a4e678729b 100644 --- a/patches/server/0776-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0776-Fix-plugin-loggers-on-server-shutdown.patch @@ -37,7 +37,7 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ab1f4e62b2ffed99b47ae23cae172f20ed586b27..97dbe5a44d2791c6dee830654c3935f4ac54aad4 100644 +index c2326a72a038526c850b7820faa59618eba6eb88..bfee202e1dc8ea875b9d2b4e8c3b0be3f6d94b26 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1223,6 +1223,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 79fd521d5c4a8d6acd2b4f946dfdcc7b4e641b75..5fd17014c95e04d50d30e79d6e331a06b238b613 100644 +index 2b7325d3bcea2175ec22a45101f5bbaf29c2231a..09a26622db4bb4b504f735454e2b031f4840b092 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3076,37 +3076,15 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch index ce2102d524..87d13244aa 100644 --- a/patches/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch +++ b/patches/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch @@ -80,10 +80,10 @@ index a298f511c8a7eb208a0dd63b24ec050848a31476..41a3ca4edf4fa662f2af13efd7b78b56 }); world.levelEvent(3002, blockposition1, -1); diff --git a/src/main/java/net/minecraft/world/item/AxeItem.java b/src/main/java/net/minecraft/world/item/AxeItem.java -index db507638a97b5a33df712c54daff35b21922c0dd..2e75fd06e9e379eb95ebfe55086ffc327706ab2f 100644 +index 596f4c6b69e5a9bd9eeebee60cf49128264727ae..4f8689e8cbc8b6b9f44168126b95cc864a383c9e 100644 --- a/src/main/java/net/minecraft/world/item/AxeItem.java +++ b/src/main/java/net/minecraft/world/item/AxeItem.java -@@ -38,6 +38,11 @@ public class AxeItem extends DiggerItem { +@@ -60,6 +60,11 @@ public class AxeItem extends DiggerItem { return InteractionResult.PASS; } else { ItemStack itemStack = context.getItemInHand(); @@ -112,11 +112,11 @@ index 1977e702f6af39ebf100c1f2f2edc2d1c4d003b0..cfcd1778b5ae66395400221879dde357 Block.pushEntitiesUp(iblockdata, iblockdata1, world, blockposition); world.setBlock(blockposition, iblockdata1, 2); diff --git a/src/main/java/net/minecraft/world/item/HoneycombItem.java b/src/main/java/net/minecraft/world/item/HoneycombItem.java -index 78bdf7c0a058e84cafcd831c6d6f5123c0f168b0..e0cae3b6848af74fefc37a1e3183c501155c4710 100644 +index decabf6fccaca3d1bfeba679ac71677d33315f5e..14d37bf64af719eae3ea154ea7f952cc27712b57 100644 --- a/src/main/java/net/minecraft/world/item/HoneycombItem.java +++ b/src/main/java/net/minecraft/world/item/HoneycombItem.java -@@ -39,6 +39,14 @@ public class HoneycombItem extends Item implements SignApplicator { - return getWaxed(blockState).map((state) -> { +@@ -74,6 +74,14 @@ public class HoneycombItem extends Item implements SignApplicator { + return getWaxed(blockState).map(state -> { Player player = context.getPlayer(); ItemStack itemStack = context.getItemInHand(); + // Paper start - EntityChangeBlockEvent @@ -148,10 +148,10 @@ index 5c62741e3a3854a7f674bfec49758f837f3bb9a0..b93ed2896ebeb8ec75eb3cfb717a740c entityhuman.setItemInHand(context.getHand(), ItemUtils.createFilledResult(itemstack, entityhuman, new ItemStack(Items.GLASS_BOTTLE))); entityhuman.awardStat(Stats.ITEM_USED.get(itemstack.getItem())); diff --git a/src/main/java/net/minecraft/world/item/ShovelItem.java b/src/main/java/net/minecraft/world/item/ShovelItem.java -index 32995cb5efdad0bc34ecacacb78cccd21220ba8d..21212462e6b415e96536a27b2c009d1562f18946 100644 +index 6118bee65c1fe65482db2cd8d1e0e3c2dad4c8f3..9aba0211f37501bbd19b583d22fa83eae32390d9 100644 --- a/src/main/java/net/minecraft/world/item/ShovelItem.java +++ b/src/main/java/net/minecraft/world/item/ShovelItem.java -@@ -36,20 +36,29 @@ public class ShovelItem extends DiggerItem { +@@ -45,20 +45,29 @@ public class ShovelItem extends DiggerItem { Player player = context.getPlayer(); BlockState blockState2 = FLATTENABLES.get(blockState.getBlock()); BlockState blockState3 = null; @@ -163,7 +163,7 @@ index 32995cb5efdad0bc34ecacacb78cccd21220ba8d..21212462e6b415e96536a27b2c009d15 } else if (blockState.getBlock() instanceof CampfireBlock && blockState.getValue(CampfireBlock.LIT)) { + afterAction = () -> { // Paper if (!level.isClientSide()) { - level.levelEvent((Player)null, 1009, blockPos, 0); + level.levelEvent(null, 1009, blockPos, 0); } CampfireBlock.dowse(context.getPlayer(), level, blockPos, blockState); diff --git a/patches/server/0780-Missing-effect-cause.patch b/patches/server/0780-Missing-effect-cause.patch index 6710474f4b..3fcbc0382f 100644 --- a/patches/server/0780-Missing-effect-cause.patch +++ b/patches/server/0780-Missing-effect-cause.patch @@ -18,7 +18,7 @@ index af5db5da4e5b2fd90a5cf0ca3c92e87ba82d4779..b21e180641d17438997a80e5bcb0ec79 @Override diff --git a/src/main/java/net/minecraft/world/item/HoneyBottleItem.java b/src/main/java/net/minecraft/world/item/HoneyBottleItem.java -index c8e783014a6a09d59e85715a7fbf2a5f65201e77..92266e56200815aa88ebf91bc1ff1a440788275d 100644 +index 5d27598d62c1ddfc84bac64228275749ec01cba5..f0061dab24ee5ee94c151483a553db2590108581 100644 --- a/src/main/java/net/minecraft/world/item/HoneyBottleItem.java +++ b/src/main/java/net/minecraft/world/item/HoneyBottleItem.java @@ -28,7 +28,7 @@ public class HoneyBottleItem extends Item { @@ -31,15 +31,15 @@ index c8e783014a6a09d59e85715a7fbf2a5f65201e77..92266e56200815aa88ebf91bc1ff1a44 if (stack.isEmpty()) { diff --git a/src/main/java/net/minecraft/world/item/SuspiciousStewItem.java b/src/main/java/net/minecraft/world/item/SuspiciousStewItem.java -index 8a7ab376a260bd70a799ce182a03450b3916f733..06ef78580de95bfa0e86f307997664e7b3addaea 100644 +index 6322eddcf097572f24216eefdb9b6b5dedf5edbe..4cc05188a4408e076b6babc91dd24f772f0c7d70 100644 --- a/src/main/java/net/minecraft/world/item/SuspiciousStewItem.java +++ b/src/main/java/net/minecraft/world/item/SuspiciousStewItem.java -@@ -66,7 +66,7 @@ public class SuspiciousStewItem extends Item { +@@ -58,7 +58,7 @@ public class SuspiciousStewItem extends Item { + @Override public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity user) { ItemStack itemStack = super.finishUsingItem(stack, world, user); - listPotionEffects(itemStack, (effect) -> { -- user.addEffect(effect.createEffectInstance()); -+ user.addEffect(effect.createEffectInstance(), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.FOOD); // Paper - Add missing effect cause - }); +- listPotionEffects(itemStack, effect -> user.addEffect(effect.createEffectInstance())); ++ listPotionEffects(itemStack, effect -> user.addEffect(effect.createEffectInstance(), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.FOOD)); // Paper - Add missing effect cause return user instanceof Player && ((Player)user).getAbilities().instabuild ? itemStack : new ItemStack(Items.BOWL); } + } diff --git a/patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch index 00601e4c1f..6adc2a884c 100644 --- a/patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch +++ b/patches/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add a consumer parameter to ProjectileSource#launchProjectile diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 6af7796c9505b43b2c4dfe869214b0f56dc71244..2ef22ba88fa65ecddb88f7fceef598f2e7e55e03 100644 +index 5a760234a4604cec289705f1439f03c821bb0aab..9ae20d759965bc9b88b52c15372155ad10bcc199 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -562,8 +562,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0783-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0783-Call-BlockPhysicsEvent-more-often.patch index 3fda4c8065..1839fbe711 100644 --- a/patches/server/0783-Call-BlockPhysicsEvent-more-often.patch +++ b/patches/server/0783-Call-BlockPhysicsEvent-more-often.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Call BlockPhysicsEvent more often diff --git a/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java b/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java -index 7d54abc2553f4b319df4d533a0b689c1807b6102..87db9febbbf53702be0e1e89a95db99e823713e5 100644 +index 457a963ee6ebd3cf5c3831f6660e3850335af49f..106af2b2c7ff72c7549975aef75cdcff8d9a7d97 100644 --- a/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java +++ b/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java @@ -119,7 +119,20 @@ public class CollectingNeighborUpdater implements NeighborUpdater { @@ -28,5 +28,5 @@ index 7d54abc2553f4b319df4d533a0b689c1807b6102..87db9febbbf53702be0e1e89a95db99e + } + // Paper end - Call BlockPhysicsEvent if (this.idx < NeighborUpdater.UPDATE_ORDER.length && NeighborUpdater.UPDATE_ORDER[this.idx] == this.skipDirection) { - ++this.idx; + this.idx++; } diff --git a/patches/server/0786-fix-Jigsaw-block-kicking-user.patch b/patches/server/0786-fix-Jigsaw-block-kicking-user.patch index 3c04241bd6..2e5fd7e357 100644 --- a/patches/server/0786-fix-Jigsaw-block-kicking-user.patch +++ b/patches/server/0786-fix-Jigsaw-block-kicking-user.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix Jigsaw block kicking user diff --git a/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java -index 72d89e8999825b43a36ed9ee8f4545bde3927690..e2e31d6383c7de4f2eede46987d51978a5692639 100644 +index f39a35f7c6ee61d5d7375e9792957f27e507cf0c..447b0359922011fe12b1bb9628d23a47c9d7dc89 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java -@@ -133,7 +133,12 @@ public class JigsawBlockEntity extends BlockEntity { +@@ -136,7 +136,12 @@ public class JigsawBlockEntity extends BlockEntity { public void generate(ServerLevel world, int maxDepth, boolean keepJigsaws) { BlockPos blockPos = this.getBlockPos().relative(this.getBlockState().getValue(JigsawBlock.ORIENTATION).front()); Registry registry = world.registryAccess().registryOrThrow(Registries.TEMPLATE_POOL); @@ -23,10 +23,10 @@ index 72d89e8999825b43a36ed9ee8f4545bde3927690..e2e31d6383c7de4f2eede46987d51978 } diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java b/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java -index 2c5165835dede1abc07ff508c820f0fe1a1027d0..194864460a5508b6b60f445d6c7923c2ae14a15b 100644 +index c8e41cd51bddfafb3675352ea9ec39188ee91a80..488ddcc22dfb08baedc080326b1531151826a702 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java -@@ -85,7 +85,13 @@ public class StructureTemplatePool { +@@ -98,7 +98,13 @@ public class StructureTemplatePool { } public StructurePoolElement getRandomTemplate(RandomSource random) { diff --git a/patches/server/0789-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0789-Fix-a-bunch-of-vanilla-bugs.patch index 80d7e8f072..4b96d454ab 100644 --- a/patches/server/0789-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0789-Fix-a-bunch-of-vanilla-bugs.patch @@ -87,31 +87,31 @@ index 829c72333664da0c06ce04af93ea39bb90ce0b67..b4f7e3ae855cbf48925f0db916501adf this.setSuccess(true); return stack; diff --git a/src/main/java/net/minecraft/server/commands/DeOpCommands.java b/src/main/java/net/minecraft/server/commands/DeOpCommands.java -index 40490d10649e92cf622849f1bb87538102b130c7..797efca662dcc0fe7f4cf0b4b7baa235ea044f1f 100644 +index 0283f26151488d715dc823a0008c9a37ef6740fb..d98447e58233745665f0833196226077d972cc2a 100644 --- a/src/main/java/net/minecraft/server/commands/DeOpCommands.java +++ b/src/main/java/net/minecraft/server/commands/DeOpCommands.java -@@ -34,7 +34,7 @@ public class DeOpCommands { +@@ -35,7 +35,7 @@ public class DeOpCommands { + if (playerList.isOp(gameProfile)) { playerList.deop(gameProfile); - ++i; - source.sendSuccess(() -> { -- return Component.translatable("commands.deop.success", targets.iterator().next().getName()); -+ return Component.translatable("commands.deop.success", gameProfile.getName()); // Paper - fixes MC-253721 - }, true); + i++; +- source.sendSuccess(() -> Component.translatable("commands.deop.success", targets.iterator().next().getName()), true); ++ source.sendSuccess(() -> Component.translatable("commands.deop.success", gameProfile.getName()), true); // Paper - fixes MC-253721 } } + diff --git a/src/main/java/net/minecraft/server/commands/OpCommand.java b/src/main/java/net/minecraft/server/commands/OpCommand.java -index 6cd6d69a20e95e344fc18ab67dc300824537a59b..2e2a7c2cf3081187da817479a9da3eb10f662a6d 100644 +index 6854ca4d4fec2b4fa541c3fabf63787665572609..e7b444a10b244828827b3c66c53465206ea8e0ec 100644 --- a/src/main/java/net/minecraft/server/commands/OpCommand.java +++ b/src/main/java/net/minecraft/server/commands/OpCommand.java -@@ -39,7 +39,7 @@ public class OpCommand { +@@ -46,7 +46,7 @@ public class OpCommand { + if (!playerList.isOp(gameProfile)) { playerList.op(gameProfile); - ++i; - source.sendSuccess(() -> { -- return Component.translatable("commands.op.success", targets.iterator().next().getName()); -+ return Component.translatable("commands.op.success", gameProfile.getName()); // Paper - fixes MC-253721 - }, true); + i++; +- source.sendSuccess(() -> Component.translatable("commands.op.success", targets.iterator().next().getName()), true); ++ source.sendSuccess(() -> Component.translatable("commands.op.success", gameProfile.getName()), true); // Paper - fixes MC-253721 } } + diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java index f2d3dc066b00b685715eb5104234945c41a15f92..43c8f6a0615f392cc560b2259b116cc9d5fba4e7 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -139,7 +139,7 @@ index 57f54e3399f9d2d7fecdae62858d20e50caf7afd..b804941c76582871813ba813b9eef242 if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index bc95420dcf5d23d028e5df6595899a8712550be8..84792f21cbb727bdb8f72b3574b39c4dad631612 100644 +index c99a672dd2d2e4972e9d4025e10e8863d0af1e6a..d831fb1f66dc38b6c9d3592944f94cc5eeaac864 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -419,14 +419,14 @@ public class ServerPlayer extends Player { @@ -206,12 +206,12 @@ index effe4c4fb37fe13aece70cdef4966047d4719af9..7152674d3f3fb98198585cb5ece2bb88 default SoundEvent getSaddleSoundEvent() { return SoundEvents.HORSE_SADDLE; diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/BegGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/BegGoal.java -index 9a46007245399481fb6e749d95e9e4791e799250..2afca5652541c9166278f8f2590ddb81003ae579 100644 +index 95ec11bfd4df6c53d6a4828f55c621cd08b0e666..f1b28965f6fe785e6e3a24fdb6db6676701338b9 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/BegGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/BegGoal.java -@@ -65,7 +65,7 @@ public class BegGoal extends Goal { +@@ -62,7 +62,7 @@ public class BegGoal extends Goal { private boolean playerHoldingInteresting(Player player) { - for(InteractionHand interactionHand : InteractionHand.values()) { + for (InteractionHand interactionHand : InteractionHand.values()) { ItemStack itemStack = player.getItemInHand(interactionHand); - if (this.wolf.isTame() && itemStack.is(Items.BONE)) { + if (!this.wolf.isTame() && itemStack.is(Items.BONE)) { // Paper - Fix MC-84789 @@ -264,11 +264,11 @@ index 11cc26954b4e97114b59df35a4f9b75a09132e20..0a3f7dcc0e205a85dbaa6dee1fc9ae2c @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/SwellGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/SwellGoal.java -index 19540fd4a7f992888fadb6501d0c8a5a7e71fcf6..e241ae250f4f04a17ef2c583d00b065a4ca56a4c 100644 +index ef71b3ef4444c05b4211de87e1c8ec52cbe3e72a..137ec75ee803789deb7b1ca93dd9369c9af362b9 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/SwellGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/SwellGoal.java @@ -21,6 +21,13 @@ public class SwellGoal extends Goal { - return this.creeper.getSwellDir() > 0 || livingEntity != null && this.creeper.distanceToSqr(livingEntity) < 9.0D; + return this.creeper.getSwellDir() > 0 || livingEntity != null && this.creeper.distanceToSqr(livingEntity) < 9.0; } + // Paper start - Fix MC-179072 @@ -336,15 +336,15 @@ index ab85050a64d4897aff11d0780d8cb26660918ac7..bfb9694087821de206fafe867f207e07 this.getFramedMapId().ifPresent((i) -> { MapItemSavedData worldmap = MapItem.getSavedData(i, this.level()); diff --git a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java -index f174094febfdfdc309f1b50877be60bae8a98156..5f407535298a31a34cfe114dd863fd6a9b977707 100644 +index c718cee92522a0d3c0e30eafd09fa8178c7e6e4a..5d1610eddcaf0cf65c726a5438b42e53bab85332 100644 --- a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java +++ b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java -@@ -87,8 +87,8 @@ public class CatSpawner implements CustomSpawner { +@@ -83,8 +83,8 @@ public class CatSpawner implements CustomSpawner { if (cat == null) { return 0; } else { + cat.moveTo(pos, 0.0F, 0.0F); // Paper - move up - Fix MC-147659 - cat.finalizeSpawn(world, world.getCurrentDifficultyAt(pos), MobSpawnType.NATURAL, (SpawnGroupData)null, (CompoundTag)null); + cat.finalizeSpawn(world, world.getCurrentDifficultyAt(pos), MobSpawnType.NATURAL, null, null); - cat.moveTo(pos, 0.0F, 0.0F); world.addFreshEntityWithPassengers(cat); return 1; @@ -388,11 +388,11 @@ index b670c0cb3886c99d38a91b5c13aa2cefaae702cf..9599a5f96601030bf7f7cbd3392861d6 // Paper start - Add PlayerChangeBeaconEffectEvent io.papermc.paper.event.player.PlayerChangeBeaconEffectEvent event = new io.papermc.paper.event.player.PlayerChangeBeaconEffectEvent((org.bukkit.entity.Player) this.player.player.getBukkitEntity(), convert(primary), convert(secondary), this.access.getLocation().getBlock()); diff --git a/src/main/java/net/minecraft/world/item/BundleItem.java b/src/main/java/net/minecraft/world/item/BundleItem.java -index 10b0720ce7eed58fa3cd8c8051efa6225f7d73e1..ac0bc87f60c4e1562d1301522183e449558d42f8 100644 +index 1e538c691d867a96a57fec9350b4f663d01f8e93..c4c966c555407b7146053187e2ed16cfb99a2dc9 100644 --- a/src/main/java/net/minecraft/world/item/BundleItem.java +++ b/src/main/java/net/minecraft/world/item/BundleItem.java -@@ -52,7 +52,7 @@ public class BundleItem extends Item { - }); +@@ -49,7 +49,7 @@ public class BundleItem extends Item { + removeOne(stack).ifPresent(removedStack -> add(stack, slot.safeInsert(removedStack))); } else if (itemStack.getItem().canFitInsideContainerItems()) { int i = (64 - getContentWeight(stack)) / getWeight(itemStack); - int j = add(stack, slot.safeTake(itemStack.getCount(), i, player)); @@ -400,7 +400,7 @@ index 10b0720ce7eed58fa3cd8c8051efa6225f7d73e1..ac0bc87f60c4e1562d1301522183e449 if (j > 0) { this.playInsertSound(player); } -@@ -121,7 +121,7 @@ public class BundleItem extends Item { +@@ -120,7 +120,7 @@ public class BundleItem extends Item { int i = getContentWeight(bundle); int j = getWeight(stack); int k = Math.min(stack.getCount(), (64 - i) / j); @@ -410,20 +410,20 @@ index 10b0720ce7eed58fa3cd8c8051efa6225f7d73e1..ac0bc87f60c4e1562d1301522183e449 } else { ListTag listTag = compoundTag.getList("Items", 10); diff --git a/src/main/java/net/minecraft/world/item/SaddleItem.java b/src/main/java/net/minecraft/world/item/SaddleItem.java -index ca6a2b9840c9ade87ec8effab01d4f184fe876b7..43129ecefcc8beccbcf2978f262b1ce8cf49ca43 100644 +index a569b404ece21fa9571e73947334f5aa57a8080c..51d350add4ca1756cb9e364e066bbee7949ffb8c 100644 --- a/src/main/java/net/minecraft/world/item/SaddleItem.java +++ b/src/main/java/net/minecraft/world/item/SaddleItem.java -@@ -18,7 +18,7 @@ public class SaddleItem extends Item { - if (entity instanceof Saddleable saddleable) { - if (entity.isAlive() && !saddleable.isSaddled() && saddleable.isSaddleable()) { - if (!user.level().isClientSide) { -- saddleable.equipSaddle(SoundSource.NEUTRAL); -+ saddleable.equipSaddle(SoundSource.NEUTRAL, stack.copyWithCount(1)); // Paper - Fix saddles losing nbt data - MC-191591 - entity.level().gameEvent(entity, GameEvent.EQUIP, entity.position()); - stack.shrink(1); - } +@@ -17,7 +17,7 @@ public class SaddleItem extends Item { + public InteractionResult interactLivingEntity(ItemStack stack, Player user, LivingEntity entity, InteractionHand hand) { + if (entity instanceof Saddleable saddleable && entity.isAlive() && !saddleable.isSaddled() && saddleable.isSaddleable()) { + if (!user.level().isClientSide) { +- saddleable.equipSaddle(SoundSource.NEUTRAL); ++ saddleable.equipSaddle(SoundSource.NEUTRAL, stack.copyWithCount(1)); // Paper - Fix saddles losing nbt data - MC-191591 + entity.level().gameEvent(entity, GameEvent.EQUIP, entity.position()); + stack.shrink(1); + } diff --git a/src/main/java/net/minecraft/world/level/block/AzaleaBlock.java b/src/main/java/net/minecraft/world/level/block/AzaleaBlock.java -index 6e45582f8ea7dd2a46f58369c5581764538bff0d..3ecc92439fc85d224ff52f41c5e34079e042a5e6 100644 +index 655956f3c50d6a78b0cbfaa23d6a62cd776c1e52..85484d061090d989de8246df81f8e9e5f8906072 100644 --- a/src/main/java/net/minecraft/world/level/block/AzaleaBlock.java +++ b/src/main/java/net/minecraft/world/level/block/AzaleaBlock.java @@ -51,4 +51,11 @@ public class AzaleaBlock extends BushBlock implements BonemealableBlock { diff --git a/patches/server/0794-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0794-Add-PlayerInventorySlotChangeEvent.patch index 7c9e04e6e8..14f1948d31 100644 --- a/patches/server/0794-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/server/0794-Add-PlayerInventorySlotChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 84792f21cbb727bdb8f72b3574b39c4dad631612..ecdeaa3f5a793895c3a4584ae7e4594b21087167 100644 +index d831fb1f66dc38b6c9d3592944f94cc5eeaac864..2a1722db668b141705ce47389cd24d0a247e373d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -330,6 +330,25 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0800-Add-EntityToggleSitEvent.patch b/patches/server/0800-Add-EntityToggleSitEvent.patch index e149e09cf1..2f61a7420e 100644 --- a/patches/server/0800-Add-EntityToggleSitEvent.patch +++ b/patches/server/0800-Add-EntityToggleSitEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add EntityToggleSitEvent diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -index 4d893c445af2b6dc74d5ad731b69eb5a488817b4..e4550d3ac8d93e0dd9a54e41fbbbef2ef9d4f55e 100644 +index 01b91388577b6013d7bd5c9112a03f818fee1f9c..cf5cd0e49c4966e7b636a8ad4dec7a12806c6a4d 100644 --- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java +++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -@@ -67,7 +67,7 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { +@@ -69,7 +69,7 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { } this.orderedToSit = nbt.getBoolean("Sitting"); diff --git a/patches/server/0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index 9908d15463..e1712bed3b 100644 --- a/patches/server/0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 06fbea11c20db3a1585b969b1578073821c5b316..3778d900c272a815e67f79c6d2827be2bbe8195f 100644 +index 8b44dc6cfddf77bdfe3684d1cdb15bb9125c4137..640d7f248e3696b73ef8d7668358a78037081320 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3111,6 +3111,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0813-check-global-player-list-where-appropriate.patch b/patches/server/0813-check-global-player-list-where-appropriate.patch index 9905886fc6..bf8f80fdbd 100644 --- a/patches/server/0813-check-global-player-list-where-appropriate.patch +++ b/patches/server/0813-check-global-player-list-where-appropriate.patch @@ -24,7 +24,7 @@ index b5eda9931a82a667c25ca1a49980b01b042dc0cc..5f1a4a35d2179b7ff5a95390f82d65ca + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5fd17014c95e04d50d30e79d6e331a06b238b613..4959d8fd8f84f99f289b898fd604d8a9808d62a4 100644 +index 09a26622db4bb4b504f735454e2b031f4840b092..b19b5b8678ce2fb912b703382ae79f5755e025e7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3698,7 +3698,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -50,10 +50,10 @@ index d4ac3e566b47cfc8688bcc2ab08385b6de4693f8..7de9d012e7416eaa0189b513a0972c84 if (entityhuman instanceof ServerPlayer) { CriteriaTriggers.CURED_ZOMBIE_VILLAGER.trigger((ServerPlayer) entityhuman, this, entityvillager); diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index e7b6f97d8519a5797903664e5ba2a793e37a4bfc..57d4d2014f33a2f069d6c5aaa8e87e36b63a7177 100644 +index d465fb01af4c8610f83ecb9c68b83127cf7e95ae..bd20bea7f76a7307f1698fb2dfef37125032d166 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java -@@ -231,4 +231,11 @@ public interface EntityGetter { +@@ -237,4 +237,11 @@ public interface EntityGetter { return null; } @@ -66,10 +66,10 @@ index e7b6f97d8519a5797903664e5ba2a793e37a4bfc..57d4d2014f33a2f069d6c5aaa8e87e36 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java -index e143f42e71ac774d49b75e6d85591aa1189ee210..c27b97e9f097c824de7c785b4cc9e0a503259b08 100644 +index d71a9fb54269f7c7e251e0e3bdd8b5a072af5201..a2ab5291605a3a3c4fda067c23da7d9aafe1cc38 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java -@@ -100,6 +100,13 @@ public class SculkShriekerBlockEntity extends BlockEntity implements GameEventLi +@@ -97,6 +97,13 @@ public class SculkShriekerBlockEntity extends BlockEntity implements GameEventLi @Nullable public static ServerPlayer tryGetPlayer(@Nullable Entity entity) { @@ -80,6 +80,6 @@ index e143f42e71ac774d49b75e6d85591aa1189ee210..c27b97e9f097c824de7c785b4cc9e0a5 + @Nullable + private static ServerPlayer tryGetPlayer0(@Nullable Entity entity) { + // Paper end - check global player list where appropriate - if (entity instanceof ServerPlayer serverPlayer) { - return serverPlayer; + if (entity instanceof ServerPlayer) { + return (ServerPlayer)entity; } else { diff --git a/patches/server/0816-Friction-API.patch b/patches/server/0816-Friction-API.patch index 7da72213c7..691571962d 100644 --- a/patches/server/0816-Friction-API.patch +++ b/patches/server/0816-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0708502b46ec55d533c7d890b892a57779678854..834607dde3841105b3524b43f59380296924862a 100644 +index b19b5b8678ce2fb912b703382ae79f5755e025e7..084d988ec3dcdae54a10309d34d335ca4f37b7b0 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -262,6 +262,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0819-Sync-offhand-slot-in-menus.patch b/patches/server/0819-Sync-offhand-slot-in-menus.patch index 19c9999a04..5b34f7caeb 100644 --- a/patches/server/0819-Sync-offhand-slot-in-menus.patch +++ b/patches/server/0819-Sync-offhand-slot-in-menus.patch @@ -8,7 +8,7 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th by pressing the offhand swap item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ecdeaa3f5a793895c3a4584ae7e4594b21087167..d4930c40f03c5f331847bf52736c563a688d7daf 100644 +index 2a1722db668b141705ce47389cd24d0a247e373d..406794c439900a0d86fd4fe67d05a98bde625aec 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -299,6 +299,13 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0820-Player-Entity-Tracking-Events.patch b/patches/server/0820-Player-Entity-Tracking-Events.patch index bcba3dec8b..7ec91ddd19 100644 --- a/patches/server/0820-Player-Entity-Tracking-Events.patch +++ b/patches/server/0820-Player-Entity-Tracking-Events.patch @@ -21,7 +21,7 @@ index 43c8f6a0615f392cc560b2259b116cc9d5fba4e7..ca24463405f138deb882f319bf84696f } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3778d900c272a815e67f79c6d2827be2bbe8195f..cce640b055932e2fe26800107ad699743324ee4f 100644 +index 640d7f248e3696b73ef8d7668358a78037081320..96a1f1460daba1507659a8ed34b608ded7084c0f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3837,7 +3837,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch index 56f1ab09f3..cf7adab315 100644 --- a/patches/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch +++ b/patches/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch @@ -34,28 +34,28 @@ index 58723ea75f7db9bf3889b99139669b14a284a3a1..6bf11d526b82403e9a5443ac77645cf2 this.discard(EntityRemoveEvent.Cause.HIT); // CraftBukkit - add Bukkit remove cause } diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index 4a1f2d326c4ece9da717a50b802af86fd9338a0b..94618709e742ebe1a7893d418124e309eaab6c5f 100644 +index cbd49f8e870e903bafc3dd55c3ae7f4cc3703b15..e248444632a8f917b0eb2426aa59ae2c0ecaa925 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java @@ -117,7 +117,7 @@ public class FrogspawnBlock extends Block { int k = random.nextInt(1, 361); - tadpole.moveTo(d, (double)pos.getY() - 0.5D, e, (float)k, 0.0F); + tadpole.moveTo(d, pos.getY() - 0.5, e, k, 0.0F); tadpole.setPersistenceRequired(); - world.addFreshEntity(tadpole); + world.addFreshEntity(tadpole, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG); // Paper - use correct spawn reason } } - + } diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 8782b05575e4a8d5e5c667c43808442b81c13f6b..6d073e82daf41e35b63703ab9bce8c576862eb3e 100644 +index 1ff0e5c120418c3e5f92326580af7254fb4c699f..9766a919f85abfd52497ecd6d2e2002d3de8051d 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -@@ -88,7 +88,7 @@ public class SnifferEggBlock extends Block { +@@ -87,7 +87,7 @@ public class SnifferEggBlock extends Block { Vec3 vec3 = pos.getCenter(); sniffer.setBaby(true); sniffer.moveTo(vec3.x(), vec3.y(), vec3.z(), Mth.wrapDegrees(world.random.nextFloat() * 360.0F), 0.0F); - world.addFreshEntity(sniffer); + world.addFreshEntity(sniffer, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG); // Paper - use correct spawn reason } - } + } diff --git a/patches/server/0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch index 0394a26686..8b39f81526 100644 --- a/patches/server/0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch +++ b/patches/server/0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch @@ -52,7 +52,7 @@ index c7b6377aafd32f67eb8ba4dedd7cce5841b2d58d..e57e3a26b0fb856e1ab693df5783fe8b } diff --git a/src/main/java/net/minecraft/world/level/material/FluidState.java b/src/main/java/net/minecraft/world/level/material/FluidState.java -index ea2a04e5298832177fac93568656ac45784d5eb6..c5d1e4e293d15831f9b550b9964dc190763956b6 100644 +index 3e8619f536a5cc4b8c9c10cf8454e38abdb7b721..f20398eab05797d1b23b71cf74076d6382022657 100644 --- a/src/main/java/net/minecraft/world/level/material/FluidState.java +++ b/src/main/java/net/minecraft/world/level/material/FluidState.java @@ -25,9 +25,11 @@ public final class FluidState extends StateHolder { diff --git a/patches/server/0827-Add-Sneaking-API-for-Entities.patch b/patches/server/0827-Add-Sneaking-API-for-Entities.patch index 3c82fcadf9..7ab8bbe768 100644 --- a/patches/server/0827-Add-Sneaking-API-for-Entities.patch +++ b/patches/server/0827-Add-Sneaking-API-for-Entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Sneaking API for Entities diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 254df37281a358cc0ac99b46f34daf2fd9774d5a..b4ed7612a019a3d4d473dfbfed2067ea437fee06 100644 +index f6d6b2c7aefc39a6e6e2b0e61fd9afb334bee764..4dfbcaba4615bd761c1eb9d5994168c7202fc571 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -872,6 +872,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0828-Improve-logging-and-errors.patch b/patches/server/0828-Improve-logging-and-errors.patch index fe00d91a4b..d5774cbd4f 100644 --- a/patches/server/0828-Improve-logging-and-errors.patch +++ b/patches/server/0828-Improve-logging-and-errors.patch @@ -65,12 +65,12 @@ index b8f1549d1ea98a105577927a735bab331aff3840..45a68beff0c97ead5e9f1201b5fb9ef8 } diff --git a/src/main/java/net/minecraft/server/packs/PathPackResources.java b/src/main/java/net/minecraft/server/packs/PathPackResources.java -index 89aa86a49eda563c82ccedc99641e699f8e578b0..3edd14ce90edf98798b89921ad18547809de5d2c 100644 +index 87928500f40ceeaad6669de194d2c80089051e60..8d554e7bb1291ac24a958a92458f993344e3be3b 100644 --- a/src/main/java/net/minecraft/server/packs/PathPackResources.java +++ b/src/main/java/net/minecraft/server/packs/PathPackResources.java -@@ -108,6 +108,12 @@ public class PathPackResources extends AbstractPackResources { +@@ -102,6 +102,12 @@ public class PathPackResources extends AbstractPackResources { try (DirectoryStream directoryStream = Files.newDirectoryStream(path)) { - for(Path path2 : directoryStream) { + for (Path path2 : directoryStream) { String string = path2.getFileName().toString(); + // Paper start - Improve logging and errors + if (!Files.isDirectory(path2)) { diff --git a/patches/server/0829-Improve-PortalEvents.patch b/patches/server/0829-Improve-PortalEvents.patch index 5ba3f4895a..eb9278ff7b 100644 --- a/patches/server/0829-Improve-PortalEvents.patch +++ b/patches/server/0829-Improve-PortalEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cce640b055932e2fe26800107ad699743324ee4f..66266651194cca02bf3814594e6f43b77741808c 100644 +index 96a1f1460daba1507659a8ed34b608ded7084c0f..99035a91f04cc838e30b860d480ef710e1dbe2ea 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3495,7 +3495,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index b9fa911513..1cb4410623 100644 --- a/patches/server/0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 66266651194cca02bf3814594e6f43b77741808c..cf2d4d56dfebeae2baa0712683102b163bdaa9ce 100644 +index 99035a91f04cc838e30b860d480ef710e1dbe2ea..9eecdc0a6fb111fb36e4e8e8666d056563e48cda 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -957,6 +957,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0838-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0838-Correctly-shrink-items-during-EntityResurrectEvent.patch index 6aeabf242c..54b162da71 100644 --- a/patches/server/0838-Correctly-shrink-items-during-EntityResurrectEvent.patch +++ b/patches/server/0838-Correctly-shrink-items-during-EntityResurrectEvent.patch @@ -22,7 +22,7 @@ This patch corrects this behaviour by only shrinking the item if a totem of undying was found and the event was called uncancelled. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8e6cb47ce314d4c493047fa1804b2da8c9797fac..d9f9a184e22bc02fbfd1ab029abf48af654c9935 100644 +index 084d988ec3dcdae54a10309d34d335ca4f37b7b0..c022ec61fa6a84f4e68f4df0a0f07ba8bb368302 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1618,7 +1618,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch index efaf1a6e90..8bd2fa8c91 100644 --- a/patches/server/0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch +++ b/patches/server/0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch @@ -10,15 +10,15 @@ https://bugs.mojang.com/browse/MC-157464 https://github.com/PaperMC/Paper/issues/8569 diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java -index 9400556aca4cd06ad311975d74a9e7eb2ccd9c73..cd7a90ec1073b2b452ca70decefe6a594445003b 100644 +index 28b255b425d2ac4d13b85a7fce67406ea3b6fdae..458cfece2c0ce94f0017aa94ed6f1a356861ec31 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java -@@ -22,7 +22,7 @@ public class VillagerGoalPackages { - private static final float STROLL_SPEED_MODIFIER = 0.4F; - - public static ImmutableList>> getCorePackage(VillagerProfession profession, float speed) { -- return ImmutableList.of(Pair.of(0, new Swim(0.8F)), Pair.of(0, InteractWithDoor.create()), Pair.of(0, new LookAtTargetSink(45, 90)), Pair.of(0, new VillagerPanicTrigger()), Pair.of(0, WakeUp.create()), Pair.of(0, ReactToBell.create()), Pair.of(0, SetRaidStatus.create()), Pair.of(0, ValidateNearbyPoi.create(profession.heldJobSite(), MemoryModuleType.JOB_SITE)), Pair.of(0, ValidateNearbyPoi.create(profession.acquirableJobSite(), MemoryModuleType.POTENTIAL_JOB_SITE)), Pair.of(1, new MoveToTargetSink()), Pair.of(2, PoiCompetitorScan.create()), Pair.of(3, new LookAndFollowTradingPlayerSink(speed)), Pair.of(5, GoToWantedItem.create(speed, false, 4)), Pair.of(6, AcquirePoi.create(profession.acquirableJobSite(), MemoryModuleType.JOB_SITE, MemoryModuleType.POTENTIAL_JOB_SITE, true, Optional.empty())), Pair.of(7, new GoToPotentialJobSite(speed)), Pair.of(8, YieldJobSite.create(speed)), Pair.of(10, AcquirePoi.create((poiType) -> { -+ return ImmutableList.of(Pair.of(0, new Swim(0.8F)), Pair.of(0, InteractWithDoor.create()), Pair.of(0, new LookAtTargetSink(45, 90)), Pair.of(0, new VillagerPanicTrigger()), Pair.of(0, WakeUp.create()), Pair.of(0, ReactToBell.create()), Pair.of(0, SetRaidStatus.create()), Pair.of(0, ValidateNearbyPoi.create(profession.heldJobSite(), MemoryModuleType.JOB_SITE)), Pair.of(0, ValidateNearbyPoi.create(profession.acquirableJobSite(), MemoryModuleType.POTENTIAL_JOB_SITE)), Pair.of(1, new MoveToTargetSink()), Pair.of(2, PoiCompetitorScan.create()), Pair.of(3, new LookAndFollowTradingPlayerSink(speed)), Pair.of(5, GoToWantedItem.create(villager -> !villager.isSleeping(), speed, false, 4)), Pair.of(6, AcquirePoi.create(profession.acquirableJobSite(), MemoryModuleType.JOB_SITE, MemoryModuleType.POTENTIAL_JOB_SITE, true, Optional.empty())), Pair.of(7, new GoToPotentialJobSite(speed)), Pair.of(8, YieldJobSite.create(speed)), Pair.of(10, AcquirePoi.create((poiType) -> { // Paper - Fix MC-157464 - return poiType.is(PoiTypes.HOME); - }, MemoryModuleType.HOME, false, Optional.of((byte)14))), Pair.of(10, AcquirePoi.create((poiType) -> { - return poiType.is(PoiTypes.MEETING); +@@ -35,7 +35,7 @@ public class VillagerGoalPackages { + Pair.of(1, new MoveToTargetSink()), + Pair.of(2, PoiCompetitorScan.create()), + Pair.of(3, new LookAndFollowTradingPlayerSink(speed)), +- Pair.of(5, GoToWantedItem.create(speed, false, 4)), ++ Pair.of(5, GoToWantedItem.create(villager -> !villager.isSleeping(), speed, false, 4)), // Paper - Fix MC-157464 + Pair.of( + 6, AcquirePoi.create(profession.acquirableJobSite(), MemoryModuleType.JOB_SITE, MemoryModuleType.POTENTIAL_JOB_SITE, true, Optional.empty()) + ), diff --git a/patches/server/0844-Add-EntityFertilizeEggEvent.patch b/patches/server/0844-Add-EntityFertilizeEggEvent.patch index 1cd60bd301..975cf31634 100644 --- a/patches/server/0844-Add-EntityFertilizeEggEvent.patch +++ b/patches/server/0844-Add-EntityFertilizeEggEvent.patch @@ -29,19 +29,19 @@ index cfc0cee09dfd522409bb5853fc96528bd0137475..6a98f66b7701e8af389ca9a1e9eb230a } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index 90e4e0ec0c7b0ece23c4b53f5f12b1f24e1c18ad..295769d039f2a1e4f48912a60f9dbe267d8992c1 100644 +index 70bbc325e3a1f7f334a6d1024097800efa6bec03..a03fb7aa9f4528f4885db88eaf480202d5f54750 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -@@ -239,7 +239,12 @@ public class Frog extends Animal implements VariantHolder { +@@ -263,7 +263,12 @@ public class Frog extends Animal implements VariantHolder { @Override public void spawnChildFromBreeding(ServerLevel world, Animal other) { -- this.finalizeSpawnChildFromBreeding(world, other, (AgeableMob)null); +- this.finalizeSpawnChildFromBreeding(world, other, null); + // Paper start - Add EntityFertilizeEggEvent event + final io.papermc.paper.event.entity.EntityFertilizeEggEvent result = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityFertilizeEggEvent(this, other); + if (result.isCancelled()) return; + -+ this.finalizeSpawnChildFromBreeding(world, other, (AgeableMob)null, result.getExperience()); // Paper - use craftbukkit call that takes experience amount ++ this.finalizeSpawnChildFromBreeding(world, other, null, result.getExperience()); // Paper - use craftbukkit call that takes experience amount + // Paper end - Add EntityFertilizeEggEvent event this.getBrain().setMemory(MemoryModuleType.IS_PREGNANT, Unit.INSTANCE); } diff --git a/patches/server/0848-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0848-Fix-advancement-triggers-for-entity-damage.patch index be0a156199..e5b6bd4878 100644 --- a/patches/server/0848-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0848-Fix-advancement-triggers-for-entity-damage.patch @@ -23,7 +23,7 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bd8d1e90ea6d2f6d3b625f6d264c12cb3ea009e8..e2564a07e0aa4bf2fcd9a749e9fc188dd0633675 100644 +index c022ec61fa6a84f4e68f4df0a0f07ba8bb368302..09a48779046484c2f3628d1499659e247c736fce 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2322,7 +2322,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0849-Fix-text-display-error-on-spawn.patch b/patches/server/0849-Fix-text-display-error-on-spawn.patch index 7074ea7170..5ee377452f 100644 --- a/patches/server/0849-Fix-text-display-error-on-spawn.patch +++ b/patches/server/0849-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 dcbaa06f807ba3c1b64c96b3c2dd84d46d6be751..2ecd3ed5b36475125c6f63af2612011fc8fba8a5 100644 +index 4a9aad128c884d659f42f5d6b35e2d7147c4bc17..bba45aa7ba4fa578344ec2b9dfa552097770a59f 100644 --- a/src/main/java/net/minecraft/world/entity/Display.java +++ b/src/main/java/net/minecraft/world/entity/Display.java -@@ -864,7 +864,7 @@ public abstract class Display extends Entity { - byte b = loadFlag((byte)0, nbt, "shadow", (byte)1); - b = loadFlag(b, nbt, "see_through", (byte)2); +@@ -899,7 +899,7 @@ public abstract class Display extends Entity { b = loadFlag(b, nbt, "default_background", (byte)4); -- Optional optional = Display.TextDisplay.Align.CODEC.decode(NbtOps.INSTANCE, nbt.get("alignment")).resultOrPartial(Util.prefix("Display entity", Display.LOGGER::error)).map(Pair::getFirst); -+ Optional optional = Display.TextDisplay.Align.CODEC.decode(NbtOps.INSTANCE, nbt.get("alignment")).result().map(Pair::getFirst); // Paper - Hide text display error on spawn + Optional optional = Display.TextDisplay.Align.CODEC + .decode(NbtOps.INSTANCE, nbt.get("alignment")) +- .resultOrPartial(Util.prefix("Display entity", Display.LOGGER::error)) ++ .result() // Paper - Hide text display error on spawn + .map(Pair::getFirst); if (optional.isPresent()) { - byte var10000; - switch ((Display.TextDisplay.Align)optional.get()) { + b = switch ((Display.TextDisplay.Align)optional.get()) { diff --git a/patches/server/0856-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0856-Prevent-causing-expired-keys-from-impacting-new-join.patch index 3649dc015b..c23be58240 100644 --- a/patches/server/0856-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0856-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -5,24 +5,26 @@ Subject: [PATCH] Prevent causing expired keys from impacting new joins diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java -index 0e54e8faa48751a651b953bec72543a94edf74bc..d43106eb89b14667e85cd6e8fa047d64f2e8ec87 100644 +index e4f0949b6538734ff25daf68a428262481feeb81..754a2a5e958a04b3f8bf216b6022f547aa1cd36f 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java -@@ -96,7 +96,13 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet { - serialized.chatSession = buf.readNullable(RemoteChatSession.Data::read); - }, (buf, entry) -> { -- buf.writeNullable(entry.chatSession, RemoteChatSession.Data::write); -+ // Paper start - Prevent causing expired keys from impacting new joins -+ RemoteChatSession.Data chatSession = entry.chatSession; -+ if (chatSession != null && chatSession.profilePublicKey().hasExpired()) { -+ chatSession = null; -+ } -+ buf.writeNullable(chatSession, RemoteChatSession.Data::write); -+ // Paper end - Prevent causing expired keys from impacting new joins +@@ -101,7 +101,15 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet { - serialized.gameMode = GameType.byId(buf.readVarInt()); + INITIALIZE_CHAT( + (serialized, buf) -> serialized.chatSession = buf.readNullable(RemoteChatSession.Data::read), +- (buf, entry) -> buf.writeNullable(entry.chatSession, RemoteChatSession.Data::write) ++ // Paper start - Prevent causing expired keys from impacting new joins ++ (buf, entry) -> { ++ RemoteChatSession.Data chatSession = entry.chatSession; ++ if (chatSession != null && chatSession.profilePublicKey().hasExpired()) { ++ chatSession = null; ++ } ++ buf.writeNullable(chatSession, RemoteChatSession.Data::write); ++ } ++ // Paper end - Prevent causing expired keys from impacting new joins + ), + UPDATE_GAME_MODE((serialized, buf) -> serialized.gameMode = GameType.byId(buf.readVarInt()), (buf, entry) -> buf.writeVarInt(entry.gameMode().getId())), + UPDATE_LISTED((serialized, buf) -> serialized.listed = buf.readBoolean(), (buf, entry) -> buf.writeBoolean(entry.listed())), diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java index c9dab47fe3db73b31b40e071d37f1be63401c19d..69118af2a873f23f6543676db39263bfeb81b4f1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/patches/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch index 346c3fd86c..112f2214ae 100644 --- a/patches/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch +++ b/patches/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch @@ -7,18 +7,18 @@ This patch is meant to get rid of any instances of lazy initialization that Mine This has the possibility to create race condition issues, and generally don't make sense to be lazily done anyways. diff --git a/src/main/java/com/mojang/math/OctahedralGroup.java b/src/main/java/com/mojang/math/OctahedralGroup.java -index a5a889d40228a0d6c7259caf8cb2554588d9aaf9..5009192046e5e083d14cef3f448b98b978dd54bf 100644 +index 8af12b383bb80d1c0a12e1151030ab6e21c27e79..d2efe5e4f767f8316bc3915573bd1efcbcf20968 100644 --- a/src/main/java/com/mojang/math/OctahedralGroup.java +++ b/src/main/java/com/mojang/math/OctahedralGroup.java -@@ -111,6 +111,7 @@ public enum OctahedralGroup implements StringRepresentable { +@@ -110,6 +110,7 @@ public enum OctahedralGroup implements StringRepresentable { this.permutation = axisTransformation; - this.transformation = (new Matrix3f()).scaling(flipX ? -1.0F : 1.0F, flipY ? -1.0F : 1.0F, flipZ ? -1.0F : 1.0F); + this.transformation = new Matrix3f().scaling(flipX ? -1.0F : 1.0F, flipY ? -1.0F : 1.0F, flipZ ? -1.0F : 1.0F); this.transformation.mul(axisTransformation.transformation()); + this.initializeRotationDirections(); // Paper - Avoid Lazy Initialization for Enum Fields } private BooleanList packInversions() { -@@ -139,7 +140,7 @@ public enum OctahedralGroup implements StringRepresentable { +@@ -138,7 +139,7 @@ public enum OctahedralGroup implements StringRepresentable { return this.name; } @@ -27,7 +27,7 @@ index a5a889d40228a0d6c7259caf8cb2554588d9aaf9..5009192046e5e083d14cef3f448b98b9 if (this.rotatedDirections == null) { this.rotatedDirections = Maps.newEnumMap(Direction.class); Direction.Axis[] axiss = Direction.Axis.values(); -@@ -154,6 +155,10 @@ public enum OctahedralGroup implements StringRepresentable { +@@ -153,6 +154,10 @@ public enum OctahedralGroup implements StringRepresentable { } } diff --git a/patches/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch index 01fcd2b852..54ad4f456c 100644 --- a/patches/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch +++ b/patches/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch @@ -11,12 +11,12 @@ more than one Netty IO thread. Fixes https://github.com/PaperMC/Folia/issues/11 diff --git a/src/main/java/net/minecraft/resources/RegistryOps.java b/src/main/java/net/minecraft/resources/RegistryOps.java -index 7709eeac907c4895a264cec0a3d453aa8b194c18..c7cfc3ca58f9439142fe5828117f6d576d7df10e 100644 +index 3dc8333a5c17926679c79d5294a0e72199801c34..fafecd2f5aefd5e6fdc2b0c3674378f03f4dc4f2 100644 --- a/src/main/java/net/minecraft/resources/RegistryOps.java +++ b/src/main/java/net/minecraft/resources/RegistryOps.java -@@ -19,11 +19,14 @@ public class RegistryOps extends DelegatingOps { +@@ -19,7 +19,10 @@ public class RegistryOps extends DelegatingOps { - private static RegistryOps.RegistryInfoLookup memoizeLookup(final RegistryOps.RegistryInfoLookup registryInfoGetter) { + private static RegistryOps.RegistryInfoLookup memoizeLookup(RegistryOps.RegistryInfoLookup registryInfoGetter) { return new RegistryOps.RegistryInfoLookup() { - private final Map>, Optional>> lookups = new HashMap<>(); + // The concurrent access occurs on the Netty IO threads when serializing packets. @@ -26,8 +26,3 @@ index 7709eeac907c4895a264cec0a3d453aa8b194c18..c7cfc3ca58f9439142fe5828117f6d57 @Override public Optional> lookup(ResourceKey> registryRef) { -- return this.lookups.computeIfAbsent(registryRef, registryInfoGetter::lookup); -+ return (Optional>)this.lookups.computeIfAbsent(registryRef, registryInfoGetter::lookup); // Paper - fix concurrent access to lookups field - } - }; - } diff --git a/patches/server/0867-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0867-Refresh-ProjectileSource-for-projectiles.patch index 1dabec492f..2041ea7689 100644 --- a/patches/server/0867-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0867-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cf2d4d56dfebeae2baa0712683102b163bdaa9ce..0479dbdf0da7a06735ee08d068ead5fa12fc9860 100644 +index 9eecdc0a6fb111fb36e4e8e8666d056563e48cda..ee9ab1abbed298138e48c659481e03c01ac5940a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -384,6 +384,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch index 9054b42b6b..4938d57d18 100644 --- a/patches/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch +++ b/patches/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Call BlockGrowEvent for missing blocks Call the event for pitcher crops and sniffer egg diff --git a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -index 591f32f7c0a7a9c843933d17dad8a34b672f49ac..d20c009baf69d083bf8a14000028991b6518cd50 100644 +index d06e3892cf42723f8e3f621b5497c5348fa1a715..5f1ec3f69295760b7b8097916c82cbf9ddd49700 100644 --- a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -@@ -130,7 +130,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl +@@ -133,7 +133,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl int i = Math.min(state.getValue(AGE) + amount, 4); if (this.canGrow(world, pos, state, i)) { BlockState blockState = state.setValue(AGE, Integer.valueOf(i)); @@ -19,20 +19,20 @@ index 591f32f7c0a7a9c843933d17dad8a34b672f49ac..d20c009baf69d083bf8a14000028991b world.setBlock(pos.above(), blockState.setValue(HALF, DoubleBlockHalf.UPPER), 3); } diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 6d073e82daf41e35b63703ab9bce8c576862eb3e..7be4e32a4409b539839a480ef83750ed4b5359a6 100644 +index 9766a919f85abfd52497ecd6d2e2002d3de8051d..4f1ff12df44756b63e3c3f9fc43e7ea485df6f57 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -@@ -72,8 +72,13 @@ public class SnifferEggBlock extends Block { +@@ -71,8 +71,13 @@ public class SnifferEggBlock extends Block { @Override public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (!this.isReadyToHatch(state)) { + // Paper start + if (!org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockGrowEvent(world, pos, state.setValue(HATCH, Integer.valueOf(this.getHatchLevel(state) + 1)), 2)) { -+ rescheduleTick(world, pos); ++ this.rescheduleTick(world, pos); + return; + } + // Paper end - world.playSound((Player)null, pos, SoundEvents.SNIFFER_EGG_CRACK, SoundSource.BLOCKS, 0.7F, 0.9F + random.nextFloat() * 0.2F); + world.playSound(null, pos, SoundEvents.SNIFFER_EGG_CRACK, SoundSource.BLOCKS, 0.7F, 0.9F + random.nextFloat() * 0.2F); - world.setBlock(pos, state.setValue(HATCH, Integer.valueOf(this.getHatchLevel(state) + 1)), 2); } else { // Paper start - Call BlockFadeEvent diff --git a/patches/server/0875-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0875-Add-method-to-remove-all-active-potion-effects.patch index 8f0290e924..1461dfa249 100644 --- a/patches/server/0875-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/server/0875-Add-method-to-remove-all-active-potion-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 909e4b139d5e372946b08bbb12665a49f3a09054..4031bf7fa35cfb480fbe6f0558a455f0c6985e39 100644 +index ab1e1a56f3811d4446a6b0a7461c0bddd8015228..c4a166a0c226c6083c25c58145d9631d4296e615 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -556,6 +556,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch index cfcf15909a..6436cefd47 100644 --- a/patches/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch +++ b/patches/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix incorrect crafting result amount for fireworks Although vanilla does not specifically call this method anywhere, this fixes a bug where the result using the Bukkit API returns the wrong amount. diff --git a/src/main/java/net/minecraft/world/item/crafting/FireworkRocketRecipe.java b/src/main/java/net/minecraft/world/item/crafting/FireworkRocketRecipe.java -index af7e7a63eacad2367453924806ffb002c33db951..25405c8eb76e428e689b3afad2c00529f687f550 100644 +index 54da7997123b4159a29baedf402608b7db7cb745..a86507569b759f8ef85f3fc32324677c37f65d28 100644 --- a/src/main/java/net/minecraft/world/item/crafting/FireworkRocketRecipe.java +++ b/src/main/java/net/minecraft/world/item/crafting/FireworkRocketRecipe.java -@@ -81,7 +81,7 @@ public class FireworkRocketRecipe extends CustomRecipe { +@@ -80,7 +80,7 @@ public class FireworkRocketRecipe extends CustomRecipe { @Override public ItemStack getResultItem(RegistryAccess registryManager) { diff --git a/patches/server/0880-Add-option-to-disable-block-updates.patch b/patches/server/0880-Add-option-to-disable-block-updates.patch index 5550b0c010..817a831971 100644 --- a/patches/server/0880-Add-option-to-disable-block-updates.patch +++ b/patches/server/0880-Add-option-to-disable-block-updates.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to disable block updates diff --git a/src/main/java/net/minecraft/world/level/block/ChorusPlantBlock.java b/src/main/java/net/minecraft/world/level/block/ChorusPlantBlock.java -index a0f63f17eb4e4bcf986f0573dc13be5c11c37f15..d811ed3623446000d3aa0be59c573f7c759bf55a 100644 +index ad801476cc25d51e4145a41b9c8100382f1f49bb..1ba7a6a14f7fbfdd279cb8c2bebf5ea6c98dbf1f 100644 --- a/src/main/java/net/minecraft/world/level/block/ChorusPlantBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ChorusPlantBlock.java -@@ -29,6 +29,7 @@ public class ChorusPlantBlock extends PipeBlock { +@@ -38,6 +38,7 @@ public class ChorusPlantBlock extends PipeBlock { @Override public BlockState getStateForPlacement(BlockPlaceContext ctx) { @@ -16,7 +16,7 @@ index a0f63f17eb4e4bcf986f0573dc13be5c11c37f15..d811ed3623446000d3aa0be59c573f7c return getStateWithConnections(ctx.getLevel(), ctx.getClickedPos(), this.defaultBlockState()); } -@@ -45,6 +46,7 @@ public class ChorusPlantBlock extends PipeBlock { +@@ -59,6 +60,7 @@ public class ChorusPlantBlock extends PipeBlock { @Override public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor world, BlockPos pos, BlockPos neighborPos) { @@ -24,7 +24,7 @@ index a0f63f17eb4e4bcf986f0573dc13be5c11c37f15..d811ed3623446000d3aa0be59c573f7c if (!state.canSurvive(world, pos)) { world.scheduleTick(pos, this, 1); return super.updateShape(state, direction, neighborState, world, pos, neighborPos); -@@ -56,6 +58,7 @@ public class ChorusPlantBlock extends PipeBlock { +@@ -70,6 +72,7 @@ public class ChorusPlantBlock extends PipeBlock { @Override public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { @@ -32,7 +32,7 @@ index a0f63f17eb4e4bcf986f0573dc13be5c11c37f15..d811ed3623446000d3aa0be59c573f7c if (!state.canSurvive(world, pos)) { world.destroyBlock(pos, true); } -@@ -64,6 +67,7 @@ public class ChorusPlantBlock extends PipeBlock { +@@ -77,6 +80,7 @@ public class ChorusPlantBlock extends PipeBlock { @Override public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) { @@ -41,37 +41,41 @@ index a0f63f17eb4e4bcf986f0573dc13be5c11c37f15..d811ed3623446000d3aa0be59c573f7c boolean bl = !world.getBlockState(pos.above()).isAir() && !blockState.isAir(); diff --git a/src/main/java/net/minecraft/world/level/block/HugeMushroomBlock.java b/src/main/java/net/minecraft/world/level/block/HugeMushroomBlock.java -index 4fe30b867d7fc39c53307496458b3e438d4f2397..e049e702f58053431bf3e438ea37850c86ae3b7b 100644 +index 322cd656b82611ca8048c3e35cb66551bdea87d6..f70898bddec0b53f92ab88b862e2d865d82d558d 100644 --- a/src/main/java/net/minecraft/world/level/block/HugeMushroomBlock.java +++ b/src/main/java/net/minecraft/world/level/block/HugeMushroomBlock.java -@@ -34,6 +34,7 @@ public class HugeMushroomBlock extends Block { +@@ -43,6 +43,7 @@ public class HugeMushroomBlock extends Block { @Override public BlockState getStateForPlacement(BlockPlaceContext ctx) { + if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableMushroomBlockUpdates) return this.defaultBlockState(); // Paper - add option to disable block updates BlockGetter blockGetter = ctx.getLevel(); BlockPos blockPos = ctx.getClickedPos(); - return this.defaultBlockState().setValue(DOWN, Boolean.valueOf(!blockGetter.getBlockState(blockPos.below()).is(this))).setValue(UP, Boolean.valueOf(!blockGetter.getBlockState(blockPos.above()).is(this))).setValue(NORTH, Boolean.valueOf(!blockGetter.getBlockState(blockPos.north()).is(this))).setValue(EAST, Boolean.valueOf(!blockGetter.getBlockState(blockPos.east()).is(this))).setValue(SOUTH, Boolean.valueOf(!blockGetter.getBlockState(blockPos.south()).is(this))).setValue(WEST, Boolean.valueOf(!blockGetter.getBlockState(blockPos.west()).is(this))); -@@ -41,16 +42,19 @@ public class HugeMushroomBlock extends Block { + return this.defaultBlockState() +@@ -56,6 +57,7 @@ public class HugeMushroomBlock extends Block { @Override public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor world, BlockPos pos, BlockPos neighborPos) { + if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableMushroomBlockUpdates) return state; // Paper - add option to disable block updates - return neighborState.is(this) ? state.setValue(PROPERTY_BY_DIRECTION.get(direction), Boolean.valueOf(false)) : super.updateShape(state, direction, neighborState, world, pos, neighborPos); - } + return neighborState.is(this) + ? state.setValue(PROPERTY_BY_DIRECTION.get(direction), Boolean.valueOf(false)) + : super.updateShape(state, direction, neighborState, world, pos, neighborPos); +@@ -63,6 +65,7 @@ public class HugeMushroomBlock extends Block { @Override public BlockState rotate(BlockState state, Rotation rotation) { + if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableMushroomBlockUpdates) return state; // Paper - add option to disable block updates - return state.setValue(PROPERTY_BY_DIRECTION.get(rotation.rotate(Direction.NORTH)), state.getValue(NORTH)).setValue(PROPERTY_BY_DIRECTION.get(rotation.rotate(Direction.SOUTH)), state.getValue(SOUTH)).setValue(PROPERTY_BY_DIRECTION.get(rotation.rotate(Direction.EAST)), state.getValue(EAST)).setValue(PROPERTY_BY_DIRECTION.get(rotation.rotate(Direction.WEST)), state.getValue(WEST)).setValue(PROPERTY_BY_DIRECTION.get(rotation.rotate(Direction.UP)), state.getValue(UP)).setValue(PROPERTY_BY_DIRECTION.get(rotation.rotate(Direction.DOWN)), state.getValue(DOWN)); - } + return state.setValue(PROPERTY_BY_DIRECTION.get(rotation.rotate(Direction.NORTH)), state.getValue(NORTH)) + .setValue(PROPERTY_BY_DIRECTION.get(rotation.rotate(Direction.SOUTH)), state.getValue(SOUTH)) + .setValue(PROPERTY_BY_DIRECTION.get(rotation.rotate(Direction.EAST)), state.getValue(EAST)) +@@ -73,6 +76,7 @@ public class HugeMushroomBlock extends Block { @Override public BlockState mirror(BlockState state, Mirror mirror) { + if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableMushroomBlockUpdates) return state; // Paper - add option to disable block updates - return state.setValue(PROPERTY_BY_DIRECTION.get(mirror.mirror(Direction.NORTH)), state.getValue(NORTH)).setValue(PROPERTY_BY_DIRECTION.get(mirror.mirror(Direction.SOUTH)), state.getValue(SOUTH)).setValue(PROPERTY_BY_DIRECTION.get(mirror.mirror(Direction.EAST)), state.getValue(EAST)).setValue(PROPERTY_BY_DIRECTION.get(mirror.mirror(Direction.WEST)), state.getValue(WEST)).setValue(PROPERTY_BY_DIRECTION.get(mirror.mirror(Direction.UP)), state.getValue(UP)).setValue(PROPERTY_BY_DIRECTION.get(mirror.mirror(Direction.DOWN)), state.getValue(DOWN)); - } - + return state.setValue(PROPERTY_BY_DIRECTION.get(mirror.mirror(Direction.NORTH)), state.getValue(NORTH)) + .setValue(PROPERTY_BY_DIRECTION.get(mirror.mirror(Direction.SOUTH)), state.getValue(SOUTH)) + .setValue(PROPERTY_BY_DIRECTION.get(mirror.mirror(Direction.EAST)), state.getValue(EAST)) diff --git a/src/main/java/net/minecraft/world/level/block/NoteBlock.java b/src/main/java/net/minecraft/world/level/block/NoteBlock.java index 92a24cf02f15f3ab893eb9a793770d9819e4f600..a541dc3a6e373b30fff0abf5305e77854c190f10 100644 --- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java diff --git a/patches/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch index 925e5e90ff..2e07b71256 100644 --- a/patches/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0479dbdf0da7a06735ee08d068ead5fa12fc9860..927c298c1922fdd1016ffc72d2ca196adaccd377 100644 +index ee9ab1abbed298138e48c659481e03c01ac5940a..fe768bd70c08719f11e28e793fe90a908f22c4ad 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1200,7 +1200,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch index bea2e1c86f..65d07cad42 100644 --- a/patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch +++ b/patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch @@ -22,10 +22,10 @@ index 72f8b72c6436ca3b8eaeb39c7d3efe2c1462ae1d..3bb4a9a1a6249e8ba2de237f801210e7 @Override diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -index c5f9eda32f2cd172569c7b7d72f5dd3e41a34a70..cde93efaecd42b9081405638af3ba91cb5e184c9 100644 +index 001adec26a71a0f5e1dd77bf51a62bb25172d702..ba34aea9db5c3af56f3c7e84424ec91988a2370e 100644 --- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java +++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -@@ -109,7 +109,7 @@ public abstract class WaterFluid extends FlowingFluid { +@@ -119,7 +119,7 @@ public abstract class WaterFluid extends FlowingFluid { @Override protected float getExplosionResistance() { diff --git a/patches/server/0893-Add-whitelist-events.patch b/patches/server/0893-Add-whitelist-events.patch index 44cddb390d..96884032fb 100644 --- a/patches/server/0893-Add-whitelist-events.patch +++ b/patches/server/0893-Add-whitelist-events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add whitelist events diff --git a/src/main/java/net/minecraft/server/players/UserWhiteList.java b/src/main/java/net/minecraft/server/players/UserWhiteList.java -index a6c70decad1a496595944a5dd2aeeb387757fef3..37635f58cd78ff50991dde413470004400259c89 100644 +index 3226a3b69453fb5e13003e941ccbc2d941e047b0..aaa3d5769e0e184e19d01109a76a65be634f830d 100644 --- a/src/main/java/net/minecraft/server/players/UserWhiteList.java +++ b/src/main/java/net/minecraft/server/players/UserWhiteList.java -@@ -30,4 +30,23 @@ public class UserWhiteList extends StoredUserList { + this.neighborBlockTicks.forEach(tick -> { Block block = tick.type() == Blocks.AIR ? level.getBlockState(tick.pos()).getBlock() : tick.type(); diff --git a/patches/server/0914-Add-Listing-API-for-Player.patch b/patches/server/0914-Add-Listing-API-for-Player.patch index 05e8427ee0..18d73fa178 100644 --- a/patches/server/0914-Add-Listing-API-for-Player.patch +++ b/patches/server/0914-Add-Listing-API-for-Player.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Listing API for Player diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java -index d43106eb89b14667e85cd6e8fa047d64f2e8ec87..56eddd28429cf42c02d88b8bf79f8b616fa45289 100644 +index 754a2a5e958a04b3f8bf216b6022f547aa1cd36f..d41fe931daf03c40ca1d7b9159001d0122d72f0c 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java -@@ -29,12 +29,46 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet players) { - EnumSet enumSet = EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER, ClientboundPlayerInfoUpdatePacket.Action.INITIALIZE_CHAT, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LATENCY, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME); + EnumSet enumSet = EnumSet.of( +@@ -42,6 +53,29 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet { -@@ -144,8 +178,16 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet { +@@ -146,16 +180,24 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet { - return stream; - })); +@@ -26,6 +26,17 @@ public class RegionFileVersion { + ) + ); + public static final RegionFileVersion VERSION_NONE = register(new RegionFileVersion(3, stream -> stream, stream -> stream)); + + // Paper start - Configurable region compression format + public static RegionFileVersion getCompressionFormat() { diff --git a/patches/server/0918-Expand-Pose-API.patch b/patches/server/0918-Expand-Pose-API.patch index 33bb7d2bc7..8704e4d4d2 100644 --- a/patches/server/0918-Expand-Pose-API.patch +++ b/patches/server/0918-Expand-Pose-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ecd7deadbddeb9571b2b8975214e4167c8333ce0..4db254f76bc2fb9867441016b3ac4f45f19d3bea 100644 +index 3ae2f450ac43c3752f779eeb40ec7761590f9e51..ad3cdb1a3ab07c48bf6b2662b93ddad5974db1a6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -419,6 +419,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -25,7 +25,7 @@ index ecd7deadbddeb9571b2b8975214e4167c8333ce0..4db254f76bc2fb9867441016b3ac4f45 if (pose == this.getPose()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index d91d56175e91fb06138901bad56c1c2544b3d20e..a81c8a9d76c1d9fdee19132a9a40ffc2ab4d107e 100644 +index cbcfb0bc3a85b60e13014245f256e5c356b4b79b..6fcc7949351c5741908a0150498b811f57961899 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -897,6 +897,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0927-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0927-Add-titleOverride-to-InventoryOpenEvent.patch index 98a9e5449f..76cb094c35 100644 --- a/patches/server/0927-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/0927-Add-titleOverride-to-InventoryOpenEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d4930c40f03c5f331847bf52736c563a688d7daf..7272dc058c575efee5ac2643ce41b7d12e346e89 100644 +index 406794c439900a0d86fd4fe67d05a98bde625aec..2bb82dcffd8fdc25d658ec36a34f959b25217396 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1523,12 +1523,17 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0928-Configure-sniffer-egg-hatch-time.patch b/patches/server/0928-Configure-sniffer-egg-hatch-time.patch index b42c26e59c..702bef1759 100644 --- a/patches/server/0928-Configure-sniffer-egg-hatch-time.patch +++ b/patches/server/0928-Configure-sniffer-egg-hatch-time.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configure sniffer egg hatch time diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 7be4e32a4409b539839a480ef83750ed4b5359a6..03da13d1fdf22b425addf0b1b7a82803f6a35b60 100644 +index 4f1ff12df44756b63e3c3f9fc43e7ea485df6f57..e225595bbf044ff126797f44b233221c358ef641 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -@@ -63,7 +63,7 @@ public class SnifferEggBlock extends Block { +@@ -62,7 +62,7 @@ public class SnifferEggBlock extends Block { // Paper start - Call BlockFadeEvent private void rescheduleTick(ServerLevel world, BlockPos pos) { @@ -17,7 +17,7 @@ index 7be4e32a4409b539839a480ef83750ed4b5359a6..03da13d1fdf22b425addf0b1b7a82803 world.scheduleTick(pos, this, (baseDelay / 3) + world.random.nextInt(RANDOM_HATCH_OFFSET_TICKS)); // reschedule to avoid being stuck here and behave like the other calls (see #onPlace) } -@@ -106,7 +106,7 @@ public class SnifferEggBlock extends Block { +@@ -104,7 +104,7 @@ public class SnifferEggBlock extends Block { world.levelEvent(3009, pos, 0); } diff --git a/patches/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch index e0235836a4..0741c28cb0 100644 --- a/patches/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch +++ b/patches/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch @@ -19,14 +19,14 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -index 9fd6cf0c98cbf6300ef23d4aab32a6110aeba665..a0799baca3ae05ef1ff818abfe6a53d28fd99246 100644 +index 4acbdaeab6bbbe3875d1e9323bf2f7a4d56f840e..0e2141bbbf9839a90a78cd04bb70d5f94614248e 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -@@ -47,6 +47,7 @@ public class AcquirePoi { - return false; - } else { - mutableLong.setValue(time + 20L + (long)world.getRandom().nextInt(20)); -+ if (entity.getNavigation().isStuck()) mutableLong.add(200); // Paper - Perf: Wait an additional 10s to check again if they're stuck - PoiManager poiManager = world.getPoiManager(); - long2ObjectMap.long2ObjectEntrySet().removeIf((entry) -> { - return !entry.getValue().isStillValid(time); +@@ -57,6 +57,7 @@ public class AcquirePoi { + return false; + } else { + mutableLong.setValue(time + 20L + world.getRandom().nextInt(20)); ++ if (entity.getNavigation().isStuck()) mutableLong.add(200); // Paper - Perf: Wait an additional 10s to check again if they're stuck + PoiManager poiManager = world.getPoiManager(); + long2ObjectMap.long2ObjectEntrySet().removeIf(entry -> !entry.getValue().isStillValid(time)); + Predicate predicate2 = pos -> { diff --git a/patches/server/0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch index e2c7a15a63..e547ae2524 100644 --- a/patches/server/0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch +++ b/patches/server/0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch @@ -14,14 +14,14 @@ field by calling any method on the class, and for convenience we use values(). diff --git a/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java b/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java -index a5b90222cfad5b282f3f2db4dd5d1b201761fb72..4a2c233898c00e09a7e1b75d3a9a82b572b849d6 100644 +index 25c1abaeb916781f810d580a4d388d4d3adad75a..932c9ba8d9ef82746cac0c40292a8e41ffb4ea33 100644 --- a/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java +++ b/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java -@@ -139,6 +139,7 @@ public class UpgradeData { +@@ -140,6 +140,7 @@ public class UpgradeData { Fluid fluid = tick.type() == Fluids.EMPTY ? level.getFluidState(tick.pos()).getType() : tick.type(); level.scheduleTick(tick.pos(), fluid, tick.delay(), tick.priority()); }); + UpgradeData.BlockFixers.values(); // Paper - force the class init so that we don't access CHUNKY_FIXERS before all BlockFixers are initialised - CHUNKY_FIXERS.forEach((logic) -> { - logic.processChunk(level); - }); + CHUNKY_FIXERS.forEach(logic -> logic.processChunk(level)); + } + diff --git a/patches/server/0950-Optimize-VarInts.patch b/patches/server/0950-Optimize-VarInts.patch index 19e7fc574a..b96957d432 100644 --- a/patches/server/0950-Optimize-VarInts.patch +++ b/patches/server/0950-Optimize-VarInts.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimize VarInts https://github.com/PaperMC/Paper/pull/6957#issuecomment-985250854 diff --git a/src/main/java/net/minecraft/network/VarInt.java b/src/main/java/net/minecraft/network/VarInt.java -index 18d5a22ad3ef4cb279475531dbc2c65e07c69929..3f362eb42587b333e27b9cf25588a9cfcb8a56e7 100644 +index 49a8ddc269d53458cfbd639b7de838c2e5765748..74ed47659d3e615c2dae7da98d5a8cf1559625bf 100644 --- a/src/main/java/net/minecraft/network/VarInt.java +++ b/src/main/java/net/minecraft/network/VarInt.java @@ -9,6 +9,18 @@ public class VarInt { @@ -24,8 +24,8 @@ index 18d5a22ad3ef4cb279475531dbc2c65e07c69929..3f362eb42587b333e27b9cf25588a9cf + VARINT_EXACT_BYTE_LENGTHS[32] = 1; // Special case for the number 0. + } + public static int getByteSizeOld(int i) { -+ //Paper end - Optimize VarInts - for(int j = 1; j < 5; ++j) { ++ // Paper end - Optimize VarInts + for (int j = 1; j < 5; j++) { if ((i & -1 << j * 7) == 0) { return j; @@ -39,6 +51,21 @@ public class VarInt { @@ -47,6 +47,6 @@ index 18d5a22ad3ef4cb279475531dbc2c65e07c69929..3f362eb42587b333e27b9cf25588a9cf + } + public static ByteBuf writeOld(ByteBuf buf, int i) { + // Paper end - Optimize VarInts - while((i & -128) != 0) { + while ((i & -128) != 0) { buf.writeByte(i & 127 | 128); i >>>= 7; diff --git a/patches/server/0953-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0953-Broadcast-take-item-packets-with-collector-as-source.patch index 393709e2e0..762ec4c8fd 100644 --- a/patches/server/0953-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/0953-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e2564a07e0aa4bf2fcd9a749e9fc188dd0633675..8567cdfc42ea2388dd44ed1de83bebca433abe12 100644 +index 09a48779046484c2f3628d1499659e247c736fce..6b591f8b484be20418e8a6ca09aba84cda398a3d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3724,7 +3724,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0960-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0960-Fix-missing-event-call-for-entity-teleport-API.patch index 7da83443f1..77319ed2b1 100644 --- a/patches/server/0960-Fix-missing-event-call-for-entity-teleport-API.patch +++ b/patches/server/0960-Fix-missing-event-call-for-entity-teleport-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix missing event call for entity teleport API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index a81c8a9d76c1d9fdee19132a9a40ffc2ab4d107e..38c14e06bcada9678b64c6eacf351de10232ee56 100644 +index 6fcc7949351c5741908a0150498b811f57961899..76193067a21ff962cf2634b36d0ddf3eff8f85d7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -256,6 +256,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0961-Lazily-create-LootContext-for-criterions.patch b/patches/server/0961-Lazily-create-LootContext-for-criterions.patch index 293dfbd694..f0786c2018 100644 --- a/patches/server/0961-Lazily-create-LootContext-for-criterions.patch +++ b/patches/server/0961-Lazily-create-LootContext-for-criterions.patch @@ -8,10 +8,10 @@ For each player on each tick, enter block triggers are invoked, and these create To avoid this, we now lazily create the LootContext if the criterion passes the predicate AND if any of the listener triggers require a loot context instance diff --git a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java -index 805459ba815520165c86a537fbb1f3e04b85bfbd..a327973e37b5b8d4e15683ef24548482ac3dc3d5 100644 +index 795d1f3e6065baee4cadf71ae0eeabfa5522199b..557de599b3496105b572bebb86313e3441947bae 100644 --- a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java +++ b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java -@@ -45,14 +45,14 @@ public abstract class SimpleCriterionTrigger> set = (Set) playerAdvancements.criterionData.get(this); // Paper - fix AdvancementDataPlayer leak if (set != null && !set.isEmpty()) { @@ -19,7 +19,7 @@ index 805459ba815520165c86a537fbb1f3e04b85bfbd..a327973e37b5b8d4e15683ef24548482 + LootContext lootContext = null; // EntityPredicate.createContext(player, player); // Paper - Perf: lazily create LootContext for criterions List> list = null; - for(CriterionTrigger.Listener listener : set) { + for (CriterionTrigger.Listener listener : set) { T simpleInstance = listener.trigger(); if (predicate.test(simpleInstance)) { Optional optional = simpleInstance.player(); diff --git a/patches/server/0962-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0962-Don-t-fire-sync-events-during-worldgen.patch index 1b53c1ac5c..086273d9ca 100644 --- a/patches/server/0962-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/0962-Don-t-fire-sync-events-during-worldgen.patch @@ -31,7 +31,7 @@ index 8235dace0f4a1090dfbd403db34231ccafe5f30e..9816913ad729fd39c173364b92e5db06 if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4db254f76bc2fb9867441016b3ac4f45f19d3bea..4125802dda07d79dd0e1f7e7dc3c0ee85fa0383c 100644 +index ad3cdb1a3ab07c48bf6b2662b93ddad5974db1a6..2848be4604e08d0d651d16e960cda9a4d0234d41 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -637,7 +637,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -68,7 +68,7 @@ index 656c68b37bc25d6b77f295f9efe0a81dd20b69c1..8ba573bb4099ee5b27b61f333e72d794 }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8567cdfc42ea2388dd44ed1de83bebca433abe12..d36e1d6f7bba220f7e6b0d8d23aff26275d9f33e 100644 +index 6b591f8b484be20418e8a6ca09aba84cda398a3d..a648cc01f2cdfac46fd2e760705cf85e534e926f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1142,6 +1142,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0965-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0965-Restore-vanilla-entity-drops-behavior.patch index 625d431fff..531ac1d639 100644 --- a/patches/server/0965-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/0965-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7272dc058c575efee5ac2643ce41b7d12e346e89..ae5a2136a0e266d4c35190f5d33552994c842786 100644 +index 2bb82dcffd8fdc25d658ec36a34f959b25217396..bd6c60ebfc76d19313bf01048268f8ce7e6603c5 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -891,22 +891,20 @@ public class ServerPlayer extends Player { @@ -50,7 +50,7 @@ index 7272dc058c575efee5ac2643ce41b7d12e346e89..ae5a2136a0e266d4c35190f5d3355299 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4125802dda07d79dd0e1f7e7dc3c0ee85fa0383c..7c99742e01e894bcc7d89a8588b2f128cf9b765d 100644 +index 2848be4604e08d0d651d16e960cda9a4d0234d41..5275e7a34f86830d43edcab3a0e94f8d8e9cfae5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2496,6 +2496,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -104,7 +104,7 @@ index 4125802dda07d79dd0e1f7e7dc3c0ee85fa0383c..7c99742e01e894bcc7d89a8588b2f128 return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d36e1d6f7bba220f7e6b0d8d23aff26275d9f33e..c43927781c579f7237cd795e71e18e5a11074c7b 100644 +index a648cc01f2cdfac46fd2e760705cf85e534e926f..d396201655fde7ff35cf2a342fa458e5ea3f80a8 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -255,7 +255,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0968-Improve-Registry.patch b/patches/server/0968-Improve-Registry.patch index 740baefc42..aed822acfc 100644 --- a/patches/server/0968-Improve-Registry.patch +++ b/patches/server/0968-Improve-Registry.patch @@ -37,7 +37,7 @@ index b12b99253543445475b73a1d3d7c6364856b49e8..4fc02698a9312496e7f9bce1c64f3173 + // Paper end - improve Registry } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java -index 49752459ad67db3182c6d6d30ab91f2a420847a8..b1e87b52753242c7210cb250e4e272d016317c26 100644 +index 147950b8a1c853e1b52fdb29b26e839c2dd7bd01..8a20186618de8de8dd941a12aeb7d4f3b7e70c18 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java @@ -35,6 +35,7 @@ public class CraftTrimMaterial implements TrimMaterial, Handleable { +@@ -33,6 +33,13 @@ public class ResourceLocation implements Comparable { private final String path; protected ResourceLocation(String namespace, String path, @Nullable ResourceLocation.Dummy extraData) { @@ -53,7 +53,7 @@ index 8ba573bb4099ee5b27b61f333e72d794c48d5f29..69bdf3f2ee731e59e8d454816a9ca72c @Nullable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 693ea3891f18f071cdd79f9162f1521472b3ed24..7f5457522835b073246054e66699fe73f7005b25 100644 +index bb52d084637c97d9cc1ebaeec28358a0ddb3952b..40e21effc948b02874a6ed1d1c340c4dc87579d6 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -879,12 +879,13 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -98,10 +98,10 @@ index c30f19162e33dbe8f018b7dc66210681b6027389..e8faca6e443239968f0111519f9e5cd0 this.setShotFromCrossbow(nbt.getBoolean("ShotFromCrossbow")); diff --git a/src/main/java/net/minecraft/world/entity/vehicle/ContainerEntity.java b/src/main/java/net/minecraft/world/entity/vehicle/ContainerEntity.java -index 7529751afa2932fd16bc4591189b0358268a7b14..e2e1c7a017e82dc7299e5cd1783818e4f0319c0b 100644 +index f4ad1eea5bced6997edbc3a5ed1360b12b70f68f..648eefb973a4e5e543818c417a6ee39f283ea361 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/ContainerEntity.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/ContainerEntity.java -@@ -67,7 +67,7 @@ public interface ContainerEntity extends Container, MenuProvider { +@@ -66,7 +66,7 @@ public interface ContainerEntity extends Container, MenuProvider { default void readChestVehicleSaveData(CompoundTag nbt) { this.clearItemStacks(); if (nbt.contains("LootTable", 8)) { @@ -109,7 +109,7 @@ index 7529751afa2932fd16bc4591189b0358268a7b14..e2e1c7a017e82dc7299e5cd1783818e4 + this.setLootTable(ResourceLocation.tryParse(nbt.getString("LootTable"))); // Paper - Validate ResourceLocation this.setLootTableSeed(nbt.getLong("LootTableSeed")); } - + ContainerHelper.loadAllItems(nbt, this.getItemStacks()); // Paper - always load the items, table may still remain diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java index d04fc84eef11adb5ea64077f48794b6ed7fb3ada..89d06253b00604114e543ebbe12a9993ae95dc41 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java diff --git a/patches/server/0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index d6756e53cf..b1345b9284 100644 --- a/patches/server/0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Reduce allocation of Vec3D by entity tracker diff --git a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java -index 3c4ac79c094dc2fff7de94150a34b7bf814ac0de..38b56923a642afc1cb411480ba03cc784ed7cd24 100644 +index baacaa8fcefdee3c7eeebae1d3a365553e2dbac6..0d079f33c5cbc063081d5722c0823e332b448ea2 100644 --- a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java +++ b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java @@ -5,7 +5,7 @@ import org.jetbrains.annotations.VisibleForTesting; public class VecDeltaCodec { - private static final double TRUNCATION_STEPS = 4096.0D; + private static final double TRUNCATION_STEPS = 4096.0; - private Vec3 base = Vec3.ZERO; + public Vec3 base = Vec3.ZERO; // Paper diff --git a/patches/server/0978-Rewrite-dataconverter-system.patch b/patches/server/0978-Rewrite-dataconverter-system.patch index 2919728f24..971d840785 100644 --- a/patches/server/0978-Rewrite-dataconverter-system.patch +++ b/patches/server/0978-Rewrite-dataconverter-system.patch @@ -24837,7 +24837,7 @@ index 6743dca44e6552ad39aca757a24f3c4df400d83d..eebaf98bc0fa4696af59b2a79563beb7 NbtUtils.addCurrentDataVersion(nbttagcompound); } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -index d80580574a9e5d1c850270d93807f3a66a9c76f8..98b3909b536f11eda9c481ffd74066ad0cdb0ebc 100644 +index 01e54bd6c8157bc5c20375180a29c62599d72a3b..0eaecd48f763d60e3bfe684fae1700c2ced78cc2 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java @@ -115,7 +115,7 @@ public class EntityStorage implements EntityPersistentStorage { @@ -24850,10 +24850,10 @@ index d80580574a9e5d1c850270d93807f3a66a9c76f8..98b3909b536f11eda9c481ffd74066ad @Override diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java -index 28e0f782c24afb3d8d2296bd0d3493a32ef66961..56f0e217276b01aed2f20a71f6849826285fc15b 100644 +index 8609030e7a2fb6362bb482f6a41fe81263101c44..809da7fec1e1288a7a7bf1ee46c5b7bdd12bca01 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java -@@ -142,7 +142,14 @@ public class SectionStorage implements AutoCloseable { +@@ -148,7 +148,14 @@ public class SectionStorage implements AutoCloseable { int j = getVersion(dynamic); int k = SharedConstants.getCurrentVersion().getDataVersion().getVersion(); boolean bl = j != k; @@ -24868,12 +24868,12 @@ index 28e0f782c24afb3d8d2296bd0d3493a32ef66961..56f0e217276b01aed2f20a71f6849826 + // Paper end - route to new converter system OptionalDynamic optionalDynamic = dynamic2.get("Sections"); - for(int l = this.levelHeightAccessor.getMinSection(); l < this.levelHeightAccessor.getMaxSection(); ++l) { + for (int l = this.levelHeightAccessor.getMinSection(); l < this.levelHeightAccessor.getMaxSection(); l++) { diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java -index 15a9736a870055d639d03063c7cf67fd769fff36..1ca00340aaa201dd34e5c350d23ef53e126a0ca6 100644 +index a63eaec77251a7f6660d17d7210c639b71751c45..769a8c5788e6a01666b9b5ac24b02c632c6c9e48 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java -@@ -115,7 +115,7 @@ public class StructureCheck { +@@ -139,7 +139,7 @@ public class StructureCheck { CompoundTag compoundTag2; try { @@ -24883,10 +24883,10 @@ index 15a9736a870055d639d03063c7cf67fd769fff36..1ca00340aaa201dd34e5c350d23ef53e LOGGER.warn("Failed to partially datafix chunk {}", pos, var12); return StructureCheckResult.CHUNK_LOAD_NEEDED; diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager.java -index e534dac9d69147174f6b9e8ce7f27fde536351ce..270fd52ec733c89bd91155c8222936fafbcf94d6 100644 +index 7a350e2542da8055e94da4653399b6f3e07a0c7b..bd97c2407b02c2d6ef345c0cd421340703457e72 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager.java -@@ -236,7 +236,7 @@ public class StructureTemplateManager { +@@ -229,7 +229,7 @@ public class StructureTemplateManager { public StructureTemplate readStructure(CompoundTag nbt) { StructureTemplate structureTemplate = new StructureTemplate(); int i = NbtUtils.getDataVersion(nbt, 500); diff --git a/patches/server/0979-Starlight.patch b/patches/server/0979-Starlight.patch index f7c01379eb..598933220f 100644 --- a/patches/server/0979-Starlight.patch +++ b/patches/server/0979-Starlight.patch @@ -4518,7 +4518,7 @@ index 4e1618462840a1378dbe6492696c97544815edf2..8e8e3896040241bba8fd15f4d6d04656 while (objectiterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/level/ThreadedLevelLightEngine.java b/src/main/java/net/minecraft/server/level/ThreadedLevelLightEngine.java -index 785ca2c63fe47936ac4c0223dffd8971a295a37c..97662f8c8c125cb964d46b9095509a0da9796dba 100644 +index 1dfae40ec19c4df0a97359941cf2c948cd1c9cb2..3229bb8dfb9f39e5fa1c8d91cb58057764cd4abb 100644 --- a/src/main/java/net/minecraft/server/level/ThreadedLevelLightEngine.java +++ b/src/main/java/net/minecraft/server/level/ThreadedLevelLightEngine.java @@ -23,6 +23,17 @@ import net.minecraft.world.level.chunk.LightChunkGetter; @@ -4539,7 +4539,7 @@ index 785ca2c63fe47936ac4c0223dffd8971a295a37c..97662f8c8c125cb964d46b9095509a0d public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCloseable { public static final int DEFAULT_BATCH_SIZE = 1000; private static final Logger LOGGER = LogUtils.getLogger(); -@@ -33,13 +44,161 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl +@@ -33,6 +44,12 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl private final int taskPerBatch = 1000; private final AtomicBoolean scheduled = new AtomicBoolean(); @@ -4549,7 +4549,13 @@ index 785ca2c63fe47936ac4c0223dffd8971a295a37c..97662f8c8c125cb964d46b9095509a0d + public final boolean hasSkyLight; + // Paper end - replace light engine impl + - public ThreadedLevelLightEngine(LightChunkGetter chunkProvider, ChunkMap chunkStorage, boolean hasBlockLight, ProcessorMailbox processor, ProcessorHandle> executor) { + public ThreadedLevelLightEngine( + LightChunkGetter chunkProvider, + ChunkMap chunkStorage, +@@ -40,11 +57,153 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl + ProcessorMailbox processor, + ProcessorHandle> executor + ) { - super(chunkProvider, true, hasBlockLight); + super(chunkProvider, false, false); // Paper - destroy vanilla light engine state this.chunkMap = chunkStorage; @@ -4675,8 +4681,8 @@ index 785ca2c63fe47936ac4c0223dffd8971a295a37c..97662f8c8c125cb964d46b9095509a0d + LOGGER.error("Failed to remove ticket level for post chunk task " + new ChunkPos(chunkX, chunkZ), thr); + } + }); - } - ++ } ++ + @Override + public boolean hasLightWork() { + // route to new light engine @@ -4696,22 +4702,22 @@ index 785ca2c63fe47936ac4c0223dffd8971a295a37c..97662f8c8c125cb964d46b9095509a0d + if (sky == 15) return 15; + final int block = this.theLightEngine.getBlockReader().getLightValue(pos); + return Math.max(sky, block); -+ } + } + // Paper end - replace light engine imp -+ + @Override public void close() { - } -@@ -51,15 +210,16 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl +@@ -57,16 +216,16 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl @Override public void checkBlock(BlockPos pos) { - BlockPos blockPos = pos.immutable(); -- this.addTask(SectionPos.blockToSectionCoord(pos.getX()), SectionPos.blockToSectionCoord(pos.getZ()), ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> { -- super.checkBlock(blockPos); -- }, () -> { -- return "checkBlock " + blockPos; -- })); +- this.addTask( +- SectionPos.blockToSectionCoord(pos.getX()), +- SectionPos.blockToSectionCoord(pos.getZ()), +- ThreadedLevelLightEngine.TaskType.PRE_UPDATE, +- Util.name(() -> super.checkBlock(blockPos), () -> "checkBlock " + blockPos) +- ); + // Paper start - replace light engine impl + final BlockPos posCopy = pos.immutable(); + this.queueTaskForSection(posCopy.getX() >> 4, posCopy.getY() >> 4, posCopy.getZ() >> 4, () -> { @@ -4722,20 +4728,20 @@ index 785ca2c63fe47936ac4c0223dffd8971a295a37c..97662f8c8c125cb964d46b9095509a0d protected void updateChunkStatus(ChunkPos pos) { + if (true) return; // Paper - replace light engine impl - this.addTask(pos.x, pos.z, () -> { - return 0; - }, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> { -@@ -82,17 +242,16 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl + this.addTask(pos.x, pos.z, () -> 0, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> { + super.retainData(pos, false); + super.setLightEnabled(pos, false); +@@ -84,17 +243,16 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl @Override public void updateSectionStatus(SectionPos pos, boolean notReady) { -- this.addTask(pos.x(), pos.z(), () -> { -- return 0; -- }, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> { -- super.updateSectionStatus(pos, notReady); -- }, () -> { -- return "updateSectionStatus " + pos + " " + notReady; -- })); +- this.addTask( +- pos.x(), +- pos.z(), +- () -> 0, +- ThreadedLevelLightEngine.TaskType.PRE_UPDATE, +- Util.name(() -> super.updateSectionStatus(pos, notReady), () -> "updateSectionStatus " + pos + " " + notReady) +- ); + // Paper start - replace light engine impl + this.queueTaskForSection(pos.getX(), pos.getY(), pos.getZ(), () -> { + return this.theLightEngine.sectionChange(pos, notReady); @@ -4746,34 +4752,33 @@ index 785ca2c63fe47936ac4c0223dffd8971a295a37c..97662f8c8c125cb964d46b9095509a0d @Override public void propagateLightSources(ChunkPos chunkPos) { + if (true) return; // Paper - replace light engine impl - this.addTask(chunkPos.x, chunkPos.z, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> { - super.propagateLightSources(chunkPos); - }, () -> { -@@ -102,6 +261,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl + this.addTask( + chunkPos.x, + chunkPos.z, +@@ -105,6 +263,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl @Override public void setLightEnabled(ChunkPos pos, boolean retainData) { + if (true) return; // Paper - replace light engine impl - this.addTask(pos.x, pos.z, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> { - super.setLightEnabled(pos, retainData); - }, () -> { -@@ -111,6 +271,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl + this.addTask( + pos.x, + pos.z, +@@ -115,6 +274,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl @Override public void queueSectionData(LightLayer lightType, SectionPos pos, @Nullable DataLayer nibbles) { + if (true) return; // Paper - replace light engine impl - this.addTask(pos.x(), pos.z(), () -> { - return 0; - }, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> { -@@ -136,6 +297,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl + this.addTask( + pos.x(), + pos.z(), +@@ -139,12 +299,14 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl @Override public void retainData(ChunkPos pos, boolean retainData) { + if (true) return; // Paper - replace light engine impl - this.addTask(pos.x, pos.z, () -> { - return 0; - }, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> { -@@ -146,6 +308,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl + this.addTask( + pos.x, pos.z, () -> 0, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> super.retainData(pos, retainData), () -> "retainData " + pos) + ); } public CompletableFuture initializeLight(ChunkAccess chunk, boolean bl) { @@ -4781,7 +4786,7 @@ index 785ca2c63fe47936ac4c0223dffd8971a295a37c..97662f8c8c125cb964d46b9095509a0d ChunkPos chunkPos = chunk.getPos(); this.addTask(chunkPos.x, chunkPos.z, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> { LevelChunkSection[] levelChunkSections = chunk.getSections(); -@@ -171,6 +334,37 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl +@@ -165,6 +327,37 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl } public CompletableFuture lightChunk(ChunkAccess chunk, boolean excludeBlocks) { @@ -4819,7 +4824,7 @@ index 785ca2c63fe47936ac4c0223dffd8971a295a37c..97662f8c8c125cb964d46b9095509a0d ChunkPos chunkPos = chunk.getPos(); chunk.setLightCorrect(false); this.addTask(chunkPos.x, chunkPos.z, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> { -@@ -191,7 +385,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl +@@ -180,7 +373,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl } public void tryScheduleUpdate() { @@ -4828,14 +4833,14 @@ index 785ca2c63fe47936ac4c0223dffd8971a295a37c..97662f8c8c125cb964d46b9095509a0d this.taskMailbox.tell(() -> { this.runUpdate(); this.scheduled.set(false); -@@ -213,7 +407,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl +@@ -201,7 +394,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl } objectListIterator.back(j); - super.runLightUpdates(); + this.theLightEngine.propagateChanges(); // Paper - rewrite light engine - for(int var5 = 0; objectListIterator.hasNext() && var5 < i; ++var5) { + for (int var5 = 0; objectListIterator.hasNext() && var5 < i; var5++) { Pair pair2 = objectListIterator.next(); diff --git a/src/main/java/net/minecraft/server/level/TicketType.java b/src/main/java/net/minecraft/server/level/TicketType.java index 0d536d72ac918fbd403397ff369d10143ee9c204..6051e5f272838ef23276a90e21c2fc821ca155d1 100644 @@ -5081,10 +5086,10 @@ index 2ee1658532cb00d7bcd1d11e03f19d21ca7f2a9e..ac754827172a4de600d0a57a7d118534 public BlockState getBlockState(BlockPos pos) { return Blocks.VOID_AIR.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java -index 6bb508105641b5729572736c5c3f9bd6711e309a..60e760b42dd6471a229dfd45490dcf8c51979d35 100644 +index 6d1f924f7a1efe87f1a79f07ac4b4fbaae92f586..030fafe3b0bcad9e95251f5824ac2ef58640c705 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java -@@ -39,6 +39,48 @@ public class ImposterProtoChunk extends ProtoChunk { +@@ -45,6 +45,48 @@ public class ImposterProtoChunk extends ProtoChunk { this.allowWrites = propagateToWrapped; } @@ -5169,10 +5174,10 @@ index af757309cb46af6df07872f7596b66df6d6f18d7..73e682bb3ef3b2e450ec8c594b5365c7 this.level.getChunkSource().getLightEngine().checkBlock(blockposition); gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index dd62e257e16974a6d556a7f5e2d113a2cbc08981..dfae0918079425df92d958b04275be8ae60d4b60 100644 +index 268752a0b939abcaa9c7a302d2642b0c0fa2d331..2d7c6f00d399c7607e653078d77103a54509d03b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -143,7 +143,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -155,7 +155,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer return this.get(this.strategy.getIndex(x, y, z)); } @@ -5182,10 +5187,10 @@ index dd62e257e16974a6d556a7f5e2d113a2cbc08981..dfae0918079425df92d958b04275be8a return data.palette.valueFor(data.storage.get(index)); } diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -index 38ec21faaa16df5485a81a581506700a5ab0a440..7da1ed9640211b0e064162dcdb0000538e7b30f3 100644 +index 03e5e5c5ea003ba52b9f3ee405cd77e22ea387c8..1036ff2ac8ba0967a36eb7977ed49500a05a33e6 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -@@ -130,7 +130,7 @@ public class ProtoChunk extends ChunkAccess { +@@ -141,7 +141,7 @@ public class ProtoChunk extends ChunkAccess { } if (LightEngine.hasDifferentLightProperties(this, pos, blockState, state)) { diff --git a/patches/server/0980-Rewrite-chunk-system.patch b/patches/server/0980-Rewrite-chunk-system.patch index 19cbac85d0..a36c4f9797 100644 --- a/patches/server/0980-Rewrite-chunk-system.patch +++ b/patches/server/0980-Rewrite-chunk-system.patch @@ -18856,7 +18856,7 @@ index 9816913ad729fd39c173364b92e5db06a733bc55..a3881964bad0cab8f480eda634216d73 return crashreportsystemdetails; } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ae5a2136a0e266d4c35190f5d33552994c842786..5657f1ecbadda96a79978f918393c0c9a58dca83 100644 +index bd6c60ebfc76d19313bf01048268f8ce7e6603c5..18356db5d998dccb9e645a9ee0bebc5cbbfa5f7a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -276,6 +276,50 @@ public class ServerPlayer extends Player { @@ -18911,7 +18911,7 @@ index ae5a2136a0e266d4c35190f5d33552994c842786..5657f1ecbadda96a79978f918393c0c9 super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); this.chatVisibility = ChatVisiblity.FULL; diff --git a/src/main/java/net/minecraft/server/level/ThreadedLevelLightEngine.java b/src/main/java/net/minecraft/server/level/ThreadedLevelLightEngine.java -index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056cccbfc89 100644 +index 3229bb8dfb9f39e5fa1c8d91cb58057764cd4abb..17b624294fc0cab2976e3804e6c9a24b91a0e3aa 100644 --- a/src/main/java/net/minecraft/server/level/ThreadedLevelLightEngine.java +++ b/src/main/java/net/minecraft/server/level/ThreadedLevelLightEngine.java @@ -37,15 +37,12 @@ import net.minecraft.world.level.chunk.ChunkStatus; @@ -18933,8 +18933,8 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 public final boolean hasBlockLight; public final boolean hasSkyLight; // Paper end - replace light engine impl -@@ -53,8 +50,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl - public ThreadedLevelLightEngine(LightChunkGetter chunkProvider, ChunkMap chunkStorage, boolean hasBlockLight, ProcessorMailbox processor, ProcessorHandle> executor) { +@@ -59,8 +56,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl + ) { super(chunkProvider, false, false); // Paper - destroy vanilla light engine state this.chunkMap = chunkStorage; - this.sorterMailbox = executor; @@ -18943,7 +18943,7 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 // Paper start - replace light engine impl this.hasBlockLight = true; this.hasSkyLight = hasBlockLight; // Nice variable name. -@@ -98,7 +94,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl +@@ -104,7 +100,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl ++totalChunks; } @@ -18952,7 +18952,7 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 this.theLightEngine.relightChunks(chunks, (ChunkPos chunkPos) -> { chunkLightCallback.accept(chunkPos); ((java.util.concurrent.Executor)((ServerLevel)this.theLightEngine.getWorld()).getChunkSource().mainThreadProcessor).execute(() -> { -@@ -115,7 +111,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl +@@ -121,7 +117,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl private final Long2IntOpenHashMap chunksBeingWorkedOn = new Long2IntOpenHashMap(); private void queueTaskForSection(final int chunkX, final int chunkY, final int chunkZ, @@ -18961,7 +18961,7 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 final ServerLevel world = (ServerLevel)this.theLightEngine.getWorld(); final ChunkAccess center = this.theLightEngine.getAnyChunkNow(chunkX, chunkZ); -@@ -142,7 +138,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl +@@ -148,7 +144,7 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl final long key = CoordinateUtils.getChunkKey(chunkX, chunkZ); @@ -18970,7 +18970,7 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 if (updateFuture == null) { // not scheduled -@@ -282,17 +278,11 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl +@@ -285,16 +281,11 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl } private void addTask(int x, int z, ThreadedLevelLightEngine.TaskType stage, Runnable task) { @@ -18984,13 +18984,12 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 - if (this.lightTasks.size() >= 1000) { - this.runUpdate(); - } -- - }, ChunkPos.asLong(x, z), completedLevelSupplier)); + throw new UnsupportedOperationException(); // Paper - rewrite chunk system } @Override -@@ -334,90 +324,15 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl +@@ -327,83 +318,15 @@ public class ThreadedLevelLightEngine extends LevelLightEngine implements AutoCl } public CompletableFuture lightChunk(ChunkAccess chunk, boolean excludeBlocks) { @@ -19031,17 +19030,12 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 - if (!excludeBlocks) { - super.propagateLightSources(chunkPos); - } -- -- }, () -> { -- return "lightChunk " + chunkPos + " " + excludeBlocks; -- })); +- }, () -> "lightChunk " + chunkPos + " " + excludeBlocks)); - return CompletableFuture.supplyAsync(() -> { - chunk.setLightCorrect(true); - this.chunkMap.releaseLightTicket(chunkPos); - return chunk; -- }, (task) -> { -- this.addTask(chunkPos.x, chunkPos.z, ThreadedLevelLightEngine.TaskType.POST_UPDATE, task); -- }); +- }, task -> this.addTask(chunkPos.x, chunkPos.z, ThreadedLevelLightEngine.TaskType.POST_UPDATE, task)); + throw new UnsupportedOperationException(); // Paper - rewrite chunk system } @@ -19052,7 +19046,6 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 - this.scheduled.set(false); - }); - } -- + // Paper - rewrite chunk system } @@ -19061,7 +19054,7 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 - ObjectListIterator> objectListIterator = this.lightTasks.iterator(); - - int j; -- for(j = 0; objectListIterator.hasNext() && j < i; ++j) { +- for (j = 0; objectListIterator.hasNext() && j < i; j++) { - Pair pair = objectListIterator.next(); - if (pair.getFirst() == ThreadedLevelLightEngine.TaskType.PRE_UPDATE) { - pair.getSecond().run(); @@ -19071,7 +19064,7 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 - objectListIterator.back(j); - this.theLightEngine.propagateChanges(); // Paper - rewrite light engine - -- for(int var5 = 0; objectListIterator.hasNext() && var5 < i; ++var5) { +- for (int var5 = 0; objectListIterator.hasNext() && var5 < i; var5++) { - Pair pair2 = objectListIterator.next(); - if (pair2.getFirst() == ThreadedLevelLightEngine.TaskType.POST_UPDATE) { - pair2.getSecond().run(); @@ -19079,13 +19072,12 @@ index 97662f8c8c125cb964d46b9095509a0da9796dba..f382d138959b34bfc3a114bc9d96e056 - - objectListIterator.remove(); - } -- + throw new UnsupportedOperationException(); // Paper - rewrite chunk system } public CompletableFuture waitForPendingTasks(int x, int z) { diff --git a/src/main/java/net/minecraft/server/level/Ticket.java b/src/main/java/net/minecraft/server/level/Ticket.java -index b346fa94b23d81da7da073f71dd12e672e0f079c..0edb97617f0c0da8dda901a26891b33c324715c7 100644 +index eba83b085435150e5954fd5d41dda9ce1d0601ad..e97329f867de2acbdd666925ba5d2aafa7a90574 100644 --- a/src/main/java/net/minecraft/server/level/Ticket.java +++ b/src/main/java/net/minecraft/server/level/Ticket.java @@ -6,9 +6,12 @@ public final class Ticket implements Comparable> { @@ -19103,7 +19095,7 @@ index b346fa94b23d81da7da073f71dd12e672e0f079c..0edb97617f0c0da8dda901a26891b33c this.type = type; this.ticketLevel = level; this.key = argument; -@@ -44,7 +47,7 @@ public final class Ticket implements Comparable> { +@@ -41,7 +44,7 @@ public final class Ticket implements Comparable> { @Override public String toString() { @@ -19112,7 +19104,7 @@ index b346fa94b23d81da7da073f71dd12e672e0f079c..0edb97617f0c0da8dda901a26891b33c } public TicketType getType() { -@@ -56,11 +59,10 @@ public final class Ticket implements Comparable> { +@@ -53,11 +56,10 @@ public final class Ticket implements Comparable> { } protected void setCreatedTick(long tickCreated) { @@ -19181,10 +19173,10 @@ index c3e7bd8865cc8990fc59f1ff0dfc1697cbb5ca49..5ece375eaf6bcc61864997a389bb5e24 + // Paper end } diff --git a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java -index 13209267c26f46492a92e820889a9be0bd2287a0..f3b96a921e7d085b51da62fa5493384a7ded1f9d 100644 +index bf4bf32e926c7baf152a6c5912e2cd33598bdf9e..61c5402538b8dcace7bcc623f41940daaf7246ec 100644 --- a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java +++ b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java -@@ -44,17 +44,23 @@ public class PlayerChunkSender { +@@ -43,16 +43,23 @@ public class PlayerChunkSender { public void dropChunk(ServerPlayer player, ChunkPos pos) { if (!this.pendingChunks.remove(pos.toLong()) && player.isAlive()) { @@ -19201,7 +19193,6 @@ index 13209267c26f46492a92e820889a9be0bd2287a0..f3b96a921e7d085b51da62fa5493384a } // Paper end - PlayerChunkUnloadEvent - } -- } + // Paper end - rewrite player chunk loader @@ -19210,23 +19201,23 @@ index 13209267c26f46492a92e820889a9be0bd2287a0..f3b96a921e7d085b51da62fa5493384a if (this.unacknowledgedBatches < this.maxUnacknowledgedBatches) { float f = Math.max(1.0F, this.desiredChunksPerTick); this.batchQuota = Math.min(this.batchQuota + this.desiredChunksPerTick, f); -@@ -80,7 +86,8 @@ public class PlayerChunkSender { +@@ -78,7 +85,8 @@ public class PlayerChunkSender { } } - private static void sendChunk(ServerGamePacketListenerImpl handler, ServerLevel world, LevelChunk chunk) { + public static void sendChunk(ServerGamePacketListenerImpl handler, ServerLevel world, LevelChunk chunk) { // Paper - rewrite chunk loader - public + handler.player.serverLevel().chunkSource.chunkMap.getVisibleChunkIfPresent(chunk.getPos().toLong()).addPlayer(handler.player); - handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), (BitSet)null, (BitSet)null)); + handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), null, null)); // Paper start - PlayerChunkLoadEvent if (io.papermc.paper.event.packet.PlayerChunkLoadEvent.getHandlerList().getRegisteredListeners().length > 0) { -@@ -110,6 +117,7 @@ public class PlayerChunkSender { +@@ -118,6 +126,7 @@ public class PlayerChunkSender { } public void onChunkBatchReceivedByClient(float desiredBatchSize) { + if (true) return; // Paper - rewrite player chunk loader - --this.unacknowledgedBatches; - this.desiredChunksPerTick = Double.isNaN((double)desiredBatchSize) ? 0.01F : Mth.clamp(desiredBatchSize, 0.01F, 64.0F); + this.unacknowledgedBatches--; + this.desiredChunksPerTick = Double.isNaN(desiredBatchSize) ? 0.01F : Mth.clamp(desiredBatchSize, 0.01F, 64.0F); if (this.unacknowledgedBatches == 0) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java index d38fe02af4cc35ed5b22acec41bedb76151f8af5..4a569bf782bfdd870f32fe0ab5c3b8b86a07f218 100644 @@ -19271,7 +19262,7 @@ index d38fe02af4cc35ed5b22acec41bedb76151f8af5..4a569bf782bfdd870f32fe0ab5c3b8b8 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/util/SortedArraySet.java b/src/main/java/net/minecraft/util/SortedArraySet.java -index ca788f0dcec4a117b410fe8348969e056b138b1e..a6ac76707da39cf86113003b1f326433fdc86c86 100644 +index 3db68cf055c16c05d47c794596ddaa069275457e..7cf6880627c08556be62e08a536f4cd1eccfa7f1 100644 --- a/src/main/java/net/minecraft/util/SortedArraySet.java +++ b/src/main/java/net/minecraft/util/SortedArraySet.java @@ -14,6 +14,14 @@ public class SortedArraySet extends AbstractSet { @@ -19380,7 +19371,7 @@ index 640db9f71608310a64e09f1e3e677c01e6ccd98a..f2a7cb6ebed7a4b4019a09af2a025f62 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 7c99742e01e894bcc7d89a8588b2f128cf9b765d..3f620c4b8415f09a8d4664481b2d41d421ee836e 100644 +index 5275e7a34f86830d43edcab3a0e94f8d8e9cfae5..b108f779abe3d9798c0bcbc983f41d48b33aa153 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -480,6 +480,58 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -19516,7 +19507,7 @@ index 7c99742e01e894bcc7d89a8588b2f128cf9b765d..3f620c4b8415f09a8d4664481b2d41d4 @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java -index b18b896c624d5cadc02b1db9d011d82124d61d54..6f2c7baea0d1ac7813c7b85e1f5558573745762c 100644 +index c64794d02a861f0880b6877550a87752fdf26407..55e45feeaae7ec00805ef108939e50916f6e3148 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java +++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java @@ -38,12 +38,28 @@ import net.minecraft.world.level.chunk.storage.SectionStorage; @@ -19551,7 +19542,7 @@ index b18b896c624d5cadc02b1db9d011d82124d61d54..6f2c7baea0d1ac7813c7b85e1f555857 } public void add(BlockPos pos, Holder type) { -@@ -180,8 +196,8 @@ public class PoiManager extends SectionStorage { +@@ -177,8 +193,8 @@ public class PoiManager extends SectionStorage { } public int sectionsToVillage(SectionPos pos) { @@ -19562,7 +19553,7 @@ index b18b896c624d5cadc02b1db9d011d82124d61d54..6f2c7baea0d1ac7813c7b85e1f555857 } boolean isVillageCenter(long pos) { -@@ -195,21 +211,118 @@ public class PoiManager extends SectionStorage { +@@ -192,21 +208,118 @@ public class PoiManager extends SectionStorage { @Override public void tick(BooleanSupplier shouldKeepTicking) { @@ -19607,8 +19598,8 @@ index b18b896c624d5cadc02b1db9d011d82124d61d54..6f2c7baea0d1ac7813c7b85e1f555857 + io.papermc.paper.chunk.system.poi.PoiChunk ret = manager.getPoiChunkIfLoaded(chunkX, chunkZ, true); + + return ret == null ? Optional.empty() : ret.getSectionForVanilla(chunkY); -+ } -+ + } + + @Override + public Optional getOrLoad(long pos) { + int chunkX = io.papermc.paper.util.CoordinateUtils.getChunkSectionX(pos); @@ -19670,8 +19661,8 @@ index b18b896c624d5cadc02b1db9d011d82124d61d54..6f2c7baea0d1ac7813c7b85e1f555857 + this.onSectionLoad(SectionPos.asLong(chunkX, sectionY, chunkZ)); + } + } - } - ++ } ++ + public void checkConsistency(net.minecraft.world.level.chunk.ChunkAccess chunk) { + int chunkX = chunk.getPos().x; + int chunkZ = chunk.getPos().z; @@ -19685,18 +19676,18 @@ index b18b896c624d5cadc02b1db9d011d82124d61d54..6f2c7baea0d1ac7813c7b85e1f555857 + // Paper end - rewrite chunk system + public void checkConsistencyWithBlocks(SectionPos sectionPos, LevelChunkSection chunkSection) { - Util.ifElse(this.getOrLoad(sectionPos.asLong()), (poiSet) -> { - poiSet.refresh((populator) -> { -@@ -248,7 +361,7 @@ public class PoiManager extends SectionStorage { - }).map((pair) -> { - return pair.getFirst().chunk(); - }).filter((chunkPos) -> { -- return this.loadedChunks.add(chunkPos.toLong()); -+ return true; // Paper - rewrite chunk system - }).forEach((chunkPos) -> { - world.getChunk(chunkPos.x, chunkPos.z, ChunkStatus.EMPTY); - }); -@@ -264,7 +377,7 @@ public class PoiManager extends SectionStorage { + Util.ifElse(this.getOrLoad(sectionPos.asLong()), poiSet -> poiSet.refresh(populator -> { + if (mayHavePoi(chunkSection)) { +@@ -241,7 +354,7 @@ public class PoiManager extends SectionStorage { + .map(sectionPos -> Pair.of(sectionPos, this.getOrLoad(sectionPos.asLong()))) + .filter(pair -> !pair.getSecond().map(PoiSection::isValid).orElse(false)) + .map(pair -> pair.getFirst().chunk()) +- .filter(chunkPos -> this.loadedChunks.add(chunkPos.toLong())) ++ // Paper - rewrite chunk system + .forEach(chunkPos -> world.getChunk(chunkPos.x, chunkPos.z, ChunkStatus.EMPTY)); + } + +@@ -255,7 +368,7 @@ public class PoiManager extends SectionStorage { @Override protected int getLevelFromSource(long id) { @@ -19705,7 +19696,7 @@ index b18b896c624d5cadc02b1db9d011d82124d61d54..6f2c7baea0d1ac7813c7b85e1f555857 } @Override -@@ -287,6 +400,35 @@ public class PoiManager extends SectionStorage { +@@ -277,6 +390,35 @@ public class PoiManager extends SectionStorage { } } @@ -19742,7 +19733,7 @@ index b18b896c624d5cadc02b1db9d011d82124d61d54..6f2c7baea0d1ac7813c7b85e1f555857 HAS_SPACE(PoiRecord::hasSpace), IS_OCCUPIED(PoiRecord::isOccupied), diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java -index 795a02941d7cecb58ec45b5e79c8d510ff21163a..3fc17817906876e83f040f908b8b1ba6cfa37b8b 100644 +index beb0ff150fdd8ca6c44139ccb2d0eb77a4431e0c..f7d69dd83aad8e0ec1497441c61188bcf230865f 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java +++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java @@ -29,6 +29,7 @@ public class PoiSection { @@ -19752,7 +19743,7 @@ index 795a02941d7cecb58ec45b5e79c8d510ff21163a..3fc17817906876e83f040f908b8b1ba6 + public final Optional noAllocateOptional = Optional.of(this); // Paper - rewrite chunk system public static Codec codec(Runnable updateListener) { - return RecordCodecBuilder.create((instance) -> { + return RecordCodecBuilder.create( @@ -46,6 +47,12 @@ public class PoiSection { this(updateListener, true, ImmutableList.of()); } @@ -19767,10 +19758,10 @@ index 795a02941d7cecb58ec45b5e79c8d510ff21163a..3fc17817906876e83f040f908b8b1ba6 this.setDirty = updateListener; this.isValid = valid; diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index 57d4d2014f33a2f069d6c5aaa8e87e36b63a7177..cc888bbcd6a50124fa553bc4a8ffd1e8885d3856 100644 +index bd20bea7f76a7307f1698fb2dfef37125032d166..9a28912f52824acdc80a62243b136e6f365bf567 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java -@@ -18,6 +18,18 @@ import net.minecraft.world.phys.shapes.Shapes; +@@ -19,6 +19,18 @@ import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; public interface EntityGetter { @@ -19940,7 +19931,7 @@ index cedde2235227eb5820beefb98549994e1cca1198..9c743c980697a14d7348554fb77f242d + // Paper end } diff --git a/src/main/java/net/minecraft/world/level/LevelReader.java b/src/main/java/net/minecraft/world/level/LevelReader.java -index cc0d20e9f851268fe8403ac516f426ec1d008150..12eaafdbd324fa36b3f46c3b644bc8117a4123ad 100644 +index fa73462650dd29296b737435574755a613832b77..84e5d879c2de08fa95f12de8cea2c6d4da8ec76d 100644 --- a/src/main/java/net/minecraft/world/level/LevelReader.java +++ b/src/main/java/net/minecraft/world/level/LevelReader.java @@ -26,6 +26,15 @@ public interface LevelReader extends BlockAndTintGetter, CollisionGetter, Signal @@ -20526,10 +20517,10 @@ index eebaf98bc0fa4696af59b2a79563beb73501a554..645a1773237f2002c233ec1f3ff6f0ca } } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -index 98b3909b536f11eda9c481ffd74066ad0cdb0ebc..0ec0be22f7292d57c40da6f1f4575bdebf8dbd09 100644 +index 3b842297774472af5999438e883c1cd262f3c286..e8f8e1f2128df81705a88cee4b9a7760fb123750 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -@@ -30,43 +30,31 @@ public class EntityStorage implements EntityPersistentStorage { +@@ -30,45 +30,31 @@ public class EntityStorage implements EntityPersistentStorage { private static final String ENTITIES_TAG = "Entities"; private static final String POSITION_TAG = "Position"; public final ServerLevel level; @@ -20550,43 +20541,45 @@ index 98b3909b536f11eda9c481ffd74066ad0cdb0ebc..0ec0be22f7292d57c40da6f1f4575bde @Override public CompletableFuture> loadEntities(ChunkPos pos) { -- return this.emptyChunks.contains(pos.toLong()) ? CompletableFuture.completedFuture(emptyChunk(pos)) : this.worker.loadAsync(pos).thenApplyAsync((nbt) -> { -- if (nbt.isEmpty()) { -- this.emptyChunks.add(pos.toLong()); -- return emptyChunk(pos); -- } else { -- try { -- ChunkPos chunkPos2 = readChunkPos(nbt.get()); -- if (!Objects.equals(pos, chunkPos2)) { -- LOGGER.error("Chunk file at {} is in the wrong location. (Expected {}, got {})", pos, pos, chunkPos2); +- return this.emptyChunks.contains(pos.toLong()) +- ? CompletableFuture.completedFuture(emptyChunk(pos)) +- : this.worker.loadAsync(pos).thenApplyAsync(nbt -> { +- if (nbt.isEmpty()) { +- this.emptyChunks.add(pos.toLong()); +- return emptyChunk(pos); +- } else { +- try { +- ChunkPos chunkPos2 = readChunkPos(nbt.get()); +- if (!Objects.equals(pos, chunkPos2)) { +- LOGGER.error("Chunk file at {} is in the wrong location. (Expected {}, got {})", pos, pos, chunkPos2); +- } +- } catch (Exception var6) { +- LOGGER.warn("Failed to parse chunk {} position info", pos, var6); - } -- } catch (Exception var6) { -- LOGGER.warn("Failed to parse chunk {} position info", pos, var6); -- } - -- CompoundTag compoundTag = this.upgradeChunkTag(nbt.get()); -- ListTag listTag = compoundTag.getList("Entities", 10); -- List list = EntityType.loadEntitiesRecursive(listTag, this.level).collect(ImmutableList.toImmutableList()); -- return new ChunkEntities<>(pos, list); -- } -- }, this.entityDeserializerQueue::tell); +- CompoundTag compoundTag = this.upgradeChunkTag(nbt.get()); +- ListTag listTag = compoundTag.getList("Entities", 10); +- List list = EntityType.loadEntitiesRecursive(listTag, this.level).collect(ImmutableList.toImmutableList()); +- return new ChunkEntities<>(pos, list); +- } +- }, this.entityDeserializerQueue::tell); + throw new UnsupportedOperationException(); // Paper - rewrite chunk system - copy out read logic into readEntities -+ } -+ + } + +- private static ChunkPos readChunkPos(CompoundTag chunkNbt) { + // Paper start - rewrite chunk system + public static List readEntities(ServerLevel level, CompoundTag compoundTag) { + ListTag listTag = compoundTag.getList("Entities", 10); + List list = EntityType.loadEntitiesRecursive(listTag, level).collect(ImmutableList.toImmutableList()); + return list; - } ++ } + // Paper end - rewrite chunk system - -- private static ChunkPos readChunkPos(CompoundTag chunkNbt) { ++ + public static ChunkPos readChunkPos(CompoundTag chunkNbt) { // Paper - public int[] is = chunkNbt.getIntArray("Position"); return new ChunkPos(is[0], is[1]); } -@@ -81,45 +69,75 @@ public class EntityStorage implements EntityPersistentStorage { +@@ -83,43 +69,74 @@ public class EntityStorage implements EntityPersistentStorage { @Override public void storeEntities(ChunkEntities dataList) { @@ -20598,23 +20591,21 @@ index 98b3909b536f11eda9c481ffd74066ad0cdb0ebc..0ec0be22f7292d57c40da6f1f4575bde ChunkPos chunkPos = dataList.getPos(); if (dataList.isEmpty()) { if (this.emptyChunks.add(chunkPos.toLong())) { -- this.worker.store(chunkPos, (CompoundTag)null); +- this.worker.store(chunkPos, null); + // Paper - rewrite chunk system } - } else { - ListTag listTag = new ListTag(); -- dataList.getEntities().forEach((entity) -> { -- CompoundTag compoundTag = new CompoundTag(); -- if (entity.save(compoundTag)) { -- listTag.add(compoundTag); +- dataList.getEntities().forEach(entity -> { +- CompoundTag compoundTagx = new CompoundTag(); +- if (entity.save(compoundTagx)) { +- listTag.add(compoundTagx); - } -- - }); - CompoundTag compoundTag = NbtUtils.addCurrentDataVersion(new CompoundTag()); - compoundTag.put("Entities", listTag); - writeChunkPos(compoundTag, chunkPos); -- this.worker.store(chunkPos, compoundTag).exceptionally((ex) -> { +- this.worker.store(chunkPos, compoundTag).exceptionally(ex -> { - LOGGER.error("Failed to store chunk {}", chunkPos, ex); - return null; - }); @@ -20899,10 +20890,10 @@ index fa086a19f038b929f356292b2f657929765f7b6f..f1ecc3832da094400ed9d45bfc60af10 while (objectiterator.hasNext()) { diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java -index 56f0e217276b01aed2f20a71f6849826285fc15b..54db563d80bbabd87a2be6f5ead92b482ac07b10 100644 +index 809da7fec1e1288a7a7bf1ee46c5b7bdd12bca01..bc6043a21227ce8c9c3879bc9c93c3803f79857b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java -@@ -34,27 +34,28 @@ import net.minecraft.world.level.ChunkPos; +@@ -34,17 +34,17 @@ import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.LevelHeightAccessor; import org.slf4j.Logger; @@ -20922,7 +20913,11 @@ index 56f0e217276b01aed2f20a71f6849826285fc15b..54db563d80bbabd87a2be6f5ead92b48 + public final RegistryAccess registryAccess; // Paper - rewrite chunk system protected final LevelHeightAccessor levelHeightAccessor; - public SectionStorage(Path path, Function> codecFactory, Function factory, DataFixer dataFixer, DataFixTypes dataFixTypes, boolean dsync, RegistryAccess dynamicRegistryManager, LevelHeightAccessor world) { + public SectionStorage( +@@ -57,13 +57,14 @@ public class SectionStorage implements AutoCloseable { + RegistryAccess dynamicRegistryManager, + LevelHeightAccessor world + ) { + super(path, dsync); // Paper - remove mojang I/O thread this.codec = codecFactory; this.factory = factory; @@ -20935,18 +20930,18 @@ index 56f0e217276b01aed2f20a71f6849826285fc15b..54db563d80bbabd87a2be6f5ead92b48 } protected void tick(BooleanSupplier shouldKeepTicking) { -@@ -116,23 +117,21 @@ public class SectionStorage implements AutoCloseable { +@@ -122,23 +123,21 @@ public class SectionStorage implements AutoCloseable { } private void readColumn(ChunkPos pos) { - Optional optional = this.tryRead(pos).join(); - RegistryOps registryOps = RegistryOps.create(NbtOps.INSTANCE, this.registryAccess); -- this.readColumn(pos, registryOps, optional.orElse((CompoundTag)null)); +- this.readColumn(pos, registryOps, optional.orElse(null)); + throw new IllegalStateException("Only chunk system can load in state, offending class:" + this.getClass().getName()); // Paper - rewrite chunk system } private CompletableFuture> tryRead(ChunkPos pos) { -- return this.worker.loadAsync(pos).exceptionally((throwable) -> { +- return this.worker.loadAsync(pos).exceptionally(throwable -> { - if (throwable instanceof IOException iOException) { - LOGGER.error("Error reading chunk {} data from disk", pos, iOException); - return Optional.empty(); @@ -20966,18 +20961,18 @@ index 56f0e217276b01aed2f20a71f6849826285fc15b..54db563d80bbabd87a2be6f5ead92b48 private void readColumn(ChunkPos pos, DynamicOps ops, @Nullable T data) { + if (true) throw new IllegalStateException("Only chunk system can load in state, offending class:" + this.getClass().getName()); // Paper - rewrite chunk system if (data == null) { - for(int i = this.levelHeightAccessor.getMinSection(); i < this.levelHeightAccessor.getMaxSection(); ++i) { + for (int i = this.levelHeightAccessor.getMinSection(); i < this.levelHeightAccessor.getMaxSection(); i++) { this.storage.put(getKey(pos, i), Optional.empty()); -@@ -177,7 +176,7 @@ public class SectionStorage implements AutoCloseable { +@@ -179,7 +178,7 @@ public class SectionStorage implements AutoCloseable { Dynamic dynamic = this.writeColumn(pos, registryOps); Tag tag = dynamic.getValue(); if (tag instanceof CompoundTag) { - this.worker.store(pos, (CompoundTag)tag); + try { this.write(pos, (CompoundTag)tag); } catch (IOException ioexception) { SectionStorage.LOGGER.error("Error writing data to disk", ioexception); } // Paper - nuke IOWorker } else { - LOGGER.error("Expected compound tag, got {}", (Object)tag); + LOGGER.error("Expected compound tag, got {}", tag); } -@@ -222,7 +221,7 @@ public class SectionStorage implements AutoCloseable { +@@ -229,7 +228,7 @@ public class SectionStorage implements AutoCloseable { } private static int getVersion(Dynamic dynamic) { @@ -20986,7 +20981,7 @@ index 56f0e217276b01aed2f20a71f6849826285fc15b..54db563d80bbabd87a2be6f5ead92b48 } public void flush(ChunkPos pos) { -@@ -240,6 +239,9 @@ public class SectionStorage implements AutoCloseable { +@@ -246,6 +245,9 @@ public class SectionStorage implements AutoCloseable { @Override public void close() throws IOException { @@ -20998,10 +20993,10 @@ index 56f0e217276b01aed2f20a71f6849826285fc15b..54db563d80bbabd87a2be6f5ead92b48 + // Paper - rewrite chunk system } diff --git a/src/main/java/net/minecraft/world/level/entity/EntityTickList.java b/src/main/java/net/minecraft/world/level/entity/EntityTickList.java -index 2830d32bba3dc85847e3a5d9b4d98f822e34b606..4cdfc433df67afcd455422e9baf56f167dd712ae 100644 +index 74a285b8b018a9c94ccea519f1ce8b9e2ef3cb64..83a39f900551e39d5af6f17a339a386ddee4feef 100644 --- a/src/main/java/net/minecraft/world/level/entity/EntityTickList.java +++ b/src/main/java/net/minecraft/world/level/entity/EntityTickList.java -@@ -8,54 +8,42 @@ import javax.annotation.Nullable; +@@ -9,52 +9,41 @@ import javax.annotation.Nullable; import net.minecraft.world.entity.Entity; public class EntityTickList { @@ -21015,7 +21010,7 @@ index 2830d32bba3dc85847e3a5d9b4d98f822e34b606..4cdfc433df67afcd455422e9baf56f16 - if (this.iterated == this.active) { - this.passive.clear(); - -- for(Int2ObjectMap.Entry entry : Int2ObjectMaps.fastIterable(this.active)) { +- for (Entry entry : Int2ObjectMaps.fastIterable(this.active)) { - this.passive.put(entry.getIntKey(), entry.getValue()); - } - @@ -21024,7 +21019,6 @@ index 2830d32bba3dc85847e3a5d9b4d98f822e34b606..4cdfc433df67afcd455422e9baf56f16 - this.passive = int2ObjectMap; - } + // Paper - replace with better logic, do not delay removals - } public void add(Entity entity) { @@ -21053,7 +21047,7 @@ index 2830d32bba3dc85847e3a5d9b4d98f822e34b606..4cdfc433df67afcd455422e9baf56f16 - this.iterated = this.active; - - try { -- for(Entity entity : this.active.values()) { +- for (Entity entity : this.active.values()) { - action.accept(entity); - } - } finally { @@ -21067,7 +21061,6 @@ index 2830d32bba3dc85847e3a5d9b4d98f822e34b606..4cdfc433df67afcd455422e9baf56f16 + while (iterator.hasNext()) { + action.accept(iterator.next()); } -- + } finally { + iterator.finishedIterating(); } @@ -21097,10 +21090,10 @@ index 54308f1decc3982f30bf8b7a8a9d8865bfdbb9fd..902156477bdfc9917105f1229f760c26 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java -index 1ca00340aaa201dd34e5c350d23ef53e126a0ca6..16356d7f388561300e794a52f3f263b8e7d9b880 100644 +index 769a8c5788e6a01666b9b5ac24b02c632c6c9e48..09867812600b24b3b7d05b58f98582650d313fc8 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java -@@ -50,8 +50,101 @@ public class StructureCheck { +@@ -49,8 +49,101 @@ public class StructureCheck { private final BiomeSource biomeSource; private final long seed; private final DataFixer fixerUpper; @@ -21202,9 +21195,9 @@ index 1ca00340aaa201dd34e5c350d23ef53e126a0ca6..16356d7f388561300e794a52f3f263b8 + } + // Paper end - rewrite chunk system - synchronise this class - public StructureCheck(ChunkScanAccess chunkIoWorker, RegistryAccess registryManager, StructureTemplateManager structureTemplateManager, ResourceKey worldKey, ChunkGenerator chunkGenerator, RandomState noiseConfig, LevelHeightAccessor world, BiomeSource biomeSource, long seed, DataFixer dataFixer) { // Paper - fix missing CB diff - this.storageAccess = chunkIoWorker; -@@ -70,7 +163,7 @@ public class StructureCheck { + public StructureCheck( + ChunkScanAccess chunkIoWorker, +@@ -80,7 +173,7 @@ public class StructureCheck { public StructureCheckResult checkStart(ChunkPos pos, Structure type, boolean skipReferencedStructures) { long l = pos.toLong(); @@ -21213,27 +21206,25 @@ index 1ca00340aaa201dd34e5c350d23ef53e126a0ca6..16356d7f388561300e794a52f3f263b8 if (object2IntMap != null) { return this.checkStructureInfo(object2IntMap, type, skipReferencedStructures); } else { -@@ -78,9 +171,9 @@ public class StructureCheck { +@@ -88,9 +181,9 @@ public class StructureCheck { if (structureCheckResult != null) { return structureCheckResult; } else { -- boolean bl = this.featureChecks.computeIfAbsent(type, (structure2) -> { -- return new Long2BooleanOpenHashMap(); -- }).computeIfAbsent(l, (chunkPos) -> { -+ boolean bl = this.featureChecksSafe.computeIfAbsent(type, (structure2) -> { // Paper - rewrite chunk system - synchronise this class -+ return new SynchronisedLong2BooleanMap(PER_FEATURE_CHECK_LIMIT); // Paper - rewrite chunk system - synchronise this class -+ }).getOrCompute(l, (chunkPos) -> { // Paper - rewrite chunk system - synchronise this class - return this.canCreateStructure(pos, type); - }); +- boolean bl = this.featureChecks +- .computeIfAbsent(type, structure2 -> new Long2BooleanOpenHashMap()) +- .computeIfAbsent(l, chunkPos -> this.canCreateStructure(pos, type)); ++ boolean bl = this.featureChecksSafe // Paper - rewrite chunk system - synchronise this class ++ .computeIfAbsent(type, structure2 -> new SynchronisedLong2BooleanMap(PER_FEATURE_CHECK_LIMIT)) // Paper - rewrite chunk system - synchronise this class ++ .getOrCompute(l, chunkPos -> this.canCreateStructure(pos, type)); // Paper - rewrite chunk system - synchronise this class return !bl ? StructureCheckResult.START_NOT_PRESENT : StructureCheckResult.CHUNK_LOAD_NEEDED; -@@ -193,17 +286,26 @@ public class StructureCheck { + } + } +@@ -216,15 +309,26 @@ public class StructureCheck { } private void storeFullResults(long pos, Object2IntMap referencesByStructure) { - this.loadedChunks.put(pos, deduplicateEmptyMap(referencesByStructure)); -- this.featureChecks.values().forEach((generationPossibilityByChunkPos) -> { -- generationPossibilityByChunkPos.remove(pos); -- }); +- this.featureChecks.values().forEach(generationPossibilityByChunkPos -> generationPossibilityByChunkPos.remove(pos)); + // Paper start - rewrite chunk system - synchronise this class + this.loadedChunksSafe.put(pos, deduplicateEmptyMap(referencesByStructure)); + // once we insert into loadedChunks, we don't really need to be very careful about removing everything @@ -21257,13 +21248,13 @@ index 1ca00340aaa201dd34e5c350d23ef53e126a0ca6..16356d7f388561300e794a52f3f263b8 } + // Paper end - rewrite chunk system - synchronise this class - referencesByStructure.computeInt(structure, (feature, references) -> { - return references == null ? 1 : references + 1; + referencesByStructure.computeInt(structure, (feature, references) -> references == null ? 1 : references + 1); + return referencesByStructure; diff --git a/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java b/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java -index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..ac807277a6b26d140ea9873d17c7aa4fb5fe37b2 100644 +index da086494de9668d28305ccd23d32e9cfe45d0880..e7b3f9ceff72b255d443026b4e51291823bfd582 100644 --- a/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java +++ b/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java -@@ -25,6 +25,19 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon +@@ -26,6 +26,19 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon @Nullable private BiConsumer, ScheduledTick> onTickAdded; @@ -21298,9 +21289,9 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..ac807277a6b26d140ea9873d17c7aa4f + this.dirty = true; // Paper - add dirty flag this.scheduleUnchecked(orderedTick); } - -@@ -83,7 +98,7 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon - while(iterator.hasNext()) { + } +@@ -81,7 +96,7 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon + while (iterator.hasNext()) { ScheduledTick scheduledTick = iterator.next(); if (predicate.test(scheduledTick)) { - iterator.remove(); @@ -21308,15 +21299,15 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..ac807277a6b26d140ea9873d17c7aa4f this.ticksPerPosition.remove(scheduledTick); } } -@@ -101,6 +116,7 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon +@@ -98,6 +113,7 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon @Override public ListTag save(long l, Function function) { + this.lastSaved = l; // Paper - add dirty system to level ticks ListTag listTag = new ListTag(); if (this.pendingTicks != null) { - for(SavedTick savedTick : this.pendingTicks) { -@@ -117,6 +133,11 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon + for (SavedTick savedTick : this.pendingTicks) { +@@ -114,6 +130,11 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon public void unpack(long time) { if (this.pendingTicks != null) { @@ -21327,7 +21318,7 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..ac807277a6b26d140ea9873d17c7aa4f + // Paper end - add dirty system to level chunk ticks int i = -this.pendingTicks.size(); - for(SavedTick savedTick : this.pendingTicks) { + for (SavedTick savedTick : this.pendingTicks) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java index 260ca4a9c170567b27488466f802c91212997f91..e47b00912fc76e9639f9c51d96e6d39da3c963e3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java diff --git a/patches/server/0981-incremental-chunk-and-player-saving.patch b/patches/server/0981-incremental-chunk-and-player-saving.patch index 7f2209d3c1..ee962a9466 100644 --- a/patches/server/0981-incremental-chunk-and-player-saving.patch +++ b/patches/server/0981-incremental-chunk-and-player-saving.patch @@ -118,7 +118,7 @@ index a3881964bad0cab8f480eda634216d73dfbf7bb0..b6407dd3e5b87782503988f898bbf054 // Paper start - rewrite chunk system - add close param this.save(progressListener, flush, savingDisabled, false); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5657f1ecbadda96a79978f918393c0c9a58dca83..910c5087406837033e580ec2a23f5d30d807b723 100644 +index 18356db5d998dccb9e645a9ee0bebc5cbbfa5f7a..4a62c2937460dca9d938c40da47529e106503cad 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -191,6 +191,7 @@ import org.bukkit.inventory.MainHand; diff --git a/patches/server/0982-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch b/patches/server/0982-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch index d1ad0bf59f..bb73216915 100644 --- a/patches/server/0982-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch +++ b/patches/server/0982-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch @@ -12,11 +12,11 @@ Replace all calls to the new place to the unnecessary forward. Optimize getType and getBlockData to manually inline and optimize the calls diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java -index 369b54b96c682717ef93d05312714b4d30efaceb..beadef19ee136c27601f0d116a86967344c2e403 100644 +index 21387401c7958414fa6f3fd530488481d92a6eca..17bb8fb0353a818d946a0831781918781314c0ce 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java +++ b/src/main/java/net/minecraft/core/Vec3i.java -@@ -31,6 +31,12 @@ public class Vec3i implements Comparable { - }); +@@ -30,6 +30,12 @@ public class Vec3i implements Comparable { + ); } + // Paper start @@ -54,10 +54,10 @@ index 3e5addb60ae8f466dad09edb3ae1fc88fe2681e9..5e8d2e4245757a0889645ea79ee68afb public abstract BlockState setBlockState(BlockPos pos, BlockState state, boolean moved); diff --git a/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java -index 60e760b42dd6471a229dfd45490dcf8c51979d35..4a3ac7dedf5cb1e76f16ec4f18e82afc717d0ced 100644 +index 030fafe3b0bcad9e95251f5824ac2ef58640c705..b4e05ce176dfc6a2e66b294ed461c32020adf203 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java -@@ -91,6 +91,12 @@ public class ImposterProtoChunk extends ProtoChunk { +@@ -97,6 +97,12 @@ public class ImposterProtoChunk extends ProtoChunk { public BlockState getBlockState(BlockPos pos) { return this.wrapped.getBlockState(pos); } @@ -71,10 +71,10 @@ index 60e760b42dd6471a229dfd45490dcf8c51979d35..4a3ac7dedf5cb1e76f16ec4f18e82afc @Override public FluidState getFluidState(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -index 7da1ed9640211b0e064162dcdb0000538e7b30f3..7aa585875dad5296526bb5d67fc5ea0f8875e452 100644 +index 1036ff2ac8ba0967a36eb7977ed49500a05a33e6..a1f6274c9b1ab02ee55f1ae6011fc2dbb6e4824f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -@@ -86,14 +86,18 @@ public class ProtoChunk extends ChunkAccess { +@@ -95,14 +95,18 @@ public class ProtoChunk extends ChunkAccess { @Override public BlockState getBlockState(BlockPos pos) { diff --git a/patches/server/0984-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0984-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch index 9b7e64077b..46e1b7e745 100644 --- a/patches/server/0984-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch +++ b/patches/server/0984-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch @@ -26,7 +26,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7f5457522835b073246054e66699fe73f7005b25..3f3498e0a24ad8b890173ce71cd63c1fffb561df 100644 +index 40e21effc948b02874a6ed1d1c340c4dc87579d6..aa261d3ad04bc3a19b3200214214650d9a9ac2af 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3746,7 +3746,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0988-Flat-bedrock-generator-settings.patch b/patches/server/0988-Flat-bedrock-generator-settings.patch index 7e54f34f22..d1bbbdf7ef 100644 --- a/patches/server/0988-Flat-bedrock-generator-settings.patch +++ b/patches/server/0988-Flat-bedrock-generator-settings.patch @@ -168,16 +168,17 @@ index b99283c31193e2110f6e3f39c23dbfc2442bab2b..a34e53249668d917c9d77c6837b91360 + // Paper end - Flat bedrock generator settings } diff --git a/src/main/java/net/minecraft/world/level/levelgen/carver/CarvingContext.java b/src/main/java/net/minecraft/world/level/levelgen/carver/CarvingContext.java -index a745458ea3581ea91a68c863e3fd0a0292d73a61..6fcb84e4d2cd310bd1e04f4cf7b9bc2bbbf4fdad 100644 +index 390bcf9c302effd9db42d7a0e65b5433cc2eadd6..b9e919d31e442f49300744395af3cf9431e86c57 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/carver/CarvingContext.java +++ b/src/main/java/net/minecraft/world/level/levelgen/carver/CarvingContext.java -@@ -21,8 +21,8 @@ public class CarvingContext extends WorldGenerationContext { - private final RandomState randomState; - private final SurfaceRules.RuleSource surfaceRule; - -- public CarvingContext(NoiseBasedChunkGenerator noiseChunkGenerator, RegistryAccess registryManager, LevelHeightAccessor heightLimitView, NoiseChunk chunkNoiseSampler, RandomState noiseConfig, SurfaceRules.RuleSource materialRule) { +@@ -27,9 +27,9 @@ public class CarvingContext extends WorldGenerationContext { + LevelHeightAccessor heightLimitView, + NoiseChunk chunkNoiseSampler, + RandomState noiseConfig, +- SurfaceRules.RuleSource materialRule ++ SurfaceRules.RuleSource materialRule, @javax.annotation.Nullable net.minecraft.world.level.Level level // Paper - Flat bedrock generator settings + ) { - super(noiseChunkGenerator, heightLimitView); -+ public CarvingContext(NoiseBasedChunkGenerator noiseChunkGenerator, RegistryAccess registryManager, LevelHeightAccessor heightLimitView, NoiseChunk chunkNoiseSampler, RandomState noiseConfig, SurfaceRules.RuleSource materialRule, @javax.annotation.Nullable net.minecraft.world.level.Level level) { // Paper - Flat bedrock generator settings + super(noiseChunkGenerator, heightLimitView, level); // Paper - Flat bedrock generator settings this.registryAccess = registryManager; this.noiseChunk = chunkNoiseSampler; diff --git a/patches/server/0989-Entity-Activation-Range-2.0.patch b/patches/server/0989-Entity-Activation-Range-2.0.patch index c26295b371..b0eff05afa 100644 --- a/patches/server/0989-Entity-Activation-Range-2.0.patch +++ b/patches/server/0989-Entity-Activation-Range-2.0.patch @@ -111,7 +111,7 @@ index bd8c96e914b156284bdbb960f168e63e1f122920..abb4c32e8b35de332fa517523e8c598e } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3f620c4b8415f09a8d4664481b2d41d421ee836e..132ab49c02b83c37e1a64fc19f9bdfc04f52f2ed 100644 +index b108f779abe3d9798c0bcbc983f41d48b33aa153..a66fe080ee73171090abec48352ad0bd457a2a6f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -412,6 +412,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -183,10 +183,10 @@ index d6393210cfee53685f83c8491bea8b9c13b01eea..3d95257d2203fe40bb1fab58ad2a1f9e public float getWalkTargetValue(BlockPos pos) { return this.getWalkTargetValue(pos, this.level()); diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java -index 07c1ca01c38d5d7d0a95ad5004b5df9f4a222935..e5995d0db5dcfba59a873ff439601894fdacd556 100644 +index 9be9a6a59666297e05a9fc19d9345ae7d5f3bf40..040d62effc651d14d3557f8ff582cb078b74ae1e 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java -@@ -33,6 +33,7 @@ public class GoalSelector { +@@ -34,6 +34,7 @@ public class GoalSelector { private final EnumSet disabledFlags = EnumSet.noneOf(Goal.Flag.class); private int tickCount; private int newGoalRate = 3; @@ -194,8 +194,8 @@ index 07c1ca01c38d5d7d0a95ad5004b5df9f4a222935..e5995d0db5dcfba59a873ff439601894 public GoalSelector(Supplier profiler) { this.profiler = profiler; -@@ -49,6 +50,20 @@ public class GoalSelector { - }); +@@ -48,6 +49,20 @@ public class GoalSelector { + this.availableGoals.removeIf(goal -> predicate.test(goal.getGoal())); } + // Paper start @@ -213,10 +213,10 @@ index 07c1ca01c38d5d7d0a95ad5004b5df9f4a222935..e5995d0db5dcfba59a873ff439601894 + } + // Paper end public void removeGoal(Goal goal) { - this.availableGoals.stream().filter((wrappedGoal) -> { - return wrappedGoal.getGoal() == goal; + this.availableGoals.stream().filter(wrappedGoal -> wrappedGoal.getGoal() == goal).filter(WrappedGoal::isRunning).forEach(WrappedGoal::stop); + this.availableGoals.removeIf(wrappedGoal -> wrappedGoal.getGoal() == goal); diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java -index 9fc374c17f6b3ee4ab3c582d05e96321b772f2d6..07519c817cc6de04a98198c43a0c2b02ba3141eb 100644 +index 7b276b37433f054513e3eff88362424686eddebc..de7c3654b5d134e380c0d7e8800beb6c10d8a22a 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java @@ -23,6 +23,14 @@ public abstract class MoveToBlockGoal extends Goal { @@ -234,7 +234,7 @@ index 9fc374c17f6b3ee4ab3c582d05e96321b772f2d6..07519c817cc6de04a98198c43a0c2b02 public MoveToBlockGoal(PathfinderMob mob, double speed, int range, int maxYDifference) { this.mob = mob; -@@ -114,6 +122,7 @@ public abstract class MoveToBlockGoal extends Goal { +@@ -113,6 +121,7 @@ public abstract class MoveToBlockGoal extends Goal { mutableBlockPos.setWithOffset(blockPos, m, k - 1, n); if (this.mob.isWithinRestriction(mutableBlockPos) && this.isValidTarget(this.mob.level(), mutableBlockPos)) { this.blockPos = mutableBlockPos; @@ -302,7 +302,7 @@ index fa2569fecefb3e3af3264928a3c7a347710deedf..24044795d8e0f1fb15a4f2f5401f4489 super.customServerAiStep(); } diff --git a/src/main/java/net/minecraft/world/entity/vehicle/MinecartHopper.java b/src/main/java/net/minecraft/world/entity/vehicle/MinecartHopper.java -index b149e8bcac034bb3fc118a9adcb0de45e18ed5e9..fc35cfc9d045f3e5b6a50af1d0ba83b6e322091f 100644 +index eaafb57c14ead01ffd2650fdec9ca75406201e41..761142374f793a1cd4228936b21a68d7a0458894 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/MinecartHopper.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/MinecartHopper.java @@ -52,6 +52,7 @@ public class MinecartHopper extends AbstractMinecartContainer implements Hopper @@ -310,23 +310,24 @@ index b149e8bcac034bb3fc118a9adcb0de45e18ed5e9..fc35cfc9d045f3e5b6a50af1d0ba83b6 this.setEnabled(bl); } + this.immunize(); // Paper - } -@@ -89,10 +90,12 @@ public class MinecartHopper extends AbstractMinecartContainer implements Hopper + public boolean isEnabled() { +@@ -87,11 +88,13 @@ public class MinecartHopper extends AbstractMinecartContainer implements Hopper public boolean suckInItems() { if (HopperBlockEntity.suckInItems(this.level(), this)) { + this.immunize(); // Paper return true; } else { - for(ItemEntity itemEntity : this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate(0.25D, 0.0D, 0.25D), EntitySelector.ENTITY_STILL_ALIVE)) { + for (ItemEntity itemEntity : this.level() + .getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate(0.25, 0.0, 0.25), EntitySelector.ENTITY_STILL_ALIVE)) { if (HopperBlockEntity.addItem(this, itemEntity)) { + this.immunize(); // Paper return true; } } -@@ -122,4 +125,11 @@ public class MinecartHopper extends AbstractMinecartContainer implements Hopper +@@ -121,4 +124,11 @@ public class MinecartHopper extends AbstractMinecartContainer implements Hopper public AbstractContainerMenu createMenu(int syncId, Inventory playerInventory) { return new HopperMenu(syncId, playerInventory, this); } @@ -356,10 +357,10 @@ index 5c209e323a5559480231c6d99357ba8b89edb027..4bedd5801cc8ce14387f02dfb361a00a public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot // Paper start - add paper world config diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -index b1061db1d9b3bfde61d5016e10556c4320095827..c71690dbc3dc52803945f1608f0ee3ba94146354 100644 +index 7415011211925e962dcd1a3fdfde2c9bb6ec8335..5c59550db0ed7a6c1cf654fd5b251c3ba1e762fb 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -@@ -143,6 +143,10 @@ public class PistonMovingBlockEntity extends BlockEntity { +@@ -147,6 +147,10 @@ public class PistonMovingBlockEntity extends BlockEntity { } entity.setDeltaMovement(e, g, h); diff --git a/patches/server/0990-Optional-per-player-mob-spawns.patch b/patches/server/0990-Optional-per-player-mob-spawns.patch index b80d633556..dc4d88d053 100644 --- a/patches/server/0990-Optional-per-player-mob-spawns.patch +++ b/patches/server/0990-Optional-per-player-mob-spawns.patch @@ -64,7 +64,7 @@ index 20cdfd2bbd5dc71fd37ccedaf3a8d06b45553c9b..059ab637adf1be576fa1fff36a91b6c5 this.lastSpawnState = spawnercreature_d; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 910c5087406837033e580ec2a23f5d30d807b723..651aceca9030e1f6060af9fc9f8d349dc0451728 100644 +index 4a62c2937460dca9d938c40da47529e106503cad..7fb2c0f2576142423cd0e50b811ce4f55795e43d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -256,6 +256,10 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0991-Anti-Xray.patch b/patches/server/0991-Anti-Xray.patch index 584b0a7774..0e19dabd18 100644 --- a/patches/server/0991-Anti-Xray.patch +++ b/patches/server/0991-Anti-Xray.patch @@ -1001,23 +1001,23 @@ index 0000000000000000000000000000000000000000..80a2dfb266ae1221680a7b24fee2f7e2 + } +} diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundChunksBiomesPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundChunksBiomesPacket.java -index 6cff1a98dc7cf33947ec760dbc3d3d0ec5db5f6c..51f647de153255c919b1440338cf1b3e2d6b5dbf 100644 +index 921bd11bd8d266c2dd5c78a44f4714a48417eb3e..99e6d6e97e2869d574ea04b7eccbd6c0f827b19b 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundChunksBiomesPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundChunksBiomesPacket.java -@@ -63,8 +63,10 @@ public record ClientboundChunksBiomesPacket(List entry : chunk.getHeightmaps()) { + for (Entry entry : chunk.getHeightmaps()) { @@ -35,7 +38,14 @@ public class ClientboundLevelChunkPacketData { } @@ -1047,8 +1047,8 @@ index 89e3163b0301f8414c9400a6e00cdd85841fe2e8..74b5cec09d953a247bc5aba3c4232a4c + // Paper end this.blockEntitiesData = Lists.newArrayList(); - for(Map.Entry entry2 : chunk.getBlockEntities().entrySet()) { -@@ -85,9 +95,15 @@ public class ClientboundLevelChunkPacketData { + for (Entry entry2 : chunk.getBlockEntities().entrySet()) { +@@ -82,9 +92,15 @@ public class ClientboundLevelChunkPacketData { return byteBuf; } @@ -1058,14 +1058,14 @@ index 89e3163b0301f8414c9400a6e00cdd85841fe2e8..74b5cec09d953a247bc5aba3c4232a4c + public static void extractChunkData(FriendlyByteBuf buf, LevelChunk chunk, com.destroystokyo.paper.antixray.ChunkPacketInfo chunkPacketInfo) { + int chunkSectionIndex = 0; + - for(LevelChunkSection levelChunkSection : chunk.getSections()) { + for (LevelChunkSection levelChunkSection : chunk.getSections()) { - levelChunkSection.write(buf); + levelChunkSection.write(buf, chunkPacketInfo, chunkSectionIndex); + chunkSectionIndex++; + // Paper end } - } + diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java index 26e46d751c8f8162c2bafe2fc109fc91dc4b7c0f..6412dff5ed0505f62dd5b71ab9606257858a7317 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java @@ -1139,17 +1139,17 @@ index 5063eb6d4a24600262c32d2c9eb5fb5bf8fa354e..692a01b52a71e26887ee42cbd5fd64b0 public void destroyAndAck(BlockPos pos, int sequence, String reason) { diff --git a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java -index f3b96a921e7d085b51da62fa5493384a7ded1f9d..12f2bf95d3ea3d29f6b4b9ec38a92f7102daa4a1 100644 +index 9baae5af750b46ededbd660d15934da71befde72..8a360bf585041af8cd74dbb38d3c888c998289c5 100644 --- a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java +++ b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java -@@ -88,7 +88,10 @@ public class PlayerChunkSender { +@@ -87,7 +87,10 @@ public class PlayerChunkSender { public static void sendChunk(ServerGamePacketListenerImpl handler, ServerLevel world, LevelChunk chunk) { // Paper - rewrite chunk loader - public handler.player.serverLevel().chunkSource.chunkMap.getVisibleChunkIfPresent(chunk.getPos().toLong()).addPlayer(handler.player); -- handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), (BitSet)null, (BitSet)null)); +- handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), null, null)); + // Paper start - Anti-Xray + final boolean shouldModify = world.chunkPacketBlockController.shouldModify(handler.player, chunk); -+ handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), (BitSet)null, (BitSet)null, shouldModify)); ++ handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), null, null, shouldModify)); + // Paper end - Anti-Xray // Paper start - PlayerChunkLoadEvent if (io.papermc.paper.event.packet.PlayerChunkLoadEvent.getHandlerList().getRegisteredListeners().length > 0) { @@ -1280,18 +1280,18 @@ index b606e33f8b64eaba28c008cc353d88aa45549e31..8852263cb6faec1b68326145aa30e5cd public int getSerializedSize() { diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index dfae0918079425df92d958b04275be8ae60d4b60..0f930f8355ea99d1cb1a8d27edc1c224588f852f 100644 +index 2d7c6f00d399c7607e653078d77103a54509d03b..d473637a705c1f11079fff08e334545779a99a84 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -30,6 +30,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer - return 0; - }; +@@ -28,6 +28,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer + private static final int MIN_PALETTE_BITS = 0; + private final PaletteResize dummyPaletteResize = (newSize, added) -> 0; public final IdMap registry; + private final T @org.jetbrains.annotations.Nullable [] presetValues; // Paper - Anti-Xray - Add preset values private volatile PalettedContainer.Data data; private final PalettedContainer.Strategy strategy; // private final ThreadingDetector threadingDetector = new ThreadingDetector("PalettedContainer"); // Paper - unused -@@ -42,14 +43,19 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -40,14 +41,19 @@ public class PalettedContainer implements PaletteResize, PalettedContainer // this.threadingDetector.checkAndUnlock(); // Paper - disable this } @@ -1308,20 +1308,26 @@ index dfae0918079425df92d958b04275be8ae60d4b60..0f930f8355ea99d1cb1a8d27edc1c224 } public static Codec> codecRO(IdMap idList, Codec entryCodec, PalettedContainer.Strategy paletteProvider, T defaultValue) { - PalettedContainerRO.Unpacker> unpacker = (idListx, paletteProviderx, serialized) -> { -- return unpack(idListx, paletteProviderx, serialized).map((result) -> { -+ return unpack(idListx, paletteProviderx, serialized, defaultValue, null).map((result) -> { // Paper - Anti-Xray - Add preset values - return result; - }); - }; -@@ -66,19 +72,52 @@ public class PalettedContainer implements PaletteResize, PalettedContainer - }); + PalettedContainerRO.Unpacker> unpacker = (idListx, paletteProviderx, serialized) -> unpack( +- idListx, paletteProviderx, serialized ++ idListx, paletteProviderx, serialized, defaultValue, null // Paper - Anti-Xray - Add preset values + ) + .map(result -> (PalettedContainerRO)result); + return codec(idList, entryCodec, paletteProvider, defaultValue, unpacker); +@@ -71,25 +77,58 @@ public class PalettedContainer implements PaletteResize, PalettedContainer + ); } -- public PalettedContainer(IdMap idList, PalettedContainer.Strategy paletteProvider, PalettedContainer.Configuration dataProvider, BitStorage storage, List paletteEntries) { + // Paper start - Anti-Xray - Add preset values + @Deprecated @io.papermc.paper.annotation.DoNotUse public PalettedContainer(IdMap idList, PalettedContainer.Strategy paletteProvider, PalettedContainer.Configuration dataProvider, BitStorage storage, List paletteEntries) { this(idList, paletteProvider, dataProvider, storage, paletteEntries, null, null); } -+ public PalettedContainer(IdMap idList, PalettedContainer.Strategy paletteProvider, PalettedContainer.Configuration dataProvider, BitStorage storage, List paletteEntries, T defaultValue, T @org.jetbrains.annotations.Nullable [] presetValues) { + public PalettedContainer( + IdMap idList, + PalettedContainer.Strategy paletteProvider, + PalettedContainer.Configuration dataProvider, + BitStorage storage, +- List paletteEntries ++ List paletteEntries, T defaultValue, T @org.jetbrains.annotations.Nullable [] presetValues + ) { + this.presetValues = presetValues; this.registry = idList; this.strategy = paletteProvider; @@ -1369,8 +1375,8 @@ index dfae0918079425df92d958b04275be8ae60d4b60..0f930f8355ea99d1cb1a8d27edc1c224 + // Paper end this.strategy = paletteProvider; this.registry = idList; - this.data = this.createOrReuseData((PalettedContainer.Data)null, 0); -@@ -93,11 +132,33 @@ public class PalettedContainer implements PaletteResize, PalettedContainer + this.data = this.createOrReuseData(null, 0); +@@ -106,11 +145,33 @@ public class PalettedContainer implements PaletteResize, PalettedContainer @Override public synchronized int onResize(int newBits, T object) { // Paper - synchronize PalettedContainer.Data data = this.data; @@ -1405,7 +1411,7 @@ index dfae0918079425df92d958b04275be8ae60d4b60..0f930f8355ea99d1cb1a8d27edc1c224 public T getAndSet(int x, int y, int z, T value) { this.acquire(); -@@ -167,25 +228,34 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -177,24 +238,33 @@ public class PalettedContainer implements PaletteResize, PalettedContainer data.palette.read(buf); buf.readLongArray(data.storage.getRaw()); this.data = data; @@ -1413,7 +1419,6 @@ index dfae0918079425df92d958b04275be8ae60d4b60..0f930f8355ea99d1cb1a8d27edc1c224 } finally { this.release(); } - } + // Paper start - Anti-Xray; Add chunk packet info @@ -1435,15 +1440,15 @@ index dfae0918079425df92d958b04275be8ae60d4b60..0f930f8355ea99d1cb1a8d27edc1c224 } finally { this.release(); } - } -- private static DataResult> unpack(IdMap idList, PalettedContainer.Strategy paletteProvider, PalettedContainerRO.PackedData serialized) { -+ private static DataResult> unpack(IdMap idList, PalettedContainer.Strategy paletteProvider, PalettedContainerRO.PackedData serialized, T defaultValue, T @org.jetbrains.annotations.Nullable [] presetValues) { // Paper - Anti-Xray - Add preset values + private static DataResult> unpack( +- IdMap idList, PalettedContainer.Strategy paletteProvider, PalettedContainerRO.PackedData serialized ++ IdMap idList, PalettedContainer.Strategy paletteProvider, PalettedContainerRO.PackedData serialized, T defaultValue, T @org.jetbrains.annotations.Nullable [] presetValues // Paper - Anti-Xray - Add preset values + ) { List list = serialized.paletteEntries(); int i = paletteProvider.size(); - int j = paletteProvider.calculateBitsForSerialization(idList, list.size()); -@@ -225,7 +295,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -227,7 +297,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer } } @@ -1452,7 +1457,7 @@ index dfae0918079425df92d958b04275be8ae60d4b60..0f930f8355ea99d1cb1a8d27edc1c224 } @Override -@@ -285,12 +355,12 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -284,12 +354,12 @@ public class PalettedContainer implements PaletteResize, PalettedContainer } public PalettedContainer copy() { @@ -1467,7 +1472,7 @@ index dfae0918079425df92d958b04275be8ae60d4b60..0f930f8355ea99d1cb1a8d27edc1c224 } @Override -@@ -334,9 +404,18 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -328,9 +398,18 @@ public class PalettedContainer implements PaletteResize, PalettedContainer return 1 + this.palette.getSerializedSize() + VarInt.getByteSize(this.storage.getRaw().length) + this.storage.getRaw().length * 8; } diff --git a/patches/server/0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch index c9e2fc6398..05c9814be3 100644 --- a/patches/server/0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch +++ b/patches/server/0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch @@ -60,7 +60,7 @@ index 059ab637adf1be576fa1fff36a91b6c5f1b5f035..5afbb5b307cc67d86dd916dc8f7521d5 spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true); } else { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 651aceca9030e1f6060af9fc9f8d349dc0451728..acc9858e0cf10cb2aae0554037096411a208bd05 100644 +index 7fb2c0f2576142423cd0e50b811ce4f55795e43d..acc1751324f040accc4fc18914ed281e572358eb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -260,6 +260,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0993-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0993-Optimize-Collision-to-not-load-chunks.patch index b992c3fadf..cfa7f3d55e 100644 --- a/patches/server/0993-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/0993-Optimize-Collision-to-not-load-chunks.patch @@ -26,7 +26,7 @@ index 461c27292af06a5150de8ec263d0c8527e8c5278..37245ff682837e7e8c9647f4afe30f0d // CraftBukkit end entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 703b32362cf6a23dfe9326aa4e0ee74511e0d2cb..8531304667a85436fd557d319fe36a37b3661ae5 100644 +index a66fe080ee73171090abec48352ad0bd457a2a6f..d4c8f2cb1e3adf45863226ae9ad31968bc3445c9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -242,6 +242,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -38,61 +38,59 @@ index 703b32362cf6a23dfe9326aa4e0ee74511e0d2cb..8531304667a85436fd557d319fe36a37 public @org.jetbrains.annotations.Nullable net.minecraft.server.level.ChunkMap.TrackedEntity tracker; // Paper diff --git a/src/main/java/net/minecraft/world/level/BlockCollisions.java b/src/main/java/net/minecraft/world/level/BlockCollisions.java -index f2c423154ed6a00882a46d93b69ed4f6ba73782c..a3eaf80b020c3bbc0306c5d17659ee661dfd275b 100644 +index cd342fa776b5d84e52aa1660c19be9ab45eaad2d..f6cc3d550df8481086acdcb62f44a1051ae79f80 100644 --- a/src/main/java/net/minecraft/world/level/BlockCollisions.java +++ b/src/main/java/net/minecraft/world/level/BlockCollisions.java -@@ -65,22 +65,41 @@ public class BlockCollisions extends AbstractIterator { +@@ -66,18 +66,37 @@ public class BlockCollisions extends AbstractIterator { + @Override protected T computeNext() { - while(true) { - if (this.cursor.advance()) { -- int i = this.cursor.nextX(); -- int j = this.cursor.nextY(); -- int k = this.cursor.nextZ(); -+ int i = this.cursor.nextX(); final int x = i; // Paper -+ int j = this.cursor.nextY(); final int y = j; // Paper -+ int k = this.cursor.nextZ(); final int z = k; // Paper - int l = this.cursor.getNextType(); - if (l == 3) { - continue; - } -+ // Paper start - ensure we don't load chunks -+ final @Nullable Entity source = this.context instanceof net.minecraft.world.phys.shapes.EntityCollisionContext entityContext ? entityContext.getEntity() : null; -+ boolean far = source != null && io.papermc.paper.util.MCUtil.distanceSq(source.getX(), y, source.getZ(), x, y, z) > 14; -+ this.pos.set(x, y, z); - + while (this.cursor.advance()) { +- int i = this.cursor.nextX(); +- int j = this.cursor.nextY(); +- int k = this.cursor.nextZ(); ++ int i = this.cursor.nextX(); final int x = i; // Paper - OBFHELPER ++ int j = this.cursor.nextY(); final int y = j; // Paper - OBFHELPER ++ int k = this.cursor.nextZ(); final int z = k; // Paper - OBFHELPER + int l = this.cursor.getNextType(); + if (l != 3) { - BlockGetter blockGetter = this.getChunk(i, k); -- if (blockGetter == null) { -+ BlockState blockState; -+ if (this.collisionGetter instanceof net.minecraft.server.level.WorldGenRegion) { -+ BlockGetter blockGetter = this.getChunk(x, z); -+ if (blockGetter == null) { -+ continue; +- if (blockGetter != null) { +- this.pos.set(i, j, k); +- BlockState blockState = blockGetter.getBlockState(this.pos); +- if ((!this.onlySuffocatingBlocks || blockState.isSuffocating(blockGetter, this.pos)) +- && (l != 1 || blockState.hasLargeCollisionShape()) +- && (l != 2 || blockState.is(Blocks.MOVING_PISTON))) { ++ // Paper start - ensure we don't load chunks ++ // BlockGetter blockGetter = this.getChunk(i, k); ++ if (true) { ++ final @Nullable Entity source = this.context instanceof net.minecraft.world.phys.shapes.EntityCollisionContext entityContext ? entityContext.getEntity() : null; ++ boolean far = source != null && io.papermc.paper.util.MCUtil.distanceSq(source.getX(), y, source.getZ(), x, y, z) > 14; ++ this.pos.set(x, y, z); ++ BlockState blockState; ++ if (this.collisionGetter instanceof net.minecraft.server.level.WorldGenRegion) { ++ BlockGetter blockGetter = this.getChunk(x, z); ++ if (blockGetter == null) { ++ continue; ++ } ++ blockState = blockGetter.getBlockState(this.pos); ++ } else if ((!far && source instanceof net.minecraft.server.level.ServerPlayer) || (source != null && source.collisionLoadChunks)) { ++ blockState = this.collisionGetter.getBlockState(this.pos); ++ } else { ++ blockState = this.collisionGetter.getBlockStateIfLoaded(this.pos); + } -+ blockState = blockGetter.getBlockState(this.pos); -+ } else if ((!far && source instanceof net.minecraft.server.level.ServerPlayer) || (source != null && source.collisionLoadChunks)) { -+ blockState = this.collisionGetter.getBlockState(this.pos); -+ } else { -+ blockState = this.collisionGetter.getBlockStateIfLoaded(this.pos); -+ } -+ -+ if (blockState == null) { -+ if (!(source instanceof net.minecraft.server.level.ServerPlayer) || source.level().paperConfig().chunks.preventMovingIntoUnloadedChunks) { -+ return this.resultProvider.apply(new BlockPos.MutableBlockPos(x, y, z), Shapes.create(far ? source.getBoundingBox() : new AABB(new BlockPos(x, y, z)))); ++ if (blockState == null) { ++ if (!(source instanceof net.minecraft.server.level.ServerPlayer) || source.level().paperConfig().chunks.preventMovingIntoUnloadedChunks) { ++ return this.resultProvider.apply(new BlockPos.MutableBlockPos(x, y, z), Shapes.create(far ? source.getBoundingBox() : new AABB(new BlockPos(x, y, z)))); ++ } ++ continue; + } -+ // Paper end - continue; - } - -- this.pos.set(i, j, k); -- BlockState blockState = blockGetter.getBlockState(this.pos); -- if (this.onlySuffocatingBlocks && !blockState.isSuffocating(blockGetter, this.pos) || l == 1 && !blockState.hasLargeCollisionShape() || l == 2 && !blockState.is(Blocks.MOVING_PISTON)) { -+ // Paper - moved up -+ if (/*this.onlySuffocatingBlocks && (!blockState.isSuffocating(blockGetter, this.pos)) ||*/ l == 1 && !blockState.hasLargeCollisionShape() || l == 2 && !blockState.is(Blocks.MOVING_PISTON)) { // Paper - onlySuffocatingBlocks is only true on the client, so we don't care about it here - continue; - } - ++ if (/*(!this.onlySuffocatingBlocks || blockState.isSuffocating(blockGetter, this.pos)) &&*/ (l != 1 || blockState.hasLargeCollisionShape()) && (l != 2 || blockState.is(Blocks.MOVING_PISTON))) { // Paper - onlySuffocatingBlocks is only true on the client, so we don't care about it here ++ // Paper end + VoxelShape voxelShape = blockState.getCollisionShape(this.collisionGetter, this.pos, this.context); + if (voxelShape == Shapes.block()) { + if (this.box.intersects(i, j, k, i + 1.0, j + 1.0, k + 1.0)) { diff --git a/src/main/java/net/minecraft/world/level/CollisionGetter.java b/src/main/java/net/minecraft/world/level/CollisionGetter.java -index 140d10807a3a6806578cd203ba58383590c2f2c0..c476e37df8a75d77f5093b2a449e04f25ef2c2dd 100644 +index ea9a5e643d7ccce4e4d20644901c22cf63c6d890..69754fbebb51f7f804c97a749fd65ce15ae22f1b 100644 --- a/src/main/java/net/minecraft/world/level/CollisionGetter.java +++ b/src/main/java/net/minecraft/world/level/CollisionGetter.java @@ -44,11 +44,13 @@ public interface CollisionGetter extends BlockGetter { @@ -100,7 +98,7 @@ index 140d10807a3a6806578cd203ba58383590c2f2c0..c476e37df8a75d77f5093b2a449e04f2 default boolean noCollision(@Nullable Entity entity, AABB box) { + try { if (entity != null) entity.collisionLoadChunks = true; // Paper - for(VoxelShape voxelShape : this.getBlockCollisions(entity, box)) { + for (VoxelShape voxelShape : this.getBlockCollisions(entity, box)) { if (!voxelShape.isEmpty()) { return false; } diff --git a/patches/server/0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch index 8e879a28af..dcbd7aff42 100644 --- a/patches/server/0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch +++ b/patches/server/0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch @@ -58,10 +58,10 @@ index 16f9a98b8a939e5ca7e2dc04f87134a7ed66736b..dd423302b1baa64ef86ded87a2965934 protected int adjustedTickDelay(int ticks) { diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java -index e5995d0db5dcfba59a873ff439601894fdacd556..676f5485a4ca9252e911213dcda8d51776b637b6 100644 +index 040d62effc651d14d3557f8ff582cb078b74ae1e..38af5c7280366fd6ec077f3d914ea5f3ee77451a 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java -@@ -30,10 +30,12 @@ public class GoalSelector { +@@ -31,10 +31,12 @@ public class GoalSelector { private final Map lockedFlags = new EnumMap<>(Goal.Flag.class); private final Set availableGoals = Sets.newLinkedHashSet(); private final Supplier profiler; @@ -75,20 +75,16 @@ index e5995d0db5dcfba59a873ff439601894fdacd556..676f5485a4ca9252e911213dcda8d517 public GoalSelector(Supplier profiler) { this.profiler = profiler; -@@ -65,26 +67,32 @@ public class GoalSelector { +@@ -64,22 +66,32 @@ public class GoalSelector { } // Paper end public void removeGoal(Goal goal) { -- this.availableGoals.stream().filter((wrappedGoal) -> { -- return wrappedGoal.getGoal() == goal; -- }).filter(WrappedGoal::isRunning).forEach(WrappedGoal::stop); -- this.availableGoals.removeIf((wrappedGoal) -> { -- return wrappedGoal.getGoal() == goal; -- }); +- this.availableGoals.stream().filter(wrappedGoal -> wrappedGoal.getGoal() == goal).filter(WrappedGoal::isRunning).forEach(WrappedGoal::stop); +- this.availableGoals.removeIf(wrappedGoal -> wrappedGoal.getGoal() == goal); - } - - private static boolean goalContainsAnyFlags(WrappedGoal goal, EnumSet controls) { -- for(Goal.Flag flag : goal.getFlags()) { +- for (Goal.Flag flag : goal.getFlags()) { - if (controls.contains(flag)) { - return true; + // Paper start - remove streams from pathfindergoalselector @@ -111,7 +107,7 @@ index e5995d0db5dcfba59a873ff439601894fdacd556..676f5485a4ca9252e911213dcda8d517 } private static boolean goalCanBeReplacedForAllFlags(WrappedGoal goal, Map goalsByControl) { -- for(Goal.Flag flag : goal.getFlags()) { +- for (Goal.Flag flag : goal.getFlags()) { + // Paper start + long flagIterator = goal.getFlags().getBackingSet(); + int wrappedGoalSize = goal.getFlags().size(); @@ -122,21 +118,24 @@ index e5995d0db5dcfba59a873ff439601894fdacd556..676f5485a4ca9252e911213dcda8d517 if (!goalsByControl.getOrDefault(flag, NO_GOAL).canBeReplacedBy(goal)) { return false; } -@@ -98,7 +106,7 @@ public class GoalSelector { +@@ -93,7 +105,7 @@ public class GoalSelector { profilerFiller.push("goalCleanup"); - for(WrappedGoal wrappedGoal : this.availableGoals) { + for (WrappedGoal wrappedGoal : this.availableGoals) { - if (wrappedGoal.isRunning() && (goalContainsAnyFlags(wrappedGoal, this.disabledFlags) || !wrappedGoal.canContinueToUse())) { -+ if (wrappedGoal.isRunning() && (goalContainsAnyFlags(wrappedGoal, this.goalTypes) || !wrappedGoal.canContinueToUse())) { ++ if (wrappedGoal.isRunning() && (goalContainsAnyFlags(wrappedGoal, this.goalTypes) || !wrappedGoal.canContinueToUse())) { // Paper - Perf: optimize goal types by removing streams wrappedGoal.stop(); } } -@@ -116,8 +124,14 @@ public class GoalSelector { +@@ -111,11 +123,14 @@ public class GoalSelector { profilerFiller.push("goalUpdate"); - for(WrappedGoal wrappedGoal2 : this.availableGoals) { -- if (!wrappedGoal2.isRunning() && !goalContainsAnyFlags(wrappedGoal2, this.disabledFlags) && goalCanBeReplacedForAllFlags(wrappedGoal2, this.lockedFlags) && wrappedGoal2.canUse()) { -- for(Goal.Flag flag : wrappedGoal2.getFlags()) { + for (WrappedGoal wrappedGoal2 : this.availableGoals) { +- if (!wrappedGoal2.isRunning() +- && !goalContainsAnyFlags(wrappedGoal2, this.disabledFlags) +- && goalCanBeReplacedForAllFlags(wrappedGoal2, this.lockedFlags) +- && wrappedGoal2.canUse()) { +- for (Goal.Flag flag : wrappedGoal2.getFlags()) { + // Paper start + if (!wrappedGoal2.isRunning() && !goalContainsAnyFlags(wrappedGoal2, this.goalTypes) && goalCanBeReplacedForAllFlags(wrappedGoal2, this.lockedFlags) && wrappedGoal2.canUse()) { + long flagIterator = wrappedGoal2.getFlags().getBackingSet(); @@ -148,7 +147,7 @@ index e5995d0db5dcfba59a873ff439601894fdacd556..676f5485a4ca9252e911213dcda8d517 WrappedGoal wrappedGoal3 = this.lockedFlags.getOrDefault(flag, NO_GOAL); wrappedGoal3.stop(); this.lockedFlags.put(flag, wrappedGoal2); -@@ -157,11 +171,11 @@ public class GoalSelector { +@@ -155,11 +170,11 @@ public class GoalSelector { } public void disableControlFlag(Goal.Flag control) { @@ -163,7 +162,7 @@ index e5995d0db5dcfba59a873ff439601894fdacd556..676f5485a4ca9252e911213dcda8d517 public void setControlFlag(Goal.Flag control, boolean enabled) { diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/WrappedGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/WrappedGoal.java -index 6665ce5f48316e626907e6937d5ef1bc398a7ebd..51deb4455cac055ffa455e4f34aa30858d2fb448 100644 +index b02d3deb550830245c8945ef17d3073ea930fdda..65ccdbaa5230c02d44a5959bca0f6fc30237a6fd 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/WrappedGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/WrappedGoal.java @@ -69,8 +69,10 @@ public class WrappedGoal extends Goal { diff --git a/patches/server/0995-Entity-load-save-limit-per-chunk.patch b/patches/server/0995-Entity-load-save-limit-per-chunk.patch index 69f16dddbf..85299c2e1e 100644 --- a/patches/server/0995-Entity-load-save-limit-per-chunk.patch +++ b/patches/server/0995-Entity-load-save-limit-per-chunk.patch @@ -34,10 +34,10 @@ index 69bdf3f2ee731e59e8d454816a9ca72cb49c0fe0..09e8445a3f8c6b3ebc852a75a9a25b41 return entity; }); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -index 0ec0be22f7292d57c40da6f1f4575bdebf8dbd09..23dc37ff1f92951817864963bf93220d5aae91bb 100644 +index e8f8e1f2128df81705a88cee4b9a7760fb123750..995fbfa225efe40274c20608b9b30b8afa847698 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -@@ -110,7 +110,18 @@ public class EntityStorage implements EntityPersistentStorage { +@@ -109,7 +109,18 @@ public class EntityStorage implements EntityPersistentStorage { } ListTag listTag = new ListTag(); diff --git a/patches/server/0997-Improved-Watchdog-Support.patch b/patches/server/0997-Improved-Watchdog-Support.patch index 3df0b44629..720936ff38 100644 --- a/patches/server/0997-Improved-Watchdog-Support.patch +++ b/patches/server/0997-Improved-Watchdog-Support.patch @@ -279,17 +279,17 @@ index 37245ff682837e7e8c9647f4afe30f0dd87cb384..594cb6ce4bfa6c42212000a1ed983ea9 // Paper start - Configurable player collision; Remove from collideRule team if needed diff --git a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java -index f5829ae484d93b547a5437b85a9621346384a11b..83701fbfaa56a232593ee8f11a3afb8941238bfa 100644 +index 03e8707258e9b73cf12a4750270ab7573bb1c812..d0dbe7e3c7c9c2727d5de456808765b2666108e4 100644 --- a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java +++ b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java -@@ -152,6 +152,7 @@ public abstract class BlockableEventLoop implements Profiler +@@ -148,6 +148,7 @@ public abstract class BlockableEventLoop implements Profiler try { task.run(); } catch (Exception var3) { + if (var3.getCause() instanceof ThreadDeath) throw var3; // Paper LOGGER.error(LogUtils.FATAL_MARKER, "Error executing task on {}", this.name(), var3); } - + } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java index 16e0b4bcc903e6decbdf66ac4fb3d0dc261dbded..983dad7ecc58033ecb6f523f7aef24de122417e8 100644 --- a/src/main/java/net/minecraft/world/level/Level.java diff --git a/patches/server/0998-Optimize-Voxel-Shape-Merging.patch b/patches/server/0998-Optimize-Voxel-Shape-Merging.patch index 2c47963e34..8bd2fe2682 100644 --- a/patches/server/0998-Optimize-Voxel-Shape-Merging.patch +++ b/patches/server/0998-Optimize-Voxel-Shape-Merging.patch @@ -30,7 +30,7 @@ Additionally, this lets us avoid even allocating new objects for this too, furth reducing memory usage. diff --git a/src/main/java/net/minecraft/world/phys/shapes/IndirectMerger.java b/src/main/java/net/minecraft/world/phys/shapes/IndirectMerger.java -index 0d9c15120148409967027dead617e80769939697..2214a3198c712deaac0f3d3478c85352185761d4 100644 +index e164c524aef4fa81fe96ac43454eecff1c38b9c1..9cfbbc61fcfc678f0988d6d45c7994d128051744 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/IndirectMerger.java +++ b/src/main/java/net/minecraft/world/phys/shapes/IndirectMerger.java @@ -10,12 +10,33 @@ public class IndirectMerger implements IndexMerger { @@ -68,10 +68,10 @@ index 0d9c15120148409967027dead617e80769939697..2214a3198c712deaac0f3d3478c85352 this.firstIndices = new int[k]; this.secondIndices = new int[k]; diff --git a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java -index 2d273be8145bbd86ffdf33358629da7fc08b4d4c..9176735c08a75854209f24113b0e78332249dc4d 100644 +index 1fbde2861b31726b8163e1b46aec91b7283a2c29..1a014f19f3c5425cc79a82c546066ab701fab1f8 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java +++ b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java -@@ -247,9 +247,21 @@ public final class Shapes { +@@ -286,9 +286,21 @@ public final class Shapes { } @VisibleForTesting @@ -93,12 +93,12 @@ index 2d273be8145bbd86ffdf33358629da7fc08b4d4c..9176735c08a75854209f24113b0e7833 + // Paper note - Rewrite below as optimized order if instead of nasty ternary if (first instanceof CubePointRange && second instanceof CubePointRange) { long l = lcm(i, j); - if ((long)size * l <= 256L) { -@@ -257,13 +269,22 @@ public final class Shapes { + if (size * l <= 256L) { +@@ -296,15 +308,22 @@ public final class Shapes { } } -- if (first.getDouble(i) < second.getDouble(0) - 1.0E-7D) { +- if (first.getDouble(i) < second.getDouble(0) - 1.0E-7) { + // Paper start - Identical happens more often than Disjoint + if (i == j && Objects.equals(first, second)) { + if (first instanceof IdenticalMerger) { @@ -107,12 +107,14 @@ index 2d273be8145bbd86ffdf33358629da7fc08b4d4c..9176735c08a75854209f24113b0e7833 + return (IndexMerger) second; + } + return new IdenticalMerger(first); -+ } else if (first.getDouble(i) < second.getDouble(0) - 1.0E-7D) { ++ } else if (first.getDouble(i) < second.getDouble(0) - 1.0E-7) { return new NonOverlappingMerger(first, second, false); - } else if (second.getDouble(j) < first.getDouble(0) - 1.0E-7D) { + } else if (second.getDouble(j) < first.getDouble(0) - 1.0E-7) { return new NonOverlappingMerger(second, first, true); } else { -- return (IndexMerger)(i == j && Objects.equals(first, second) ? new IdenticalMerger(first) : new IndirectMerger(first, second, includeFirst, includeSecond)); +- return (IndexMerger)(i == j && Objects.equals(first, second) +- ? new IdenticalMerger(first) +- : new IndirectMerger(first, second, includeFirst, includeSecond)); + return new IndirectMerger(first, second, includeFirst, includeSecond); } + // Paper end diff --git a/patches/server/0999-Write-SavedData-IO-async.patch b/patches/server/0999-Write-SavedData-IO-async.patch index a61e63bdcc..fc9b211347 100644 --- a/patches/server/0999-Write-SavedData-IO-async.patch +++ b/patches/server/0999-Write-SavedData-IO-async.patch @@ -139,7 +139,7 @@ index 697df9a9f050c0130246ce2b08a859965bddf184..0655a26a58b3df19d81b18abf6b8ab81 public static record Factory(Supplier constructor, Function deserializer, DataFixTypes type) { diff --git a/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java b/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java -index d051e8c1db6b5c42b8df0be54d9d48ba0e7b0077..1c16f43872d9cf9b087f247e9aaa04e7abe3d4ae 100644 +index de44680d9bc34c6ce22e12c3008019c8c6803437..b89bd2d046e99d0c4848579a5ab4385453358b89 100644 --- a/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java +++ b/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java @@ -20,15 +20,18 @@ import net.minecraft.util.datafix.DataFixTypes; @@ -186,5 +186,5 @@ index d051e8c1db6b5c42b8df0be54d9d48ba0e7b0077..1c16f43872d9cf9b087f247e9aaa04e7 + } + // Paper end - Write SavedData IO async } - }); + } diff --git a/patches/server/1001-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/1001-Use-distance-map-to-optimise-entity-tracker.patch index 986378b88f..8cf1aa5a19 100644 --- a/patches/server/1001-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/1001-Use-distance-map-to-optimise-entity-tracker.patch @@ -236,7 +236,7 @@ index ac1a4ff5f83e53fa2983ff6e834775e51fba715e..284f9548d62f9230c668bb1adb8cb808 return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8531304667a85436fd557d319fe36a37b3661ae5..f220e9ba35b07b690df93b1d733e9c666c772de9 100644 +index 5cc7043d2783d38f9d3a28d0cb62f8834e971e1e..eb269e90c62544d6e56ac8e6e81d0e5d4bc1f7e9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -56,6 +56,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; diff --git a/patches/server/1002-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1002-Optimize-Bit-Operations-by-inlining.patch index 269787b9ed..d32c7563e3 100644 --- a/patches/server/1002-Optimize-Bit-Operations-by-inlining.patch +++ b/patches/server/1002-Optimize-Bit-Operations-by-inlining.patch @@ -7,11 +7,11 @@ Inline bit operations and reduce instruction count to make these hot operations faster diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 541cef99113af865b995af2cfb7a1e4724dd8878..e17fa30966dea2836fb791becd032fc7d5cc2611 100644 +index aa27b96cf64ddbbc630e2c313ebff7636438aee0..70f9e737b3b9f80395afc3542aafe4a0c774c722 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java -@@ -37,15 +37,16 @@ public class BlockPos extends Vec3i { - }).stable(); +@@ -36,15 +36,16 @@ public class BlockPos extends Vec3i { + .stable(); private static final Logger LOGGER = LogUtils.getLogger(); public static final BlockPos ZERO = new BlockPos(0, 0, 0); - private static final int PACKED_X_LENGTH = 1 + Mth.log2(Mth.smallestEncompassingPowerOfTwo(30000000)); @@ -36,7 +36,7 @@ index 541cef99113af865b995af2cfb7a1e4724dd8878..e17fa30966dea2836fb791becd032fc7 public BlockPos(int x, int y, int z) { super(x, y, z); -@@ -55,28 +56,29 @@ public class BlockPos extends Vec3i { +@@ -54,28 +55,29 @@ public class BlockPos extends Vec3i { this(pos.getX(), pos.getY(), pos.getZ()); } @@ -71,20 +71,20 @@ index 541cef99113af865b995af2cfb7a1e4724dd8878..e17fa30966dea2836fb791becd032fc7 } public static BlockPos containing(double x, double y, double z) { -@@ -92,10 +94,7 @@ public class BlockPos extends Vec3i { +@@ -91,10 +93,7 @@ public class BlockPos extends Vec3i { } public static long asLong(int x, int y, int z) { - long l = 0L; -- l |= ((long)x & PACKED_X_MASK) << X_OFFSET; -- l |= ((long)y & PACKED_Y_MASK) << 0; -- return l | ((long)z & PACKED_Z_MASK) << Z_OFFSET; +- l |= (x & PACKED_X_MASK) << X_OFFSET; +- l |= (y & PACKED_Y_MASK) << 0; +- return l | (z & PACKED_Z_MASK) << Z_OFFSET; + return (((long) x & (long) 67108863) << 38) | (((long) y & (long) 4095)) | (((long) z & (long) 67108863) << 12); // Paper - inline constants and simplify } public static long getFlatIndex(long y) { diff --git a/src/main/java/net/minecraft/core/SectionPos.java b/src/main/java/net/minecraft/core/SectionPos.java -index eb97928380384b8c33cf142dd9a5db65951c94c6..392c3681c08d9e3d99cbabaf72d22c1d1518998d 100644 +index 469e6156704418b6b8f573baee8289726a7a6587..02500dba0c6645add80a73bc837a90331a864652 100644 --- a/src/main/java/net/minecraft/core/SectionPos.java +++ b/src/main/java/net/minecraft/core/SectionPos.java @@ -38,7 +38,7 @@ public class SectionPos extends Vec3i { @@ -180,9 +180,9 @@ index eb97928380384b8c33cf142dd9a5db65951c94c6..392c3681c08d9e3d99cbabaf72d22c1d + public static long asLong(int x, int y, int z) { - long l = 0L; -- l |= ((long)x & 4194303L) << 42; -- l |= ((long)y & 1048575L) << 0; -- return l | ((long)z & 4194303L) << 20; +- l |= (x & 4194303L) << 42; +- l |= (y & 1048575L) << 0; +- return l | (z & 4194303L) << 20; + return (((long) x & 4194303L) << 42) | (((long) y & 1048575L)) | (((long) z & 4194303L) << 20); // Paper - Simplify to reduce instruction count } @@ -210,4 +210,4 @@ index eb97928380384b8c33cf142dd9a5db65951c94c6..392c3681c08d9e3d99cbabaf72d22c1d + return betweenClosedStream(center.x - radius, 0, center.z - radius, center.x + radius, 15, center.z + radius); // Paper - simplify/inline } - public static Stream betweenClosedStream(final int minX, final int minY, final int minZ, final int maxX, final int maxY, final int maxZ) { + public static Stream betweenClosedStream(int minX, int minY, int minZ, int maxX, int maxY, int maxZ) { diff --git a/patches/server/1003-Remove-streams-from-hot-code.patch b/patches/server/1003-Remove-streams-from-hot-code.patch index 75a38173c7..8e8133d2b2 100644 --- a/patches/server/1003-Remove-streams-from-hot-code.patch +++ b/patches/server/1003-Remove-streams-from-hot-code.patch @@ -7,10 +7,10 @@ Co-authored-by: Bjarne Koll Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java -index 4b31a91a8d8a3b231e323692d0a0f7ae04dc7e89..79e7a7adf9f9d8b9fee7ae3bb3bebab86fa7fd72 100644 +index 5ca112631cce775c609950d3540059f54033fd3e..5e13c5d7534397b902889b8dde9037da114b1039 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java -@@ -52,7 +52,7 @@ public class GateBehavior implements BehaviorControl +@@ -57,7 +57,7 @@ public class GateBehavior implements BehaviorControl if (this.hasRequiredMemories(entity)) { this.status = Behavior.Status.RUNNING; this.orderPolicy.apply(this.behaviors); @@ -19,15 +19,11 @@ index 4b31a91a8d8a3b231e323692d0a0f7ae04dc7e89..79e7a7adf9f9d8b9fee7ae3bb3bebab8 return true; } else { return false; -@@ -61,11 +61,13 @@ public class GateBehavior implements BehaviorControl +@@ -66,7 +66,13 @@ public class GateBehavior implements BehaviorControl @Override public final void tickOrStop(ServerLevel world, E entity, long time) { -- this.behaviors.stream().filter((task) -> { -- return task.getStatus() == Behavior.Status.RUNNING; -- }).forEach((task) -> { -- task.tickOrStop(world, entity, time); -- }); +- this.behaviors.stream().filter(task -> task.getStatus() == Behavior.Status.RUNNING).forEach(task -> task.tickOrStop(world, entity, time)); + // Paper start - Perf: Remove streams from hot code + for (final BehaviorControl task : this.behaviors) { + if (task.getStatus() == Behavior.Status.RUNNING) { @@ -35,18 +31,14 @@ index 4b31a91a8d8a3b231e323692d0a0f7ae04dc7e89..79e7a7adf9f9d8b9fee7ae3bb3bebab8 + } + } + // Paper end - Perf: Remove streams from hot code - if (this.behaviors.stream().noneMatch((task) -> { - return task.getStatus() == Behavior.Status.RUNNING; - })) { -@@ -77,12 +79,16 @@ public class GateBehavior implements BehaviorControl + if (this.behaviors.stream().noneMatch(task -> task.getStatus() == Behavior.Status.RUNNING)) { + this.doStop(world, entity, time); + } +@@ -75,8 +81,16 @@ public class GateBehavior implements BehaviorControl @Override public final void doStop(ServerLevel world, E entity, long time) { this.status = Behavior.Status.STOPPED; -- this.behaviors.stream().filter((task) -> { -- return task.getStatus() == Behavior.Status.RUNNING; -- }).forEach((task) -> { -- task.doStop(world, entity, time); -- }); +- this.behaviors.stream().filter(task -> task.getStatus() == Behavior.Status.RUNNING).forEach(task -> task.doStop(world, entity, time)); - this.exitErasedMemories.forEach(entity.getBrain()::eraseMemory); + // Paper start - Perf: Remove streams from hot code + for (final BehaviorControl task : this.behaviors) { @@ -61,18 +53,14 @@ index 4b31a91a8d8a3b231e323692d0a0f7ae04dc7e89..79e7a7adf9f9d8b9fee7ae3bb3bebab8 } @Override -@@ -116,26 +122,30 @@ public class GateBehavior implements BehaviorControl +@@ -111,18 +125,30 @@ public class GateBehavior implements BehaviorControl public static enum RunningPolicy { RUN_ONE { + // Paper start - Perf: Remove streams from hot code @Override - public void apply(Stream> tasks, ServerLevel world, E entity, long time) { -- tasks.filter((task) -> { -- return task.getStatus() == Behavior.Status.STOPPED; -- }).filter((task) -> { -- return task.tryStart(world, entity, time); -- }).findFirst(); +- tasks.filter(task -> task.getStatus() == Behavior.Status.STOPPED).filter(task -> task.tryStart(world, entity, time)).findFirst(); + public void apply(ShufflingList> tasks, ServerLevel world, E entity, long time) { + for (final BehaviorControl task : tasks) { + if (task.getStatus() == Behavior.Status.STOPPED && task.tryStart(world, entity, time)) { @@ -86,11 +74,7 @@ index 4b31a91a8d8a3b231e323692d0a0f7ae04dc7e89..79e7a7adf9f9d8b9fee7ae3bb3bebab8 + // Paper start - Perf: Remove streams from hot code @Override - public void apply(Stream> tasks, ServerLevel world, E entity, long time) { -- tasks.filter((task) -> { -- return task.getStatus() == Behavior.Status.STOPPED; -- }).forEach((task) -> { -- task.tryStart(world, entity, time); -- }); +- tasks.filter(task -> task.getStatus() == Behavior.Status.STOPPED).forEach(task -> task.tryStart(world, entity, time)); + public void apply(ShufflingList> tasks, ServerLevel world, E entity, long time) { + for (final BehaviorControl task : tasks) { + if (task.getStatus() == Behavior.Status.STOPPED) { @@ -106,11 +90,11 @@ index 4b31a91a8d8a3b231e323692d0a0f7ae04dc7e89..79e7a7adf9f9d8b9fee7ae3bb3bebab8 } } diff --git a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java -index f1e717dc8320a00c0cc0ff53d97b74e7c1e109fe..2240fc6d5ba9530fcd62d6b560c17a275d4f164a 100644 +index aa32804bc9affe9a615d3ffaa513f6f09aab3f32..c7f012674361a323c1efeca4660cd3f46d308ee1 100644 --- a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java +++ b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java -@@ -61,8 +61,22 @@ public class GossipContainer { - }); +@@ -59,8 +59,22 @@ public class GossipContainer { + return this.gossips.entrySet().stream().flatMap(entry -> entry.getValue().unpack(entry.getKey())); } + // Paper start - Perf: Remove streams from hot code @@ -133,24 +117,25 @@ index f1e717dc8320a00c0cc0ff53d97b74e7c1e109fe..2240fc6d5ba9530fcd62d6b560c17a27 if (list.isEmpty()) { return Collections.emptyList(); } else { -@@ -156,7 +170,7 @@ public class GossipContainer { - } +@@ -145,7 +159,7 @@ public class GossipContainer { public T store(DynamicOps ops) { -- return GossipContainer.GossipEntry.LIST_CODEC.encodeStart(ops, this.unpack().toList()).resultOrPartial((error) -> { -+ return GossipContainer.GossipEntry.LIST_CODEC.encodeStart(ops, this.decompress()).resultOrPartial((error) -> { // Paper - Perf: Remove streams from hot code - LOGGER.warn("Failed to serialize gossips: {}", (Object)error); - }).orElseGet(ops::emptyList); + return GossipContainer.GossipEntry.LIST_CODEC +- .encodeStart(ops, this.unpack().toList()) ++ .encodeStart(ops, this.decompress()) // Paper - Perf: Remove streams from hot code + .resultOrPartial(error -> LOGGER.warn("Failed to serialize gossips: {}", error)) + .orElseGet(ops::emptyList); } -@@ -184,11 +198,23 @@ public class GossipContainer { +@@ -172,12 +186,23 @@ public class GossipContainer { final Object2IntMap entries = new Object2IntOpenHashMap<>(); public int weightedValue(Predicate gossipTypeFilter) { -- return this.entries.object2IntEntrySet().stream().filter((entry) -> { -- return gossipTypeFilter.test(entry.getKey()); -- }).mapToInt((entry) -> { -- return entry.getIntValue() * (entry.getKey()).weight; -- }).sum(); +- return this.entries +- .object2IntEntrySet() +- .stream() +- .filter(entry -> gossipTypeFilter.test(entry.getKey())) +- .mapToInt(entry -> entry.getIntValue() * entry.getKey().weight) +- .sum(); + // Paper start - Perf: Remove streams from hot code + int weight = 0; + for (Object2IntMap.Entry entry : entries.object2IntEntrySet()) { @@ -172,22 +157,21 @@ index f1e717dc8320a00c0cc0ff53d97b74e7c1e109fe..2240fc6d5ba9530fcd62d6b560c17a27 public Stream unpack(UUID target) { diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java -index a41c3365db8e9999b686f5bf4bd888458cee43a5..18e2fd705fe0db7cb9e3afe1ce7c8dcfaf93b1a5 100644 +index 28fd073ddad358e087e8c78985a97cad21be81b7..a5bd308d1b3ea5db185c06a287167d1d8894a987 100644 --- a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java +++ b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java -@@ -25,14 +25,18 @@ public class NearestItemSensor extends Sensor { +@@ -24,13 +24,17 @@ public class NearestItemSensor extends Sensor { + @Override protected void doTick(ServerLevel world, Mob entity) { Brain brain = entity.getBrain(); - List list = world.getEntitiesOfClass(ItemEntity.class, entity.getBoundingBox().inflate(32.0D, 16.0D, 32.0D), (itemEntity) -> { -- return true; -+ return itemEntity.closerThan(entity, MAX_DISTANCE_TO_WANTED_ITEM) && entity.wantsToPickUp(itemEntity.getItem()); // Paper - Perf: Move predicate into getEntities - }); +- List list = world.getEntitiesOfClass(ItemEntity.class, entity.getBoundingBox().inflate(32.0, 16.0, 32.0), itemEntity -> true); ++ List list = world.getEntitiesOfClass(ItemEntity.class, entity.getBoundingBox().inflate(32.0, 16.0, 32.0), itemEntity -> itemEntity.closerThan(entity, MAX_DISTANCE_TO_WANTED_ITEM) && entity.wantsToPickUp(itemEntity.getItem())); // Paper - Perf: Move predicate into getEntities list.sort(Comparator.comparingDouble(entity::distanceToSqr)); -- Optional optional = list.stream().filter((itemEntity) -> { -- return entity.wantsToPickUp(itemEntity.getItem()); -- }).filter((itemEntity) -> { -- return itemEntity.closerThan(entity, 32.0D); -- }).filter(entity::hasLineOfSight).findFirst(); +- Optional optional = list.stream() +- .filter(itemEntity -> entity.wantsToPickUp(itemEntity.getItem())) +- .filter(itemEntity -> itemEntity.closerThan(entity, 32.0)) +- .filter(entity::hasLineOfSight) +- .findFirst(); - brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM, optional); + // Paper start - Perf: remove streams from hot code + ItemEntity nearest = null; @@ -202,42 +186,29 @@ index a41c3365db8e9999b686f5bf4bd888458cee43a5..18e2fd705fe0db7cb9e3afe1ce7c8dcf } } diff --git a/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java b/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java -index bb8d8edb47621665872a5e8fc01512ba40c1b913..dcb62d768d234f60af77ffb589ac2011afcfae4b 100644 +index 14d3f57fa796776e372cfe722471cdf8d4166b44..7cd8e444cd33a0995eda56e3be931780c3f501d9 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java +++ b/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java -@@ -36,9 +36,10 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { +@@ -35,9 +35,10 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { int j = pos.getMinBlockZ(); ObjectList objectList = new ObjectArrayList<>(10); ObjectList objectList2 = new ObjectArrayList<>(32); -- world.startsForStructure(pos, (structure) -> { +- world.startsForStructure(pos, structure -> structure.terrainAdaptation() != TerrainAdjustment.NONE) +- .forEach( +- start -> { + // Paper start - Perf: Remove streams from hot code + for (net.minecraft.world.level.levelgen.structure.StructureStart start : world.startsForStructure(pos, (structure) -> { - return structure.terrainAdaptation() != TerrainAdjustment.NONE; -- }).forEach((start) -> { ++ return structure.terrainAdaptation() != TerrainAdjustment.NONE; + })) { // Paper end - Perf: Remove streams from hot code - TerrainAdjustment terrainAdjustment = start.getStructure().terrainAdaptation(); + TerrainAdjustment terrainAdjustment = start.getStructure().terrainAdaptation(); - for(StructurePiece structurePiece : start.getPieces()) { -@@ -51,9 +52,11 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { - } - - for(JigsawJunction jigsawJunction : poolElementStructurePiece.getJunctions()) { -- int i = jigsawJunction.getSourceX(); -- int j = jigsawJunction.getSourceZ(); -- if (i > i - 12 && j > j - 12 && i < i + 15 + 12 && j < j + 15 + 12) { -+ // Paper start - decompile fix -+ int i2 = jigsawJunction.getSourceX(); -+ int j2 = jigsawJunction.getSourceZ(); -+ if (i2 > i - 12 && j2 > j - 12 && i2 < i + 15 + 12 && j2 < j + 15 + 12) { -+ // Paper end - decompile fix - objectList2.add(jigsawJunction); + for (StructurePiece structurePiece : start.getPieces()) { +@@ -65,8 +66,7 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { } } -@@ -63,7 +66,7 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { - } - } - -- }); + } +- } +- ); + } // Paper - Perf: Remove streams from hot code return new Beardifier(objectList.iterator(), objectList2.iterator()); } diff --git a/patches/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch index f0c0562d70..8ed7b79355 100644 --- a/patches/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch +++ b/patches/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch @@ -16,16 +16,15 @@ This lets us get faster foreach iteration, as well as avoids map lookups on the values when needed. diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java -index 8519383a9abd45434c1e9888e77548941a80c79c..8aa4ac3a6affbe888d6084a27b668c58dfda6c79 100644 +index 3e27c9a74c38f11a436df8cd413f9f5f16fd8c3e..c4d6b145d54aaf415dd4b08811c024255092e1b8 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java -@@ -38,9 +38,12 @@ public class PathFinder { +@@ -38,8 +38,12 @@ public class PathFinder { if (node == null) { return null; } else { -- Map map = positions.stream().collect(Collectors.toMap((pos) -> { -- return this.nodeEvaluator.getGoal((double)pos.getX(), (double)pos.getY(), (double)pos.getZ()); -- }, Function.identity())); +- Map map = positions.stream() +- .collect(Collectors.toMap(pos -> this.nodeEvaluator.getGoal(pos.getX(), pos.getY(), pos.getZ()), Function.identity())); + // Paper start - Perf: remove streams and optimize collection + List> map = Lists.newArrayList(); + for (BlockPos pos : positions) { @@ -35,7 +34,7 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..8aa4ac3a6affbe888d6084a27b668c58 Path path = this.findPath(world.getProfiler(), node, map, followRange, distance, rangeMultiplier); this.nodeEvaluator.done(); return path; -@@ -48,18 +51,19 @@ public class PathFinder { +@@ -47,18 +51,19 @@ public class PathFinder { } @Nullable @@ -57,19 +56,19 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..8aa4ac3a6affbe888d6084a27b668c58 int i = 0; - Set set3 = Sets.newHashSetWithExpectedSize(set.size()); + List> entryList = Lists.newArrayListWithExpectedSize(positions.size()); // Paper - optimize collection - int j = (int)((float)this.maxVisitedNodes * rangeMultiplier); + int j = (int)(this.maxVisitedNodes * rangeMultiplier); - while(!this.openSet.isEmpty()) { -@@ -71,14 +75,18 @@ public class PathFinder { + while (!this.openSet.isEmpty()) { +@@ -69,14 +74,18 @@ public class PathFinder { Node node = this.openSet.pop(); node.closed = true; -- for(Target target : set) { +- for (Target target : set) { + // Paper start - optimize collection -+ for(int i1 = 0; i1 < positions.size(); i1++) { ++ for (int i1 = 0; i1 < positions.size(); i1++) { + final Map.Entry entry = positions.get(i1); + Target target = entry.getKey(); - if (node.distanceManhattan(target) <= (float)distance) { + if (node.distanceManhattan(target) <= distance) { target.setReached(); - set3.add(target); + entryList.add(entry); @@ -82,7 +81,7 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..8aa4ac3a6affbe888d6084a27b668c58 break; } -@@ -93,7 +101,7 @@ public class PathFinder { +@@ -91,7 +100,7 @@ public class PathFinder { if (node2.walkedDistance < followRange && (!node2.inOpenSet() || g < node2.g)) { node2.cameFrom = node; node2.g = g; @@ -91,15 +90,15 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..8aa4ac3a6affbe888d6084a27b668c58 if (node2.inOpenSet()) { this.openSet.changeCost(node2, node2.g + node2.h); } else { -@@ -105,23 +113,32 @@ public class PathFinder { +@@ -103,23 +112,32 @@ public class PathFinder { } } -- Optional optional = !set3.isEmpty() ? set3.stream().map((node) -> { -- return this.reconstructPath(node.getBestNode(), positions.get(node), true); -- }).min(Comparator.comparingInt(Path::getNodeCount)) : set.stream().map((target) -> { -- return this.reconstructPath(target.getBestNode(), positions.get(target), false); -- }).min(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); +- Optional optional = !set3.isEmpty() +- ? set3.stream().map(node -> this.reconstructPath(node.getBestNode(), positions.get(node), true)).min(Comparator.comparingInt(Path::getNodeCount)) +- : set.stream() +- .map(targetx -> this.reconstructPath(targetx.getBestNode(), positions.get(targetx), false)) +- .min(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); + // Paper start - Perf: remove streams and optimize collection + Path best = null; + boolean entryListIsEmpty = entryList.isEmpty(); @@ -124,7 +123,7 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..8aa4ac3a6affbe888d6084a27b668c58 + private float getBestH(Node node, List> targets) { // Paper - Perf: remove streams and optimize collection; Set -> List> float f = Float.MAX_VALUE; -- for(Target target : targets) { +- for (Target target : targets) { + // Paper start - Perf: remove streams and optimize collection + for (int i = 0, targetsSize = targets.size(); i < targetsSize; i++) { + final Target target = targets.get(i).getKey(); diff --git a/patches/server/1006-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/1006-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch index 14c24b80b2..de82ef89da 100644 --- a/patches/server/1006-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch +++ b/patches/server/1006-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch @@ -168,7 +168,7 @@ index 743a2adc465be5477d204185967265389d7102de..9c17c14de888ef3fbf4139cbad3889ec return itemstack; diff --git a/src/main/java/net/minecraft/world/inventory/MerchantResultSlot.java b/src/main/java/net/minecraft/world/inventory/MerchantResultSlot.java -index e49bbb803399ef696665c5844a18b55a551654f6..23c1ba476869c9846a63138a8a11154bfd9379a2 100644 +index 26227033613a641a9d5a6f29356b19e54753b3f1..c2376538215604210d08acd33e8e5fdc8a35c7d3 100644 --- a/src/main/java/net/minecraft/world/inventory/MerchantResultSlot.java +++ b/src/main/java/net/minecraft/world/inventory/MerchantResultSlot.java @@ -47,13 +47,32 @@ public class MerchantResultSlot extends Slot { diff --git a/patches/server/1007-Improve-boat-collision-performance.patch b/patches/server/1007-Improve-boat-collision-performance.patch index f0c60b4a39..d32dfc35cc 100644 --- a/patches/server/1007-Improve-boat-collision-performance.patch +++ b/patches/server/1007-Improve-boat-collision-performance.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Improve boat collision performance diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index edf937591abf62416bd692e40b7b7a6badbe877d..b40864e41e1506884fdefefbf3cf4833a8f706c3 100644 +index 72e734af483dc03e1ae947b2ab3b6fa7df38ce62..01a12f4d6f3c2f09bffc78692443b9fd391db45a 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -121,6 +121,7 @@ public class Util { - }).findFirst().orElseThrow(() -> { - return new IllegalStateException("No jar file system provider found"); - }); +@@ -123,6 +123,7 @@ public class Util { + .filter(fileSystemProvider -> fileSystemProvider.getScheme().equalsIgnoreCase("jar")) + .findFirst() + .orElseThrow(() -> new IllegalStateException("No jar file system provider found")); + public static final double COLLISION_EPSILON = 1.0E-7; // Paper - Improve boat collision performance - private static Consumer thePauser = (message) -> { + private static Consumer thePauser = message -> { }; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3f3498e0a24ad8b890173ce71cd63c1fffb561df..e35dd853bbffbf1771543d2a59878879cd09fb9c 100644 +index aa261d3ad04bc3a19b3200214214650d9a9ac2af..a9d549d1f35928b7e9220e1e2e4ac30f3199ba2d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1446,7 +1446,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1008-Optimise-general-POI-access.patch b/patches/server/1008-Optimise-general-POI-access.patch index 9be40e9753..715dea7d5c 100644 --- a/patches/server/1008-Optimise-general-POI-access.patch +++ b/patches/server/1008-Optimise-general-POI-access.patch @@ -841,33 +841,38 @@ index 0000000000000000000000000000000000000000..69be1761b3b5ba7b496c1c10a4db897e + } +} diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -index a0799baca3ae05ef1ff818abfe6a53d28fd99246..abcc3ef59475ac170fd10b4dd4a4f3371faf17e0 100644 +index e8aa27547e3fa1a42720889c7038d4fb0273e7b5..e1b6fe9ecda25f86431baf414f1bfd3a26a8b2bd 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -@@ -63,7 +63,11 @@ public class AcquirePoi { - return true; - } - }; -- Set, BlockPos>> set = poiManager.findAllClosestFirstWithType(poiPredicate, predicate2, entity.blockPosition(), 48, PoiManager.Occupancy.HAS_SPACE).limit(5L).collect(Collectors.toSet()); -+ // Paper start - optimise POI access -+ java.util.List, BlockPos>> poiposes = new java.util.ArrayList<>(); -+ io.papermc.paper.util.PoiAccess.findNearestPoiPositions(poiManager, poiPredicate, predicate2, entity.blockPosition(), 48, 48*48, PoiManager.Occupancy.HAS_SPACE, false, 5, poiposes); -+ Set, BlockPos>> set = new java.util.HashSet<>(poiposes); -+ // Paper end - optimise POI access - Path path = findPathToPois(entity, set); - if (path != null && path.canReach()) { - BlockPos blockPos = path.getTarget(); +@@ -71,11 +71,11 @@ public class AcquirePoi { + return true; + } + }; +- Set, BlockPos>> set = poiManager.findAllClosestFirstWithType( +- poiPredicate, predicate2, entity.blockPosition(), 48, PoiManager.Occupancy.HAS_SPACE +- ) +- .limit(5L) +- .collect(Collectors.toSet()); ++ // Paper start - optimise POI access ++ java.util.List, BlockPos>> poiposes = new java.util.ArrayList<>(); ++ io.papermc.paper.util.PoiAccess.findNearestPoiPositions(poiManager, poiPredicate, predicate2, entity.blockPosition(), 48, 48*48, PoiManager.Occupancy.HAS_SPACE, false, 5, poiposes); ++ Set, BlockPos>> set = new java.util.HashSet<>(poiposes); ++ // Paper end - optimise POI access + Path path = findPathToPois(entity, set); + if (path != null && path.canReach()) { + BlockPos blockPos = path.getTarget(); diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java -index 33fbf72b440e0d164ecd4fb0fdec72e2394d0a1e..8db20db72cd51046213625fac46c35854c59ec5d 100644 +index d5a549f08b98c80a5cf0eef02cb8a389c32dfecb..92731b6b593289e9f583c9b705b219e81fcd8e73 100644 --- a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java +++ b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java -@@ -53,10 +53,12 @@ public class NearestBedSensor extends Sensor { +@@ -53,11 +53,12 @@ public class NearestBedSensor extends Sensor { return true; } }; -- Set, BlockPos>> set = poiManager.findAllWithType((holder) -> { -- return holder.is(PoiTypes.HOME); -- }, predicate, entity.blockPosition(), 48, PoiManager.Occupancy.ANY).collect(Collectors.toSet()); +- Set, BlockPos>> set = poiManager.findAllWithType( +- holder -> holder.is(PoiTypes.HOME), predicate, entity.blockPosition(), 48, PoiManager.Occupancy.ANY +- ) +- .collect(Collectors.toSet()); - Path path = AcquirePoi.findPathToPois(entity, set); + // Paper start - optimise POI access + java.util.List, BlockPos>> poiposes = new java.util.ArrayList<>(); @@ -879,13 +884,13 @@ index 33fbf72b440e0d164ecd4fb0fdec72e2394d0a1e..8db20db72cd51046213625fac46c3585 BlockPos blockPos = path.getTarget(); Optional> optional = poiManager.getType(blockPos); diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java -index 6f2c7baea0d1ac7813c7b85e1f5558573745762c..12a7aaeaa8b4b788b620b1985591c3b93253ccd5 100644 +index c07cc1bf3b98525d72924edee4233364fd8174d0..61a06706f1468a8d4cceb9fb2aae61cf56bd991d 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java +++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java -@@ -127,43 +127,62 @@ public class PoiManager extends SectionStorage { - } - - public Optional find(Predicate> typePredicate, Predicate posPredicate, BlockPos pos, int radius, PoiManager.Occupancy occupationStatus) { +@@ -124,36 +124,45 @@ public class PoiManager extends SectionStorage { + public Optional find( + Predicate> typePredicate, Predicate posPredicate, BlockPos pos, int radius, PoiManager.Occupancy occupationStatus + ) { - return this.findAll(typePredicate, posPredicate, pos, radius, occupationStatus).findFirst(); + // Paper start - re-route to faster logic + BlockPos ret = io.papermc.paper.util.PoiAccess.findAnyPoiPosition(this, typePredicate, posPredicate, pos, radius, occupationStatus, false); @@ -894,21 +899,21 @@ index 6f2c7baea0d1ac7813c7b85e1f5558573745762c..12a7aaeaa8b4b788b620b1985591c3b9 } public Optional findClosest(Predicate> typePredicate, BlockPos pos, int radius, PoiManager.Occupancy occupationStatus) { -- return this.getInRange(typePredicate, pos, radius, occupationStatus).map(PoiRecord::getPos).min(Comparator.comparingDouble((blockPos2) -> { -- return blockPos2.distSqr(pos); -- })); +- return this.getInRange(typePredicate, pos, radius, occupationStatus) +- .map(PoiRecord::getPos) +- .min(Comparator.comparingDouble(blockPos2 -> blockPos2.distSqr(pos))); + // Paper start - re-route to faster logic + BlockPos ret = io.papermc.paper.util.PoiAccess.findClosestPoiDataPosition(this, typePredicate, null, pos, radius, radius * radius, occupationStatus, false); + return Optional.ofNullable(ret); + // Paper end - re-route to faster logic } - public Optional, BlockPos>> findClosestWithType(Predicate> typePredicate, BlockPos pos, int radius, PoiManager.Occupancy occupationStatus) { -- return this.getInRange(typePredicate, pos, radius, occupationStatus).min(Comparator.comparingDouble((poi) -> { -- return poi.getPos().distSqr(pos); -- })).map((poi) -> { -- return Pair.of(poi.getPoiType(), poi.getPos()); -- }); + public Optional, BlockPos>> findClosestWithType( + Predicate> typePredicate, BlockPos pos, int radius, PoiManager.Occupancy occupationStatus + ) { +- return this.getInRange(typePredicate, pos, radius, occupationStatus) +- .min(Comparator.comparingDouble(poi -> poi.getPos().distSqr(pos))) +- .map(poi -> Pair.of(poi.getPoiType(), poi.getPos())); + // Paper start - re-route to faster logic + return Optional.ofNullable(io.papermc.paper.util.PoiAccess.findClosestPoiDataTypeAndPosition( + this, typePredicate, null, pos, radius, radius * radius, occupationStatus, false @@ -916,10 +921,13 @@ index 6f2c7baea0d1ac7813c7b85e1f5558573745762c..12a7aaeaa8b4b788b620b1985591c3b9 + // Paper end - re-route to faster logic } - public Optional findClosest(Predicate> typePredicate, Predicate posPredicate, BlockPos pos, int radius, PoiManager.Occupancy occupationStatus) { -- return this.getInRange(typePredicate, pos, radius, occupationStatus).map(PoiRecord::getPos).filter(posPredicate).min(Comparator.comparingDouble((blockPos2) -> { -- return blockPos2.distSqr(pos); -- })); + public Optional findClosest( + Predicate> typePredicate, Predicate posPredicate, BlockPos pos, int radius, PoiManager.Occupancy occupationStatus + ) { +- return this.getInRange(typePredicate, pos, radius, occupationStatus) +- .map(PoiRecord::getPos) +- .filter(posPredicate) +- .min(Comparator.comparingDouble(blockPos2 -> blockPos2.distSqr(pos))); + // Paper start - re-route to faster logic + BlockPos ret = io.papermc.paper.util.PoiAccess.findClosestPoiDataPosition(this, typePredicate, posPredicate, pos, radius, radius * radius, occupationStatus, false); + return Optional.ofNullable(ret); @@ -927,25 +935,24 @@ index 6f2c7baea0d1ac7813c7b85e1f5558573745762c..12a7aaeaa8b4b788b620b1985591c3b9 } public Optional take(Predicate> typePredicate, BiPredicate, BlockPos> biPredicate, BlockPos pos, int radius) { -- return this.getInRange(typePredicate, pos, radius, PoiManager.Occupancy.HAS_SPACE).filter((poi) -> { -- return biPredicate.test(poi.getPoiType(), poi.getPos()); -- }).findFirst().map((poi) -> { +- return this.getInRange(typePredicate, pos, radius, PoiManager.Occupancy.HAS_SPACE) +- .filter(poi -> biPredicate.test(poi.getPoiType(), poi.getPos())) +- .findFirst() + // Paper start - re-route to faster logic + final @javax.annotation.Nullable PoiRecord closest = io.papermc.paper.util.PoiAccess.findClosestPoiDataRecord( + this, typePredicate, biPredicate, pos, radius, radius * radius, Occupancy.HAS_SPACE, false + ); -+ return Optional.ofNullable(closest).map(poi -> { ++ return Optional.ofNullable(closest) + // Paper end - re-route to faster logic - poi.acquireTicket(); - return poi.getPos(); - }); - } - - public Optional getRandom(Predicate> typePredicate, Predicate positionPredicate, PoiManager.Occupancy occupationStatus, BlockPos pos, int radius, RandomSource random) { + .map(poi -> { + poi.acquireTicket(); + return poi.getPos(); +@@ -168,8 +177,21 @@ public class PoiManager extends SectionStorage { + int radius, + RandomSource random + ) { - List list = Util.toShuffledList(this.getInRange(typePredicate, pos, radius, occupationStatus), random); -- return list.stream().filter((poi) -> { -- return positionPredicate.test(poi.getPos()); -- }).findFirst().map(PoiRecord::getPos); +- return list.stream().filter(poi -> positionPredicate.test(poi.getPos())).findFirst().map(PoiRecord::getPos); + // Paper start - re-route to faster logic + List list = new java.util.ArrayList<>(); + io.papermc.paper.util.PoiAccess.findAnyPoiRecords( @@ -965,7 +972,7 @@ index 6f2c7baea0d1ac7813c7b85e1f5558573745762c..12a7aaeaa8b4b788b620b1985591c3b9 public boolean release(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java -index 3fc17817906876e83f040f908b8b1ba6cfa37b8b..9f138bc471b5c2a4fa813ff943dbe34018b8df74 100644 +index f7d69dd83aad8e0ec1497441c61188bcf230865f..94404922304cfe23ea5fe8524387bc9b675cbc78 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java +++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java @@ -26,7 +26,7 @@ import org.slf4j.Logger; @@ -978,10 +985,10 @@ index 3fc17817906876e83f040f908b8b1ba6cfa37b8b..9f138bc471b5c2a4fa813ff943dbe340 private boolean isValid; public final Optional noAllocateOptional = Optional.of(this); // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java -index 54db563d80bbabd87a2be6f5ead92b482ac07b10..4aac1979cf57300825a999c876fcf24d3170e68e 100644 +index bc6043a21227ce8c9c3879bc9c93c3803f79857b..4ac5024936987c15f927e3148af4bfa57228ad1e 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/SectionStorage.java -@@ -71,11 +71,11 @@ public class SectionStorage extends RegionFileStorage implements AutoCloseabl +@@ -79,11 +79,11 @@ public class SectionStorage extends RegionFileStorage implements AutoCloseabl } @Nullable diff --git a/patches/server/1009-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/1009-Custom-table-implementation-for-blockstate-state-loo.patch index 52bdb3212c..9c4e3867d5 100644 --- a/patches/server/1009-Custom-table-implementation-for-blockstate-state-loo.patch +++ b/patches/server/1009-Custom-table-implementation-for-blockstate-state-loo.patch @@ -173,10 +173,10 @@ index 0000000000000000000000000000000000000000..57d0cd3ad6f972e986c72a57f1a6e360 + } +} diff --git a/src/main/java/net/minecraft/world/level/block/state/StateHolder.java b/src/main/java/net/minecraft/world/level/block/state/StateHolder.java -index 89ba12d44865ecddebabbc39c769af4cd8c82702..5f285d190186a2ff5a61d05070593e1d633dd79a 100644 +index 4ce9906e1f2b79df7c08d644684281ee59aa0c91..2630f54d499abbe52798f97c8ea14a8d0bd75e99 100644 --- a/src/main/java/net/minecraft/world/level/block/state/StateHolder.java +++ b/src/main/java/net/minecraft/world/level/block/state/StateHolder.java -@@ -39,11 +39,13 @@ public abstract class StateHolder { +@@ -40,11 +40,13 @@ public abstract class StateHolder { private final ImmutableMap, Comparable> values; private Table, Comparable, S> neighbours; protected final MapCodec propertiesCodec; @@ -190,7 +190,7 @@ index 89ba12d44865ecddebabbc39c769af4cd8c82702..5f285d190186a2ff5a61d05070593e1d } public > S cycle(Property property) { -@@ -84,11 +86,11 @@ public abstract class StateHolder { +@@ -85,11 +87,11 @@ public abstract class StateHolder { } public > boolean hasProperty(Property property) { @@ -204,7 +204,7 @@ index 89ba12d44865ecddebabbc39c769af4cd8c82702..5f285d190186a2ff5a61d05070593e1d if (comparable == null) { throw new IllegalArgumentException("Cannot get property " + property + " as it does not exist in " + this.owner); } else { -@@ -97,24 +99,18 @@ public abstract class StateHolder { +@@ -98,24 +100,18 @@ public abstract class StateHolder { } public > Optional getOptionalValue(Property property) { @@ -236,7 +236,7 @@ index 89ba12d44865ecddebabbc39c769af4cd8c82702..5f285d190186a2ff5a61d05070593e1d } public , V extends T> S trySetValue(Property property, V value) { -@@ -147,7 +143,7 @@ public abstract class StateHolder { +@@ -148,7 +144,7 @@ public abstract class StateHolder { } } @@ -246,7 +246,7 @@ index 89ba12d44865ecddebabbc39c769af4cd8c82702..5f285d190186a2ff5a61d05070593e1d } diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java -index 8da64429eaf083578c672cd34f52dd42389ff396..bdd7d9c80eda872496272e46d8772634e44e622a 100644 +index b63116b333b6e06494091a82588acfb639bddb71..ff5fd91257c4554c523682009efe1db83f53fd5b 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java @@ -7,6 +7,13 @@ import java.util.Optional; @@ -264,7 +264,7 @@ index 8da64429eaf083578c672cd34f52dd42389ff396..bdd7d9c80eda872496272e46d8772634 super(name, Boolean.class); } diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java -index 0a7a6c0e7635d0ada101074d4229df7edc6dd31b..e658d0b1a025192b48090e865b082ac4d99088d4 100644 +index 3097298fe356df98967cf4bdeaaede69dfe8a441..498c5abe0a9d024d77029719c621c1c8485791f3 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java @@ -15,6 +15,15 @@ public class EnumProperty & StringRepresentable> extends Prope @@ -283,23 +283,23 @@ index 0a7a6c0e7635d0ada101074d4229df7edc6dd31b..e658d0b1a025192b48090e865b082ac4 protected EnumProperty(String name, Class type, Collection values) { super(name, type); this.values = ImmutableSet.copyOf(values); -@@ -28,6 +37,14 @@ public class EnumProperty & StringRepresentable> extends Prope +@@ -27,6 +36,14 @@ public class EnumProperty & StringRepresentable> extends Prope + this.names.put(string, enum_); } - -+ // Paper start - optimise iblockdata state lookup ++ // Paper start - optimise BlockState lookup + int id = 0; + this.idLookupTable = new int[type.getEnumConstants().length]; + java.util.Arrays.fill(this.idLookupTable, -1); + for (final T value : this.getPossibleValues()) { + this.idLookupTable[value.ordinal()] = id++; + } -+ // Paper end - optimise iblockdata state lookup ++ // Paper end - optimise BlockState lookup } @Override diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java -index cbe6e4579cc55a427dd8f8fe403478faf6d35b8f..765b1092d50608d479bbbe09c457999790ecf42c 100644 +index 3a850321a4bcc68058483b5fd53e829c425a68af..977504f2641d0133a572b0d5de85d058609343bb 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java @@ -11,6 +11,16 @@ public class IntegerProperty extends Property { @@ -320,11 +320,11 @@ index cbe6e4579cc55a427dd8f8fe403478faf6d35b8f..765b1092d50608d479bbbe09c4579997 super(name, Integer.class); if (min < 0) { diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java -index 08c2e4ba9147fbea41e0fce26ad20586832a525b..1d8c3f2e57aa9b0830cf7cfb6354fcf636e9c74b 100644 +index 9055f15af0cae55effa6942913a9d7edf3857e07..b9493e3762410aca8e683c32b5aef187c0bee082 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java @@ -24,6 +24,17 @@ public abstract class Property> { - }, this::getName); + ); private final Codec> valueCodec = this.codec.xmap(this::value, Property.Value::value); + // Paper start - optimise iblockdata state lookup diff --git a/patches/server/1011-Optimise-random-block-ticking.patch b/patches/server/1011-Optimise-random-block-ticking.patch index c8b294330a..7bda9d54c9 100644 --- a/patches/server/1011-Optimise-random-block-ticking.patch +++ b/patches/server/1011-Optimise-random-block-ticking.patch @@ -258,10 +258,10 @@ index 68648c5a5e3ff079f832092af0f2f801c42d1ede..8bafd5fd7499ba4a04bf706cfd1e1560 + // Paper end } diff --git a/src/main/java/net/minecraft/util/SimpleBitStorage.java b/src/main/java/net/minecraft/util/SimpleBitStorage.java -index acd820b19aff4e093536cc47002a899498b3fd6b..453c1d7e01970fd817d27f59c3b00ffc70e8ca0c 100644 +index 236ce41328758cb173a239133073944adb484dd1..abef177f074706f13ae6acbcfe036fcaecf00cd6 100644 --- a/src/main/java/net/minecraft/util/SimpleBitStorage.java +++ b/src/main/java/net/minecraft/util/SimpleBitStorage.java -@@ -124,6 +124,28 @@ public class SimpleBitStorage implements BitStorage { +@@ -315,6 +315,28 @@ public class SimpleBitStorage implements BitStorage { return this.bits; } @@ -291,7 +291,7 @@ index acd820b19aff4e093536cc47002a899498b3fd6b..453c1d7e01970fd817d27f59c3b00ffc public void getAll(IntConsumer action) { int i = 0; diff --git a/src/main/java/net/minecraft/util/ZeroBitStorage.java b/src/main/java/net/minecraft/util/ZeroBitStorage.java -index b7a3f15dc1ed9e9322a86921052984c7cbd3262a..f8de91393564b3691c17339ac9196cc0fc1cf748 100644 +index 50040c497a819cd1229042ab3cb057d34a32cacc..01f5b946fabbe34f31110e75973dab9f39897346 100644 --- a/src/main/java/net/minecraft/util/ZeroBitStorage.java +++ b/src/main/java/net/minecraft/util/ZeroBitStorage.java @@ -46,6 +46,15 @@ public class ZeroBitStorage implements BitStorage { @@ -309,7 +309,7 @@ index b7a3f15dc1ed9e9322a86921052984c7cbd3262a..f8de91393564b3691c17339ac9196cc0 + @Override public void getAll(IntConsumer action) { - for(int i = 0; i < this.size; ++i) { + for (int i = 0; i < this.size; i++) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java index 6a98f66b7701e8af389ca9a1e9eb230a6100c838..dbdb6c432448b151fa4421f14235f8bad23dc720 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -436,10 +436,10 @@ index 8852263cb6faec1b68326145aa30e5cd36d066e7..eb05c01e85825cbd5b7cf43bc6d261db public PalettedContainer getStates() { diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 0f930f8355ea99d1cb1a8d27edc1c224588f852f..983799520ce052d98c9231f4f7925492d4f7d5c9 100644 +index d473637a705c1f11079fff08e334545779a99a84..adfbdca12fbdee2602feb0158674166d5256e49e 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -386,6 +386,14 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -381,6 +381,14 @@ public class PalettedContainer implements PaletteResize, PalettedContainer } } diff --git a/patches/server/1012-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1012-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch index b294b05766..e0ffe43767 100644 --- a/patches/server/1012-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch +++ b/patches/server/1012-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch @@ -55,7 +55,7 @@ index 645a1773237f2002c233ec1f3ff6f0ca46ca4024..d16d7c2fed89fb1347df7ddd95856e7f public boolean isOldChunkAround(ChunkPos chunkPos, int checkRadius) { diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionBitmap.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionBitmap.java -index c8298a597818227de33a4afce4698ec0666cf758..6762b0f71ea9e369bb77103b7f1938983cb77a44 100644 +index a23dc2f8f4475de1ee35bf18a7a8a53233ccac12..226af44fd469053451a0403a95ffb446face9530 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionBitmap.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionBitmap.java @@ -9,6 +9,27 @@ import java.util.BitSet; @@ -763,7 +763,7 @@ index 42d37bee3a459adcd46408596ccf93abbcff51fe..fe312b1aef579cb4bf81bdd967cf72ff } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java -index 374ff77f15e339500714580673ae8077482ba247..6210a202d27788b1304e749b5bc2d9e2b88f5a63 100644 +index 581912e1315a4a8b46042a27df54826fa63e9c75..7baa12b53588d39fe1e6f130992dca591f246c83 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java @@ -14,7 +14,7 @@ import javax.annotation.Nullable; @@ -772,6 +772,6 @@ index 374ff77f15e339500714580673ae8077482ba247..6210a202d27788b1304e749b5bc2d9e2 public class RegionFileVersion { - private static final Int2ObjectMap VERSIONS = new Int2ObjectOpenHashMap<>(); + public static final Int2ObjectMap VERSIONS = new Int2ObjectOpenHashMap<>(); // Paper - private -> public - public static final RegionFileVersion VERSION_GZIP = register(new RegionFileVersion(1, (stream) -> { - return new FastBufferedInputStream(new GZIPInputStream(stream)); - }, (stream) -> { + public static final RegionFileVersion VERSION_GZIP = register( + new RegionFileVersion( + 1, stream -> new FastBufferedInputStream(new GZIPInputStream(stream)), stream -> new BufferedOutputStream(new GZIPOutputStream(stream)) diff --git a/patches/server/1013-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1013-Use-Velocity-compression-and-cipher-natives.patch index 396697ea84..a9cc979072 100644 --- a/patches/server/1013-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/1013-Use-Velocity-compression-and-cipher-natives.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use Velocity compression and cipher natives diff --git a/build.gradle.kts b/build.gradle.kts -index 5d35409137aff0eab242a0d4eb235e10cb7fe236..9c323b4ad76ee8a6386bca52d56615fd98e6d3cb 100644 +index f9056ee057a22a11288405cd42cd0ba4c9d120c3..bcfe59b6efb628ee1e7f9d60667360d4d885fb6a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -40,6 +40,11 @@ dependencies { @@ -102,7 +102,7 @@ index 0f3d502a9680006bcdcd7d272240a2e5c3b46790..ffa1c48585fbbc1d30826d435043527f + // Paper end - Use Velocity cipher } diff --git a/src/main/java/net/minecraft/network/CompressionDecoder.java b/src/main/java/net/minecraft/network/CompressionDecoder.java -index 2758c257cb4e2b0497bd9243c635f8fe3dbc414c..2763052eb2d5b8eb432022ab00a417976f4b2927 100644 +index 5927c928b27f64bd3973e95d5867b59f67476d41..76aeebe60ac321ed604661a0ec969bb25210643f 100644 --- a/src/main/java/net/minecraft/network/CompressionDecoder.java +++ b/src/main/java/net/minecraft/network/CompressionDecoder.java @@ -13,13 +13,20 @@ public class CompressionDecoder extends ByteToMessageDecoder { @@ -171,16 +171,18 @@ index 2758c257cb4e2b0497bd9243c635f8fe3dbc414c..2763052eb2d5b8eb432022ab00a41797 ByteBuffer byteBuffer; if (buf.nioBufferCount() > 0) { diff --git a/src/main/java/net/minecraft/network/CompressionEncoder.java b/src/main/java/net/minecraft/network/CompressionEncoder.java -index 859af8c845bae9781a62fa4acae56c6e2d449e10..f67f59f287d9a5cdd685b6b56ed1daf3f091e099 100644 +index 11a466558c77b43969b8e4be3a3470f84c7fcb1a..ae6e8ab9c1afa31d808f1fce2654a8b95bee6c31 100644 --- a/src/main/java/net/minecraft/network/CompressionEncoder.java +++ b/src/main/java/net/minecraft/network/CompressionEncoder.java -@@ -6,21 +6,36 @@ import io.netty.handler.codec.MessageToByteEncoder; +@@ -6,21 +6,37 @@ import io.netty.handler.codec.MessageToByteEncoder; import java.util.zip.Deflater; public class CompressionEncoder extends MessageToByteEncoder { - private final byte[] encodeBuf = new byte[8192]; -+ private final byte[] encodeBuf; // Paper - Use Velocity cipher ++ @javax.annotation.Nullable private final byte[] encodeBuf; // Paper - Use Velocity cipher ++ @javax.annotation.Nullable // Paper - Use Velocity cipher private final Deflater deflater; ++ @javax.annotation.Nullable // Paper - Use Velocity cipher + private final com.velocitypowered.natives.compression.VelocityCompressor compressor; // Paper - Use Velocity cipher private int threshold; @@ -188,7 +190,7 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..f67f59f287d9a5cdd685b6b56ed1daf3 public CompressionEncoder(int compressionThreshold) { + this(null, compressionThreshold); + } -+ public CompressionEncoder(com.velocitypowered.natives.compression.VelocityCompressor compressor, int compressionThreshold) { ++ public CompressionEncoder(@javax.annotation.Nullable com.velocitypowered.natives.compression.VelocityCompressor compressor, int compressionThreshold) { this.threshold = compressionThreshold; - this.deflater = new Deflater(); + if (compressor == null) { @@ -209,15 +211,15 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..f67f59f287d9a5cdd685b6b56ed1daf3 VarInt.write(byteBuf2, 0); byteBuf2.writeBytes(byteBuf); } else { -+ // Paper start - Use Velocity cipher -+ if (this.deflater != null) { ++ if (this.deflater != null) { // Paper - Use Velocity cipher byte[] bs = new byte[i]; byteBuf.readBytes(bs); VarInt.write(byteBuf2, bs.length); -@@ -33,10 +48,48 @@ public class CompressionEncoder extends MessageToByteEncoder { +@@ -33,6 +49,43 @@ public class CompressionEncoder extends MessageToByteEncoder { } this.deflater.reset(); ++ // Paper start - Use Velocity cipher + return; + } + @@ -228,12 +230,9 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..f67f59f287d9a5cdd685b6b56ed1daf3 + } finally { + compatibleIn.release(); + } -+ // Paper end - Use Velocity cipher - } - - } - -+ // Paper start - Use Velocity cipher ++ } ++ } ++ + @Override + protected ByteBuf allocateBuffer(ChannelHandlerContext ctx, ByteBuf msg, boolean preferDirect) throws Exception{ + if (this.compressor != null) { @@ -256,13 +255,10 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..f67f59f287d9a5cdd685b6b56ed1daf3 + public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { + if (this.compressor != null) { + this.compressor.close(); -+ } -+ } -+ // Paper end - Use Velocity cipher -+ - public int getThreshold() { - return this.threshold; ++ // Paper end - Use Velocity cipher + } } + diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java index 7f2aa5e17fe675f3404d67b1794d2ca68b188eb9..fff375fd50fa1a804636a92ded1ae55cff42977d 100644 --- a/src/main/java/net/minecraft/network/Connection.java diff --git a/patches/server/1014-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1014-Detail-more-information-in-watchdog-dumps.patch index e69bd162ef..2dce8a04c2 100644 --- a/patches/server/1014-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/1014-Detail-more-information-in-watchdog-dumps.patch @@ -122,7 +122,7 @@ index 9d18da228c6709e7665ba8babb6ee6d0b36b5dc5..af9f58328c09dddb2875f79128f906b8 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f220e9ba35b07b690df93b1d733e9c666c772de9..c1a8de736ee39e4e177399bc51aedfd135a8100d 100644 +index eb269e90c62544d6e56ac8e6e81d0e5d4bc1f7e9..865c5ee8a8a14ef1a7d71dcab3e324932d065d5f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1063,8 +1063,43 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1015-Collision-optimisations.patch b/patches/server/1015-Collision-optimisations.patch index 176352b0ab..c61dd8d1f1 100644 --- a/patches/server/1015-Collision-optimisations.patch +++ b/patches/server/1015-Collision-optimisations.patch @@ -2153,10 +2153,10 @@ index 0000000000000000000000000000000000000000..1f42bdfdb052056e62a939ab0d1944f8 + +} diff --git a/src/main/java/net/minecraft/core/Direction.java b/src/main/java/net/minecraft/core/Direction.java -index 073c717bb676b9e99aada00c349fb7eee91df1e7..2a9fc1f1dfc0c5894c1e74dad5a79ae9b02ac74f 100644 +index 0f32bad1f4e5f4e9abb54d6dc2c06dd2b7176b8e..f0fe2acadac0f57eb06b6aee1940e2c4985e4ca1 100644 --- a/src/main/java/net/minecraft/core/Direction.java +++ b/src/main/java/net/minecraft/core/Direction.java -@@ -57,6 +57,21 @@ public enum Direction implements StringRepresentable { +@@ -53,6 +53,21 @@ public enum Direction implements StringRepresentable { private final int adjY; private final int adjZ; // Paper end - Perf: Inline shift direction fields @@ -2179,7 +2179,7 @@ index 073c717bb676b9e99aada00c349fb7eee91df1e7..2a9fc1f1dfc0c5894c1e74dad5a79ae9 private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) { this.data3d = id; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index acc9858e0cf10cb2aae0554037096411a208bd05..c99d2f2d64b73179e4e27b63030e26a07953041b 100644 +index acc1751324f040accc4fc18914ed281e572358eb..17a6d43685f35a6978c2d941876a1f8a9a2c8b42 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -496,7 +496,7 @@ public class ServerPlayer extends Player { @@ -2214,7 +2214,7 @@ index 594cb6ce4bfa6c42212000a1ed983ea95ee2c4bf..97b0119ac71284b3a223c089bec26d87 entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c1a8de736ee39e4e177399bc51aedfd135a8100d..6de971aca46caad091271d125a079a1b7a5f163d 100644 +index 9a01eff5a93c68edd45f98e9a6f8d24656650fb6..7992375dc55492aeb6defb204b28dd267be4a6e7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1250,9 +1250,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2466,18 +2466,18 @@ index ffa4f34d964fbcc53e2dfe11677832db21a6eb93..7618364e5373fe17cfe45a5a4ee9ab25 } diff --git a/src/main/java/net/minecraft/world/level/BlockCollisions.java b/src/main/java/net/minecraft/world/level/BlockCollisions.java -index a3eaf80b020c3bbc0306c5d17659ee661dfd275b..1b6f72932fbdd567a1534bcf15e8a610b00f974d 100644 +index f6cc3d550df8481086acdcb62f44a1051ae79f80..012733f1808e96aecc3b2fd081e355905d1b0766 100644 --- a/src/main/java/net/minecraft/world/level/BlockCollisions.java +++ b/src/main/java/net/minecraft/world/level/BlockCollisions.java -@@ -105,7 +105,7 @@ public class BlockCollisions extends AbstractIterator { - - VoxelShape voxelShape = blockState.getCollisionShape(this.collisionGetter, this.pos, this.context); - if (voxelShape == Shapes.block()) { -- if (!this.box.intersects((double)i, (double)j, (double)k, (double)i + 1.0D, (double)j + 1.0D, (double)k + 1.0D)) { -+ if (!io.papermc.paper.util.CollisionUtil.voxelShapeIntersect(this.box, (double)i, (double)j, (double)k, (double)i + 1.0D, (double)j + 1.0D, (double)k + 1.0D)) { // Paper - keep vanilla behavior for voxelshape intersection - See comment in CollisionUtil - continue; - } - +@@ -99,7 +99,7 @@ public class BlockCollisions extends AbstractIterator { + // Paper end + VoxelShape voxelShape = blockState.getCollisionShape(this.collisionGetter, this.pos, this.context); + if (voxelShape == Shapes.block()) { +- if (this.box.intersects(i, j, k, i + 1.0, j + 1.0, k + 1.0)) { ++ if (io.papermc.paper.util.CollisionUtil.voxelShapeIntersect(this.box, i, j, k, i + 1.0, j + 1.0, k + 1.0)) { // Paper - keep vanilla behavior for voxelshape intersection - See comment in CollisionUtil + return this.resultProvider.apply(this.pos, voxelShape.move(i, j, k)); + } + } else { diff --git a/src/main/java/net/minecraft/world/level/ClipContext.java b/src/main/java/net/minecraft/world/level/ClipContext.java index 86a4f30c8784c602436ecf1c78efb0bdca4b7089..b0bea28e9261767c60d30fb0e76f4f3af8a5634e 100644 --- a/src/main/java/net/minecraft/world/level/ClipContext.java @@ -2494,7 +2494,7 @@ index 86a4f30c8784c602436ecf1c78efb0bdca4b7089..b0bea28e9261767c60d30fb0e76f4f3a public ClipContext(Vec3 start, Vec3 end, ClipContext.Block shapeType, ClipContext.Fluid fluidHandling, Entity entity) { diff --git a/src/main/java/net/minecraft/world/level/CollisionGetter.java b/src/main/java/net/minecraft/world/level/CollisionGetter.java -index c476e37df8a75d77f5093b2a449e04f25ef2c2dd..5d66aadae51db1ae760812849bfc8740b82af9a9 100644 +index 69754fbebb51f7f804c97a749fd65ce15ae22f1b..160b4c8f40b7b1bc53a8c23b801c5248c13e9a40 100644 --- a/src/main/java/net/minecraft/world/level/CollisionGetter.java +++ b/src/main/java/net/minecraft/world/level/CollisionGetter.java @@ -35,6 +35,12 @@ public interface CollisionGetter extends BlockGetter { @@ -2508,13 +2508,13 @@ index c476e37df8a75d77f5093b2a449e04f25ef2c2dd..5d66aadae51db1ae760812849bfc8740 + // Paper end - optimise collisions + default boolean noCollision(AABB box) { - return this.noCollision((Entity)null, box); + return this.noCollision(null, box); } diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index cc888bbcd6a50124fa553bc4a8ffd1e8885d3856..f42dd9602805e9d538506ee4e3eac7e2811a3da6 100644 +index 9a28912f52824acdc80a62243b136e6f365bf567..21843501355a0c0c8d594e3e5312e97861c9a777 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java -@@ -45,17 +45,36 @@ public interface EntityGetter { +@@ -46,20 +46,36 @@ public interface EntityGetter { } default boolean isUnobstructed(@Nullable Entity except, VoxelShape shape) { @@ -2522,8 +2522,11 @@ index cc888bbcd6a50124fa553bc4a8ffd1e8885d3856..f42dd9602805e9d538506ee4e3eac7e2 if (shape.isEmpty()) { - return true; - } else { -- for(Entity entity : this.getEntities(except, shape.bounds())) { -- if (!entity.isRemoved() && entity.blocksBuilding && (except == null || !entity.isPassengerOfSameVehicle(except)) && Shapes.joinIsNotEmpty(shape, Shapes.create(entity.getBoundingBox()), BooleanOp.AND)) { +- for (Entity entity : this.getEntities(except, shape.bounds())) { +- if (!entity.isRemoved() +- && entity.blocksBuilding +- && (except == null || !entity.isPassengerOfSameVehicle(except)) +- && Shapes.joinIsNotEmpty(shape, Shapes.create(entity.getBoundingBox()), BooleanOp.AND)) { - return false; + return false; + } @@ -2557,11 +2560,11 @@ index cc888bbcd6a50124fa553bc4a8ffd1e8885d3856..f42dd9602805e9d538506ee4e3eac7e2 } default List getEntitiesOfClass(Class entityClass, AABB box) { -@@ -63,23 +82,41 @@ public interface EntityGetter { +@@ -67,23 +83,41 @@ public interface EntityGetter { } default List getEntityCollisions(@Nullable Entity entity, AABB box) { -- if (box.getSize() < 1.0E-7D) { +- if (box.getSize() < 1.0E-7) { - return List.of(); + // Paper start - optimise collisions + // first behavior change is to correctly check for empty AABB @@ -2580,21 +2583,21 @@ index cc888bbcd6a50124fa553bc4a8ffd1e8885d3856..f42dd9602805e9d538506ee4e3eac7e2 + entities = this.getEntities(entity, box, null); } else { - Predicate predicate = entity == null ? EntitySelector.CAN_BE_COLLIDED_WITH : EntitySelector.NO_SPECTATORS.and(entity::canCollideWith); -- List list = this.getEntities(entity, box.inflate(1.0E-7D), predicate); +- List list = this.getEntities(entity, box.inflate(1.0E-7), predicate); - if (list.isEmpty()) { - return List.of(); - } else { -- ImmutableList.Builder builder = ImmutableList.builderWithExpectedSize(list.size()); +- Builder builder = ImmutableList.builderWithExpectedSize(list.size()); - -- for(Entity entity2 : list) { +- for (Entity entity2 : list) { - builder.add(Shapes.create(entity2.getBoundingBox())); - } + entities = this.getHardCollidingEntities(entity, box, null); + } ++ ++ final List ret = new java.util.ArrayList<>(Math.min(25, entities.size())); - return builder.build(); -+ final List ret = new java.util.ArrayList<>(Math.min(25, entities.size())); -+ + for (int i = 0, len = entities.size(); i < len; ++i) { + final Entity otherEntity = entities.get(i); + @@ -3215,7 +3218,7 @@ index a98ab20814cc29a25e9d29adfbb7e70d46768df2..6d8ff6c06af5545634f255ed17dc1e48 if (!state.getBlock().hasDynamicShape() && !fromState.getBlock().hasDynamicShape()) { diff --git a/src/main/java/net/minecraft/world/phys/AABB.java b/src/main/java/net/minecraft/world/phys/AABB.java -index b8443953de15066f32f629c0dd7e24bad750f558..67d595f75e0c3bffdb27b85b25ccd1f0bf1427d5 100644 +index 1b7f1babf732ab95940ac67437a0b22ee078f19d..ba29de4a759644acdfce9c2e3672f20b200b7b50 100644 --- a/src/main/java/net/minecraft/world/phys/AABB.java +++ b/src/main/java/net/minecraft/world/phys/AABB.java @@ -25,6 +25,17 @@ public class AABB { @@ -3234,23 +3237,23 @@ index b8443953de15066f32f629c0dd7e24bad750f558..67d595f75e0c3bffdb27b85b25ccd1f0 + // Paper end + public AABB(BlockPos pos) { - this((double)pos.getX(), (double)pos.getY(), (double)pos.getZ(), (double)(pos.getX() + 1), (double)(pos.getY() + 1), (double)(pos.getZ() + 1)); + this(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1); } -@@ -305,7 +316,7 @@ public class AABB { +@@ -314,7 +325,7 @@ public class AABB { } @Nullable -- private static Direction getDirection(AABB box, Vec3 intersectingVector, double[] traceDistanceResult, @Nullable Direction approachDirection, double deltaX, double deltaY, double deltaZ) { -+ public static Direction getDirection(AABB box, Vec3 intersectingVector, double[] traceDistanceResult, @Nullable Direction approachDirection, double deltaX, double deltaY, double deltaZ) { // Paper - optimise collisions - public - if (deltaX > 1.0E-7D) { - approachDirection = clipPoint(traceDistanceResult, approachDirection, deltaX, deltaY, deltaZ, box.minX, box.minY, box.maxY, box.minZ, box.maxZ, Direction.WEST, intersectingVector.x, intersectingVector.y, intersectingVector.z); - } else if (deltaX < -1.0E-7D) { +- private static Direction getDirection( ++ public static Direction getDirection( // Paper - optimise collisions - public + AABB box, Vec3 intersectingVector, double[] traceDistanceResult, @Nullable Direction approachDirection, double deltaX, double deltaY, double deltaZ + ) { + if (deltaX > 1.0E-7) { diff --git a/src/main/java/net/minecraft/world/phys/shapes/ArrayVoxelShape.java b/src/main/java/net/minecraft/world/phys/shapes/ArrayVoxelShape.java -index 9d627b8e6bf3140b894d38b9a720896e2d776369..a232b9396a41c11579a4d691b05717b16473513e 100644 +index fc7f986812bdf74e0aea3bd09a1d53ba6def697f..0583d40a235aaecd9d6081486bbfb7355709a5ac 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/ArrayVoxelShape.java +++ b/src/main/java/net/minecraft/world/phys/shapes/ArrayVoxelShape.java -@@ -15,7 +15,7 @@ public class ArrayVoxelShape extends VoxelShape { - this(shape, (DoubleList)DoubleArrayList.wrap(Arrays.copyOf(xPoints, shape.getXSize() + 1)), (DoubleList)DoubleArrayList.wrap(Arrays.copyOf(yPoints, shape.getYSize() + 1)), (DoubleList)DoubleArrayList.wrap(Arrays.copyOf(zPoints, shape.getZSize() + 1))); +@@ -20,7 +20,7 @@ public class ArrayVoxelShape extends VoxelShape { + ); } - ArrayVoxelShape(DiscreteVoxelShape shape, DoubleList xPoints, DoubleList yPoints, DoubleList zPoints) { @@ -3258,22 +3261,22 @@ index 9d627b8e6bf3140b894d38b9a720896e2d776369..a232b9396a41c11579a4d691b05717b1 super(shape); int i = shape.getXSize() + 1; int j = shape.getYSize() + 1; -@@ -27,6 +27,7 @@ public class ArrayVoxelShape extends VoxelShape { - } else { - throw (IllegalArgumentException)Util.pauseInIde(new IllegalArgumentException("Lengths of point arrays must be consistent with the size of the VoxelShape.")); +@@ -34,6 +34,7 @@ public class ArrayVoxelShape extends VoxelShape { + new IllegalArgumentException("Lengths of point arrays must be consistent with the size of the VoxelShape.") + ); } + this.initCache(); // Paper - optimise collisions } @Override -@@ -42,4 +43,5 @@ public class ArrayVoxelShape extends VoxelShape { +@@ -49,4 +50,5 @@ public class ArrayVoxelShape extends VoxelShape { throw new IllegalArgumentException(); } } + } diff --git a/src/main/java/net/minecraft/world/phys/shapes/BitSetDiscreteVoxelShape.java b/src/main/java/net/minecraft/world/phys/shapes/BitSetDiscreteVoxelShape.java -index c25f409d63a50c5de1434db1d6b298935f106221..6f532d9aa613ecb0f5695b108ec6d7ed3598ca82 100644 +index 31b570517c1047e8e1cd5280baf80977af2b6121..d8b80632f6186641ee2ddaef9eba7ba998b09136 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/BitSetDiscreteVoxelShape.java +++ b/src/main/java/net/minecraft/world/phys/shapes/BitSetDiscreteVoxelShape.java @@ -4,13 +4,13 @@ import java.util.BitSet; @@ -3297,7 +3300,7 @@ index c25f409d63a50c5de1434db1d6b298935f106221..6f532d9aa613ecb0f5695b108ec6d7ed public BitSetDiscreteVoxelShape(int sizeX, int sizeY, int sizeZ) { super(sizeX, sizeY, sizeZ); -@@ -150,46 +150,106 @@ public final class BitSetDiscreteVoxelShape extends DiscreteVoxelShape { +@@ -151,45 +151,106 @@ public final class BitSetDiscreteVoxelShape extends DiscreteVoxelShape { } protected static void forAllBoxes(DiscreteVoxelShape voxelSet, DiscreteVoxelShape.IntLineConsumer callback, boolean coalesce) { @@ -3305,11 +3308,22 @@ index c25f409d63a50c5de1434db1d6b298935f106221..6f532d9aa613ecb0f5695b108ec6d7ed + // Paper start - optimise collisions + // called with the shape of a VoxelShape, so we can expect the cache to exist + final io.papermc.paper.util.collisions.CachedShapeData cache = voxelSet.getOrCreateCachedShapeData(); -+ + +- for (int i = 0; i < bitSetDiscreteVoxelShape.ySize; i++) { +- for (int j = 0; j < bitSetDiscreteVoxelShape.xSize; j++) { +- int k = -1; + final int sizeX = cache.sizeX(); + final int sizeY = cache.sizeY(); + final int sizeZ = cache.sizeZ(); -+ + +- for (int l = 0; l <= bitSetDiscreteVoxelShape.zSize; l++) { +- if (bitSetDiscreteVoxelShape.isFullWide(j, i, l)) { +- if (coalesce) { +- if (k == -1) { +- k = l; +- } +- } else { +- callback.consume(j, i, l, j + 1, i + 1, l + 1); + int indexX; + int indexY = 0; + int indexZ; @@ -3339,21 +3353,10 @@ index c25f409d63a50c5de1434db1d6b298935f106221..6f532d9aa613ecb0f5695b108ec6d7ed + } else { + // same notes about loop order as the above + // this branch is actually important to optimise, as it affects uncached toAabbs() (which affects optimize()) - -- for(int i = 0; i < bitSetDiscreteVoxelShape.ySize; ++i) { -- for(int j = 0; j < bitSetDiscreteVoxelShape.xSize; ++j) { -- int k = -1; ++ + // only clone when we may write to it + bitset = bitset.clone(); - -- for(int l = 0; l <= bitSetDiscreteVoxelShape.zSize; ++l) { -- if (bitSetDiscreteVoxelShape.isFullWide(j, i, l)) { -- if (coalesce) { -- if (k == -1) { -- k = l; -- } -- } else { -- callback.consume(j, i, l, j + 1, i + 1, l + 1); ++ + for (int y = 0; y < sizeY; ++y, indexY += incY) { + indexX = indexY; + for (int x = 0; x < sizeX; ++x, indexX += incX) { @@ -3368,17 +3371,17 @@ index c25f409d63a50c5de1434db1d6b298935f106221..6f532d9aa613ecb0f5695b108ec6d7ed - int n = i; - bitSetDiscreteVoxelShape.clearZStrip(k, l, j, i); - -- while(bitSetDiscreteVoxelShape.isZStripFull(k, l, m + 1, i)) { +- while (bitSetDiscreteVoxelShape.isZStripFull(k, l, m + 1, i)) { - bitSetDiscreteVoxelShape.clearZStrip(k, l, m + 1, i); -- ++m; +- m++; + + int lastSetZ = io.papermc.paper.util.collisions.FlatBitsetUtil.firstClear(bitset, firstSetZ, endIndex); + if (lastSetZ == -1) { + lastSetZ = endIndex; } -- while(bitSetDiscreteVoxelShape.isXZRectangleFull(j, m + 1, k, l, n + 1)) { -- for(int o = j; o <= m; ++o) { +- while (bitSetDiscreteVoxelShape.isXZRectangleFull(j, m + 1, k, l, n + 1)) { +- for (int o = j; o <= m; o++) { - bitSetDiscreteVoxelShape.clearZStrip(k, l, o, n + 1); + io.papermc.paper.util.collisions.FlatBitsetUtil.clearRange(bitset, firstSetZ, lastSetZ); + @@ -3408,7 +3411,7 @@ index c25f409d63a50c5de1434db1d6b298935f106221..6f532d9aa613ecb0f5695b108ec6d7ed + } } -- ++n; +- n++; + ++endY; + + // passed, so we can clear it @@ -3426,13 +3429,12 @@ index c25f409d63a50c5de1434db1d6b298935f106221..6f532d9aa613ecb0f5695b108ec6d7ed } } } -- + // Paper end - optimise collisions } private boolean isZStripFull(int z1, int z2, int x, int y) { diff --git a/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java b/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java -index 68e89dbd79171627046e89699057964e44c40e7d..110405e6e70d980d3e09f04d79562b32a7413071 100644 +index e00c3419ff523a57dc4346720827854641fa21ad..fc751564e02306006cffd90ef29acb27cc77cd0b 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java +++ b/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java @@ -7,6 +7,7 @@ import net.minecraft.util.Mth; @@ -3444,7 +3446,7 @@ index 68e89dbd79171627046e89699057964e44c40e7d..110405e6e70d980d3e09f04d79562b32 @Override diff --git a/src/main/java/net/minecraft/world/phys/shapes/DiscreteVoxelShape.java b/src/main/java/net/minecraft/world/phys/shapes/DiscreteVoxelShape.java -index b27ed92b2a87d4c20c1aa300202adfab896c99ea..d0a4547f95ee24283af77cfa130979d05915292f 100644 +index 87a8f12dc3d47fb093115030e0222f065f1dcb1c..44b62f1f6685084c0cff02bd31eb5a7c2ef9eead 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/DiscreteVoxelShape.java +++ b/src/main/java/net/minecraft/world/phys/shapes/DiscreteVoxelShape.java @@ -9,6 +9,71 @@ public abstract class DiscreteVoxelShape { @@ -3535,12 +3537,12 @@ index 7ec02a7849437a18860aa0df7d9ddd71b2447d4c..5e45e49ab09344cb95736f4124b1c6e0 public OffsetDoubleList(DoubleList oldList, double offset) { this.delegate = oldList; diff --git a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java -index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8357900f4 100644 +index 1a014f19f3c5425cc79a82c546066ab701fab1f8..9ac39c6d6289c86954ccb8a2e2afba8d96aa1950 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java +++ b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java -@@ -16,13 +16,43 @@ public final class Shapes { - public static final double EPSILON = 1.0E-7D; - public static final double BIG_EPSILON = 1.0E-6D; +@@ -16,9 +16,15 @@ public final class Shapes { + public static final double EPSILON = 1.0E-7; + public static final double BIG_EPSILON = 1.0E-6; private static final VoxelShape BLOCK = Util.make(() -> { - DiscreteVoxelShape discreteVoxelShape = new BitSetDiscreteVoxelShape(1, 1, 1); - discreteVoxelShape.fill(0, 0, 0); @@ -3555,8 +3557,11 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 + ); + // Paper end - optimise collisions - force arrayvoxelshape }); - public static final VoxelShape INFINITY = box(Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY); - private static final VoxelShape EMPTY = new ArrayVoxelShape(new BitSetDiscreteVoxelShape(0, 0, 0), (DoubleList)(new DoubleArrayList(new double[]{0.0D})), (DoubleList)(new DoubleArrayList(new double[]{0.0D})), (DoubleList)(new DoubleArrayList(new double[]{0.0D}))); + public static final VoxelShape INFINITY = box( + Double.NEGATIVE_INFINITY, +@@ -35,6 +41,30 @@ public final class Shapes { + new DoubleArrayList(new double[]{0.0}) + ); + // Paper start - optimise collisions - force arrayvoxelshape + private static final DoubleArrayList[] PARTS_BY_BITS = new DoubleArrayList[] { @@ -3585,16 +3590,22 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 public static VoxelShape empty() { return EMPTY; } -@@ -41,22 +71,39 @@ public final class Shapes { +@@ -53,35 +83,39 @@ public final class Shapes { public static VoxelShape create(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) { - if (!(maxX - minX < 1.0E-7D) && !(maxY - minY < 1.0E-7D) && !(maxZ - minZ < 1.0E-7D)) { + if (!(maxX - minX < 1.0E-7) && !(maxY - minY < 1.0E-7) && !(maxZ - minZ < 1.0E-7)) { - int i = findBits(minX, maxX); - int j = findBits(minY, maxY); - int k = findBits(minZ, maxZ); -- if (i >= 0 && j >= 0 && k >= 0) { -- if (i == 0 && j == 0 && k == 0) { -- return block(); +- if (i < 0 || j < 0 || k < 0) { +- return new ArrayVoxelShape( +- BLOCK.shape, +- DoubleArrayList.wrap(new double[]{minX, maxX}), +- DoubleArrayList.wrap(new double[]{minY, maxY}), +- DoubleArrayList.wrap(new double[]{minZ, maxZ}) +- ); +- } else if (i == 0 && j == 0 && k == 0) { +- return block(); + // Paper start - optimise collisions + // force ArrayVoxelShape in every case + final int bitsX = findBits(minX, maxX); @@ -3603,12 +3614,7 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 + if (bitsX >= 0 && bitsY >= 0 && bitsZ >= 0) { + if (bitsX == 0 && bitsY == 0 && bitsZ == 0) { + return BLOCK; - } else { -- int l = 1 << i; -- int m = 1 << j; -- int n = 1 << k; -- BitSetDiscreteVoxelShape bitSetDiscreteVoxelShape = BitSetDiscreteVoxelShape.withFilledBounds(l, m, n, (int)Math.round(minX * (double)l), (int)Math.round(minY * (double)m), (int)Math.round(minZ * (double)n), (int)Math.round(maxX * (double)l), (int)Math.round(maxY * (double)m), (int)Math.round(maxZ * (double)n)); -- return new CubeVoxelShape(bitSetDiscreteVoxelShape); ++ } else { + final int sizeX = 1 << bitsX; + final int sizeY = 1 << bitsY; + final int sizeZ = 1 << bitsZ; @@ -3623,21 +3629,34 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 + PARTS_BY_BITS[bitsY], + PARTS_BY_BITS[bitsZ] + ); - } ++ } } else { -- return new ArrayVoxelShape(BLOCK.shape, (DoubleList)DoubleArrayList.wrap(new double[]{minX, maxX}), (DoubleList)DoubleArrayList.wrap(new double[]{minY, maxY}), (DoubleList)DoubleArrayList.wrap(new double[]{minZ, maxZ})); +- int l = 1 << i; +- int m = 1 << j; +- int n = 1 << k; +- BitSetDiscreteVoxelShape bitSetDiscreteVoxelShape = BitSetDiscreteVoxelShape.withFilledBounds( +- l, +- m, +- n, +- (int)Math.round(minX * l), +- (int)Math.round(minY * m), +- (int)Math.round(minZ * n), +- (int)Math.round(maxX * l), +- (int)Math.round(maxY * m), +- (int)Math.round(maxZ * n) + return new ArrayVoxelShape( + BLOCK.shape, + minX == 0.0 && maxX == 1.0 ? io.papermc.paper.util.CollisionUtil.ZERO_ONE : DoubleArrayList.wrap(new double[] { minX, maxX }), + minY == 0.0 && maxY == 1.0 ? io.papermc.paper.util.CollisionUtil.ZERO_ONE : DoubleArrayList.wrap(new double[] { minY, maxY }), + minZ == 0.0 && maxZ == 1.0 ? io.papermc.paper.util.CollisionUtil.ZERO_ONE : DoubleArrayList.wrap(new double[] { minZ, maxZ }) -+ ); + ); +- return new CubeVoxelShape(bitSetDiscreteVoxelShape); } + // Paper end - optimise collisions } else { return empty(); } -@@ -95,67 +142,53 @@ public final class Shapes { +@@ -120,79 +154,53 @@ public final class Shapes { } public static VoxelShape or(VoxelShape first, VoxelShape... others) { @@ -3699,9 +3718,17 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 - } else { - IndexMerger indexMerger = createIndexMerger(1, one.getCoords(Direction.Axis.X), two.getCoords(Direction.Axis.X), bl, bl2); - IndexMerger indexMerger2 = createIndexMerger(indexMerger.size() - 1, one.getCoords(Direction.Axis.Y), two.getCoords(Direction.Axis.Y), bl, bl2); -- IndexMerger indexMerger3 = createIndexMerger((indexMerger.size() - 1) * (indexMerger2.size() - 1), one.getCoords(Direction.Axis.Z), two.getCoords(Direction.Axis.Z), bl, bl2); -- BitSetDiscreteVoxelShape bitSetDiscreteVoxelShape = BitSetDiscreteVoxelShape.join(one.shape, two.shape, indexMerger, indexMerger2, indexMerger3, function); -- return (VoxelShape)(indexMerger instanceof DiscreteCubeMerger && indexMerger2 instanceof DiscreteCubeMerger && indexMerger3 instanceof DiscreteCubeMerger ? new CubeVoxelShape(bitSetDiscreteVoxelShape) : new ArrayVoxelShape(bitSetDiscreteVoxelShape, indexMerger.getList(), indexMerger2.getList(), indexMerger3.getList())); +- IndexMerger indexMerger3 = createIndexMerger( +- (indexMerger.size() - 1) * (indexMerger2.size() - 1), one.getCoords(Direction.Axis.Z), two.getCoords(Direction.Axis.Z), bl, bl2 +- ); +- BitSetDiscreteVoxelShape bitSetDiscreteVoxelShape = BitSetDiscreteVoxelShape.join( +- one.shape, two.shape, indexMerger, indexMerger2, indexMerger3, function +- ); +- return (VoxelShape)(indexMerger instanceof DiscreteCubeMerger +- && indexMerger2 instanceof DiscreteCubeMerger +- && indexMerger3 instanceof DiscreteCubeMerger +- ? new CubeVoxelShape(bitSetDiscreteVoxelShape) +- : new ArrayVoxelShape(bitSetDiscreteVoxelShape, indexMerger.getList(), indexMerger2.getList(), indexMerger3.getList())); - } - } + return io.papermc.paper.util.CollisionUtil.joinUnoptimized(one, two, function); // Paper - optimise collisions @@ -3720,19 +3747,23 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 - boolean bl3 = predicate.apply(true, false); - boolean bl4 = predicate.apply(false, true); - -- for(Direction.Axis axis : AxisCycle.AXIS_VALUES) { -- if (shape1.max(axis) < shape2.min(axis) - 1.0E-7D) { +- for (Direction.Axis axis : AxisCycle.AXIS_VALUES) { +- if (shape1.max(axis) < shape2.min(axis) - 1.0E-7) { - return bl3 || bl4; - } - -- if (shape2.max(axis) < shape1.min(axis) - 1.0E-7D) { +- if (shape2.max(axis) < shape1.min(axis) - 1.0E-7) { - return bl3 || bl4; - } - } - - IndexMerger indexMerger = createIndexMerger(1, shape1.getCoords(Direction.Axis.X), shape2.getCoords(Direction.Axis.X), bl3, bl4); -- IndexMerger indexMerger2 = createIndexMerger(indexMerger.size() - 1, shape1.getCoords(Direction.Axis.Y), shape2.getCoords(Direction.Axis.Y), bl3, bl4); -- IndexMerger indexMerger3 = createIndexMerger((indexMerger.size() - 1) * (indexMerger2.size() - 1), shape1.getCoords(Direction.Axis.Z), shape2.getCoords(Direction.Axis.Z), bl3, bl4); +- IndexMerger indexMerger2 = createIndexMerger( +- indexMerger.size() - 1, shape1.getCoords(Direction.Axis.Y), shape2.getCoords(Direction.Axis.Y), bl3, bl4 +- ); +- IndexMerger indexMerger3 = createIndexMerger( +- (indexMerger.size() - 1) * (indexMerger2.size() - 1), shape1.getCoords(Direction.Axis.Z), shape2.getCoords(Direction.Axis.Z), bl3, bl4 +- ); - return joinIsNotEmpty(indexMerger, indexMerger2, indexMerger3, shape1.shape, shape2.shape, predicate); - } - } else { @@ -3742,8 +3773,8 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 + return io.papermc.paper.util.CollisionUtil.isJoinNonEmpty(shape1, shape2, predicate); // Paper - optimise collisions } - private static boolean joinIsNotEmpty(IndexMerger mergedX, IndexMerger mergedY, IndexMerger mergedZ, DiscreteVoxelShape shape1, DiscreteVoxelShape shape2, BooleanOp predicate) { -@@ -181,69 +214,119 @@ public final class Shapes { + private static boolean joinIsNotEmpty( +@@ -220,69 +228,119 @@ public final class Shapes { } public static boolean blockOccudes(VoxelShape shape, VoxelShape neighbor, Direction direction) { @@ -3758,6 +3789,13 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 + } + + if (shape.isEmpty() | neighbor.isEmpty()) { ++ return false; ++ } ++ ++ // we optimise getOpposite, so we can use it ++ // secondly, use our cache to retrieve sliced shape ++ final VoxelShape newFirst = shape.getFaceShapeClamped(direction); ++ if (newFirst.isEmpty()) { return false; - } else { - Direction.Axis axis = direction.getAxis(); @@ -3765,15 +3803,10 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 - VoxelShape voxelShape = axisDirection == Direction.AxisDirection.POSITIVE ? shape : neighbor; - VoxelShape voxelShape2 = axisDirection == Direction.AxisDirection.POSITIVE ? neighbor : shape; - BooleanOp booleanOp = axisDirection == Direction.AxisDirection.POSITIVE ? BooleanOp.ONLY_FIRST : BooleanOp.ONLY_SECOND; -- return DoubleMath.fuzzyEquals(voxelShape.max(axis), 1.0D, 1.0E-7D) && DoubleMath.fuzzyEquals(voxelShape2.min(axis), 0.0D, 1.0E-7D) && !joinIsNotEmpty(new SliceShape(voxelShape, axis, voxelShape.shape.getSize(axis) - 1), new SliceShape(voxelShape2, axis, 0), booleanOp); +- return DoubleMath.fuzzyEquals(voxelShape.max(axis), 1.0, 1.0E-7) +- && DoubleMath.fuzzyEquals(voxelShape2.min(axis), 0.0, 1.0E-7) +- && !joinIsNotEmpty(new SliceShape(voxelShape, axis, voxelShape.shape.getSize(axis) - 1), new SliceShape(voxelShape2, axis, 0), booleanOp); } -+ -+ // we optimise getOpposite, so we can use it -+ // secondly, use our cache to retrieve sliced shape -+ final VoxelShape newFirst = shape.getFaceShapeClamped(direction); -+ if (newFirst.isEmpty()) { -+ return false; -+ } + final VoxelShape newSecond = neighbor.getFaceShapeClamped(direction.getOpposite()); + if (newSecond.isEmpty()) { + return false; @@ -3791,10 +3824,10 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 - boolean bl; - int i; - if (direction.getAxisDirection() == Direction.AxisDirection.POSITIVE) { -- bl = DoubleMath.fuzzyEquals(shape.max(axis), 1.0D, 1.0E-7D); +- bl = DoubleMath.fuzzyEquals(shape.max(axis), 1.0, 1.0E-7); - i = shape.shape.getSize(axis) - 1; - } else { -- bl = DoubleMath.fuzzyEquals(shape.min(axis), 0.0D, 1.0E-7D); +- bl = DoubleMath.fuzzyEquals(shape.min(axis), 0.0, 1.0E-7); - i = 0; - } + return shape.getFaceShapeClamped(direction); // Paper - optimise collisions @@ -3828,7 +3861,7 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 - Direction.AxisDirection axisDirection = direction.getAxisDirection(); - VoxelShape voxelShape = axisDirection == Direction.AxisDirection.POSITIVE ? one : two; - VoxelShape voxelShape2 = axisDirection == Direction.AxisDirection.POSITIVE ? two : one; -- if (!DoubleMath.fuzzyEquals(voxelShape.max(axis), 1.0D, 1.0E-7D)) { +- if (!DoubleMath.fuzzyEquals(voxelShape.max(axis), 1.0, 1.0E-7)) { - voxelShape = empty(); - } + // Paper start - optimise collisions @@ -3837,14 +3870,18 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 + return true; + } -- if (!DoubleMath.fuzzyEquals(voxelShape2.min(axis), 0.0D, 1.0E-7D)) { +- if (!DoubleMath.fuzzyEquals(voxelShape2.min(axis), 0.0, 1.0E-7)) { - voxelShape2 = empty(); - } + if (one.isEmpty() & two.isEmpty()) { + return false; + } -- return !joinIsNotEmpty(block(), joinUnoptimized(new SliceShape(voxelShape, axis, voxelShape.shape.getSize(axis) - 1), new SliceShape(voxelShape2, axis, 0), BooleanOp.OR), BooleanOp.ONLY_FIRST); +- return !joinIsNotEmpty( +- block(), +- joinUnoptimized(new SliceShape(voxelShape, axis, voxelShape.shape.getSize(axis) - 1), new SliceShape(voxelShape2, axis, 0), BooleanOp.OR), +- BooleanOp.ONLY_FIRST +- ); - } else { + // we optimise getOpposite, so we can use it + // secondly, use our cache to retrieve sliced shape @@ -3876,17 +3913,13 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 } public static boolean faceShapeOccludes(VoxelShape one, VoxelShape two) { -- if (one != block() && two != block()) { -- if (one.isEmpty() && two.isEmpty()) { -- return false; -- } else { -- return !joinIsNotEmpty(block(), joinUnoptimized(one, two, BooleanOp.OR), BooleanOp.ONLY_FIRST); -- } -- } else { +- return one == block() +- || two == block() +- || (!one.isEmpty() || !two.isEmpty()) && !joinIsNotEmpty(block(), joinUnoptimized(one, two, BooleanOp.OR), BooleanOp.ONLY_FIRST); + // Paper start - optimise collisions + if (one.occludesFullBlockIfCached() || two.occludesFullBlockIfCached()) { - return true; - } ++ return true; ++ } + + final boolean s1Empty = one.isEmpty(); + final boolean s2Empty = two.isEmpty(); @@ -3908,7 +3941,7 @@ index 9176735c08a75854209f24113b0e78332249dc4d..17785f7c709073a01928e8e6a57702f8 @VisibleForTesting diff --git a/src/main/java/net/minecraft/world/phys/shapes/SliceShape.java b/src/main/java/net/minecraft/world/phys/shapes/SliceShape.java -index cf469f9daa81da8bc330c9cac7e813db87f9f9af..d9256710e815a5cb55409a80d59df2029b98c0d7 100644 +index 53aa193f33a1a15376a59b8d6dd8cbc6cbec168b..a745ff8d115e1d0da6138e4f06726e0737bb1600 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/SliceShape.java +++ b/src/main/java/net/minecraft/world/phys/shapes/SliceShape.java @@ -12,6 +12,7 @@ public class SliceShape extends VoxelShape { @@ -3920,10 +3953,10 @@ index cf469f9daa81da8bc330c9cac7e813db87f9f9af..d9256710e815a5cb55409a80d59df202 private static DiscreteVoxelShape makeSlice(DiscreteVoxelShape voxelSet, Direction.Axis axis, int sliceWidth) { diff --git a/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java b/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java -index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd3744888fc34 100644 +index c88218ead06bec470b79f641651086dc121c42cc..e6b17f32f2b6930739a98c6139442383c1847add 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java +++ b/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java -@@ -16,30 +16,438 @@ import net.minecraft.world.phys.BlockHitResult; +@@ -16,37 +16,438 @@ import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.Vec3; public abstract class VoxelShape { @@ -3937,7 +3970,7 @@ index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd374 + private double offsetX; + private double offsetY; + private double offsetZ; -+ private AABB singleAABBRepresentation; ++ @Nullable private AABB singleAABBRepresentation; + private double[] rootCoordinatesX; + private double[] rootCoordinatesY; + private double[] rootCoordinatesZ; @@ -4335,15 +4368,22 @@ index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd374 - if (this.isEmpty()) { - throw (UnsupportedOperationException)Util.pauseInIde(new UnsupportedOperationException("No bounds for empty shape.")); - } else { -- return new AABB(this.min(Direction.Axis.X), this.min(Direction.Axis.Y), this.min(Direction.Axis.Z), this.max(Direction.Axis.X), this.max(Direction.Axis.Y), this.max(Direction.Axis.Z)); +- return new AABB( +- this.min(Direction.Axis.X), +- this.min(Direction.Axis.Y), +- this.min(Direction.Axis.Z), +- this.max(Direction.Axis.X), +- this.max(Direction.Axis.Y), +- this.max(Direction.Axis.Z) +- ); + // Paper start - optimise collisions + if (this.isEmpty) { + throw Util.pauseInIde(new UnsupportedOperationException("No bounds for empty shape.")); - } ++ } + AABB cached = this.cachedBounds; + if (cached != null) { + return cached; -+ } + } + + final io.papermc.paper.util.collisions.CachedShapeData shapeData = this.cachedShapeData; + @@ -4372,32 +4412,38 @@ index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd374 } public VoxelShape singleEncompassing() { -@@ -53,19 +461,106 @@ public abstract class VoxelShape { +@@ -69,28 +470,106 @@ public abstract class VoxelShape { protected abstract DoubleList getCoords(Direction.Axis axis); public boolean isEmpty() { - return this.shape.isEmpty(); + return this.isEmpty; // Paper - optimise collisions - } - ++ } ++ + // Paper start - optimise collisions + private static DoubleList offsetList(final DoubleList src, final double by) { + if (src instanceof OffsetDoubleList offsetDoubleList) { + return new OffsetDoubleList(offsetDoubleList.delegate, by + offsetDoubleList.offset); + } + return new OffsetDoubleList(src, by); -+ } + } + // Paper end - optimise collisions -+ + public VoxelShape move(double x, double y, double z) { -- return (VoxelShape)(this.isEmpty() ? Shapes.empty() : new ArrayVoxelShape(this.shape, (DoubleList)(new OffsetDoubleList(this.getCoords(Direction.Axis.X), x)), (DoubleList)(new OffsetDoubleList(this.getCoords(Direction.Axis.Y), y)), (DoubleList)(new OffsetDoubleList(this.getCoords(Direction.Axis.Z), z)))); +- return (VoxelShape)(this.isEmpty() +- ? Shapes.empty() +- : new ArrayVoxelShape( + // Paper start - optimise collisions + if (this.isEmpty) { + return Shapes.empty(); + } + + final ArrayVoxelShape ret = new ArrayVoxelShape( -+ this.shape, + this.shape, +- new OffsetDoubleList(this.getCoords(Direction.Axis.X), x), +- new OffsetDoubleList(this.getCoords(Direction.Axis.Y), y), +- new OffsetDoubleList(this.getCoords(Direction.Axis.Z), z) +- )); + offsetList(this.getCoords(Direction.Axis.X), x), + offsetList(this.getCoords(Direction.Axis.Y), y), + offsetList(this.getCoords(Direction.Axis.Z), z) @@ -4414,9 +4460,11 @@ index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd374 public VoxelShape optimize() { - VoxelShape[] voxelShapes = new VoxelShape[]{Shapes.empty()}; -- this.forAllBoxes((minX, minY, minZ, maxX, maxY, maxZ) -> { -- voxelShapes[0] = Shapes.joinUnoptimized(voxelShapes[0], Shapes.box(minX, minY, minZ, maxX, maxY, maxZ), BooleanOp.OR); -- }); +- this.forAllBoxes( +- (minX, minY, minZ, maxX, maxY, maxZ) -> voxelShapes[0] = Shapes.joinUnoptimized( +- voxelShapes[0], Shapes.box(minX, minY, minZ, maxX, maxY, maxZ), BooleanOp.OR +- ) +- ); - return voxelShapes[0]; + // Paper start - optimise collisions + // Optimise merge strategy to increase the number of simple joins, and additionally forward the toAabbs cache @@ -4486,8 +4534,8 @@ index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd374 } public void forAllEdges(Shapes.DoubleLineConsumer consumer) { -@@ -83,12 +578,43 @@ public abstract class VoxelShape { - }, true); +@@ -126,10 +605,43 @@ public abstract class VoxelShape { + ); } + // Paper start - optimise collisions @@ -4510,9 +4558,7 @@ index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd374 + public List toAabbs() { - List list = Lists.newArrayList(); -- this.forAllBoxes((x1, y1, z1, x2, y2, z2) -> { -- list.add(new AABB(x1, y1, z1, x2, y2, z2)); -- }); +- this.forAllBoxes((x1, y1, z1, x2, y2, z2) -> list.add(new AABB(x1, y1, z1, x2, y2, z2))); - return list; + // Paper start - optimise collisions + io.papermc.paper.util.collisions.CachedToAABBs cachedToAABBs = this.cachedToAABBs; @@ -4535,8 +4581,8 @@ index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd374 } public double min(Direction.Axis axis, double from, double to) { -@@ -115,37 +641,85 @@ public abstract class VoxelShape { - }) - 1; +@@ -154,43 +666,85 @@ public abstract class VoxelShape { + return Mth.binarySearch(0, this.shape.getSize(axis) + 1, i -> coord < this.get(axis, i)) - 1; } + // Paper start - optimise collisions @@ -4568,11 +4614,18 @@ index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd374 return null; - } else { - Vec3 vec3 = end.subtract(start); -- if (vec3.lengthSqr() < 1.0E-7D) { +- if (vec3.lengthSqr() < 1.0E-7) { - return null; - } else { -- Vec3 vec32 = start.add(vec3.scale(0.001D)); -- return this.shape.isFullWide(this.findIndex(Direction.Axis.X, vec32.x - (double)pos.getX()), this.findIndex(Direction.Axis.Y, vec32.y - (double)pos.getY()), this.findIndex(Direction.Axis.Z, vec32.z - (double)pos.getZ())) ? new BlockHitResult(vec32, Direction.getNearest(vec3.x, vec3.y, vec3.z).getOpposite(), pos, true) : AABB.clip(this.toAabbs(), start, end, pos); +- Vec3 vec32 = start.add(vec3.scale(0.001)); +- return this.shape +- .isFullWide( +- this.findIndex(Direction.Axis.X, vec32.x - pos.getX()), +- this.findIndex(Direction.Axis.Y, vec32.y - pos.getY()), +- this.findIndex(Direction.Axis.Z, vec32.z - pos.getZ()) +- ) +- ? new BlockHitResult(vec32, Direction.getNearest(vec3.x, vec3.y, vec3.z).getOpposite(), pos, true) +- : AABB.clip(this.toAabbs(), start, end, pos); + } + + final Vec3 directionOpposite = end.subtract(start); @@ -4615,10 +4668,10 @@ index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd374 - if (vec3s[0] == null || target.distanceToSqr(d, e, f) < target.distanceToSqr(vec3s[0])) { - vec3s[0] = new Vec3(d, e, f); - } -+ } - - }); - return Optional.of(vec3s[0]); + } ++ + Vec3 ret = null; + double retDistance = Double.MAX_VALUE; + @@ -4634,14 +4687,14 @@ index 15e2dfa9a17b4f19768c0cde0ad8031f0122cd33..6bd6385ad82481a099f3556ed2dbd374 + ret = new Vec3(x, y, z); + retDistance = dist; + } - } ++ } + + return Optional.ofNullable(ret); + // Paper end - optimise collisions } public VoxelShape getFaceShape(Direction facing) { -@@ -180,7 +754,28 @@ public abstract class VoxelShape { +@@ -227,7 +781,28 @@ public abstract class VoxelShape { } public double collide(Direction.Axis axis, AABB box, double maxDist) { diff --git a/patches/server/1018-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1018-Fix-entity-type-tags-suggestions-in-selectors.patch index 83872a3693..854bb2d342 100644 --- a/patches/server/1018-Fix-entity-type-tags-suggestions-in-selectors.patch +++ b/patches/server/1018-Fix-entity-type-tags-suggestions-in-selectors.patch @@ -118,13 +118,13 @@ index 3d897ec6920eff6176ddac9f0442a997b9ef14fd..abaf1ea340c69c8bee80e64567b44b5c this.level = MinMaxBounds.Ints.ANY; this.rotX = WrappedMinMaxBounds.ANY; diff --git a/src/main/java/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java b/src/main/java/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java -index 7863833c9a761a2b9364ff572ec909ec5a4538c3..36e26929306c04af7a44012fd7fc9902027e9ea2 100644 +index 0ed0679af07445f0ba241c791f15dcc2b6731b12..01ec7813cd7abe94cb87927c4c2324c8be6c3a56 100644 --- a/src/main/java/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java +++ b/src/main/java/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java -@@ -69,6 +69,19 @@ public class EntitySelectorOptions { - public static final DynamicCommandExceptionType ERROR_ENTITY_TYPE_INVALID = new DynamicCommandExceptionType((entity) -> { - return Component.translatableEscape("argument.entity.options.type.invalid", entity); - }); +@@ -75,6 +75,19 @@ public class EntitySelectorOptions { + public static final DynamicCommandExceptionType ERROR_ENTITY_TYPE_INVALID = new DynamicCommandExceptionType( + entity -> Component.translatableEscape("argument.entity.options.type.invalid", entity) + ); + // Paper start - tell clients to ask server for suggestions for EntityArguments + public static final DynamicCommandExceptionType ERROR_ENTITY_TAG_INVALID = new DynamicCommandExceptionType((object) -> { + return io.papermc.paper.adventure.PaperAdventure @@ -141,16 +141,16 @@ index 7863833c9a761a2b9364ff572ec909ec5a4538c3..36e26929306c04af7a44012fd7fc9902 private static void register(String id, EntitySelectorOptions.Modifier handler, Predicate condition, Component description) { OPTIONS.put(id, new EntitySelectorOptions.Option(handler, condition, description)); -@@ -316,6 +329,12 @@ public class EntitySelectorOptions { +@@ -296,6 +309,12 @@ public class EntitySelectorOptions { - if (reader.isTag()) { - TagKey> tagKey = TagKey.create(Registries.ENTITY_TYPE, ResourceLocation.read(reader.getReader())); -+ // Paper start - tell clients to ask server for suggestions for EntityArguments; throw error if invalid entity tag (only on suggestions to keep cmd success behavior) -+ if (reader.parsingEntityArgumentSuggestions && io.papermc.paper.configuration.GlobalConfiguration.get().commands.fixTargetSelectorTagCompletion && net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.getTag(tagKey).isEmpty()) { -+ reader.getReader().setCursor(i); -+ throw ERROR_ENTITY_TAG_INVALID.createWithContext(reader.getReader(), tagKey); -+ } -+ // Paper end - tell clients to ask server for suggestions for EntityArguments - reader.addPredicate((entity) -> { - return entity.getType().is(tagKey) != bl; - }); + if (reader.isTag()) { + TagKey> tagKey = TagKey.create(Registries.ENTITY_TYPE, ResourceLocation.read(reader.getReader())); ++ // Paper start - tell clients to ask server for suggestions for EntityArguments; throw error if invalid entity tag (only on suggestions to keep cmd success behavior) ++ if (reader.parsingEntityArgumentSuggestions && io.papermc.paper.configuration.GlobalConfiguration.get().commands.fixTargetSelectorTagCompletion && net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.getTag(tagKey).isEmpty()) { ++ reader.getReader().setCursor(i); ++ throw ERROR_ENTITY_TAG_INVALID.createWithContext(reader.getReader(), tagKey); ++ } ++ // Paper end - tell clients to ask server for suggestions for EntityArguments + reader.addPredicate(entity -> entity.getType().is(tagKey) != bl); + } else { + ResourceLocation resourceLocation = ResourceLocation.read(reader.getReader()); diff --git a/patches/server/1021-Properly-resend-entities.patch b/patches/server/1021-Properly-resend-entities.patch index 5966fb39a6..113d66e3b4 100644 --- a/patches/server/1021-Properly-resend-entities.patch +++ b/patches/server/1021-Properly-resend-entities.patch @@ -150,7 +150,7 @@ index 97b0119ac71284b3a223c089bec26d87a01d3b25..1e5f709115007ff19901c0a6c3cf884d this.sendLevelInfo(player, worldserver1); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e35dd853bbffbf1771543d2a59878879cd09fb9c..22458154f36ebabb22368773f4e7f6d681c24960 100644 +index a9d549d1f35928b7e9220e1e2e4ac30f3199ba2d..28b4e9ebc35058c3e094c1f8bd87130e288cea33 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3844,6 +3844,11 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -180,7 +180,7 @@ index a1bfd700cd4c39e4bb1b9c140b54b7c82cd8b32c..205b52e486123aa23a1469de896ab1ec } entity.playSound(((Bucketable) entity).getPickupSound(), 1.0F, 1.0F); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 38c14e06bcada9678b64c6eacf351de10232ee56..7cd7912cecbbbe2c32bfd9b85181115c6d316eb8 100644 +index 76193067a21ff962cf2634b36d0ddf3eff8f85d7..e8e4489bcd64fde1b3226bdc7a7cc612508bda3f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1000,7 +1000,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/1022-Optimize-Hoppers.patch b/patches/server/1022-Optimize-Hoppers.patch index 4502d0525f..fc971c77c0 100644 --- a/patches/server/1022-Optimize-Hoppers.patch +++ b/patches/server/1022-Optimize-Hoppers.patch @@ -723,13 +723,13 @@ index e3b6f2bf93710ea695b0c25c0b6968a8f24f0829..cdb739df2a285032d25d84f4464f202a @Override diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -index e4e827a57c2913c719282cc0d5da33586607677b..f52ccd4f3e062af3c7cc6eaea5b074a3bbd21690 100644 +index f33c4633094002a3dd0c54353b62f7b358628be3..dfd1246b735fe64c5beae83567a013861eb00822 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java @@ -93,12 +93,19 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc @Override public boolean isEmpty() { - this.unpackLootTable((Player)null); + this.unpackLootTable(null); - return this.getItems().stream().allMatch(ItemStack::isEmpty); + // Paper start - Perf: Optimize Hoppers + for (final ItemStack itemStack : this.getItems()) { @@ -743,8 +743,8 @@ index e4e827a57c2913c719282cc0d5da33586607677b..f52ccd4f3e062af3c7cc6eaea5b074a3 @Override public ItemStack getItem(int slot) { -- this.unpackLootTable((Player)null); -+ if (slot == 0) this.unpackLootTable((Player) null); // Paper - Perf: Optimize Hoppers +- this.unpackLootTable(null); ++ if (slot == 0) this.unpackLootTable(null); // Paper - Perf: Optimize Hoppers return this.getItems().get(slot); } diff --git a/patches/server/1023-Improve-performance-of-mass-crafts.patch b/patches/server/1023-Improve-performance-of-mass-crafts.patch index 640d0204e2..3f69ae35b9 100644 --- a/patches/server/1023-Improve-performance-of-mass-crafts.patch +++ b/patches/server/1023-Improve-performance-of-mass-crafts.patch @@ -34,17 +34,17 @@ index 7a0c1a55a211035bbca7b97293e94b04ae308bae..c3800bdd5096cb06e085e28f6bf0f655 if (optional.isPresent()) { RecipeHolder recipeholder = (RecipeHolder) optional.get(); diff --git a/src/main/java/net/minecraft/world/inventory/ResultSlot.java b/src/main/java/net/minecraft/world/inventory/ResultSlot.java -index 7b2ac37e8bd305919f04ded043e50f13b3fe4253..245731757f2593c736916ac6ee59e2c91d179934 100644 +index 113460eff5121788fce44d6569ec07deb9701b20..accf752e7615f775483830f81bd0df30e40d3c7f 100644 --- a/src/main/java/net/minecraft/world/inventory/ResultSlot.java +++ b/src/main/java/net/minecraft/world/inventory/ResultSlot.java -@@ -59,7 +59,7 @@ public class ResultSlot extends Slot { +@@ -58,7 +58,7 @@ public class ResultSlot extends Slot { @Override public void onTake(Player player, ItemStack stack) { this.checkTakeAchievements(stack); - NonNullList nonNullList = player.level().getRecipeManager().getRemainingItemsFor(RecipeType.CRAFTING, this.craftSlots, player.level()); + NonNullList nonNullList = player.level().getRecipeManager().getRemainingItemsFor(RecipeType.CRAFTING, this.craftSlots, player.level(), this.craftSlots.getCurrentRecipe() != null ? this.craftSlots.getCurrentRecipe().id() : null); // Paper - Perf: Improve mass crafting; check last recipe used first - for(int i = 0; i < nonNullList.size(); ++i) { + for (int i = 0; i < nonNullList.size(); i++) { ItemStack itemStack = this.craftSlots.getItem(i); diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java index a0ab3c55826af292d1cdac05648139b4d31f1376..d87124f5356180a37e581febc6141fdc5f1395a7 100644 diff --git a/patches/server/1024-Actually-optimise-explosions.patch b/patches/server/1024-Actually-optimise-explosions.patch index bcb01ef768..629e23722c 100644 --- a/patches/server/1024-Actually-optimise-explosions.patch +++ b/patches/server/1024-Actually-optimise-explosions.patch @@ -497,10 +497,10 @@ index 093c814d6835f20b1208236db96bb40b4611936c..b678da2cbb93cea7971bc3c4d324cfca } diff --git a/src/main/java/net/minecraft/world/level/ExplosionDamageCalculator.java b/src/main/java/net/minecraft/world/level/ExplosionDamageCalculator.java -index 24dba1eb6f5dc71e5d1ce2d150930eaefc83f811..f529f5d0f28533ec89f3ee712e59745991d068ee 100644 +index 92e06e14fd76fa34b871657c3410a4527cd30e09..da25fee7dd436fbe9f5566311f254ec7a99835d2 100644 --- a/src/main/java/net/minecraft/world/level/ExplosionDamageCalculator.java +++ b/src/main/java/net/minecraft/world/level/ExplosionDamageCalculator.java -@@ -20,11 +20,17 @@ public class ExplosionDamageCalculator { +@@ -22,11 +22,17 @@ public class ExplosionDamageCalculator { return true; } @@ -513,9 +513,9 @@ index 24dba1eb6f5dc71e5d1ce2d150930eaefc83f811..f529f5d0f28533ec89f3ee712e597459 + // Paper end - actually optimise explosions float f = explosion.radius() * 2.0F; Vec3 vec3 = explosion.center(); - double d = Math.sqrt(entity.distanceToSqr(vec3)) / (double)f; -- double e = (1.0D - d) * (double)Explosion.getSeenPercent(vec3, entity); -+ double e = (1.0D - d) * seenPercent; // Paper - actually optimise explosions - return (float)((e * e + e) / 2.0D * 7.0D * (double)f + 1.0D); + double d = Math.sqrt(entity.distanceToSqr(vec3)) / f; +- double e = (1.0 - d) * Explosion.getSeenPercent(vec3, entity); ++ double e = (1.0 - d) * seenPercent; // Paper - actually optimise explosions + return (float)((e * e + e) / 2.0 * 7.0 * f + 1.0); } } diff --git a/patches/server/1025-Optimise-chunk-tick-iteration.patch b/patches/server/1025-Optimise-chunk-tick-iteration.patch index 73a6088d00..da9130527c 100644 --- a/patches/server/1025-Optimise-chunk-tick-iteration.patch +++ b/patches/server/1025-Optimise-chunk-tick-iteration.patch @@ -365,7 +365,7 @@ index 2b33a3d8fdb86024acb2a3ee9d0a4a7dd4989c98..366c0c9b45a819f7f94ebe3e49b8ab7f gameprofilerfiller.pop(); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c99d2f2d64b73179e4e27b63030e26a07953041b..58591bf2f63b9c5e97d9ce4188dff3366968a178 100644 +index 17a6d43685f35a6978c2d941876a1f8a9a2c8b42..b3781efbd3edcf102fe1bda5d6149915dc1127c6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -325,6 +325,9 @@ public class ServerPlayer extends Player { diff --git a/patches/server/1026-Lag-compensation-ticks.patch b/patches/server/1026-Lag-compensation-ticks.patch index 6a0a25899e..ffb279c55f 100644 --- a/patches/server/1026-Lag-compensation-ticks.patch +++ b/patches/server/1026-Lag-compensation-ticks.patch @@ -63,7 +63,7 @@ index ef3048a4748113538a0ee0af5b526b2cd51d5c29..a7b217ddbcbf92513bd38101fdfca207 if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 22458154f36ebabb22368773f4e7f6d681c24960..3c8740c421d756477306fc9af933bead8842f5e1 100644 +index 28b4e9ebc35058c3e094c1f8bd87130e288cea33..e9bb7feb591032904516d1b9374f486d8a7d066c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3849,6 +3849,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1027-Optimise-nearby-player-retrieval.patch b/patches/server/1027-Optimise-nearby-player-retrieval.patch index c73abc51ad..06b8d42fec 100644 --- a/patches/server/1027-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1027-Optimise-nearby-player-retrieval.patch @@ -128,16 +128,19 @@ index 8a5abc320137d045acba0c87cef9f2912d78b6fb..6907d1be36fbdf0856c0e11983218d2f // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java -index ed1b95ec694b0fe8b647964b18b8c33707fc0b47..65cd42ce9f553e0aa5bf248bdbf902f9d1f55460 100644 +index 2e887e426dcd79e2dda401f127d0e01ca537e80e..65cd42ce9f553e0aa5bf248bdbf902f9d1f55460 100644 --- a/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java +++ b/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java -@@ -21,18 +21,50 @@ public class PlayerSensor extends Sensor { +@@ -21,17 +21,50 @@ public class PlayerSensor extends Sensor { @Override protected void doTick(ServerLevel world, LivingEntity entity) { -- List list = world.players().stream().filter(EntitySelector.NO_SPECTATORS).filter((player) -> { -- return entity.closerThan(player, 16.0D); -- }).sorted(Comparator.comparingDouble(entity::distanceToSqr)).collect(Collectors.toList()); +- List list = world.players() +- .stream() +- .filter(EntitySelector.NO_SPECTATORS) +- .filter(player -> entity.closerThan(player, 16.0)) +- .sorted(Comparator.comparingDouble(entity::distanceToSqr)) +- .collect(Collectors.toList()); + // Paper start - Perf: optimise nearby player retrieval & remove streams from hot code + io.papermc.paper.util.player.NearbyPlayers nearbyPlayers = world.chunkSource.chunkMap.getNearbyPlayers(); + net.minecraft.world.phys.Vec3 entityPos = entity.position(); @@ -164,13 +167,9 @@ index ed1b95ec694b0fe8b647964b18b8c33707fc0b47..65cd42ce9f553e0aa5bf248bdbf902f9 + players.sort(Comparator.comparingDouble(entity::distanceToSqr)); Brain brain = entity.getBrain(); - brain.setMemory(MemoryModuleType.NEAREST_PLAYERS, list); -- List list2 = list.stream().filter((player) -> { -- return isEntityTargetable(entity, player); -- }).collect(Collectors.toList()); +- List list2 = list.stream().filter(player -> isEntityTargetable(entity, player)).collect(Collectors.toList()); - brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, list2.isEmpty() ? null : list2.get(0)); -- Optional optional = list2.stream().filter((player) -> { -- return isEntityAttackable(entity, player); -- }).findFirst(); +- Optional optional = list2.stream().filter(player -> isEntityAttackable(entity, player)).findFirst(); - brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, optional); + + brain.setMemory(MemoryModuleType.NEAREST_PLAYERS, players); @@ -195,34 +194,34 @@ index ed1b95ec694b0fe8b647964b18b8c33707fc0b47..65cd42ce9f553e0aa5bf248bdbf902f9 } } diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java -index fae0dbfb6ac09a0c152c0f74a72583f44316def7..c8a80c1b2fedff22e8a877d466062375ffb2f0d7 100644 +index aecb0ad814586bfc5e56755ee14379a69388b38c..d2f0c3b26d4beedb49d86e0242d843590d469d02 100644 --- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java +++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java @@ -10,7 +10,7 @@ public class TargetingConditions { public static final TargetingConditions DEFAULT = forCombat(); - private static final double MIN_VISIBILITY_DISTANCE_FOR_INVISIBLE_TARGET = 2.0D; + private static final double MIN_VISIBILITY_DISTANCE_FOR_INVISIBLE_TARGET = 2.0; private final boolean isCombat; -- private double range = -1.0D; -+ public double range = -1.0D; // Paper - public +- private double range = -1.0; ++ public double range = -1.0; // Paper - public private boolean checkLineOfSight = true; private boolean testInvisible = true; @Nullable diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index f42dd9602805e9d538506ee4e3eac7e2811a3da6..ed84c87a3f76bc0254c1abb189e6b8b808823465 100644 +index 21843501355a0c0c8d594e3e5312e97861c9a777..ea0aee88c7d901034427db201c1b2430f8a1d522 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java -@@ -230,9 +230,13 @@ public interface EntityGetter { +@@ -233,9 +233,13 @@ public interface EntityGetter { T livingEntity = null; - for(T livingEntity2 : entityList) { + for (T livingEntity2 : entityList) { + // Paper start - optimise nearby player retrieval; move up + // don't check entities outside closest range + double e = livingEntity2.distanceToSqr(x, y, z); -+ if (d == -1.0D || e < d) { ++ if (d == -1.0 || e < d) { + // Paper end - move up if (targetPredicate.test(entity, livingEntity2)) { - double e = livingEntity2.distanceToSqr(x, y, z); -- if (d == -1.0D || e < d) { +- if (d == -1.0 || e < d) { + // Paper - optimise nearby player retrieval; move up d = e; livingEntity = livingEntity2; diff --git a/patches/server/1029-Handle-Oversized-block-entities-in-chunks.patch b/patches/server/1029-Handle-Oversized-block-entities-in-chunks.patch index 1bdb933b52..3705e1d295 100644 --- a/patches/server/1029-Handle-Oversized-block-entities-in-chunks.patch +++ b/patches/server/1029-Handle-Oversized-block-entities-in-chunks.patch @@ -9,7 +9,7 @@ creating too large of a packet to sed. Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index 74b5cec09d953a247bc5aba3c4232a4c28ea1046..998deae645b4497c3285bfba3260c636439f9ecf 100644 +index 9c51c4d12bac588002f530f484ee89b094269349..761a8d4fb47f9bffdf9ca76fbae1003e8ae46a02 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java @@ -24,6 +24,14 @@ public class ClientboundLevelChunkPacketData { @@ -33,7 +33,7 @@ index 74b5cec09d953a247bc5aba3c4232a4c28ea1046..998deae645b4497c3285bfba3260c636 this.blockEntitiesData = Lists.newArrayList(); + int totalTileEntities = 0; // Paper - Handle oversized block entities in chunks - for(Map.Entry entry2 : chunk.getBlockEntities().entrySet()) { + for (Entry entry2 : chunk.getBlockEntities().entrySet()) { + // Paper start - Handle oversized block entities in chunks + if (++totalTileEntities > TE_LIMIT) { + var packet = entry2.getValue().getUpdatePacket(); @@ -45,7 +45,7 @@ index 74b5cec09d953a247bc5aba3c4232a4c28ea1046..998deae645b4497c3285bfba3260c636 + // Paper end - Handle oversized block entities in chunks this.blockEntitiesData.add(ClientboundLevelChunkPacketData.BlockEntityInfo.create(entry2.getValue())); } - + } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java index 6412dff5ed0505f62dd5b71ab9606257858a7317..fc230d835f9aa526a4b179d36d921f0fec348aa8 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java diff --git a/patches/server/1034-Improve-tag-parser-handling.patch b/patches/server/1034-Improve-tag-parser-handling.patch index e2c46e261e..30bd53f874 100644 --- a/patches/server/1034-Improve-tag-parser-handling.patch +++ b/patches/server/1034-Improve-tag-parser-handling.patch @@ -54,7 +54,7 @@ index 0000000000000000000000000000000000000000..a375ad4ba9db990b24a2b9ff366fcba6 + } +} diff --git a/src/main/java/net/minecraft/nbt/TagParser.java b/src/main/java/net/minecraft/nbt/TagParser.java -index 5bec54239a2b185284c10d58854e5a13e33daae5..ef970428fe9fe36c242ce6588bb6843eb6179d59 100644 +index ebe0efe488357ae895aaf752e9bc008b96db156f..c77860a141064aea6a0b510bb44d35fea90aee42 100644 --- a/src/main/java/net/minecraft/nbt/TagParser.java +++ b/src/main/java/net/minecraft/nbt/TagParser.java @@ -48,6 +48,7 @@ public class TagParser { @@ -64,8 +64,8 @@ index 5bec54239a2b185284c10d58854e5a13e33daae5..ef970428fe9fe36c242ce6588bb6843e + private int depth; // Paper public static CompoundTag parseTag(String string) throws CommandSyntaxException { - return (new TagParser(new StringReader(string))).readSingleStruct(); -@@ -156,6 +157,7 @@ public class TagParser { + return new TagParser(new StringReader(string)).readSingleStruct(); +@@ -158,6 +159,7 @@ public class TagParser { public CompoundTag readStruct() throws CommandSyntaxException { this.expect('{'); @@ -73,7 +73,7 @@ index 5bec54239a2b185284c10d58854e5a13e33daae5..ef970428fe9fe36c242ce6588bb6843e CompoundTag compoundTag = new CompoundTag(); this.reader.skipWhitespace(); -@@ -179,6 +181,7 @@ public class TagParser { +@@ -181,6 +183,7 @@ public class TagParser { } this.expect('}'); @@ -81,7 +81,7 @@ index 5bec54239a2b185284c10d58854e5a13e33daae5..ef970428fe9fe36c242ce6588bb6843e return compoundTag; } -@@ -188,6 +191,7 @@ public class TagParser { +@@ -190,6 +193,7 @@ public class TagParser { if (!this.reader.canRead()) { throw ERROR_EXPECTED_VALUE.createWithContext(this.reader); } else { @@ -89,7 +89,7 @@ index 5bec54239a2b185284c10d58854e5a13e33daae5..ef970428fe9fe36c242ce6588bb6843e ListTag listTag = new ListTag(); TagType tagType = null; -@@ -213,6 +217,7 @@ public class TagParser { +@@ -215,6 +219,7 @@ public class TagParser { } this.expect(']'); @@ -97,22 +97,7 @@ index 5bec54239a2b185284c10d58854e5a13e33daae5..ef970428fe9fe36c242ce6588bb6843e return listTag; } } -@@ -251,11 +256,11 @@ public class TagParser { - } - - if (typeReader == ByteTag.TYPE) { -- list.add((T)((NumericTag)tag).getAsByte()); -+ list.add((T)((NumericTag)tag).getAsNumber()); // Paper - decompile fix - } else if (typeReader == LongTag.TYPE) { -- list.add((T)((NumericTag)tag).getAsLong()); -+ list.add((T)((NumericTag)tag).getAsNumber()); // Paper - decompile fix - } else { -- list.add((T)((NumericTag)tag).getAsInt()); -+ list.add((T)((NumericTag)tag).getAsNumber()); // Paper - decompile fix - } - - if (this.hasElementSeparator()) { -@@ -286,4 +291,11 @@ public class TagParser { +@@ -287,4 +292,11 @@ public class TagParser { this.reader.skipWhitespace(); this.reader.expect(c); } @@ -125,10 +110,10 @@ index 5bec54239a2b185284c10d58854e5a13e33daae5..ef970428fe9fe36c242ce6588bb6843e + } } diff --git a/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java b/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java -index d45e39bc009281c298f3dfae113dc87f2b3b1fbd..981d34dd4cfbc0932b147688751b98552c8beea8 100644 +index 65debad7aa7ffb1b0b19f89713ff394e8c9d245e..18e53db59082bae94922edc4baa812aa6f089576 100644 --- a/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java +++ b/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java -@@ -197,6 +197,15 @@ public class TranslatableContents implements ComponentContents { +@@ -181,6 +181,15 @@ public class TranslatableContents implements ComponentContents { @Override public Optional visit(FormattedText.ContentConsumer visitor) { @@ -143,8 +128,8 @@ index d45e39bc009281c298f3dfae113dc87f2b3b1fbd..981d34dd4cfbc0932b147688751b9855 + // Paper end - Count visited parts this.decompose(); - for(FormattedText formattedText : this.decomposedParts) { -@@ -208,6 +217,25 @@ public class TranslatableContents implements ComponentContents { + for (FormattedText formattedText : this.decomposedParts) { +@@ -192,6 +201,25 @@ public class TranslatableContents implements ComponentContents { return Optional.empty(); } diff --git a/patches/server/1050-Add-onboarding-message-for-initial-server-start.patch b/patches/server/1050-Add-onboarding-message-for-initial-server-start.patch index 953a8aa931..7769ecafe8 100644 --- a/patches/server/1050-Add-onboarding-message-for-initial-server-start.patch +++ b/patches/server/1050-Add-onboarding-message-for-initial-server-start.patch @@ -17,7 +17,7 @@ index c01b4393439838976965823298f12e4762e72eff..218bf89fd7583d6db9f64754c4db8fcc node = loader.load(); this.verifyGlobalConfigVersion(node); diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index b53b6cc4463675096b061b3b65f14a4695c742e2..f2e30d8743a97c0541808dc5c03300c0d881b843 100644 +index d00fc39b19c02895553f40bf5f62daa1dd50d59c..0cc2307636279915c1f8529e62174cc696e185ee 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -25,6 +25,7 @@ public class GlobalConfiguration extends ConfigurationPart { diff --git a/patches/server/1051-Fix-DamageSource-API.patch b/patches/server/1051-Fix-DamageSource-API.patch index 5e216b66e0..7d2ad02099 100644 --- a/patches/server/1051-Fix-DamageSource-API.patch +++ b/patches/server/1051-Fix-DamageSource-API.patch @@ -44,7 +44,7 @@ index 1561b85a45f52a8162f43553f8485bfe084b8f1f..b26e4d58ea1898a5e4b31c3d6ab33f38 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6de971aca46caad091271d125a079a1b7a5f163d..b2eff51f1ad1e702525ef298807ea7d2083f6218 100644 +index 8c2c877a26af90dae6d083e12a51384755c7a1de..6407496ccd993839e4fda1858e2daa6e735511a8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3462,7 +3462,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S From 8fe90dede7364a3c4aec17c4ef191b946f43d96e Mon Sep 17 00:00:00 2001 From: Hy3z <61559158+Hy3z@users.noreply.github.com> Date: Fri, 12 Apr 2024 21:19:55 +0200 Subject: [PATCH 048/215] [ci skip] Referenced InventoryDragEvent in documentation of InventoryClickEvent (#10395) --- patches/api/0056-Fix-upstream-javadocs.patch | 12 +++++++++--- .../api/0173-Fix-Spigot-annotation-mistakes.patch | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/patches/api/0056-Fix-upstream-javadocs.patch b/patches/api/0056-Fix-upstream-javadocs.patch index f221402975..f31a77e295 100644 --- a/patches/api/0056-Fix-upstream-javadocs.patch +++ b/patches/api/0056-Fix-upstream-javadocs.patch @@ -850,10 +850,16 @@ index 1440c6115520d692faf75455df35b92aa8734491..0808e7aeffb69160913344de5b5e21d5 public class FurnaceStartSmeltEvent extends InventoryBlockStartEvent { private static final HandlerList handlers = new HandlerList(); diff --git a/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java b/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java -index 79797a2be7fb139d528116d34d13e51d39b96e56..fe58058f9b5d29388d48115cc81dc48ab08c58c1 100644 +index 79797a2be7fb139d528116d34d13e51d39b96e56..f2a2a2ad9930499c5bf624e73571a3294a90db14 100644 --- a/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java +++ b/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java -@@ -19,9 +19,10 @@ import org.jetbrains.annotations.Nullable; +@@ -16,12 +16,16 @@ import org.jetbrains.annotations.Nullable; + /** + * This event is called when a player clicks in an inventory. + *

      ++ * In case of a drag action within an inventory, InventoryClickEvent is never called. ++ * Instead, {@link InventoryDragEvent} is called at the end of the drag. ++ *

      * Because InventoryClickEvent occurs within a modification of the Inventory, * not all Inventory related methods are safe to use. *

      @@ -867,7 +873,7 @@ index 79797a2be7fb139d528116d34d13e51d39b96e56..fe58058f9b5d29388d48115cc81dc48a *

        *
      • {@link HumanEntity#closeInventory()} *
      • {@link HumanEntity#openInventory(Inventory)} -@@ -92,7 +93,7 @@ public class InventoryClickEvent extends InventoryInteractEvent { +@@ -92,7 +96,7 @@ public class InventoryClickEvent extends InventoryInteractEvent { /** * Gets the ItemStack currently in the clicked slot. * diff --git a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch index 5a9e1829f9..8145eed098 100644 --- a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch @@ -1150,10 +1150,10 @@ index 80a0a4ad813d6453b30273d25942e6612bb05c1b..18bb808e73c7a78f367ccdb44d5fe12b this.inventory = inventory; this.containerType = containerType; diff --git a/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java b/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java -index fe58058f9b5d29388d48115cc81dc48ab08c58c1..ac67a4e321f43d1ede09dafe2daa1f07de8a923f 100644 +index f2a2a2ad9930499c5bf624e73571a3294a90db14..c8540a42ab44647fdd112ce4f731f3dc0df552f4 100644 --- a/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java +++ b/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java -@@ -85,7 +85,7 @@ public class InventoryClickEvent extends InventoryInteractEvent { +@@ -88,7 +88,7 @@ public class InventoryClickEvent extends InventoryInteractEvent { * * @return the cursor ItemStack */ From 46d462b83e74d07735af05ee352844d02906b4a7 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Fri, 12 Apr 2024 20:37:00 +0100 Subject: [PATCH 049/215] Fix StackOverflowException thrown on shutdown (Fixes #10404) (#10408) paper previously migrated away from using executeIfPossible as this throws a RejectedExecutionException when the server is shutting down, which is then picked up by the Connection handler object and causes the player to be kicked without the intended disconnection message that comes from commands such as /stop, /restart This was fine, because previously changes made in spigot would just prevent these packets from being executed anyways. Instead, we'll just use a marker exception to try to detect this specific state. --- .../0818-Fix-player-kick-on-shutdown.patch | 23 ------- ...x-premature-player-kicks-on-shutdown.patch | 61 +++++++++++++++++++ ...-Manager-and-add-advanced-packet-sup.patch | 20 +++--- ...ocity-compression-and-cipher-natives.patch | 6 +- ...l-more-information-in-watchdog-dumps.patch | 8 +-- 5 files changed, 78 insertions(+), 40 deletions(-) delete mode 100644 patches/server/0818-Fix-player-kick-on-shutdown.patch create mode 100644 patches/server/0818-Fix-premature-player-kicks-on-shutdown.patch diff --git a/patches/server/0818-Fix-player-kick-on-shutdown.patch b/patches/server/0818-Fix-player-kick-on-shutdown.patch deleted file mode 100644 index 6b694a6abe..0000000000 --- a/patches/server/0818-Fix-player-kick-on-shutdown.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Denery -Date: Sun, 6 Nov 2022 02:02:46 +0300 -Subject: [PATCH] Fix player kick on shutdown - -Fix preemptive player kick on a server shutdown. -If you update minecraft version / upstream and something is changed in this method make sure that a server doesn't disconnect a player preemptively, -also check if all packets are ignored during the shutdown process. -See net.minecraft.network.Connection#channelRead0(ChannelHandlerContext, Packet) and net.minecraft.util.thread.BlockableEventLoop#executeIfPossible(Runnable) - -diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -index b7ffab0284b0bccd79775b8d03c8b2e088f91d1d..4202c48ad8f8e85ef46d1bd446ab28f3f4b083d1 100644 ---- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java -+++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -@@ -26,7 +26,7 @@ public class PacketUtils { - - public static void ensureRunningOnSameThread(Packet packet, T listener, BlockableEventLoop engine) throws RunningOnDifferentThreadException { - if (!engine.isSameThread()) { -- engine.executeIfPossible(() -> { -+ engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown - if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players - if (listener.shouldHandleMessage(packet)) { - co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings diff --git a/patches/server/0818-Fix-premature-player-kicks-on-shutdown.patch b/patches/server/0818-Fix-premature-player-kicks-on-shutdown.patch new file mode 100644 index 0000000000..983dbfd32a --- /dev/null +++ b/patches/server/0818-Fix-premature-player-kicks-on-shutdown.patch @@ -0,0 +1,61 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Shane Freeder +Date: Thu, 11 Apr 2024 16:37:44 +0100 +Subject: [PATCH] Fix premature player kicks on shutdown + +When the server is stopping, the default execution handler method will throw a +RejectedExecutionException in order to prevent further execution, this causes +us to lose the actual kick reason. To mitigate this, we'll use a seperate marked +class in order to gracefully ignore these. + +diff --git a/src/main/java/io/papermc/paper/util/ServerStopRejectedExecutionException.java b/src/main/java/io/papermc/paper/util/ServerStopRejectedExecutionException.java +new file mode 100644 +index 0000000000000000000000000000000000000000..2c5cd77103c5a33d4349ab6b9ee2d8378bb60eb4 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/util/ServerStopRejectedExecutionException.java +@@ -0,0 +1,20 @@ ++package io.papermc.paper.util; ++ ++import java.util.concurrent.RejectedExecutionException; ++ ++public class ServerStopRejectedExecutionException extends RejectedExecutionException { ++ public ServerStopRejectedExecutionException() { ++ } ++ ++ public ServerStopRejectedExecutionException(final String message) { ++ super(message); ++ } ++ ++ public ServerStopRejectedExecutionException(final String message, final Throwable cause) { ++ super(message, cause); ++ } ++ ++ public ServerStopRejectedExecutionException(final Throwable cause) { ++ super(cause); ++ } ++} +diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java +index 22a7f17180b76b6c3548d3b54ae8218a469401a8..c399625a342ffd61102bb96a97ac24b0669e8e17 100644 +--- a/src/main/java/net/minecraft/network/Connection.java ++++ b/src/main/java/net/minecraft/network/Connection.java +@@ -290,6 +290,7 @@ public class Connection extends SimpleChannelInboundHandler> { + Connection.genericsFtw(packet, packetlistener); + } catch (RunningOnDifferentThreadException cancelledpackethandleexception) { + ; ++ } catch (io.papermc.paper.util.ServerStopRejectedExecutionException ignored) { // Paper - do not prematurely disconnect players on stop + } catch (RejectedExecutionException rejectedexecutionexception) { + this.disconnect(Component.translatable("multiplayer.disconnect.server_shutdown")); + } catch (ClassCastException classcastexception) { +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index bfee202e1dc8ea875b9d2b4e8c3b0be3f6d94b26..d50d3bc9c0f573cdb43100bce6e3dbfe2102fc53 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -2013,7 +2013,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { @@ -51,7 +51,7 @@ index 22a7f17180b76b6c3548d3b54ae8218a469401a8..7f2aa5e17fe675f3404d67b1794d2ca6 // Paper start - add utility methods public final net.minecraft.server.level.ServerPlayer getPlayer() { -@@ -375,15 +379,39 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -376,15 +380,39 @@ public class Connection extends SimpleChannelInboundHandler> { } public void send(Packet packet, @Nullable PacketSendListener callbacks, boolean flush) { @@ -97,7 +97,7 @@ index 22a7f17180b76b6c3548d3b54ae8218a469401a8..7f2aa5e17fe675f3404d67b1794d2ca6 } public void runOnceConnected(Consumer task) { -@@ -391,7 +419,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -392,7 +420,7 @@ public class Connection extends SimpleChannelInboundHandler> { this.flushQueue(); task.accept(this); } else { @@ -106,7 +106,7 @@ index 22a7f17180b76b6c3548d3b54ae8218a469401a8..7f2aa5e17fe675f3404d67b1794d2ca6 } } -@@ -409,6 +437,14 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -410,6 +438,14 @@ public class Connection extends SimpleChannelInboundHandler> { } private void doSendPacket(Packet packet, @Nullable PacketSendListener callbacks, boolean flush) { @@ -121,7 +121,7 @@ index 22a7f17180b76b6c3548d3b54ae8218a469401a8..7f2aa5e17fe675f3404d67b1794d2ca6 ChannelFuture channelfuture = flush ? this.channel.writeAndFlush(packet) : this.channel.write(packet); if (callbacks != null) { -@@ -428,14 +464,24 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -429,14 +465,24 @@ public class Connection extends SimpleChannelInboundHandler> { }); } @@ -147,7 +147,7 @@ index 22a7f17180b76b6c3548d3b54ae8218a469401a8..7f2aa5e17fe675f3404d67b1794d2ca6 } } -@@ -468,20 +514,57 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -469,20 +515,57 @@ public class Connection extends SimpleChannelInboundHandler> { return attributekey; } @@ -212,7 +212,7 @@ index 22a7f17180b76b6c3548d3b54ae8218a469401a8..7f2aa5e17fe675f3404d67b1794d2ca6 private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world private static int joinAttemptsThisTick; // Paper - Buffer joins to world -@@ -544,6 +627,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -545,6 +628,7 @@ public class Connection extends SimpleChannelInboundHandler> { public void disconnect(Component disconnectReason) { // Spigot Start this.preparing = false; @@ -220,7 +220,7 @@ index 22a7f17180b76b6c3548d3b54ae8218a469401a8..7f2aa5e17fe675f3404d67b1794d2ca6 // Spigot End if (this.channel == null) { this.delayedDisconnect = disconnectReason; -@@ -715,7 +799,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -716,7 +800,7 @@ public class Connection extends SimpleChannelInboundHandler> { public void handleDisconnection() { if (this.channel != null && !this.channel.isOpen()) { if (this.disconnectionHandled) { @@ -229,7 +229,7 @@ index 22a7f17180b76b6c3548d3b54ae8218a469401a8..7f2aa5e17fe675f3404d67b1794d2ca6 } else { this.disconnectionHandled = true; PacketListener packetlistener = this.getPacketListener(); -@@ -728,7 +812,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -729,7 +813,7 @@ public class Connection extends SimpleChannelInboundHandler> { packetlistener1.onDisconnect(ichatbasecomponent); } @@ -238,7 +238,7 @@ index 22a7f17180b76b6c3548d3b54ae8218a469401a8..7f2aa5e17fe675f3404d67b1794d2ca6 // Paper start - Add PlayerConnectionCloseEvent final PacketListener packetListener = this.getPacketListener(); if (packetListener instanceof net.minecraft.server.network.ServerCommonPacketListenerImpl commonPacketListener) { -@@ -765,4 +849,93 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -766,4 +850,93 @@ public class Connection extends SimpleChannelInboundHandler> { public void setBandwidthLogger(SampleLogger log) { this.bandwidthDebugMonitor = new BandwidthDebugMonitor(log); } diff --git a/patches/server/1013-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1013-Use-Velocity-compression-and-cipher-natives.patch index a9cc979072..8ba0372a99 100644 --- a/patches/server/1013-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/1013-Use-Velocity-compression-and-cipher-natives.patch @@ -260,10 +260,10 @@ index 11a466558c77b43969b8e4be3a3470f84c7fcb1a..ae6e8ab9c1afa31d808f1fce2654a8b9 } diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 7f2aa5e17fe675f3404d67b1794d2ca68b188eb9..fff375fd50fa1a804636a92ded1ae55cff42977d 100644 +index 16eb94eb1f40485daef2713f740f6e0beeb1463f..fae2a57570a4007b67b9949b9b16504da36a9886 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -734,11 +734,28 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -735,11 +735,28 @@ public class Connection extends SimpleChannelInboundHandler> { return networkmanager; } @@ -296,7 +296,7 @@ index 7f2aa5e17fe675f3404d67b1794d2ca68b188eb9..fff375fd50fa1a804636a92ded1ae55c public boolean isEncrypted() { return this.encrypted; -@@ -771,16 +788,17 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -772,16 +789,17 @@ public class Connection extends SimpleChannelInboundHandler> { public void setupCompression(int compressionThreshold, boolean rejectsBadPackets) { if (compressionThreshold >= 0) { diff --git a/patches/server/1014-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1014-Detail-more-information-in-watchdog-dumps.patch index 2dce8a04c2..e403a57375 100644 --- a/patches/server/1014-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/1014-Detail-more-information-in-watchdog-dumps.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Detail more information in watchdog dumps - Dump player name, player uuid, position, and world for packet handling diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index fff375fd50fa1a804636a92ded1ae55cff42977d..4716f8bd8a64d4f20f0d5957c1e7fabf63020f43 100644 +index fae2a57570a4007b67b9949b9b16504da36a9886..a536ebcf29d8ef0ed32863bd8d5e70f7a0636e8d 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -586,7 +586,13 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -587,7 +587,13 @@ public class Connection extends SimpleChannelInboundHandler> { if (!(this.packetListener instanceof net.minecraft.server.network.ServerLoginPacketListenerImpl loginPacketListener) || loginPacketListener.state != net.minecraft.server.network.ServerLoginPacketListenerImpl.State.VERIFYING || Connection.joinAttemptsThisTick++ < MAX_PER_TICK) { @@ -25,7 +25,7 @@ index fff375fd50fa1a804636a92ded1ae55cff42977d..4716f8bd8a64d4f20f0d5957c1e7fabf // Paper end - Buffer joins to world } diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -index 4202c48ad8f8e85ef46d1bd446ab28f3f4b083d1..32838f87978c0694bdb573236b7cdf72b2e363cd 100644 +index b7ffab0284b0bccd79775b8d03c8b2e088f91d1d..83302c252f54481f239522e5c6861ccfe233070a 100644 --- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java +++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java @@ -18,6 +18,24 @@ public class PacketUtils { @@ -56,7 +56,7 @@ index 4202c48ad8f8e85ef46d1bd446ab28f3f4b083d1..32838f87978c0694bdb573236b7cdf72 @@ -27,6 +45,8 @@ public class PacketUtils { public static void ensureRunningOnSameThread(Packet packet, T listener, BlockableEventLoop engine) throws RunningOnDifferentThreadException { if (!engine.isSameThread()) { - engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown + engine.executeIfPossible(() -> { + packetProcessing.push(listener); // Paper - detailed watchdog information + try { // Paper - detailed watchdog information if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players From f061e76e1f3950906dcd1d1aa2c8c1944632276e Mon Sep 17 00:00:00 2001 From: Cross <99601836+eteryi@users.noreply.github.com> Date: Fri, 12 Apr 2024 20:42:00 +0100 Subject: [PATCH 050/215] Fix hit criteria advancement triggered before changing state (#10409) * Fix hit criteria advancement being triggered before changing block state. * Rebase --------- Co-authored-by: Bjarne Koll --- patches/server/0470-Add-TargetHitEvent.patch | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/patches/server/0470-Add-TargetHitEvent.patch b/patches/server/0470-Add-TargetHitEvent.patch index 2afe7f45de..2d2b6ef60d 100644 --- a/patches/server/0470-Add-TargetHitEvent.patch +++ b/patches/server/0470-Add-TargetHitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add TargetHitEvent diff --git a/src/main/java/net/minecraft/world/level/block/TargetBlock.java b/src/main/java/net/minecraft/world/level/block/TargetBlock.java -index 02f6d5b523c3d4185a68adb419b2710768ed249f..da473a8b34e39cecf63fab8f7c4f77d485e5753b 100644 +index 02f6d5b523c3d4185a68adb419b2710768ed249f..4ae14ee74a83c8b12ac2e3475863e6d77979af0a 100644 --- a/src/main/java/net/minecraft/world/level/block/TargetBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TargetBlock.java @@ -42,6 +42,10 @@ public class TargetBlock extends Block { @@ -19,11 +19,12 @@ index 02f6d5b523c3d4185a68adb419b2710768ed249f..da473a8b34e39cecf63fab8f7c4f77d4 if (projectile.getOwner() instanceof ServerPlayer serverPlayer) { serverPlayer.awardStat(Stats.TARGET_HIT); CriteriaTriggers.TARGET_BLOCK_HIT.trigger(serverPlayer, projectile, hit.getLocation(), i); -@@ -51,6 +55,20 @@ public class TargetBlock extends Block { +@@ -51,10 +55,31 @@ public class TargetBlock extends Block { private static int updateRedstoneOutput(LevelAccessor world, BlockState state, BlockHitResult hitResult, Entity entity) { int i = getRedstoneStrength(hitResult, hitResult.getLocation()); int j = entity instanceof AbstractArrow ? 20 : 8; + // Paper start - Add TargetHitEvent ++ boolean shouldAward = false; + if (entity instanceof Projectile) { + final Projectile projectile = (Projectile) entity; + final org.bukkit.craftbukkit.block.CraftBlock craftBlock = org.bukkit.craftbukkit.block.CraftBlock.at(world, hitResult.getBlockPos()); @@ -31,7 +32,7 @@ index 02f6d5b523c3d4185a68adb419b2710768ed249f..da473a8b34e39cecf63fab8f7c4f77d4 + final io.papermc.paper.event.block.TargetHitEvent targetHitEvent = new io.papermc.paper.event.block.TargetHitEvent((org.bukkit.entity.Projectile) projectile.getBukkitEntity(), craftBlock, blockFace, i); + if (targetHitEvent.callEvent()) { + i = targetHitEvent.getSignalStrength(); -+ awardTargetHitCriteria(projectile, hitResult, i); ++ shouldAward = true; + } else { + return i; + } @@ -40,3 +41,13 @@ index 02f6d5b523c3d4185a68adb419b2710768ed249f..da473a8b34e39cecf63fab8f7c4f77d4 if (!world.getBlockTicks().hasScheduledTick(hitResult.getBlockPos(), state.getBlock())) { setOutputPower(world, state, i, hitResult.getBlockPos(), j); } + ++ // Paper start - Award Hit Criteria after Block Update ++ if (shouldAward) { ++ awardTargetHitCriteria((Projectile) entity, hitResult, i); ++ } ++ // Paper end - Award Hit Criteria after Block Update ++ + return i; + } + From 326347031287b483850190068efc3ee9994ab970 Mon Sep 17 00:00:00 2001 From: ButterDebugger <34288129+ButterDebugger@users.noreply.github.com> Date: Fri, 12 Apr 2024 16:07:28 -0400 Subject: [PATCH 051/215] Add color transition and clone functions to ParticleBuilder (#10342) --- ...ld.spawnParticle-API-and-add-Builder.patch | 100 +++++++++++++++++- 1 file changed, 97 insertions(+), 3 deletions(-) diff --git a/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch index cc410e841b..26b74a496c 100644 --- a/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -10,13 +10,15 @@ This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/com/destroystokyo/paper/ParticleBuilder.java b/src/main/java/com/destroystokyo/paper/ParticleBuilder.java new file mode 100644 -index 0000000000000000000000000000000000000000..f45b8cfd1611345e8d81ecb8297a586f05eb5dc6 +index 0000000000000000000000000000000000000000..507343f971fd42eada8ce3346b025daa9aadb7a2 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/ParticleBuilder.java -@@ -0,0 +1,485 @@ +@@ -0,0 +1,579 @@ +package com.destroystokyo.paper; + ++import com.google.common.base.Preconditions; +import com.google.common.collect.Lists; ++import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import org.bukkit.Color; +import org.bukkit.Location; +import org.bukkit.Particle; @@ -26,6 +28,7 @@ index 0000000000000000000000000000000000000000..f45b8cfd1611345e8d81ecb8297a586f + +import java.util.Collection; +import java.util.List; ++import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + @@ -34,7 +37,7 @@ index 0000000000000000000000000000000000000000..f45b8cfd1611345e8d81ecb8297a586f + * + * Usage of the builder is preferred over the super long {@link World#spawnParticle(Particle, Location, int, double, double, double, double, Object)} API + */ -+public class ParticleBuilder { ++public class ParticleBuilder implements Cloneable { + + private Particle particle; + private List receivers; @@ -498,6 +501,97 @@ index 0000000000000000000000000000000000000000..f45b8cfd1611345e8d81ecb8297a586f + public ParticleBuilder color(int r, int g, int b) { + return color(Color.fromRGB(r, g, b)); + } ++ ++ /** ++ * Sets the particle Color. ++ * Only valid for REDSTONE. ++ * ++ * @param rgb an integer representing the red, green, and blue color components ++ * @return a reference to this object. ++ * @throws IllegalArgumentException if called on a particle builder that does not have ++ */ ++ @NotNull ++ public ParticleBuilder color(final int rgb) { ++ return color(Color.fromRGB(rgb)); ++ } ++ ++ /** ++ * Sets the particle Color Transition. Only valid for DUST_COLOR_TRANSITION. ++ * ++ * @param fromColor the new particle from color ++ * @param toColor the new particle to color ++ * @return a reference to this object. ++ * @throws IllegalArgumentException if the particle builder's {@link #particle()} isn't {@link Particle#DUST_COLOR_TRANSITION}. ++ */ ++ @NotNull ++ public ParticleBuilder colorTransition(@NotNull final Color fromColor, @NotNull final Color toColor) { ++ return colorTransition(fromColor, toColor, 1); ++ } ++ ++ /** ++ * Sets the particle Color Transition. ++ * Only valid for DUST_COLOR_TRANSITION. ++ * ++ * @param fromRed red color component for the from color ++ * @param fromGreen green color component for the from color ++ * @param fromBlue blue color component for the from color ++ * @param toRed red color component for the to color ++ * @param toGreen green color component for the to color ++ * @param toBlue blue color component for the to color ++ * @return a reference to this object. ++ * @throws IllegalArgumentException if the particle builder's {@link #particle()} isn't {@link Particle#DUST_COLOR_TRANSITION}. ++ */ ++ @NotNull ++ public ParticleBuilder colorTransition(final int fromRed, final int fromGreen, final int fromBlue, ++ final int toRed, final int toGreen, final int toBlue) { ++ return colorTransition(Color.fromRGB(fromRed, fromGreen, fromBlue), Color.fromRGB(toRed, toGreen, toBlue)); ++ } ++ ++ /** ++ * Sets the particle Color Transition. ++ * Only valid for DUST_COLOR_TRANSITION. ++ * ++ * @param fromRgb an integer representing the red, green, and blue color components for the from color ++ * @param toRgb an integer representing the red, green, and blue color components for the to color ++ * @return a reference to this object. ++ * @throws IllegalArgumentException if the particle builder's {@link #particle()} isn't {@link Particle#DUST_COLOR_TRANSITION}. ++ */ ++ @NotNull ++ public ParticleBuilder colorTransition(final int fromRgb, final int toRgb) { ++ return colorTransition(Color.fromRGB(fromRgb), Color.fromRGB(toRgb)); ++ } ++ ++ /** ++ * Sets the particle Color Transition and size. Only valid for DUST_COLOR_TRANSITION. ++ * ++ * @param fromColor the new particle color for the from color. ++ * @param toColor the new particle color for the to color. ++ * @param size the size of the particle ++ * @return a reference to this object. ++ * @throws IllegalArgumentException if the particle builder's {@link #particle()} isn't {@link Particle#DUST_COLOR_TRANSITION}. ++ */ ++ @NotNull ++ public ParticleBuilder colorTransition(@NotNull final Color fromColor, ++ @NotNull final Color toColor, ++ final float size) { ++ Preconditions.checkArgument(fromColor != null, "Cannot define color transition with null fromColor."); ++ Preconditions.checkArgument(toColor != null, "Cannot define color transition with null toColor."); ++ Preconditions.checkArgument(this.particle() == Particle.DUST_COLOR_TRANSITION, "Can only define a color transition on particle DUST_COLOR_TRANSITION."); ++ return data(new Particle.DustTransition(fromColor, toColor, size)); ++ } ++ ++ @NotNull ++ @Override ++ public ParticleBuilder clone() { ++ try { ++ final ParticleBuilder builder = (ParticleBuilder) super.clone(); ++ if (this.location != null) builder.location = this.location.clone(); ++ if (this.receivers != null) builder.receivers = new ObjectArrayList<>(this.receivers); ++ return builder; ++ } catch (final CloneNotSupportedException e) { ++ throw new AssertionError(); ++ } ++ } +} diff --git a/src/main/java/org/bukkit/Particle.java b/src/main/java/org/bukkit/Particle.java index ca6d0eaa9d9a37c07f3e1630b83a79bf98211edb..26d02aa5da444112f8fa84c07e3080bb669983a1 100644 From 4445d23544e0801fb6f658de98815ce0d8c04f58 Mon Sep 17 00:00:00 2001 From: Owen <23108066+Owen1212055@users.noreply.github.com> Date: Fri, 12 Apr 2024 17:16:22 -0400 Subject: [PATCH 052/215] Deprecate ItemStack#setType & add ItemStack#withType (#10290) --- patches/api/0124-PlayerElytraBoostEvent.patch | 20 +++++-- .../0173-Fix-Spigot-annotation-mistakes.patch | 24 +++++++++ ...for-InventoryBlockStartEvent-subclas.patch | 16 +++--- .../0469-Deprecate-ItemStack-setType.patch | 54 +++++++++++++++++++ patches/api/0470-Item-Mutation-Fixes.patch | 50 +++++++++++++++++ patches/server/0009-MC-Utils.patch | 8 ++- ...067-Handle-Item-Meta-Inconsistencies.patch | 8 +-- ...0193-ItemStack-getMaxItemUseDuration.patch | 4 +- .../server/0214-PlayerElytraBoostEvent.patch | 4 +- ...on-t-call-getItemMeta-on-hasItemMeta.patch | 4 +- patches/server/0716-More-Projectile-API.patch | 4 +- ...tItemStack-setAmount-null-assignment.patch | 4 +- ...86-fix-item-meta-for-tadpole-buckets.patch | 4 +- ...proper-checking-of-empty-item-stacks.patch | 4 +- .../0971-Add-drops-to-shear-events.patch | 4 +- .../1055-Deprecate-ItemStack-setType.patch | 30 +++++++++++ patches/server/1056-Item-Mutation-Fixes.patch | 49 +++++++++++++++++ 17 files changed, 258 insertions(+), 33 deletions(-) create mode 100644 patches/api/0469-Deprecate-ItemStack-setType.patch create mode 100644 patches/api/0470-Item-Mutation-Fixes.patch create mode 100644 patches/server/1055-Deprecate-ItemStack-setType.patch create mode 100644 patches/server/1056-Item-Mutation-Fixes.patch diff --git a/patches/api/0124-PlayerElytraBoostEvent.patch b/patches/api/0124-PlayerElytraBoostEvent.patch index 759f0f7047..fb24f9dbbf 100644 --- a/patches/api/0124-PlayerElytraBoostEvent.patch +++ b/patches/api/0124-PlayerElytraBoostEvent.patch @@ -6,10 +6,10 @@ Subject: [PATCH] PlayerElytraBoostEvent diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerElytraBoostEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerElytraBoostEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..42375d44ed0db457b96165414e9b45a557bac1ab +index 0000000000000000000000000000000000000000..9ebac41c22b8866df616020d409e5e1a49cddca5 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerElytraBoostEvent.java -@@ -0,0 +1,90 @@ +@@ -0,0 +1,104 @@ +package com.destroystokyo.paper.event.player; + +import org.bukkit.entity.Firework; @@ -17,6 +17,7 @@ index 0000000000000000000000000000000000000000..42375d44ed0db457b96165414e9b45a5 +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.event.player.PlayerEvent; ++import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; @@ -31,14 +32,17 @@ index 0000000000000000000000000000000000000000..42375d44ed0db457b96165414e9b45a5 + @NotNull private final ItemStack itemStack; + @NotNull private final Firework firework; + private boolean consume = true; ++ @NotNull ++ private final EquipmentSlot hand; + + private boolean cancelled; + + @ApiStatus.Internal -+ public PlayerElytraBoostEvent(@NotNull Player player, @NotNull ItemStack itemStack, @NotNull Firework firework) { ++ public PlayerElytraBoostEvent(@NotNull Player player, @NotNull ItemStack itemStack, @NotNull Firework firework, @NotNull EquipmentSlot hand) { + super(player); + this.itemStack = itemStack; + this.firework = firework; ++ this.hand = hand; + } + + /** @@ -79,6 +83,16 @@ index 0000000000000000000000000000000000000000..42375d44ed0db457b96165414e9b45a5 + this.consume = consume; + } + ++ /** ++ * Gets the hand holding the firework used for boosting this player. ++ * ++ * @return interaction hand ++ */ ++ @NotNull ++ public EquipmentSlot getHand() { ++ return this.hand; ++ } ++ + @Override + public boolean isCancelled() { + return this.cancelled; diff --git a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch index 8145eed098..1f17f45353 100644 --- a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch @@ -982,6 +982,30 @@ index 8f601e85df580ef8106eaff8b9eafb5691a4874b..d615c006c9153fb65024241604b744fb public static final MemoryKey SNIFFER_EXPLORED_POSITIONS = new MemoryKey<>(NamespacedKey.minecraft("sniffer_explored_positions"), Location.class); /** +diff --git a/src/main/java/org/bukkit/event/block/BrewingStartEvent.java b/src/main/java/org/bukkit/event/block/BrewingStartEvent.java +index 9e54ef5b60bf5583c12e1edfa76f19013a5b2a65..37be83184cae203d5e99518b0ff5c708fafb0331 100644 +--- a/src/main/java/org/bukkit/event/block/BrewingStartEvent.java ++++ b/src/main/java/org/bukkit/event/block/BrewingStartEvent.java +@@ -8,6 +8,7 @@ import org.jetbrains.annotations.NotNull; + /** + * Called when a brewing stand starts to brew. + */ ++@org.jetbrains.annotations.ApiStatus.Experimental // Paper + public class BrewingStartEvent extends InventoryBlockStartEvent { + + private static final HandlerList handlers = new HandlerList(); +diff --git a/src/main/java/org/bukkit/event/block/CampfireStartEvent.java b/src/main/java/org/bukkit/event/block/CampfireStartEvent.java +index 53119742beda00a38111063243665bb995ae2188..2d084214e991fecc51f8e18e3d733e43b1dca248 100644 +--- a/src/main/java/org/bukkit/event/block/CampfireStartEvent.java ++++ b/src/main/java/org/bukkit/event/block/CampfireStartEvent.java +@@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; + /** + * Called when a Campfire starts to cook. + */ ++@org.jetbrains.annotations.ApiStatus.Experimental // Paper + public class CampfireStartEvent extends InventoryBlockStartEvent { + + private static final HandlerList handlers = new HandlerList(); diff --git a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java index e9a6e5be5f33a342f7e5c496f0f1c64b2f302ace..f0db59a556deaefefbdaca121585c0fd199c13c2 100644 --- a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java diff --git a/patches/api/0401-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0401-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch index 1ae7f17da6..c375206bf7 100644 --- a/patches/api/0401-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch +++ b/patches/api/0401-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Fix HandlerList for InventoryBlockStartEvent subclasses diff --git a/src/main/java/org/bukkit/event/block/BrewingStartEvent.java b/src/main/java/org/bukkit/event/block/BrewingStartEvent.java -index 9e54ef5b60bf5583c12e1edfa76f19013a5b2a65..fe6573d8fca0aa8d8f37f8b476fc45adc786795f 100644 +index 37be83184cae203d5e99518b0ff5c708fafb0331..43eac972f45d1cbb6278b048f8e6d7882c0aabeb 100644 --- a/src/main/java/org/bukkit/event/block/BrewingStartEvent.java +++ b/src/main/java/org/bukkit/event/block/BrewingStartEvent.java -@@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull; - */ +@@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull; + @org.jetbrains.annotations.ApiStatus.Experimental // Paper public class BrewingStartEvent extends InventoryBlockStartEvent { - private static final HandlerList handlers = new HandlerList(); @@ -17,7 +17,7 @@ index 9e54ef5b60bf5583c12e1edfa76f19013a5b2a65..fe6573d8fca0aa8d8f37f8b476fc45ad private int brewingTime; public BrewingStartEvent(@NotNull final Block furnace, @NotNull ItemStack source, int brewingTime) { -@@ -36,14 +36,5 @@ public class BrewingStartEvent extends InventoryBlockStartEvent { +@@ -37,14 +37,5 @@ public class BrewingStartEvent extends InventoryBlockStartEvent { this.brewingTime = brewTime; } @@ -34,11 +34,11 @@ index 9e54ef5b60bf5583c12e1edfa76f19013a5b2a65..fe6573d8fca0aa8d8f37f8b476fc45ad + // Paper - remove HandlerList } diff --git a/src/main/java/org/bukkit/event/block/CampfireStartEvent.java b/src/main/java/org/bukkit/event/block/CampfireStartEvent.java -index 53119742beda00a38111063243665bb995ae2188..1f7a8bf65e9ac3188f759f9b3c4d6edbf255942a 100644 +index 2d084214e991fecc51f8e18e3d733e43b1dca248..4b12575107b3f1fa6d0ed7f667bf0d0ae40acae0 100644 --- a/src/main/java/org/bukkit/event/block/CampfireStartEvent.java +++ b/src/main/java/org/bukkit/event/block/CampfireStartEvent.java -@@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull; - */ +@@ -12,7 +12,7 @@ import org.jetbrains.annotations.NotNull; + @org.jetbrains.annotations.ApiStatus.Experimental // Paper public class CampfireStartEvent extends InventoryBlockStartEvent { - private static final HandlerList handlers = new HandlerList(); @@ -46,7 +46,7 @@ index 53119742beda00a38111063243665bb995ae2188..1f7a8bf65e9ac3188f759f9b3c4d6edb private int cookingTime; private CampfireRecipe campfireRecipe; -@@ -49,14 +49,5 @@ public class CampfireStartEvent extends InventoryBlockStartEvent { +@@ -50,14 +50,5 @@ public class CampfireStartEvent extends InventoryBlockStartEvent { this.cookingTime = cookTime; } diff --git a/patches/api/0469-Deprecate-ItemStack-setType.patch b/patches/api/0469-Deprecate-ItemStack-setType.patch new file mode 100644 index 0000000000..78e7c70b9f --- /dev/null +++ b/patches/api/0469-Deprecate-ItemStack-setType.patch @@ -0,0 +1,54 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> +Date: Thu, 29 Feb 2024 17:54:26 -0500 +Subject: [PATCH] Deprecate ItemStack#setType + + +diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java +index 245a730a54c4b241a9a67eccceefafd2763bd238..7414b4fa690d393a8e9557cc1fd1ce12fa426940 100644 +--- a/src/main/java/org/bukkit/inventory/ItemStack.java ++++ b/src/main/java/org/bukkit/inventory/ItemStack.java +@@ -134,8 +134,18 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat + * {@link Material#isItem()} returns false. + * + * @param type New type to set the items in this stack to ++ * @deprecated Setting the material type of ItemStacks is no longer supported. ++ *

        ++ * This method is deprecated due to potential illegal behavior that may occur ++ * during the context of which this ItemStack is being used, allowing for certain item validation to be bypassed. ++ * It is recommended to instead create a new ItemStack object with the desired ++ * Material type, and if possible, set it in the appropriate context. ++ * ++ * Using this method in ItemStacks passed in events will result in undefined behavior. ++ * @see ItemStack#withType(Material) + */ + @Utility ++ @Deprecated // Paper + public void setType(@NotNull Material type) { + Preconditions.checkArgument(type != null, "Material cannot be null"); + this.type = type; +@@ -148,6 +158,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat + this.data = null; + } + } ++ // Paper start ++ /** ++ * Creates a new ItemStack with the specified Material type, where the item count and item meta is preserved. ++ * ++ * @param type The Material type of the new ItemStack. ++ * @return A new ItemStack instance with the specified Material type. ++ */ ++ @NotNull ++ @org.jetbrains.annotations.Contract(value = "_ -> new", pure = true) ++ public ItemStack withType(@NotNull Material type) { ++ ItemStack itemStack = new ItemStack(type, this.amount); ++ if (this.hasItemMeta()) { ++ itemStack.setItemMeta(this.getItemMeta()); ++ } ++ ++ return itemStack; ++ } ++ // Paper end + + /** + * Gets the amount of items in this stack diff --git a/patches/api/0470-Item-Mutation-Fixes.patch b/patches/api/0470-Item-Mutation-Fixes.patch new file mode 100644 index 0000000000..c1c3508b78 --- /dev/null +++ b/patches/api/0470-Item-Mutation-Fixes.patch @@ -0,0 +1,50 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> +Date: Wed, 20 Mar 2024 20:42:31 -0400 +Subject: [PATCH] Item Mutation Fixes + + +diff --git a/src/main/java/org/bukkit/event/block/InventoryBlockStartEvent.java b/src/main/java/org/bukkit/event/block/InventoryBlockStartEvent.java +index f30ed841864f426c59143f392f39c96f864ba924..16fd600c25991e641a1be6fb78238256a6ce3d3f 100644 +--- a/src/main/java/org/bukkit/event/block/InventoryBlockStartEvent.java ++++ b/src/main/java/org/bukkit/event/block/InventoryBlockStartEvent.java +@@ -21,7 +21,7 @@ import org.jetbrains.annotations.NotNull; + public class InventoryBlockStartEvent extends BlockEvent { + + private static final HandlerList handlers = new HandlerList(); +- private final ItemStack source; ++ protected ItemStack source; // Paper + + public InventoryBlockStartEvent(@NotNull final Block block, @NotNull ItemStack source) { + super(block); +diff --git a/src/main/java/org/bukkit/event/enchantment/EnchantItemEvent.java b/src/main/java/org/bukkit/event/enchantment/EnchantItemEvent.java +index 1829529c9915937dcdd0e6d1ceba9e64819fb93f..e7c243038b70ca13b7eabdf88ce518b6198c6db9 100644 +--- a/src/main/java/org/bukkit/event/enchantment/EnchantItemEvent.java ++++ b/src/main/java/org/bukkit/event/enchantment/EnchantItemEvent.java +@@ -20,7 +20,7 @@ import org.jetbrains.annotations.NotNull; + public class EnchantItemEvent extends InventoryEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private final Block table; +- private final ItemStack item; ++ private ItemStack item; // Paper + private int level; + private boolean cancelled; + private final Map enchants; +@@ -72,6 +72,17 @@ public class EnchantItemEvent extends InventoryEvent implements Cancellable { + return item; + } + ++ // Paper start ++ /** ++ * Sets the item to be enchanted ++ * ++ * @param item item ++ */ ++ public void setItem(@NotNull final ItemStack item) { ++ this.item = item; ++ } ++ // Paper end ++ + /** + * Gets the cost (minimum level) which is displayed as a number on the right + * hand side of the enchantment offer. diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index 8f3da9d5b8..40721b09a9 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -7892,10 +7892,10 @@ index ed501b794c222278dca98f8ece6096db1d8108a5..be3a8e54d64b3cc145ab09b0bc7abb3f + } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index bf46aa3bd46ffabe92d58aa45ea0dfe6c98d94aa..23b83f8e98d681895b4e23cda4f3d50f85c12dd9 100644 +index bf46aa3bd46ffabe92d58aa45ea0dfe6c98d94aa..0bb01e53f1c15071c8cd818cce79af8196fe790f 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -23,6 +23,16 @@ import org.bukkit.material.MaterialData; +@@ -23,6 +23,20 @@ import org.bukkit.material.MaterialData; @DelegateDeserialization(ItemStack.class) public final class CraftItemStack extends ItemStack { @@ -7907,6 +7907,10 @@ index bf46aa3bd46ffabe92d58aa45ea0dfe6c98d94aa..23b83f8e98d681895b4e23cda4f3d50f + return asNMSCopy(bukkit); + } + } ++ ++ public static net.minecraft.world.item.ItemStack getOrCloneOnMutation(ItemStack old, ItemStack newInstance) { ++ return old == newInstance ? unwrap(old) : asNMSCopy(newInstance); ++ } + // Paper end - MC Utils + public static net.minecraft.world.item.ItemStack asNMSCopy(ItemStack original) { diff --git a/patches/server/0067-Handle-Item-Meta-Inconsistencies.patch b/patches/server/0067-Handle-Item-Meta-Inconsistencies.patch index 9528bf1431..279fb52e31 100644 --- a/patches/server/0067-Handle-Item-Meta-Inconsistencies.patch +++ b/patches/server/0067-Handle-Item-Meta-Inconsistencies.patch @@ -70,10 +70,10 @@ index 6291265ae4691bf7dffe196d20571c1c30e8d906..70511628eefc28163d07f50f18d9cc55 public boolean isEnchanted() { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 23b83f8e98d681895b4e23cda4f3d50f85c12dd9..c72a1a503f6e71228a1f82b37068ff7a83e983dc 100644 +index 0bb01e53f1c15071c8cd818cce79af8196fe790f..b59e84bbed37b002a34fe81efdce6f025617fc84 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -188,28 +188,11 @@ public final class CraftItemStack extends ItemStack { +@@ -192,28 +192,11 @@ public final class CraftItemStack extends ItemStack { public void addUnsafeEnchantment(Enchantment ench, int level) { Preconditions.checkArgument(ench != null, "Enchantment cannot be null"); @@ -107,7 +107,7 @@ index 23b83f8e98d681895b4e23cda4f3d50f85c12dd9..c72a1a503f6e71228a1f82b37068ff7a } static boolean makeTag(net.minecraft.world.item.ItemStack item) { -@@ -242,43 +225,15 @@ public final class CraftItemStack extends ItemStack { +@@ -246,43 +229,15 @@ public final class CraftItemStack extends ItemStack { public int removeEnchantment(Enchantment ench) { Preconditions.checkArgument(ench != null, "Enchantment cannot be null"); @@ -159,7 +159,7 @@ index 23b83f8e98d681895b4e23cda4f3d50f85c12dd9..c72a1a503f6e71228a1f82b37068ff7a return level; } -@@ -290,7 +245,7 @@ public final class CraftItemStack extends ItemStack { +@@ -294,7 +249,7 @@ public final class CraftItemStack extends ItemStack { @Override public Map getEnchantments() { diff --git a/patches/server/0193-ItemStack-getMaxItemUseDuration.patch b/patches/server/0193-ItemStack-getMaxItemUseDuration.patch index 83ab07155e..e66ff94efb 100644 --- a/patches/server/0193-ItemStack-getMaxItemUseDuration.patch +++ b/patches/server/0193-ItemStack-getMaxItemUseDuration.patch @@ -6,10 +6,10 @@ Subject: [PATCH] ItemStack#getMaxItemUseDuration Allows you to determine how long it takes to use a usable/consumable item diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index c72a1a503f6e71228a1f82b37068ff7a83e983dc..d9a07829d5d0ebcb18b8e3f12622ed7795955d61 100644 +index b59e84bbed37b002a34fe81efdce6f025617fc84..78f2159285e676b877f85df604889ddcf19e8923 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -184,6 +184,13 @@ public final class CraftItemStack extends ItemStack { +@@ -188,6 +188,13 @@ public final class CraftItemStack extends ItemStack { return (this.handle == null) ? Material.AIR.getMaxStackSize() : this.handle.getItem().getMaxStackSize(); } diff --git a/patches/server/0214-PlayerElytraBoostEvent.patch b/patches/server/0214-PlayerElytraBoostEvent.patch index b9afdb2bf1..80552e3b6d 100644 --- a/patches/server/0214-PlayerElytraBoostEvent.patch +++ b/patches/server/0214-PlayerElytraBoostEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerElytraBoostEvent diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -index 3749cfca8f007973d1a2206d8f2ba15283a550e1..eb655eb01e4841ca163666f21dae00f0632a11e5 100644 +index 7c627d27300247db9122ab2081049345ef306073..4565cf51ee2f973b368a984436c02220ed9f4a70 100644 --- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java +++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java @@ -68,12 +68,19 @@ public class FireworkRocketItem extends Item { @@ -15,7 +15,7 @@ index 3749cfca8f007973d1a2206d8f2ba15283a550e1..eb655eb01e4841ca163666f21dae00f0 - world.addFreshEntity(fireworkRocketEntity); - if (!user.getAbilities().instabuild) { + // Paper start - PlayerElytraBoostEvent -+ com.destroystokyo.paper.event.player.PlayerElytraBoostEvent event = new com.destroystokyo.paper.event.player.PlayerElytraBoostEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), (org.bukkit.entity.Firework) fireworkRocketEntity.getBukkitEntity()); ++ com.destroystokyo.paper.event.player.PlayerElytraBoostEvent event = new com.destroystokyo.paper.event.player.PlayerElytraBoostEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), (org.bukkit.entity.Firework) fireworkRocketEntity.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand)); + if (event.callEvent() && world.addFreshEntity(fireworkRocketEntity)) { + user.awardStat(Stats.ITEM_USED.get(this)); + if (event.shouldConsume() && !user.getAbilities().instabuild) { diff --git a/patches/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch b/patches/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch index c597f5c121..939529febe 100644 --- a/patches/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch +++ b/patches/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch @@ -11,10 +11,10 @@ Returns true if getDamage() == 0 or has damage tag or other tag is set. Check the `ItemMetaTest#testTaggedButNotMeta` method to see how this method behaves. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index d9a07829d5d0ebcb18b8e3f12622ed7795955d61..7ce48473222516aefda3c5ad40e5e3fd23502e3d 100644 +index 78f2159285e676b877f85df604889ddcf19e8923..f3195b37c314a1327752ece7ec33dfdae16f0bec 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -675,7 +675,7 @@ public final class CraftItemStack extends ItemStack { +@@ -679,7 +679,7 @@ public final class CraftItemStack extends ItemStack { @Override public boolean hasItemMeta() { diff --git a/patches/server/0716-More-Projectile-API.patch b/patches/server/0716-More-Projectile-API.patch index 797924f9aa..abcfbb28e9 100644 --- a/patches/server/0716-More-Projectile-API.patch +++ b/patches/server/0716-More-Projectile-API.patch @@ -568,10 +568,10 @@ index 7d72ccdd82daa6afe85859f5bc6ec7b187622384..fb0426a1d864f3c60637e394e5bedb39 } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 7ce48473222516aefda3c5ad40e5e3fd23502e3d..6725c0824b986885c8aade846f6e159986ffbe59 100644 +index f3195b37c314a1327752ece7ec33dfdae16f0bec..6b75314023adf313937990e31323dff9bacc564b 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -294,12 +294,20 @@ public final class CraftItemStack extends ItemStack { +@@ -298,12 +298,20 @@ public final class CraftItemStack extends ItemStack { public ItemMeta getItemMeta() { return CraftItemStack.getItemMeta(this.handle); } diff --git a/patches/server/0840-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0840-Remove-CraftItemStack-setAmount-null-assignment.patch index 8d4f6df398..0e54130972 100644 --- a/patches/server/0840-Remove-CraftItemStack-setAmount-null-assignment.patch +++ b/patches/server/0840-Remove-CraftItemStack-setAmount-null-assignment.patch @@ -16,10 +16,10 @@ with less than zero amounts, so this code doesn't create a problem with operations on the vanilla ItemStack. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 6725c0824b986885c8aade846f6e159986ffbe59..312e756843f62371048a4d8de9deb024bd9846a7 100644 +index 6b75314023adf313937990e31323dff9bacc564b..fb2e4881096459eff16a7c46faa9921166837ee9 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -157,7 +157,7 @@ public final class CraftItemStack extends ItemStack { +@@ -161,7 +161,7 @@ public final class CraftItemStack extends ItemStack { } this.handle.setCount(amount); diff --git a/patches/server/0886-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0886-fix-item-meta-for-tadpole-buckets.patch index 7dc82282e5..7ee950152d 100644 --- a/patches/server/0886-fix-item-meta-for-tadpole-buckets.patch +++ b/patches/server/0886-fix-item-meta-for-tadpole-buckets.patch @@ -17,10 +17,10 @@ index c421649a0c88ee9c773bb6985f7114e58f08a7a1..71aac5d4cf29cea9daa378fc8ac58475 case GLOW_ITEM_FRAME: case PAINTING: diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 312e756843f62371048a4d8de9deb024bd9846a7..a2e605bc1418dc0b5570566a6e348df03c9aee4c 100644 +index fb2e4881096459eff16a7c46faa9921166837ee9..f106db3aa5e5b3b0b8133eff77dbc65c8895ff2e 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -597,6 +597,7 @@ public final class CraftItemStack extends ItemStack { +@@ -601,6 +601,7 @@ public final class CraftItemStack extends ItemStack { case COD_BUCKET: case PUFFERFISH_BUCKET: case SALMON_BUCKET: diff --git a/patches/server/0933-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0933-Allow-proper-checking-of-empty-item-stacks.patch index eefdaefa4b..1ffc2241c3 100644 --- a/patches/server/0933-Allow-proper-checking-of-empty-item-stacks.patch +++ b/patches/server/0933-Allow-proper-checking-of-empty-item-stacks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow proper checking of empty item stacks diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index a2e605bc1418dc0b5570566a6e348df03c9aee4c..e1f9a603e7adf3468faa9bb6d93dd3339327b47e 100644 +index f106db3aa5e5b3b0b8133eff77dbc65c8895ff2e..38ceeca108c258852eeb7a48015010a689ac43ec 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -33,12 +33,19 @@ public final class CraftItemStack extends ItemStack { +@@ -37,12 +37,19 @@ public final class CraftItemStack extends ItemStack { } // Paper end - MC Utils diff --git a/patches/server/0971-Add-drops-to-shear-events.patch b/patches/server/0971-Add-drops-to-shear-events.patch index 3d83041ef9..a249a70023 100644 --- a/patches/server/0971-Add-drops-to-shear-events.patch +++ b/patches/server/0971-Add-drops-to-shear-events.patch @@ -264,10 +264,10 @@ index 99292a908b36e3c75d51c6877c7a0c01d9671aa6..0a041d0e56dfe1319e5174cb0e6085dc public static Cancellable handleStatisticsIncrease(net.minecraft.world.entity.player.Player entityHuman, net.minecraft.stats.Stat statistic, int current, int newValue) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index e1f9a603e7adf3468faa9bb6d93dd3339327b47e..870954fc59efdc1e0c6b5047f5a89dfaf7522d0e 100644 +index 38ceeca108c258852eeb7a48015010a689ac43ec..f67b048c3831fcab24acd12249cbd32d386c3ffe 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -62,6 +62,16 @@ public final class CraftItemStack extends ItemStack { +@@ -66,6 +66,16 @@ public final class CraftItemStack extends ItemStack { return stack; } diff --git a/patches/server/1055-Deprecate-ItemStack-setType.patch b/patches/server/1055-Deprecate-ItemStack-setType.patch new file mode 100644 index 0000000000..72d51180a3 --- /dev/null +++ b/patches/server/1055-Deprecate-ItemStack-setType.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> +Date: Tue, 26 Mar 2024 21:42:23 -0400 +Subject: [PATCH] Deprecate ItemStack#setType + + +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +index f67b048c3831fcab24acd12249cbd32d386c3ffe..534d3f02ad14ac246ef947a118c07cca81d600dc 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +@@ -711,4 +711,19 @@ public final class CraftItemStack extends ItemStack { + static boolean hasItemMeta(net.minecraft.world.item.ItemStack item) { + return !(item == null || item.getTag() == null || item.getTag().isEmpty()); + } ++ // Paper start - with type ++ @Override ++ public ItemStack withType(final Material type) { ++ if (type == Material.AIR) return CraftItemStack.asCraftMirror(null); ++ ++ final net.minecraft.world.item.ItemStack copy = new net.minecraft.world.item.ItemStack( ++ CraftItemType.bukkitToMinecraft(type), this.getAmount() ++ ); ++ if (this.handle != null && this.handle.getTag() != null) copy.setTag(this.handle.getTag().copy()); ++ ++ final CraftItemStack mirrored = CraftItemStack.asCraftMirror(copy); ++ mirrored.setItemMeta(mirrored.getItemMeta()); ++ return mirrored; ++ } ++ // Paper end + } diff --git a/patches/server/1056-Item-Mutation-Fixes.patch b/patches/server/1056-Item-Mutation-Fixes.patch new file mode 100644 index 0000000000..4fc0800e22 --- /dev/null +++ b/patches/server/1056-Item-Mutation-Fixes.patch @@ -0,0 +1,49 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> +Date: Wed, 20 Mar 2024 20:41:35 -0400 +Subject: [PATCH] Item Mutation Fixes + + +diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java +index 343f44db579839eb61376f876b5eff2e615dc2e5..e6935b6632c7a7e07f4da459c95f564356242f98 100644 +--- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java ++++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java +@@ -229,7 +229,7 @@ public class EnchantmentMenu extends AbstractContainerMenu { + return false; + } else if (this.costs[id] > 0 && !itemstack.isEmpty() && (player.experienceLevel >= j && player.experienceLevel >= this.costs[id] || player.getAbilities().instabuild)) { + this.access.execute((world, blockposition) -> { +- ItemStack itemstack2 = itemstack; ++ ItemStack itemstack2 = itemstack; // Paper - diff on change + List list = this.getEnchantmentList(itemstack, id, this.costs[id]); + + // CraftBukkit start +@@ -251,11 +251,18 @@ public class EnchantmentMenu extends AbstractContainerMenu { + return; + } + // CraftBukkit end +- boolean flag = itemstack.is(Items.BOOK); ++ // Paper start ++ itemstack2 = org.bukkit.craftbukkit.inventory.CraftItemStack.getOrCloneOnMutation(item, event.getItem()); ++ if (itemstack2 != itemstack) { ++ this.enchantSlots.setItem(0, itemstack2); ++ } ++ boolean flag = itemstack2.is(Items.BOOK); ++ // Paper end + + if (flag) { ++ CompoundTag nbttagcompound = itemstack2.getTag(); // Paper - move up + itemstack2 = new ItemStack(Items.ENCHANTED_BOOK); +- CompoundTag nbttagcompound = itemstack.getTag(); ++ // Paper - move up + + if (nbttagcompound != null) { + itemstack2.setTag(nbttagcompound.copy()); +@@ -277,7 +284,7 @@ public class EnchantmentMenu extends AbstractContainerMenu { + EnchantmentInstance weightedrandomenchant = new EnchantmentInstance(nms, entry.getValue()); + EnchantedBookItem.addEnchantment(itemstack2, weightedrandomenchant); + } else { +- item.addUnsafeEnchantment(entry.getKey(), entry.getValue()); ++ CraftItemStack.asCraftMirror(itemstack2).addUnsafeEnchantment(entry.getKey(), entry.getValue()); // Paper + } + } catch (IllegalArgumentException e) { + /* Just swallow invalid enchantments */ From 862299b6a6588ff60db69dbc40e8514f9690d318 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Tue, 16 Apr 2024 12:44:59 -0700 Subject: [PATCH 053/215] "Downgrade" Vineflower to 1.10.1 release (#10423) * "Downgrade" Vineflower to 1.10.1 release The main thing we lose from the 1.11 snapshots is a recent fix for redundant casts. * Thanks intellij * a --- build.gradle.kts | 4 +- ...072-Use-a-Shared-Random-for-Entities.patch | 6 +-- patches/server/0077-EntityPathfindEvent.patch | 10 ++--- patches/server/0083-Optimize-DataBits.patch | 4 +- patches/server/0118-Firework-API-s.patch | 4 +- ...7-Configurable-LootPool-luck-formula.patch | 4 +- ...ackByEntityEvent-and-EntityPushedByE.patch | 14 +++---- patches/server/0213-EnderDragon-Events.patch | 4 +- ...ston-physics-inconsistency-MC-188840.patch | 4 +- ...ssing-chunks-due-to-integer-overflow.patch | 4 +- ...prove-performance-of-the-end-generat.patch | 12 +++--- .../0462-Add-PlayerShearBlockEvent.patch | 14 ++++--- .../0471-MC-4-Fix-item-position-desync.patch | 4 +- patches/server/0517-Improve-ServerGUI.patch | 10 +++-- .../0575-Fix-invulnerable-end-crystals.patch | 10 ++--- ...nd-timings-for-sensors-and-behaviors.patch | 10 ++--- .../0611-Add-BlockBreakBlockEvent.patch | 4 +- ...d-missing-structure-set-seed-configs.patch | 4 +- ...llow-changing-the-EnderDragon-podium.patch | 16 ++++---- ...and-additions-to-the-SpawnReason-API.patch | 4 +- ...nd-water-fluid-explosion-resistance-.patch | 4 +- ...Skip-POI-finding-if-stuck-in-vehicle.patch | 4 +- .../server/0980-Rewrite-chunk-system.patch | 16 ++++---- .../0989-Entity-Activation-Range-2.0.patch | 6 +-- ...ptimize-Collision-to-not-load-chunks.patch | 6 +-- .../0998-Optimize-Voxel-Shape-Merging.patch | 4 +- ...-Optimize-Bit-Operations-by-inlining.patch | 16 ++++---- ...der-Remove-Streams-Optimized-collect.patch | 8 ++-- .../server/1015-Collision-optimisations.patch | 40 +++++++++---------- .../1024-Actually-optimise-explosions.patch | 8 ++-- 30 files changed, 131 insertions(+), 127 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 8a445eca12..73ac5cedc6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -69,7 +69,7 @@ repositories { dependencies { paramMappings("net.fabricmc:yarn:1.20.4+build.1:mergedv2") remapper("net.fabricmc:tiny-remapper:0.10.1:fat") - decompiler("org.vineflower:vineflower:1.11.0-20240412.144930-14") + decompiler("org.vineflower:vineflower:1.10.1") spigotDecompiler("io.papermc:patched-spigot-fernflower:0.1+build.6") paperclip("io.papermc:paperclip:3.0.3") } @@ -80,7 +80,7 @@ paperweight { paramMappingsRepo = paperMavenPublicUrl remapRepo = paperMavenPublicUrl - decompileRepo = "https://s01.oss.sonatype.org/content/repositories/snapshots/" + decompileRepo = paperMavenPublicUrl craftBukkit { fernFlowerJar = layout.file(spigotDecompiler.elements.map { it.single().asFile }) diff --git a/patches/server/0072-Use-a-Shared-Random-for-Entities.patch b/patches/server/0072-Use-a-Shared-Random-for-Entities.patch index 95f53b5fed..cec2d61d7d 100644 --- a/patches/server/0072-Use-a-Shared-Random-for-Entities.patch +++ b/patches/server/0072-Use-a-Shared-Random-for-Entities.patch @@ -99,15 +99,15 @@ index 9fb52c98455d547bdde6d56689528e78a5ddfed5..52220795bf8a73c63837b4e07b1abf99 this.fluidHeight = new Object2DoubleArrayMap(2); this.fluidOnEyes = new HashSet(); diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java -index 1d1a4a52f3a2361688fa81ca0a2cd2e00abe652d..051fb9f1e0d91b1cb1e2dec9a03f3b26fe64c82a 100644 +index d404cd4c805442004d9a5f259a9e0907758ad915..36506dc4b99f9de19a23a99c1bccdcb4e7102e72 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Squid.java +++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java @@ -44,7 +44,7 @@ public class Squid extends WaterAnimal { public Squid(EntityType type, Level world) { super(type, world); -- this.random.setSeed(this.getId()); -+ //this.random.setSeed(this.getId()); // Paper - Share random for entities to make them more random +- this.random.setSeed((long)this.getId()); ++ //this.random.setSeed((long)this.getId()); // Paper - Share random for entities to make them more random this.tentacleSpeed = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F; } diff --git a/patches/server/0077-EntityPathfindEvent.patch b/patches/server/0077-EntityPathfindEvent.patch index d46df1d840..2fcac51f76 100644 --- a/patches/server/0077-EntityPathfindEvent.patch +++ b/patches/server/0077-EntityPathfindEvent.patch @@ -19,7 +19,7 @@ index d3a279a1a14f99aee8dd516552e5c60de92b4969..a3e0c5af4cc9323c02e88e768cbda9e4 @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java -index e8e515dc312e266f7991f150e83a2371f914c15a..8d433e354ecc91f823822a95224c9d2e2a59bbbd 100644 +index bd38ff5615bbf33b374283e3d461981b30035bb8..74ae984ac41bcdd2cc45f1bec461cdc5f69977c6 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java @@ -41,7 +41,7 @@ public class GroundPathNavigation extends PathNavigation { @@ -67,7 +67,7 @@ index e8e515dc312e266f7991f150e83a2371f914c15a..8d433e354ecc91f823822a95224c9d2e private int getSurfaceY() { diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index 480a95a7fb342b3f92306079055a06f15541200a..b5347d972c657706f8b2ed4ebf2365ba9a480895 100644 +index c3e1fa25b03c24c9127441d62142a96e5f81f18c..fa5088945adc5e41e34cc2dc21a1762d106254c8 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java @@ -109,7 +109,13 @@ public abstract class PathNavigation { @@ -111,7 +111,7 @@ index 480a95a7fb342b3f92306079055a06f15541200a..b5347d972c657706f8b2ed4ebf2365ba + // Paper end - EntityPathfindEvent if (positions.isEmpty()) { return null; - } else if (this.mob.getY() < this.level.getMinBuildHeight()) { + } else if (this.mob.getY() < (double)this.level.getMinBuildHeight()) { @@ -138,6 +155,23 @@ public abstract class PathNavigation { } else if (this.path != null && !this.path.isDone() && positions.contains(this.targetPos)) { return this.path; @@ -135,9 +135,9 @@ index 480a95a7fb342b3f92306079055a06f15541200a..b5347d972c657706f8b2ed4ebf2365ba + // Paper end - EntityPathfindEvent this.level.getProfiler().push("pathfind"); BlockPos blockPos = useHeadPos ? this.mob.blockPosition().above() : this.mob.blockPosition(); - int i = (int)(followRange + range); + int i = (int)(followRange + (float)range); diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java -index 0398771544d9d8751dbfea0a27aec2b5eee21383..35c95dd6be4898fcc6f55c262a1f99d7b0d34f29 100644 +index 1a1bc30b425858d82dbfb84b4a94d7793cab7125..5bbfa43d1e97970f035fcb101c3252c01ffead0d 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java @@ -16,9 +16,9 @@ public class WallClimberNavigation extends GroundPathNavigation { diff --git a/patches/server/0083-Optimize-DataBits.patch b/patches/server/0083-Optimize-DataBits.patch index a769664b4c..fa5c0b02f0 100644 --- a/patches/server/0083-Optimize-DataBits.patch +++ b/patches/server/0083-Optimize-DataBits.patch @@ -11,7 +11,7 @@ After: http://i.imgur.com/nJ46crB.png Optimize redundant converting of static fields into an unsigned long each call by precomputing it in ctor diff --git a/src/main/java/net/minecraft/util/SimpleBitStorage.java b/src/main/java/net/minecraft/util/SimpleBitStorage.java -index b0fc31f8fdf96c5b595b04fe4208963a33de8a2a..dafb714706107a9e83a7c0b808ba795a78eb7b52 100644 +index dea4f322f750a0a09407fdb48d5d6e809dfe8ed4..9f438d9c6eb05e43d24e4af68188a3d4c46a938c 100644 --- a/src/main/java/net/minecraft/util/SimpleBitStorage.java +++ b/src/main/java/net/minecraft/util/SimpleBitStorage.java @@ -204,8 +204,8 @@ public class SimpleBitStorage implements BitStorage { @@ -42,7 +42,7 @@ index b0fc31f8fdf96c5b595b04fe4208963a33de8a2a..dafb714706107a9e83a7c0b808ba795a private int cellIndex(int index) { - long l = Integer.toUnsignedLong(this.divideMul); - long m = Integer.toUnsignedLong(this.divideAdd); -- return (int)(index * l + m >> 32 >> this.divideShift); +- return (int)((long)index * l + m >> 32 >> this.divideShift); + //long l = Integer.toUnsignedLong(this.divideMul); // Paper - Perf: Optimize SimpleBitStorage + //long m = Integer.toUnsignedLong(this.divideAdd); // Paper - Perf: Optimize SimpleBitStorage + return (int) (index * this.divideMulUnsigned + this.divideAddUnsigned >> 32 >> this.divideShift); // Paper - Perf: Optimize SimpleBitStorage diff --git a/patches/server/0118-Firework-API-s.patch b/patches/server/0118-Firework-API-s.patch index 88b85d9e5f..c562b87811 100644 --- a/patches/server/0118-Firework-API-s.patch +++ b/patches/server/0118-Firework-API-s.patch @@ -56,11 +56,11 @@ index ac7371882d15746e9353865635d0bb716f890c53..ba570f1c9654e1004e068a1efe2118f3 object = CrossbowItem.getArrow(world, shooter, crossbow, projectile); if (creative || simulated != 0.0F) { diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -index 2a5a55b60cc83649e6e768a144667e021f46e27e..0bfb2667914b8001d1808bdbcf7fda6f0ff781a9 100644 +index b342d23692ffd38b6eec66838162e9012f29ac09..3749cfca8f007973d1a2206d8f2ba15283a550e1 100644 --- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java +++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java @@ -53,6 +53,7 @@ public class FireworkRocketItem extends Item { - vec3.z + direction.getStepZ() * 0.15, + vec3.z + (double)direction.getStepZ() * 0.15, itemStack ); + fireworkRocketEntity.spawningEntity = context.getPlayer() == null ? null : context.getPlayer().getUUID(); // Paper diff --git a/patches/server/0197-Configurable-LootPool-luck-formula.patch b/patches/server/0197-Configurable-LootPool-luck-formula.patch index db6f8a2d2d..5748a6b1d6 100644 --- a/patches/server/0197-Configurable-LootPool-luck-formula.patch +++ b/patches/server/0197-Configurable-LootPool-luck-formula.patch @@ -36,14 +36,14 @@ This change will result in some major changes to fishing formulas. I would love to see this change in Vanilla, so Mojang please pull :) diff --git a/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java b/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java -index 55c097609812e899beda2eafea58e163edd6b71f..4f73aae0342ddcefba19e14d5400c960c2acf70c 100644 +index f73cfe6a1fd96ebc0e24d3488f00cd3403cb3454..4f73aae0342ddcefba19e14d5400c960c2acf70c 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java @@ -127,9 +127,35 @@ public abstract class LootPoolSingletonContainer extends LootPoolEntryContainer protected abstract class EntryBase implements LootPoolEntry { @Override public int getWeight(float luck) { -- return Math.max(Mth.floor(LootPoolSingletonContainer.this.weight + LootPoolSingletonContainer.this.quality * luck), 0); +- return Math.max(Mth.floor((float)LootPoolSingletonContainer.this.weight + (float)LootPoolSingletonContainer.this.quality * luck), 0); + // Paper start - Configurable LootPool luck formula + // SEE: https://luckformula.emc.gs for details and data + if (LootPoolSingletonContainer.this.lastLuck != null && LootPoolSingletonContainer.this.lastLuck == luck) { diff --git a/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch b/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch index 30c6ae6beb..e1c3829623 100644 --- a/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch +++ b/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch @@ -85,20 +85,20 @@ index e3dfef027fb7f6aedd3e3411af6457671b5507a7..88af8a11dfc3b645c5a2b5fb629a73fc } } diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java b/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java -index a93212d3cbf18a8cf392515fd466475264bba5ef..347986ef559ebcecdb67e2f5d31a31049acc48f5 100644 +index 312398b7f1281144a0529a743d2a09376d575ff5..0c63779af7e1c790160fb2ab86bf455219b3cc36 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java @@ -83,7 +83,7 @@ public class RamTarget extends Behavior { - float f = 0.25F * (i - j); + float f = 0.25F * (float)(i - j); float g = Mth.clamp(entity.getSpeed() * 1.65F, 0.2F, 3.0F) + f; float h = livingEntity.isDamageSourceBlocked(world.damageSources().mobAttack(entity)) ? 0.5F : 1.0F; -- livingEntity.knockback(h * g * this.getKnockbackForce.applyAsDouble(entity), this.ramDirection.x(), this.ramDirection.z()); +- livingEntity.knockback((double)(h * g) * this.getKnockbackForce.applyAsDouble(entity), this.ramDirection.x(), this.ramDirection.z()); + livingEntity.knockback(h * g * this.getKnockbackForce.applyAsDouble(entity), this.ramDirection.x(), this.ramDirection.z(), entity, org.bukkit.event.entity.EntityKnockbackEvent.KnockbackCause.ENTITY_ATTACK); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent this.finishRam(world, entity); world.playSound(null, entity, this.getImpactSound.apply(entity), SoundSource.NEUTRAL, 1.0F, 1.0F); } else if (this.hasRammedHornBreakingBlock(world, entity)) { diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java b/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java -index ce329b00fa25e9defabead0e594d734b8ed6724e..fe9c5afadd9041ab32d9e03fe6dab2a2d00262f2 100644 +index c7ce058dda0dcb58197faea4f1799ebc580829c0..4f4c09cd7b75de38c0a3580386494e7e05f0acee 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java @@ -81,7 +81,7 @@ public class SonicBoom extends Behavior { @@ -166,13 +166,13 @@ index 041f1650b853138e4286fe83a08d79d276054ce7..aba20a4352d8983b01ab5d329187588f @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java -index 889dca53d7a113f0b70791c75885de1c66fecdff..06cb2a4a941ccdd7371f05f7c3c6951dc6c66b04 100644 +index 38c27b4aa37e8b046e3eccdde3f527eb555da6f8..05dee42941a842bf4bba9480a2c04a142541ac29 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java @@ -40,7 +40,7 @@ public interface HoglinBase { - double j = f * (attacker.level().random.nextFloat() * 0.5F + 0.2F); + double j = f * (double)(attacker.level().random.nextFloat() * 0.5F + 0.2F); Vec3 vec3 = new Vec3(g, 0.0, h).normalize().scale(j).yRot(i); - double k = f * attacker.level().random.nextFloat() * 0.5; + double k = f * (double)attacker.level().random.nextFloat() * 0.5; - target.push(vec3.x, k, vec3.z); + target.push(vec3.x, k, vec3.z, attacker); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent target.hurtMarked = true; diff --git a/patches/server/0213-EnderDragon-Events.patch b/patches/server/0213-EnderDragon-Events.patch index f2eba33113..5f404a5e08 100644 --- a/patches/server/0213-EnderDragon-Events.patch +++ b/patches/server/0213-EnderDragon-Events.patch @@ -23,10 +23,10 @@ index 3eaf64a6f66c6a844e30967e6b87432e559a59e7..5c5c71db73a2bfebbb33cebd6325a0f4 } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java -index e78ed9b2392e752718361cf7bf25c1dfc2911ce2..13f60a16f07c50a278b158d64180009020a4dca6 100644 +index 02f407757a37c9dc8b3f4a899ac3b04719d8ceed..c5269c3117901b8521720d1b32689d7f600f20a3 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java -@@ -76,7 +76,9 @@ public class DragonStrafePlayerPhase extends AbstractDragonPhaseInstance { +@@ -78,7 +78,9 @@ public class DragonStrafePlayerPhase extends AbstractDragonPhaseInstance { DragonFireball dragonFireball = new DragonFireball(this.dragon.level(), this.dragon, r, s, t); dragonFireball.moveTo(o, p, q, 0.0F, 0.0F); diff --git a/patches/server/0381-Fix-piston-physics-inconsistency-MC-188840.patch b/patches/server/0381-Fix-piston-physics-inconsistency-MC-188840.patch index ebb7dd5a3e..9aea09e883 100644 --- a/patches/server/0381-Fix-piston-physics-inconsistency-MC-188840.patch +++ b/patches/server/0381-Fix-piston-physics-inconsistency-MC-188840.patch @@ -66,10 +66,10 @@ index b3732a6246a2b011e36c5c35fa2ac7749e75db16..3ae61e7b50bfc440c597f88843f92903 } diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -index a9ad3a1534885a05b0c02e21cef1e7cbf849fdc2..7415011211925e962dcd1a3fdfde2c9bb6ec8335 100644 +index 541f4ffd06509aa72cf26ea108f84160eac82bc3..0e15da7cae105196d444b924b8e0db190583ba30 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -@@ -292,7 +292,7 @@ public class PistonMovingBlockEntity extends BlockEntity { +@@ -296,7 +296,7 @@ public class PistonMovingBlockEntity extends BlockEntity { if (world.getBlockState(pos).is(Blocks.MOVING_PISTON)) { BlockState blockState = Block.updateFromNeighbourShapes(blockEntity.movedState, world, pos); if (blockState.isAir()) { diff --git a/patches/server/0382-Fix-missing-chunks-due-to-integer-overflow.patch b/patches/server/0382-Fix-missing-chunks-due-to-integer-overflow.patch index c28cce61dd..2c28da3a05 100644 --- a/patches/server/0382-Fix-missing-chunks-due-to-integer-overflow.patch +++ b/patches/server/0382-Fix-missing-chunks-due-to-integer-overflow.patch @@ -15,14 +15,14 @@ allows the distance calculation to avoid overflow and work as intended. This issue is being tracked in Mojira ticket MC-159283 diff --git a/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java b/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java -index 5facc03909ade37e8ae75e1de11388d3a0ec3a42..2cf20ef14ad18346f942395546ad31f2d774f81a 100644 +index db1d0e5cec19059d14e1a7cd41f049d23600e3fe..92c2df6a6abd9c60e90b0b84ab66987557adb9c8 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java +++ b/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java @@ -521,7 +521,7 @@ public final class DensityFunctions { int j = z / 2; int k = x % 2; int l = z % 2; -- float f = 100.0F - Mth.sqrt(x * x + z * z) * 8.0F; +- float f = 100.0F - Mth.sqrt((float)(x * x + z * z)) * 8.0F; + float f = 100.0F - Mth.sqrt((long) x * (long) x + (long) z * (long) z) * 8.0F; // Paper - cast ints to long to avoid integer overflow f = Mth.clamp(f, -100.0F, 80.0F); diff --git a/patches/server/0458-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0458-Significantly-improve-performance-of-the-end-generat.patch index 3ddbe5452e..ddb86100e5 100644 --- a/patches/server/0458-Significantly-improve-performance-of-the-end-generat.patch +++ b/patches/server/0458-Significantly-improve-performance-of-the-end-generat.patch @@ -12,7 +12,7 @@ Co-authored-by: Dylan Xaldin Co-authored-by: pop4959 diff --git a/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java b/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java -index 2cf20ef14ad18346f942395546ad31f2d774f81a..ed8cfa36f41643b191714b2ae6176f58f93bd4b2 100644 +index 92c2df6a6abd9c60e90b0b84ab66987557adb9c8..d5dccab8020e31f818420b8ee59c6d3928f1dfff 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java +++ b/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java @@ -509,6 +509,16 @@ public final class DensityFunctions { @@ -39,9 +39,9 @@ index 2cf20ef14ad18346f942395546ad31f2d774f81a..ed8cfa36f41643b191714b2ae6176f58 + NoiseCache cache = noiseCache.get().computeIfAbsent(sampler, noiseKey -> new NoiseCache()); // Paper - Perf: Optimize end generation for (int m = -12; m <= 12; m++) { for (int n = -12; n <= 12; n++) { - long o = i + m; - long p = j + n; -- if (o * o + p * p > 4096L && sampler.getValue(o, p) < -0.9F) { + long o = (long)(i + m); + long p = (long)(j + n); +- if (o * o + p * p > 4096L && sampler.getValue((double)o, (double)p) < -0.9F) { - float g = (Mth.abs((float)o) * 3439.0F + Mth.abs((float)p) * 147.0F) % 13.0F + 9.0F; + // Paper start - Perf: Optimize end generation by using a noise cache + long key = net.minecraft.world.level.ChunkPos.asLong((int) o, (int) p); @@ -58,6 +58,6 @@ index 2cf20ef14ad18346f942395546ad31f2d774f81a..ed8cfa36f41643b191714b2ae6176f58 + } + if (g != Float.MIN_VALUE) { + // Paper end - Perf: Optimize end generation - float h = k - m * 2; - float q = l - n * 2; + float h = (float)(k - m * 2); + float q = (float)(l - n * 2); float r = 100.0F - Mth.sqrt(h * h + q * q) * g; diff --git a/patches/server/0462-Add-PlayerShearBlockEvent.patch b/patches/server/0462-Add-PlayerShearBlockEvent.patch index e8a864c69f..a38cf5e637 100644 --- a/patches/server/0462-Add-PlayerShearBlockEvent.patch +++ b/patches/server/0462-Add-PlayerShearBlockEvent.patch @@ -39,10 +39,10 @@ index 44e72176a0da08a77fa192ee31c0fcd53f0dc22d..27f1c1ac12251f1438ee8bf14f4afb5f entityhuman1.broadcastBreakEvent(hand); }); diff --git a/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java b/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java -index d9c4e0cf178b9a1eed230dc7b8cfbd8f3f49c7bb..c67ee44d49693bfcb92cbbf0ed44929bf0034f13 100644 +index c0098fe96201bfc448e7d2e3d672c310c9c9e75a..966783c646dae5a79259c1a322a9cfc8dd83d997 100644 --- a/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java -@@ -35,21 +35,30 @@ public class PumpkinBlock extends Block { +@@ -35,16 +35,24 @@ public class PumpkinBlock extends Block { ItemStack itemStack = player.getItemInHand(hand); if (itemStack.is(Items.SHEARS)) { if (!world.isClientSide) { @@ -60,14 +60,16 @@ index d9c4e0cf178b9a1eed230dc7b8cfbd8f3f49c7bb..c67ee44d49693bfcb92cbbf0ed44929b + for (org.bukkit.inventory.ItemStack item : event.getDrops()) { // Paper - Add PlayerShearBlockEvent ItemEntity itemEntity = new ItemEntity( world, - pos.getX() + 0.5 + direction2.getStepX() * 0.65, - pos.getY() + 0.1, - pos.getZ() + 0.5 + direction2.getStepZ() * 0.65, + (double)pos.getX() + 0.5 + (double)direction2.getStepX() * 0.65, + (double)pos.getY() + 0.1, + (double)pos.getZ() + 0.5 + (double)direction2.getStepZ() * 0.65, - new ItemStack(Items.PUMPKIN_SEEDS, 4) + org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item) // Paper - Add PlayerShearBlockEvent ); itemEntity.setDeltaMovement( - 0.05 * direction2.getStepX() + world.random.nextDouble() * 0.02, 0.05, 0.05 * direction2.getStepZ() + world.random.nextDouble() * 0.02 + 0.05 * (double)direction2.getStepX() + world.random.nextDouble() * 0.02, +@@ -52,6 +60,7 @@ public class PumpkinBlock extends Block { + 0.05 * (double)direction2.getStepZ() + world.random.nextDouble() * 0.02 ); world.addFreshEntity(itemEntity); + } // Paper - Add PlayerShearBlockEvent diff --git a/patches/server/0471-MC-4-Fix-item-position-desync.patch b/patches/server/0471-MC-4-Fix-item-position-desync.patch index 597d2419e2..35ddadadc7 100644 --- a/patches/server/0471-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0471-MC-4-Fix-item-position-desync.patch @@ -9,7 +9,7 @@ loss, which forces the server to lose the same precision as the client keeping them in sync. diff --git a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java -index fb44116303ab1fed9d867087531c7601c015ddb9..a3d247c93ac1a2d872ff0e3841efc3d7b84fcbc1 100644 +index ffec3deb9bcd31d51974c1deda2e76bc8374e5c5..a3d247c93ac1a2d872ff0e3841efc3d7b84fcbc1 100644 --- a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java +++ b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java @@ -9,12 +9,12 @@ public class VecDeltaCodec { @@ -22,7 +22,7 @@ index fb44116303ab1fed9d867087531c7601c015ddb9..a3d247c93ac1a2d872ff0e3841efc3d7 @VisibleForTesting static double decode(long value) { -- return value / 4096.0; +- return (double)value / 4096.0; + return value / 4096.0; // Paper - Fix MC-4; diff on change } diff --git a/patches/server/0517-Improve-ServerGUI.patch b/patches/server/0517-Improve-ServerGUI.patch index 4826a41eff..9aec8b6334 100644 --- a/patches/server/0517-Improve-ServerGUI.patch +++ b/patches/server/0517-Improve-ServerGUI.patch @@ -58,10 +58,10 @@ index 2bbc57b4869caf690f53618d60359c5133ec62a8..c42a9949c4d37d45883867a54222a7ab public void windowClosing(WindowEvent windowevent) { if (!servergui.isClosing.getAndSet(true)) { diff --git a/src/main/java/net/minecraft/server/gui/StatsComponent.java b/src/main/java/net/minecraft/server/gui/StatsComponent.java -index 6d77a48ce4241477cf66fbf562b542de01f420ce..a34dc23499a9d55cceb1f2b2907e4d34b0d67616 100644 +index 6e9c6d556ed55325e36d191fc9d1508c00879671..096c89bd01cec2abd151bf6fffc4847d1bcd548f 100644 --- a/src/main/java/net/minecraft/server/gui/StatsComponent.java +++ b/src/main/java/net/minecraft/server/gui/StatsComponent.java -@@ -34,8 +34,17 @@ public class StatsComponent extends JComponent { +@@ -34,10 +34,19 @@ public class StatsComponent extends JComponent { private void tick() { long l = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory(); @@ -73,13 +73,15 @@ index 6d77a48ce4241477cf66fbf562b542de01f420ce..a34dc23499a9d55cceb1f2b2907e4d34 + tpsAvg[g] = format( tps[g] ); + } this.msgs[0] = "Memory use: " + l / 1024L / 1024L + " mb (" + Runtime.getRuntime().freeMemory() * 100L / Runtime.getRuntime().maxMemory() + "% free)"; - this.msgs[1] = "Avg tick: " + DECIMAL_FORMAT.format((double)this.server.getAverageTickTimeNanos() / TimeUtil.NANOSECONDS_PER_MILLISECOND) + " ms"; + this.msgs[1] = "Avg tick: " + + DECIMAL_FORMAT.format((double)this.server.getAverageTickTimeNanos() / (double)TimeUtil.NANOSECONDS_PER_MILLISECOND) + + " ms"; + this.msgs[2] = "TPS from last 1m, 5m, 15m: " + String.join(", ", tpsAvg); + // Paper end - Improve ServerGUI this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory()); this.repaint(); } -@@ -64,4 +73,10 @@ public class StatsComponent extends JComponent { +@@ -66,4 +75,10 @@ public class StatsComponent extends JComponent { public void close() { this.timer.stop(); } diff --git a/patches/server/0575-Fix-invulnerable-end-crystals.patch b/patches/server/0575-Fix-invulnerable-end-crystals.patch index 468e11151c..7942af4aa7 100644 --- a/patches/server/0575-Fix-invulnerable-end-crystals.patch +++ b/patches/server/0575-Fix-invulnerable-end-crystals.patch @@ -52,13 +52,13 @@ index e7e01effab5f727d9b84a0575d165127e3dfe4c9..036640d49a5e891e9a0f767abe33f1f5 } diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java -index de93988e6116d63ae29add32ee02ccca631f1d9e..ad31fc599288e46a69814268cd10148a5edb375a 100644 +index c3bf90178abe89ccc987718237d472ed10c70d69..260c3a7dc592fba220ad4a7febb43ee2c9279115 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java -@@ -111,6 +111,7 @@ public class SpikeFeature extends Feature { - endCrystal.setBeamTarget(config.getCrystalBeamTarget()); - endCrystal.setInvulnerable(config.isCrystalInvulnerable()); - endCrystal.moveTo(spike.getCenterX() + 0.5, spike.getHeight() + 1, spike.getCenterZ() + 0.5, random.nextFloat() * 360.0F, 0.0F); +@@ -114,6 +114,7 @@ public class SpikeFeature extends Feature { + endCrystal.moveTo( + (double)spike.getCenterX() + 0.5, (double)(spike.getHeight() + 1), (double)spike.getCenterZ() + 0.5, random.nextFloat() * 360.0F, 0.0F + ); + endCrystal.generatedByDragonFight = true; // Paper - Fix invulnerable end crystals world.addFreshEntity(endCrystal); BlockPos blockPos2 = endCrystal.blockPosition(); diff --git a/patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch index 2862657b68..2832058fe5 100644 --- a/patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch +++ b/patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch @@ -28,7 +28,7 @@ index 4bd813161a5d76a83cdbd0a9209b9ea9e60ffe1b..e2764186bd6b838ed5cd86c15597a08d * Get a named timer for the specified tile entity type to track type specific timings. * @param entity diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java -index db231b1353a1d5ca4fb217f5ebf8d7584706478d..0a2e894d8bd1268fcbd4460745304816be46beff 100644 +index f639cafa64d98a001e622882c647701547f5c3ac..03092417cd8ab5c6d266f3af9f20f47b34cfaba3 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java @@ -14,6 +14,10 @@ public abstract class Behavior implements BehaviorContro @@ -71,7 +71,7 @@ index db231b1353a1d5ca4fb217f5ebf8d7584706478d..0a2e894d8bd1268fcbd4460745304816 if (this.hasRequiredMemories(entity) && this.checkExtraStartConditions(world, entity)) { this.status = Behavior.Status.RUNNING; int i = this.minDuration + world.getRandom().nextInt(this.maxDuration + 1 - this.minDuration); - this.endTimestamp = time + i; + this.endTimestamp = time + (long)i; + this.timing.startTiming(); // Paper - behavior timings this.start(world, entity, time); + this.timing.stopTiming(); // Paper - behavior timings @@ -93,7 +93,7 @@ index db231b1353a1d5ca4fb217f5ebf8d7584706478d..0a2e894d8bd1268fcbd4460745304816 protected void tick(ServerLevel world, E entity, long time) { diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java -index eebe5d721a6cea42013f5293586865deb39fe9d2..de2dfaf3cb41bafd48fa4699096a0a7304cd3201 100644 +index 671fc7725d7c801a2ba009da5bd1bc1a9530f187..9e90cb2f51d1bacacb287e912d14ab9152523205 100644 --- a/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java +++ b/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java @@ -26,8 +26,21 @@ public abstract class Sensor { @@ -116,13 +116,13 @@ index eebe5d721a6cea42013f5293586865deb39fe9d2..de2dfaf3cb41bafd48fa4699096a0a73 + this.timing = co.aikar.timings.MinecraftTimings.getSensorTimings(configKey, senseInterval); + // Paper end this.scanRate = senseInterval; - this.timeToTick = RANDOM.nextInt(senseInterval); + this.timeToTick = (long)RANDOM.nextInt(senseInterval); } @@ -38,8 +51,12 @@ public abstract class Sensor { public final void tick(ServerLevel world, E entity) { if (--this.timeToTick <= 0L) { -- this.timeToTick = this.scanRate; +- this.timeToTick = (long)this.scanRate; + // Paper start - configurable sensor tick rate and timings + this.timeToTick = java.util.Objects.requireNonNullElse(world.paperConfig().tickRates.sensor.get(entity.getType(), this.configKey), this.scanRate); + this.timing.startTiming(); diff --git a/patches/server/0611-Add-BlockBreakBlockEvent.patch b/patches/server/0611-Add-BlockBreakBlockEvent.patch index 1d42076156..75f265d55f 100644 --- a/patches/server/0611-Add-BlockBreakBlockEvent.patch +++ b/patches/server/0611-Add-BlockBreakBlockEvent.patch @@ -68,10 +68,10 @@ index 0aeb9faa1ce22359361741a591aa3d465d955970..a98ab20814cc29a25e9d29adfbb7e70d private static short getCacheKey(BlockPos from, BlockPos to) { diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -index 855014986c201fdb5dffebf362951cd1edebd95d..001adec26a71a0f5e1dd77bf51a62bb25172d702 100644 +index 7f40e8196cb966424ae63043d1f54e661dbce715..21b4afd053e01073eb514264d4960f0f3b1ee3d8 100644 --- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java +++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -@@ -74,6 +74,13 @@ public abstract class WaterFluid extends FlowingFluid { +@@ -80,6 +80,13 @@ public abstract class WaterFluid extends FlowingFluid { return world.getGameRules().getBoolean(GameRules.RULE_WATER_SOURCE_CONVERSION); } diff --git a/patches/server/0699-Add-missing-structure-set-seed-configs.patch b/patches/server/0699-Add-missing-structure-set-seed-configs.patch index 8800cb45e7..5056c05a21 100644 --- a/patches/server/0699-Add-missing-structure-set-seed-configs.patch +++ b/patches/server/0699-Add-missing-structure-set-seed-configs.patch @@ -148,7 +148,7 @@ index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..798e22fb4d685b5845ebf687e8004e94 } } diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java b/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java -index bd8c0c15246059c235036cbe71e2b7ae8dab5797..3ae784b02231555a1bc416668fc5bdb11ba15fc8 100644 +index 5e7c0d5a31156b75ac4895bd13c8b7138894a576..dc44ae806dc2779e5f0ec0de3fdb4b53da806a5b 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java @@ -79,9 +79,23 @@ public abstract class StructurePlacement { @@ -197,7 +197,7 @@ index bd8c0c15246059c235036cbe71e2b7ae8dab5797..3ae784b02231555a1bc416668fc5bdb1 + worldgenRandom.setLargeFeatureWithSalt(seed, chunkX, chunkZ, saltOverride); + } + // Paper end - Add missing structure set seed configs - return worldgenRandom.nextDouble() < frequency; + return worldgenRandom.nextDouble() < (double)frequency; } - private static boolean legacyArbitrarySaltProbabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency) { diff --git a/patches/server/0729-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0729-Allow-changing-the-EnderDragon-podium.patch index 086fe76ad0..a9354ec22b 100644 --- a/patches/server/0729-Allow-changing-the-EnderDragon-podium.patch +++ b/patches/server/0729-Allow-changing-the-EnderDragon-podium.patch @@ -58,10 +58,10 @@ index 6d01175ea2092bc5f5ebb7aa066450bfec2443a1..61e4f8be9f5927b65ae03da98250d3cd f1 = Math.max((float) Math.sqrt(blockposition.distToCenterSqr(this.position())) / 4.0F, 1.0F); float f3 = 6.0F / f1; diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java -index 060e2da81c7e55a43412c47e857f91fefd88495b..8e5249e96ffb80b933616913f764e704b670a8b8 100644 +index 803d227281d70606691eed95c4b10a27ca5d1125..5663f2ff1eba4a5e00c76c9d735cb553faae6a04 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java -@@ -35,7 +35,7 @@ public class DragonDeathPhase extends AbstractDragonPhaseInstance { +@@ -43,7 +43,7 @@ public class DragonDeathPhase extends AbstractDragonPhaseInstance { if (this.targetLocation == null) { BlockPos blockPos = this.dragon .level() @@ -71,7 +71,7 @@ index 060e2da81c7e55a43412c47e857f91fefd88495b..8e5249e96ffb80b933616913f764e704 } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java -index 90684c6bfa4025aae0abf098f44e0557c62a0760..422bf66055391b0bb58e3a68156744df8bbfecdb 100644 +index 707ef45ccd7fbcbe1947c8941846277f19ee54c9..ddf668205a7cb29b9018bf9eea49667b5fd2d471 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java @@ -54,7 +54,7 @@ public class DragonHoldingPatternPhase extends AbstractDragonPhaseInstance { @@ -84,7 +84,7 @@ index 90684c6bfa4025aae0abf098f44e0557c62a0760..422bf66055391b0bb58e3a68156744df if (this.dragon.getRandom().nextInt(i + 3) == 0) { this.dragon.getPhaseManager().setPhase(EnderDragonPhase.LANDING_APPROACH); diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java -index fd36333fc21696e0ec7760cb4702dd7ac5a1a0fb..0832f7103e9b94c65c7856e942c15f8bcdb2ad7f 100644 +index e731d0f74692615ce5f42f690e36bd906a39c1dd..557de8a8e21e7f049b6acf27b4ec927ef5a9f9cb 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java @@ -53,7 +53,7 @@ public class DragonLandingApproachPhase extends AbstractDragonPhaseInstance { @@ -93,9 +93,9 @@ index fd36333fc21696e0ec7760cb4702dd7ac5a1a0fb..0832f7103e9b94c65c7856e942c15f8b .level() - .getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())); + .getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium - Player player = this.dragon.level().getNearestPlayer(NEAR_EGG_TARGETING, this.dragon, blockPos.getX(), blockPos.getY(), blockPos.getZ()); - int j; - if (player != null) { + Player player = this.dragon + .level() + .getNearestPlayer(NEAR_EGG_TARGETING, this.dragon, (double)blockPos.getX(), (double)blockPos.getY(), (double)blockPos.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java index d913147d692e7e58bec4fac44c7e93a1822e8f65..3b960060f152d0352c2f8cdc1c71543cd7fa0dbd 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java @@ -110,7 +110,7 @@ index d913147d692e7e58bec4fac44c7e93a1822e8f65..3b960060f152d0352c2f8cdc1c71543c } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java -index b4789d22590d094d76e68e60c022366cba0b7bf6..2e0af7c7f7a98a19f7736c5c9dc7c313c3ca4406 100644 +index 8d66284eb96cfc0392c211842e87875a095c3ca2..718bf877179f85ee3f0de384ca3a8aaebaa067a5 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java @@ -25,7 +25,7 @@ public class DragonTakeoffPhase extends AbstractDragonPhaseInstance { diff --git a/patches/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch index cf7adab315..12f3e570a0 100644 --- a/patches/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch +++ b/patches/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch @@ -34,12 +34,12 @@ index 58723ea75f7db9bf3889b99139669b14a284a3a1..6bf11d526b82403e9a5443ac77645cf2 this.discard(EntityRemoveEvent.Cause.HIT); // CraftBukkit - add Bukkit remove cause } diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index cbd49f8e870e903bafc3dd55c3ae7f4cc3703b15..e248444632a8f917b0eb2426aa59ae2c0ecaa925 100644 +index 1a842694c076d71b14733904c2052183d86d1f5d..eb2f6038133be72c32d31bd1a25bc80f5aa4028f 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java @@ -117,7 +117,7 @@ public class FrogspawnBlock extends Block { int k = random.nextInt(1, 361); - tadpole.moveTo(d, pos.getY() - 0.5, e, k, 0.0F); + tadpole.moveTo(d, (double)pos.getY() - 0.5, e, (float)k, 0.0F); tadpole.setPersistenceRequired(); - world.addFreshEntity(tadpole); + world.addFreshEntity(tadpole, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG); // Paper - use correct spawn reason diff --git a/patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch index 65d07cad42..5f51eb317c 100644 --- a/patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch +++ b/patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch @@ -22,10 +22,10 @@ index 72f8b72c6436ca3b8eaeb39c7d3efe2c1462ae1d..3bb4a9a1a6249e8ba2de237f801210e7 @Override diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -index 001adec26a71a0f5e1dd77bf51a62bb25172d702..ba34aea9db5c3af56f3c7e84424ec91988a2370e 100644 +index 21b4afd053e01073eb514264d4960f0f3b1ee3d8..109f71401c65f476ccf6813137386fc9fef10254 100644 --- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java +++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -@@ -119,7 +119,7 @@ public abstract class WaterFluid extends FlowingFluid { +@@ -125,7 +125,7 @@ public abstract class WaterFluid extends FlowingFluid { @Override protected float getExplosionResistance() { diff --git a/patches/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch index 0741c28cb0..a4dcac44ac 100644 --- a/patches/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch +++ b/patches/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch @@ -19,13 +19,13 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -index 4acbdaeab6bbbe3875d1e9323bf2f7a4d56f840e..0e2141bbbf9839a90a78cd04bb70d5f94614248e 100644 +index 21e50342598f7cd9efa1a39e70bd72d152d98812..e8aa27547e3fa1a42720889c7038d4fb0273e7b5 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java @@ -57,6 +57,7 @@ public class AcquirePoi { return false; } else { - mutableLong.setValue(time + 20L + world.getRandom().nextInt(20)); + mutableLong.setValue(time + 20L + (long)world.getRandom().nextInt(20)); + if (entity.getNavigation().isStuck()) mutableLong.add(200); // Paper - Perf: Wait an additional 10s to check again if they're stuck PoiManager poiManager = world.getPoiManager(); long2ObjectMap.long2ObjectEntrySet().removeIf(entry -> !entry.getValue().isStillValid(time)); diff --git a/patches/server/0980-Rewrite-chunk-system.patch b/patches/server/0980-Rewrite-chunk-system.patch index a36c4f9797..7a2c4e756f 100644 --- a/patches/server/0980-Rewrite-chunk-system.patch +++ b/patches/server/0980-Rewrite-chunk-system.patch @@ -14439,7 +14439,7 @@ index 0000000000000000000000000000000000000000..962d3cae6340fc11607b59355e291629 + +} diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 2540b7748e27839552ae88412ecac0aa69485b32..d00fc39b19c02895553f40bf5f62daa1dd50d59c 100644 +index 0b283171294eca65a898ddd9ab1b7295ad183b0d..31f34ac1c70df3ef6eb6f6dfd0f870b1b275adfa 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -28,6 +28,45 @@ public class GlobalConfiguration extends ConfigurationPart { @@ -15520,7 +15520,7 @@ index 2906cb10461b5334a7555046384c28848eec149f..329471af4f40e0a74612707cce96bb00 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 28645a835a169029b734262a9f42751caa52c4c9..56d579e64b367dd21b2909eb0dbc1d7686d0c3d0 100644 +index 64a9a0bc5bd99102ab6e7e4262d74ae26e5ff7c1..52c2ae28cad0c8b810df5d60d181f3bc5c8d6eed 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -311,7 +311,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop extends AbstractSet { @@ -19507,7 +19507,7 @@ index 5275e7a34f86830d43edcab3a0e94f8d8e9cfae5..b108f779abe3d9798c0bcbc983f41d48 @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java -index c64794d02a861f0880b6877550a87752fdf26407..55e45feeaae7ec00805ef108939e50916f6e3148 100644 +index ed008e1a9573ea3c75de94680b91c8ee598ee44a..c07cc1bf3b98525d72924edee4233364fd8174d0 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java +++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java @@ -38,12 +38,28 @@ import net.minecraft.world.level.chunk.storage.SectionStorage; @@ -19931,7 +19931,7 @@ index cedde2235227eb5820beefb98549994e1cca1198..9c743c980697a14d7348554fb77f242d + // Paper end } diff --git a/src/main/java/net/minecraft/world/level/LevelReader.java b/src/main/java/net/minecraft/world/level/LevelReader.java -index fa73462650dd29296b737435574755a613832b77..84e5d879c2de08fa95f12de8cea2c6d4da8ec76d 100644 +index ced67cf88c91c5270a0060a7307f36739237cbb2..dab86988686cf7c926b7432b8a4afffd7a23327a 100644 --- a/src/main/java/net/minecraft/world/level/LevelReader.java +++ b/src/main/java/net/minecraft/world/level/LevelReader.java @@ -26,6 +26,15 @@ public interface LevelReader extends BlockAndTintGetter, CollisionGetter, Signal @@ -21251,7 +21251,7 @@ index 769a8c5788e6a01666b9b5ac24b02c632c6c9e48..09867812600b24b3b7d05b58f9858265 referencesByStructure.computeInt(structure, (feature, references) -> references == null ? 1 : references + 1); return referencesByStructure; diff --git a/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java b/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java -index da086494de9668d28305ccd23d32e9cfe45d0880..e7b3f9ceff72b255d443026b4e51291823bfd582 100644 +index 47c2b2da9799690291396effb9e1b06d71efc6fd..2cdd18f724296f10cd4a522d1e8196723d39cf45 100644 --- a/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java +++ b/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java @@ -26,6 +26,19 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon diff --git a/patches/server/0989-Entity-Activation-Range-2.0.patch b/patches/server/0989-Entity-Activation-Range-2.0.patch index b0eff05afa..b497ed2a71 100644 --- a/patches/server/0989-Entity-Activation-Range-2.0.patch +++ b/patches/server/0989-Entity-Activation-Range-2.0.patch @@ -216,7 +216,7 @@ index 9be9a6a59666297e05a9fc19d9345ae7d5f3bf40..040d62effc651d14d3557f8ff582cb07 this.availableGoals.stream().filter(wrappedGoal -> wrappedGoal.getGoal() == goal).filter(WrappedGoal::isRunning).forEach(WrappedGoal::stop); this.availableGoals.removeIf(wrappedGoal -> wrappedGoal.getGoal() == goal); diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java -index 7b276b37433f054513e3eff88362424686eddebc..de7c3654b5d134e380c0d7e8800beb6c10d8a22a 100644 +index 6d8ea05e5e86e9f6359b560043bb55a10784e952..aee0147649d458b87d92496eda0c1723ebe570d2 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java @@ -23,6 +23,14 @@ public abstract class MoveToBlockGoal extends Goal { @@ -234,7 +234,7 @@ index 7b276b37433f054513e3eff88362424686eddebc..de7c3654b5d134e380c0d7e8800beb6c public MoveToBlockGoal(PathfinderMob mob, double speed, int range, int maxYDifference) { this.mob = mob; -@@ -113,6 +121,7 @@ public abstract class MoveToBlockGoal extends Goal { +@@ -115,6 +123,7 @@ public abstract class MoveToBlockGoal extends Goal { mutableBlockPos.setWithOffset(blockPos, m, k - 1, n); if (this.mob.isWithinRestriction(mutableBlockPos) && this.isValidTarget(this.mob.level(), mutableBlockPos)) { this.blockPos = mutableBlockPos; @@ -357,7 +357,7 @@ index 5c209e323a5559480231c6d99357ba8b89edb027..4bedd5801cc8ce14387f02dfb361a00a public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot // Paper start - add paper world config diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -index 7415011211925e962dcd1a3fdfde2c9bb6ec8335..5c59550db0ed7a6c1cf654fd5b251c3ba1e762fb 100644 +index 0e15da7cae105196d444b924b8e0db190583ba30..9f45dda6ff45ac1ffb7ac99575b7d09bdc61c56a 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java @@ -147,6 +147,10 @@ public class PistonMovingBlockEntity extends BlockEntity { diff --git a/patches/server/0993-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0993-Optimize-Collision-to-not-load-chunks.patch index cfa7f3d55e..dd6fd94feb 100644 --- a/patches/server/0993-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/0993-Optimize-Collision-to-not-load-chunks.patch @@ -38,7 +38,7 @@ index a66fe080ee73171090abec48352ad0bd457a2a6f..d4c8f2cb1e3adf45863226ae9ad31968 public @org.jetbrains.annotations.Nullable net.minecraft.server.level.ChunkMap.TrackedEntity tracker; // Paper diff --git a/src/main/java/net/minecraft/world/level/BlockCollisions.java b/src/main/java/net/minecraft/world/level/BlockCollisions.java -index cd342fa776b5d84e52aa1660c19be9ab45eaad2d..f6cc3d550df8481086acdcb62f44a1051ae79f80 100644 +index 1c10835b59aaefa3a65ff64f784620bdc54ddcdc..cd89623a44f02d7db77f0d0f87545cf80841f403 100644 --- a/src/main/java/net/minecraft/world/level/BlockCollisions.java +++ b/src/main/java/net/minecraft/world/level/BlockCollisions.java @@ -66,18 +66,37 @@ public class BlockCollisions extends AbstractIterator { @@ -88,9 +88,9 @@ index cd342fa776b5d84e52aa1660c19be9ab45eaad2d..f6cc3d550df8481086acdcb62f44a105 + // Paper end VoxelShape voxelShape = blockState.getCollisionShape(this.collisionGetter, this.pos, this.context); if (voxelShape == Shapes.block()) { - if (this.box.intersects(i, j, k, i + 1.0, j + 1.0, k + 1.0)) { + if (this.box.intersects((double)i, (double)j, (double)k, (double)i + 1.0, (double)j + 1.0, (double)k + 1.0)) { diff --git a/src/main/java/net/minecraft/world/level/CollisionGetter.java b/src/main/java/net/minecraft/world/level/CollisionGetter.java -index ea9a5e643d7ccce4e4d20644901c22cf63c6d890..69754fbebb51f7f804c97a749fd65ce15ae22f1b 100644 +index e57cb7fe53e915d24246e44c7f49971f5b2ab2cf..1ad0c976c6e2d6d31397dff850a9de7c16d16fba 100644 --- a/src/main/java/net/minecraft/world/level/CollisionGetter.java +++ b/src/main/java/net/minecraft/world/level/CollisionGetter.java @@ -44,11 +44,13 @@ public interface CollisionGetter extends BlockGetter { diff --git a/patches/server/0998-Optimize-Voxel-Shape-Merging.patch b/patches/server/0998-Optimize-Voxel-Shape-Merging.patch index 8bd2fe2682..4ec779560c 100644 --- a/patches/server/0998-Optimize-Voxel-Shape-Merging.patch +++ b/patches/server/0998-Optimize-Voxel-Shape-Merging.patch @@ -68,7 +68,7 @@ index e164c524aef4fa81fe96ac43454eecff1c38b9c1..9cfbbc61fcfc678f0988d6d45c7994d1 this.firstIndices = new int[k]; this.secondIndices = new int[k]; diff --git a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java -index 1fbde2861b31726b8163e1b46aec91b7283a2c29..1a014f19f3c5425cc79a82c546066ab701fab1f8 100644 +index 0fdd2cdd8d215ca1523eda8ad7316cdd5f41a6b5..86df4ef44d0a5107ee929dfd40d8ccb0779e8bfc 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java +++ b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java @@ -286,9 +286,21 @@ public final class Shapes { @@ -93,7 +93,7 @@ index 1fbde2861b31726b8163e1b46aec91b7283a2c29..1a014f19f3c5425cc79a82c546066ab7 + // Paper note - Rewrite below as optimized order if instead of nasty ternary if (first instanceof CubePointRange && second instanceof CubePointRange) { long l = lcm(i, j); - if (size * l <= 256L) { + if ((long)size * l <= 256L) { @@ -296,15 +308,22 @@ public final class Shapes { } } diff --git a/patches/server/1002-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1002-Optimize-Bit-Operations-by-inlining.patch index d32c7563e3..5823fb0d37 100644 --- a/patches/server/1002-Optimize-Bit-Operations-by-inlining.patch +++ b/patches/server/1002-Optimize-Bit-Operations-by-inlining.patch @@ -7,7 +7,7 @@ Inline bit operations and reduce instruction count to make these hot operations faster diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index aa27b96cf64ddbbc630e2c313ebff7636438aee0..70f9e737b3b9f80395afc3542aafe4a0c774c722 100644 +index d80e3f5f53b9d28dea574cff5c65dfa3f8148f88..70f9e737b3b9f80395afc3542aafe4a0c774c722 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -36,15 +36,16 @@ public class BlockPos extends Vec3i { @@ -76,15 +76,15 @@ index aa27b96cf64ddbbc630e2c313ebff7636438aee0..70f9e737b3b9f80395afc3542aafe4a0 public static long asLong(int x, int y, int z) { - long l = 0L; -- l |= (x & PACKED_X_MASK) << X_OFFSET; -- l |= (y & PACKED_Y_MASK) << 0; -- return l | (z & PACKED_Z_MASK) << Z_OFFSET; +- l |= ((long)x & PACKED_X_MASK) << X_OFFSET; +- l |= ((long)y & PACKED_Y_MASK) << 0; +- return l | ((long)z & PACKED_Z_MASK) << Z_OFFSET; + return (((long) x & (long) 67108863) << 38) | (((long) y & (long) 4095)) | (((long) z & (long) 67108863) << 12); // Paper - inline constants and simplify } public static long getFlatIndex(long y) { diff --git a/src/main/java/net/minecraft/core/SectionPos.java b/src/main/java/net/minecraft/core/SectionPos.java -index 469e6156704418b6b8f573baee8289726a7a6587..02500dba0c6645add80a73bc837a90331a864652 100644 +index 27e0d53d5893a13a340deddc93a1128968db7e5b..fe3577e533fb829c85fd4881b1bcca3b70aaf1a5 100644 --- a/src/main/java/net/minecraft/core/SectionPos.java +++ b/src/main/java/net/minecraft/core/SectionPos.java @@ -38,7 +38,7 @@ public class SectionPos extends Vec3i { @@ -180,9 +180,9 @@ index 469e6156704418b6b8f573baee8289726a7a6587..02500dba0c6645add80a73bc837a9033 + public static long asLong(int x, int y, int z) { - long l = 0L; -- l |= (x & 4194303L) << 42; -- l |= (y & 1048575L) << 0; -- return l | (z & 4194303L) << 20; +- l |= ((long)x & 4194303L) << 42; +- l |= ((long)y & 1048575L) << 0; +- return l | ((long)z & 4194303L) << 20; + return (((long) x & 4194303L) << 42) | (((long) y & 1048575L)) | (((long) z & 4194303L) << 20); // Paper - Simplify to reduce instruction count } diff --git a/patches/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch index 8ed7b79355..76d173106a 100644 --- a/patches/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch +++ b/patches/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch @@ -16,7 +16,7 @@ This lets us get faster foreach iteration, as well as avoids map lookups on the values when needed. diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java -index 3e27c9a74c38f11a436df8cd413f9f5f16fd8c3e..c4d6b145d54aaf415dd4b08811c024255092e1b8 100644 +index a2e7040df11a0138c706a10b190111b6c3bd99a9..d1e1f12451058f7f276f8277536a4c0a4d736601 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java @@ -38,8 +38,12 @@ public class PathFinder { @@ -24,7 +24,7 @@ index 3e27c9a74c38f11a436df8cd413f9f5f16fd8c3e..c4d6b145d54aaf415dd4b08811c02425 return null; } else { - Map map = positions.stream() -- .collect(Collectors.toMap(pos -> this.nodeEvaluator.getGoal(pos.getX(), pos.getY(), pos.getZ()), Function.identity())); +- .collect(Collectors.toMap(pos -> this.nodeEvaluator.getGoal((double)pos.getX(), (double)pos.getY(), (double)pos.getZ()), Function.identity())); + // Paper start - Perf: remove streams and optimize collection + List> map = Lists.newArrayList(); + for (BlockPos pos : positions) { @@ -56,7 +56,7 @@ index 3e27c9a74c38f11a436df8cd413f9f5f16fd8c3e..c4d6b145d54aaf415dd4b08811c02425 int i = 0; - Set set3 = Sets.newHashSetWithExpectedSize(set.size()); + List> entryList = Lists.newArrayListWithExpectedSize(positions.size()); // Paper - optimize collection - int j = (int)(this.maxVisitedNodes * rangeMultiplier); + int j = (int)((float)this.maxVisitedNodes * rangeMultiplier); while (!this.openSet.isEmpty()) { @@ -69,14 +74,18 @@ public class PathFinder { @@ -68,7 +68,7 @@ index 3e27c9a74c38f11a436df8cd413f9f5f16fd8c3e..c4d6b145d54aaf415dd4b08811c02425 + for (int i1 = 0; i1 < positions.size(); i1++) { + final Map.Entry entry = positions.get(i1); + Target target = entry.getKey(); - if (node.distanceManhattan(target) <= distance) { + if (node.distanceManhattan(target) <= (float)distance) { target.setReached(); - set3.add(target); + entryList.add(entry); diff --git a/patches/server/1015-Collision-optimisations.patch b/patches/server/1015-Collision-optimisations.patch index c61dd8d1f1..e527784429 100644 --- a/patches/server/1015-Collision-optimisations.patch +++ b/patches/server/1015-Collision-optimisations.patch @@ -2153,7 +2153,7 @@ index 0000000000000000000000000000000000000000..1f42bdfdb052056e62a939ab0d1944f8 + +} diff --git a/src/main/java/net/minecraft/core/Direction.java b/src/main/java/net/minecraft/core/Direction.java -index 0f32bad1f4e5f4e9abb54d6dc2c06dd2b7176b8e..f0fe2acadac0f57eb06b6aee1940e2c4985e4ca1 100644 +index 75694cfd7d8adde6b9246518c20fe75774297a57..84a760fdc50bdafc9150f977e9c5d557a30ee220 100644 --- a/src/main/java/net/minecraft/core/Direction.java +++ b/src/main/java/net/minecraft/core/Direction.java @@ -53,6 +53,21 @@ public enum Direction implements StringRepresentable { @@ -2466,16 +2466,16 @@ index ffa4f34d964fbcc53e2dfe11677832db21a6eb93..7618364e5373fe17cfe45a5a4ee9ab25 } diff --git a/src/main/java/net/minecraft/world/level/BlockCollisions.java b/src/main/java/net/minecraft/world/level/BlockCollisions.java -index f6cc3d550df8481086acdcb62f44a1051ae79f80..012733f1808e96aecc3b2fd081e355905d1b0766 100644 +index cd89623a44f02d7db77f0d0f87545cf80841f403..48710a60561824a3670ebef3601f284dd7089481 100644 --- a/src/main/java/net/minecraft/world/level/BlockCollisions.java +++ b/src/main/java/net/minecraft/world/level/BlockCollisions.java @@ -99,7 +99,7 @@ public class BlockCollisions extends AbstractIterator { // Paper end VoxelShape voxelShape = blockState.getCollisionShape(this.collisionGetter, this.pos, this.context); if (voxelShape == Shapes.block()) { -- if (this.box.intersects(i, j, k, i + 1.0, j + 1.0, k + 1.0)) { +- if (this.box.intersects((double)i, (double)j, (double)k, (double)i + 1.0, (double)j + 1.0, (double)k + 1.0)) { + if (io.papermc.paper.util.CollisionUtil.voxelShapeIntersect(this.box, i, j, k, i + 1.0, j + 1.0, k + 1.0)) { // Paper - keep vanilla behavior for voxelshape intersection - See comment in CollisionUtil - return this.resultProvider.apply(this.pos, voxelShape.move(i, j, k)); + return this.resultProvider.apply(this.pos, voxelShape.move((double)i, (double)j, (double)k)); } } else { diff --git a/src/main/java/net/minecraft/world/level/ClipContext.java b/src/main/java/net/minecraft/world/level/ClipContext.java @@ -2494,7 +2494,7 @@ index 86a4f30c8784c602436ecf1c78efb0bdca4b7089..b0bea28e9261767c60d30fb0e76f4f3a public ClipContext(Vec3 start, Vec3 end, ClipContext.Block shapeType, ClipContext.Fluid fluidHandling, Entity entity) { diff --git a/src/main/java/net/minecraft/world/level/CollisionGetter.java b/src/main/java/net/minecraft/world/level/CollisionGetter.java -index 69754fbebb51f7f804c97a749fd65ce15ae22f1b..160b4c8f40b7b1bc53a8c23b801c5248c13e9a40 100644 +index 1ad0c976c6e2d6d31397dff850a9de7c16d16fba..dc877fe2e3c53b353baa59c125232e425fee67d7 100644 --- a/src/main/java/net/minecraft/world/level/CollisionGetter.java +++ b/src/main/java/net/minecraft/world/level/CollisionGetter.java @@ -35,6 +35,12 @@ public interface CollisionGetter extends BlockGetter { @@ -3218,7 +3218,7 @@ index a98ab20814cc29a25e9d29adfbb7e70d46768df2..6d8ff6c06af5545634f255ed17dc1e48 if (!state.getBlock().hasDynamicShape() && !fromState.getBlock().hasDynamicShape()) { diff --git a/src/main/java/net/minecraft/world/phys/AABB.java b/src/main/java/net/minecraft/world/phys/AABB.java -index 1b7f1babf732ab95940ac67437a0b22ee078f19d..ba29de4a759644acdfce9c2e3672f20b200b7b50 100644 +index 62752e28a68400f0e1a44f0196f0e51e3dd702b8..92394960fc76886f393cba02ac33c57739a4b383 100644 --- a/src/main/java/net/minecraft/world/phys/AABB.java +++ b/src/main/java/net/minecraft/world/phys/AABB.java @@ -25,6 +25,17 @@ public class AABB { @@ -3237,9 +3237,9 @@ index 1b7f1babf732ab95940ac67437a0b22ee078f19d..ba29de4a759644acdfce9c2e3672f20b + // Paper end + public AABB(BlockPos pos) { - this(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1); + this((double)pos.getX(), (double)pos.getY(), (double)pos.getZ(), (double)(pos.getX() + 1), (double)(pos.getY() + 1), (double)(pos.getZ() + 1)); } -@@ -314,7 +325,7 @@ public class AABB { +@@ -321,7 +332,7 @@ public class AABB { } @Nullable @@ -3434,7 +3434,7 @@ index 31b570517c1047e8e1cd5280baf80977af2b6121..d8b80632f6186641ee2ddaef9eba7ba9 private boolean isZStripFull(int z1, int z2, int x, int y) { diff --git a/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java b/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java -index e00c3419ff523a57dc4346720827854641fa21ad..fc751564e02306006cffd90ef29acb27cc77cd0b 100644 +index 32632368f06b79f53342fde060bbcd1b7c64767a..b9af1d14c7815c99273bce8165cf384d669c1a75 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java +++ b/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java @@ -7,6 +7,7 @@ import net.minecraft.util.Mth; @@ -3537,7 +3537,7 @@ index 7ec02a7849437a18860aa0df7d9ddd71b2447d4c..5e45e49ab09344cb95736f4124b1c6e0 public OffsetDoubleList(DoubleList oldList, double offset) { this.delegate = oldList; diff --git a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java -index 1a014f19f3c5425cc79a82c546066ab701fab1f8..9ac39c6d6289c86954ccb8a2e2afba8d96aa1950 100644 +index 86df4ef44d0a5107ee929dfd40d8ccb0779e8bfc..fbf1a559aefe444410b63a773374e011e4964e16 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java +++ b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java @@ -16,9 +16,15 @@ public final class Shapes { @@ -3638,12 +3638,12 @@ index 1a014f19f3c5425cc79a82c546066ab701fab1f8..9ac39c6d6289c86954ccb8a2e2afba8d - l, - m, - n, -- (int)Math.round(minX * l), -- (int)Math.round(minY * m), -- (int)Math.round(minZ * n), -- (int)Math.round(maxX * l), -- (int)Math.round(maxY * m), -- (int)Math.round(maxZ * n) +- (int)Math.round(minX * (double)l), +- (int)Math.round(minY * (double)m), +- (int)Math.round(minZ * (double)n), +- (int)Math.round(maxX * (double)l), +- (int)Math.round(maxY * (double)m), +- (int)Math.round(maxZ * (double)n) + return new ArrayVoxelShape( + BLOCK.shape, + minX == 0.0 && maxX == 1.0 ? io.papermc.paper.util.CollisionUtil.ZERO_ONE : DoubleArrayList.wrap(new double[] { minX, maxX }), @@ -3953,7 +3953,7 @@ index 53aa193f33a1a15376a59b8d6dd8cbc6cbec168b..a745ff8d115e1d0da6138e4f06726e07 private static DiscreteVoxelShape makeSlice(DiscreteVoxelShape voxelSet, Direction.Axis axis, int sliceWidth) { diff --git a/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java b/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java -index c88218ead06bec470b79f641651086dc121c42cc..e6b17f32f2b6930739a98c6139442383c1847add 100644 +index 2936c56e5690b42518010698e5177755422e4c5d..e6b17f32f2b6930739a98c6139442383c1847add 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java +++ b/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java @@ -16,37 +16,438 @@ import net.minecraft.world.phys.BlockHitResult; @@ -4620,9 +4620,9 @@ index c88218ead06bec470b79f641651086dc121c42cc..e6b17f32f2b6930739a98c6139442383 - Vec3 vec32 = start.add(vec3.scale(0.001)); - return this.shape - .isFullWide( -- this.findIndex(Direction.Axis.X, vec32.x - pos.getX()), -- this.findIndex(Direction.Axis.Y, vec32.y - pos.getY()), -- this.findIndex(Direction.Axis.Z, vec32.z - pos.getZ()) +- this.findIndex(Direction.Axis.X, vec32.x - (double)pos.getX()), +- this.findIndex(Direction.Axis.Y, vec32.y - (double)pos.getY()), +- this.findIndex(Direction.Axis.Z, vec32.z - (double)pos.getZ()) - ) - ? new BlockHitResult(vec32, Direction.getNearest(vec3.x, vec3.y, vec3.z).getOpposite(), pos, true) - : AABB.clip(this.toAabbs(), start, end, pos); diff --git a/patches/server/1024-Actually-optimise-explosions.patch b/patches/server/1024-Actually-optimise-explosions.patch index 629e23722c..7a35803ac0 100644 --- a/patches/server/1024-Actually-optimise-explosions.patch +++ b/patches/server/1024-Actually-optimise-explosions.patch @@ -497,7 +497,7 @@ index 093c814d6835f20b1208236db96bb40b4611936c..b678da2cbb93cea7971bc3c4d324cfca } diff --git a/src/main/java/net/minecraft/world/level/ExplosionDamageCalculator.java b/src/main/java/net/minecraft/world/level/ExplosionDamageCalculator.java -index 92e06e14fd76fa34b871657c3410a4527cd30e09..da25fee7dd436fbe9f5566311f254ec7a99835d2 100644 +index 4085949accf23728de9a2ff14249cd6ca9b71f8a..5b93c038331c1750260a42726f5bfb97998d93a9 100644 --- a/src/main/java/net/minecraft/world/level/ExplosionDamageCalculator.java +++ b/src/main/java/net/minecraft/world/level/ExplosionDamageCalculator.java @@ -22,11 +22,17 @@ public class ExplosionDamageCalculator { @@ -513,9 +513,9 @@ index 92e06e14fd76fa34b871657c3410a4527cd30e09..da25fee7dd436fbe9f5566311f254ec7 + // Paper end - actually optimise explosions float f = explosion.radius() * 2.0F; Vec3 vec3 = explosion.center(); - double d = Math.sqrt(entity.distanceToSqr(vec3)) / f; -- double e = (1.0 - d) * Explosion.getSeenPercent(vec3, entity); + double d = Math.sqrt(entity.distanceToSqr(vec3)) / (double)f; +- double e = (1.0 - d) * (double)Explosion.getSeenPercent(vec3, entity); + double e = (1.0 - d) * seenPercent; // Paper - actually optimise explosions - return (float)((e * e + e) / 2.0 * 7.0 * f + 1.0); + return (float)((e * e + e) / 2.0 * 7.0 * (double)f + 1.0); } } From 9e886c431029a71a97e850bec8c63b0699fd09f2 Mon Sep 17 00:00:00 2001 From: brickmonster <92665597+brickmonster@users.noreply.github.com> Date: Fri, 19 Apr 2024 20:47:24 +0100 Subject: [PATCH 054/215] Remove dead code (LegacyResult) (#10411) * Stop firing AsyncPlayerChatPreviewEvent as chat preview was removed in 1.19.3. This is in parity with upstream * formatting and small tweaks * correctly set MESSAGE_CHANGED flag for modern modifications --------- Co-authored-by: Jake Potrebic --- patches/api/0006-Adventure.patch | 18 +- patches/server/0010-Adventure.patch | 404 +++++------------- ...051-Improve-Player-chat-API-handling.patch | 6 +- ...nilla-per-world-scoreboard-coloring-.patch | 8 +- ...-Add-tick-times-API-and-mspt-command.patch | 4 +- 5 files changed, 124 insertions(+), 316 deletions(-) diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch index 60ac42acc1..28009e5408 100644 --- a/patches/api/0006-Adventure.patch +++ b/patches/api/0006-Adventure.patch @@ -340,7 +340,7 @@ index 0000000000000000000000000000000000000000..a0fd845bc9b2540c398fe1dbbf821803 +} diff --git a/src/main/java/io/papermc/paper/event/player/AsyncChatCommandDecorateEvent.java b/src/main/java/io/papermc/paper/event/player/AsyncChatCommandDecorateEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..feece00981ebf932e64760e7a10a04ad080d0228 +index 0000000000000000000000000000000000000000..01cf89d3558132912c4d0eb48c98cd8c06e46a67 --- /dev/null +++ b/src/main/java/io/papermc/paper/event/player/AsyncChatCommandDecorateEvent.java @@ -0,0 +1,28 @@ @@ -359,8 +359,8 @@ index 0000000000000000000000000000000000000000..feece00981ebf932e64760e7a10a04ad + private static final HandlerList HANDLER_LIST = new HandlerList(); + + @ApiStatus.Internal -+ public AsyncChatCommandDecorateEvent(boolean async, @Nullable Player player, @NotNull Component originalMessage, @NotNull Component result) { -+ super(async, player, originalMessage, result); ++ public AsyncChatCommandDecorateEvent(@Nullable Player player, @NotNull Component originalMessage) { ++ super(player, originalMessage); + } + + @Override @@ -374,17 +374,16 @@ index 0000000000000000000000000000000000000000..feece00981ebf932e64760e7a10a04ad +} diff --git a/src/main/java/io/papermc/paper/event/player/AsyncChatDecorateEvent.java b/src/main/java/io/papermc/paper/event/player/AsyncChatDecorateEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..9e1eb774d841e2c7ffa8bef688d832bdffaa0944 +index 0000000000000000000000000000000000000000..d4c01e4d332b46f0b129dd5f9e9737ba19923562 --- /dev/null +++ b/src/main/java/io/papermc/paper/event/player/AsyncChatDecorateEvent.java -@@ -0,0 +1,120 @@ +@@ -0,0 +1,118 @@ +package io.papermc.paper.event.player; + +import net.kyori.adventure.text.Component; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; -+import org.bukkit.event.player.AsyncPlayerChatPreviewEvent; +import org.bukkit.event.server.ServerEvent; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Contract; @@ -412,11 +411,11 @@ index 0000000000000000000000000000000000000000..9e1eb774d841e2c7ffa8bef688d832bd + private boolean cancelled; + + @ApiStatus.Internal -+ public AsyncChatDecorateEvent(final boolean async, final @Nullable Player player, final @NotNull Component originalMessage, final @NotNull Component result) { -+ super(async); ++ public AsyncChatDecorateEvent(final @Nullable Player player, final @NotNull Component originalMessage) { ++ super(true); + this.player = player; + this.originalMessage = originalMessage; -+ this.result = result; ++ this.result = originalMessage; + } + + /** @@ -443,7 +442,6 @@ index 0000000000000000000000000000000000000000..9e1eb774d841e2c7ffa8bef688d832bd + /** + * Gets the decoration result. This may already be different from + * {@link #originalMessage()} if some other listener to this event -+ * OR the legacy preview event ({@link AsyncPlayerChatPreviewEvent}) + * changed the result. + * + * @return the result diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index 5ccebb831a..503b0f421d 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -14,7 +14,7 @@ Co-authored-by: Jake Potrebic diff --git a/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java b/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java new file mode 100644 -index 0000000000000000000000000000000000000000..215ccf169d4e8522da5495768d33cf3e5cd92690 +index 0000000000000000000000000000000000000000..9090b0ebcd3ceecb14f83b274ad364d6ea17d1f4 --- /dev/null +++ b/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java @@ -0,0 +1,418 @@ @@ -416,7 +416,7 @@ index 0000000000000000000000000000000000000000..215ccf169d4e8522da5495768d33cf3e + }); + } + -+ static @Nullable String tryCollapseToString(final Component component) { ++ public static @Nullable String tryCollapseToString(final Component component) { + if (component instanceof final TextComponent textComponent) { + if (component.children().isEmpty() && component.style().isEmpty()) { + return textComponent.content(); @@ -611,163 +611,12 @@ index 0000000000000000000000000000000000000000..23bd6d2d8fed5a3491e856f8b875456d + } + } +} -diff --git a/src/main/java/io/papermc/paper/adventure/ChatDecorationProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatDecorationProcessor.java -new file mode 100644 -index 0000000000000000000000000000000000000000..3b53d87a52cafb2503419f21ddd87d42a5ec0330 ---- /dev/null -+++ b/src/main/java/io/papermc/paper/adventure/ChatDecorationProcessor.java -@@ -0,0 +1,145 @@ -+package io.papermc.paper.adventure; -+ -+import io.papermc.paper.event.player.AsyncChatCommandDecorateEvent; -+import io.papermc.paper.event.player.AsyncChatDecorateEvent; -+import java.util.ArrayList; -+import java.util.List; -+import java.util.concurrent.CompletableFuture; -+import java.util.regex.Pattern; -+import net.kyori.adventure.text.Component; -+import net.kyori.adventure.text.minimessage.MiniMessage; -+import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; -+import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; -+import net.minecraft.Optionull; -+import net.minecraft.commands.CommandSourceStack; -+import net.minecraft.network.chat.ChatDecorator; -+import net.minecraft.server.MinecraftServer; -+import net.minecraft.server.level.ServerPlayer; -+import org.bukkit.craftbukkit.entity.CraftPlayer; -+import org.bukkit.craftbukkit.util.LazyPlayerSet; -+import org.bukkit.event.Event; -+import org.bukkit.event.player.AsyncPlayerChatPreviewEvent; -+import org.checkerframework.checker.nullness.qual.NonNull; -+import org.checkerframework.checker.nullness.qual.Nullable; -+import org.checkerframework.framework.qual.DefaultQualifier; -+ -+import static io.papermc.paper.adventure.ChatProcessor.DEFAULT_LEGACY_FORMAT; -+import static io.papermc.paper.adventure.ChatProcessor.canYouHearMe; -+import static io.papermc.paper.adventure.ChatProcessor.displayName; -+import static net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection; -+ -+@DefaultQualifier(NonNull.class) -+public final class ChatDecorationProcessor { -+ -+ private static final String DISPLAY_NAME_TAG = "---paper_dn---"; -+ private static final Pattern DISPLAY_NAME_PATTERN = Pattern.compile("%(1\\$)?s"); -+ private static final String CONTENT_TAG = "---paper_content---"; -+ private static final Pattern CONTENT_PATTERN = Pattern.compile("%(2\\$)?s"); -+ -+ final MinecraftServer server; -+ final @Nullable ServerPlayer player; -+ final @Nullable CommandSourceStack commandSourceStack; -+ final Component originalMessage; -+ -+ public ChatDecorationProcessor(final MinecraftServer server, final @Nullable ServerPlayer player, final @Nullable CommandSourceStack commandSourceStack, final net.minecraft.network.chat.Component originalMessage) { -+ this.server = server; -+ this.player = player; -+ this.commandSourceStack = commandSourceStack; -+ this.originalMessage = PaperAdventure.asAdventure(originalMessage); -+ } -+ -+ public CompletableFuture process() { -+ return CompletableFuture.supplyAsync(() -> { -+ ChatDecorator.Result result = new ChatDecorator.ModernResult(this.originalMessage, true, false); -+ if (listenToLegacy()) { -+ result = this.processLegacy(result); -+ } -+ return this.processModern(result); -+ }, this.server.chatExecutor); -+ } -+ -+ @SuppressWarnings("deprecation") -+ private static boolean listenToLegacy() { -+ return canYouHearMe(AsyncPlayerChatPreviewEvent.getHandlerList()); -+ } -+ -+ @SuppressWarnings("deprecation") -+ private ChatDecorator.Result processLegacy(final ChatDecorator.Result input) { -+ if (this.player != null) { -+ final CraftPlayer player = this.player.getBukkitEntity(); -+ final String originalMessage = legacySection().serialize(this.originalMessage); -+ final AsyncPlayerChatPreviewEvent event = new AsyncPlayerChatPreviewEvent(true, player, originalMessage, new LazyPlayerSet(this.server)); -+ this.post(event); -+ -+ final boolean isDefaultFormat = DEFAULT_LEGACY_FORMAT.equals(event.getFormat()); -+ if (event.isCancelled() || (isDefaultFormat && originalMessage.equals(event.getMessage()))) { -+ return input; -+ } else { -+ final Component message = legacySection().deserialize(event.getMessage()); -+ final Component component = isDefaultFormat ? message : legacyFormat(event.getFormat(), ((CraftPlayer) event.getPlayer()), legacySection().deserialize(event.getMessage())); -+ return legacy(component, event.getFormat(), new ChatDecorator.MessagePair(message, event.getMessage()), isDefaultFormat); -+ } -+ } -+ return input; -+ } -+ -+ private ChatDecorator.Result processModern(final ChatDecorator.Result input) { -+ final @Nullable CraftPlayer player = Optionull.map(this.player, ServerPlayer::getBukkitEntity); -+ -+ final Component initialResult = input.message().component(); -+ final AsyncChatDecorateEvent event; -+ if (this.commandSourceStack != null) { -+ // TODO more command decorate context -+ event = new AsyncChatCommandDecorateEvent(true, player, this.originalMessage, initialResult); -+ } else { -+ event = new AsyncChatDecorateEvent(true, player, this.originalMessage, initialResult); -+ } -+ this.post(event); -+ if (!event.isCancelled() && !event.result().equals(initialResult)) { -+ if (input instanceof ChatDecorator.LegacyResult legacyResult) { -+ if (legacyResult.hasNoFormatting()) { -+ /* -+ The MessagePair in the decoration result may be different at this point. This is because the legacy -+ decoration system requires the same modifications be made to the message, so we can't have the initial -+ message value for the legacy chat events be changed by the modern decorate event. -+ */ -+ return noFormatting(event.result(), legacyResult.format(), legacyResult.message().legacyMessage()); -+ } else { -+ final Component formatted = legacyFormat(legacyResult.format(), player, event.result()); -+ return withFormatting(formatted, legacyResult.format(), event.result(), legacyResult.message().legacyMessage()); -+ } -+ } else { -+ return new ChatDecorator.ModernResult(event.result(), true, false); -+ } -+ } -+ return input; -+ } -+ -+ private void post(final Event event) { -+ this.server.server.getPluginManager().callEvent(event); -+ } -+ -+ private static Component legacyFormat(final String format, final @Nullable CraftPlayer player, final Component message) { -+ final List args = new ArrayList<>(player != null ? 2 : 1); -+ if (player != null) { -+ args.add(Placeholder.component(DISPLAY_NAME_TAG, displayName(player))); -+ } -+ args.add(Placeholder.component(CONTENT_TAG, message)); -+ String miniMsg = MiniMessage.miniMessage().serialize(legacySection().deserialize(format)); -+ miniMsg = DISPLAY_NAME_PATTERN.matcher(miniMsg).replaceFirst("<" + DISPLAY_NAME_TAG + ">"); -+ miniMsg = CONTENT_PATTERN.matcher(miniMsg).replaceFirst("<" + CONTENT_TAG + ">"); -+ return MiniMessage.miniMessage().deserialize(miniMsg, TagResolver.resolver(args)); -+ } -+ -+ public static ChatDecorator.LegacyResult legacy(final Component maybeFormatted, final String format, final ChatDecorator.MessagePair message, final boolean hasNoFormatting) { -+ return new ChatDecorator.LegacyResult(maybeFormatted, format, message, hasNoFormatting, false); -+ } -+ -+ public static ChatDecorator.LegacyResult noFormatting(final Component component, final String format, final String legacyMessage) { -+ return new ChatDecorator.LegacyResult(component, format, new ChatDecorator.MessagePair(component, legacyMessage), true, true); -+ } -+ -+ public static ChatDecorator.LegacyResult withFormatting(final Component formatted, final String format, final Component message, final String legacyMessage) { -+ return new ChatDecorator.LegacyResult(formatted, format, new ChatDecorator.MessagePair(message, legacyMessage), false, true); -+ } -+} diff --git a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java new file mode 100644 -index 0000000000000000000000000000000000000000..57081e84d50f7eca7ea11540b550da8269378e9e +index 0000000000000000000000000000000000000000..bfb1904be53112cdff62001c3307c7d5ef89704c --- /dev/null +++ b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java -@@ -0,0 +1,414 @@ +@@ -0,0 +1,376 @@ +package io.papermc.paper.adventure; + +import io.papermc.paper.chat.ChatRenderer; @@ -789,10 +638,10 @@ index 0000000000000000000000000000000000000000..57081e84d50f7eca7ea11540b550da82 +import net.kyori.adventure.audience.ForwardingAudience; +import net.kyori.adventure.key.Key; +import net.kyori.adventure.text.Component; ++import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import net.minecraft.Optionull; +import net.minecraft.Util; +import net.minecraft.core.registries.Registries; -+import net.minecraft.network.chat.ChatDecorator; +import net.minecraft.network.chat.ChatType; +import net.minecraft.network.chat.OutgoingChatMessage; +import net.minecraft.network.chat.PlayerChatMessage; @@ -812,6 +661,7 @@ index 0000000000000000000000000000000000000000..57081e84d50f7eca7ea11540b550da82 +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.framework.qual.DefaultQualifier; ++import org.intellij.lang.annotations.Subst; + +import static net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection; + @@ -830,33 +680,15 @@ index 0000000000000000000000000000000000000000..57081e84d50f7eca7ea11540b550da82 + static final int MESSAGE_CHANGED = 1; + static final int FORMAT_CHANGED = 2; + static final int SENDER_CHANGED = 3; // Not used -+ // static final int FORCE_PREVIEW_USE = 4; // TODO (future, maybe?) + private final BitSet flags = new BitSet(3); + + public ChatProcessor(final MinecraftServer server, final ServerPlayer player, final PlayerChatMessage message, final boolean async) { + this.server = server; + this.player = player; -+ /* -+ CraftBukkit's preview/decoration system relies on both the "decorate" and chat event making the same modifications. If -+ there is unsigned content in the legacyMessage, that is because the player sent the legacyMessage without it being -+ previewed (probably by sending it too quickly). We can just ignore that because the same changes will -+ happen in the chat event. -+ -+ If unsigned content is present, it will be the same as `this.legacyMessage.signedContent().previewResult().component()`. -+ */ + this.message = message; + this.async = async; -+ if (this.message.requireResult().modernized()) { -+ this.craftbukkit$originalMessage = this.message.requireResult().message().legacyMessage(); -+ } else { -+ this.craftbukkit$originalMessage = message.signedContent(); -+ } -+ /* -+ this.paper$originalMessage is the input to paper's chat events. This should be the decorated message component. -+ Even if the legacy preview event modified the format, and the client signed the formatted message, this should -+ still just be the message component. -+ */ -+ this.paper$originalMessage = this.message.requireResult().message().component(); ++ this.craftbukkit$originalMessage = message.unsignedContent() != null ? LegacyComponentSerializer.legacySection().serialize(PaperAdventure.asAdventure(message.unsignedContent())) : message.signedContent(); ++ this.paper$originalMessage = PaperAdventure.asAdventure(this.message.decoratedContent()); + this.outgoing = OutgoingChatMessage.create(this.message); + } + @@ -910,8 +742,6 @@ index 0000000000000000000000000000000000000000..57081e84d50f7eca7ea11540b550da82 + private ChatRenderer modernRenderer(final String format) { + if (this.flags.get(FORMAT_CHANGED)) { + return legacyRenderer(format); -+ } else if (this.message.requireResult() instanceof ChatDecorator.LegacyResult legacyResult) { -+ return legacyRenderer(legacyResult.format()); + } else { + return defaultRenderer(); + } @@ -920,25 +750,14 @@ index 0000000000000000000000000000000000000000..57081e84d50f7eca7ea11540b550da82 + private Component modernMessage(final String legacyMessage) { + if (this.flags.get(MESSAGE_CHANGED)) { + return legacySection().deserialize(legacyMessage); -+ } else if (this.message.unsignedContent() == null && this.message.requireResult() instanceof ChatDecorator.LegacyResult legacyResult) { -+ return legacyResult.message().component(); + } else { + return this.paper$originalMessage; + } + } + + private void readLegacyModifications(final String message, final String format, final Player playerSender) { -+ if (this.message.requireResult() instanceof ChatDecorator.LegacyResult result) { -+ if (this.message.unsignedContent() != null && !result.modernized()) { -+ this.flags.set(MESSAGE_CHANGED, !message.equals(result.message().legacyMessage())); -+ } else { -+ this.flags.set(MESSAGE_CHANGED, !message.equals(this.craftbukkit$originalMessage)); -+ } -+ this.flags.set(FORMAT_CHANGED, !format.equals(result.format())); -+ } else { -+ this.flags.set(MESSAGE_CHANGED, !message.equals(this.craftbukkit$originalMessage)); -+ this.flags.set(FORMAT_CHANGED, !format.equals(DEFAULT_LEGACY_FORMAT)); -+ } ++ this.flags.set(MESSAGE_CHANGED, !message.equals(this.craftbukkit$originalMessage)); ++ this.flags.set(FORMAT_CHANGED, !format.equals(DEFAULT_LEGACY_FORMAT)); + this.flags.set(SENDER_CHANGED, playerSender != this.player.getBukkitEntity()); + } + @@ -967,15 +786,10 @@ index 0000000000000000000000000000000000000000..57081e84d50f7eca7ea11540b550da82 + } + + private void readModernModifications(final AbstractChatEvent chatEvent, final ChatRenderer originalRenderer) { -+ if (this.message.unsignedContent() != null) { -+ this.flags.set(MESSAGE_CHANGED, !chatEvent.message().equals(this.message.requireResult().message().component())); -+ } else { -+ this.flags.set(MESSAGE_CHANGED, !chatEvent.message().equals(this.paper$originalMessage)); -+ } ++ this.flags.set(MESSAGE_CHANGED, !chatEvent.message().equals(this.paper$originalMessage)); + if (originalRenderer != chatEvent.renderer()) { // don't set to false if it hasn't changed + this.flags.set(FORMAT_CHANGED, true); + } -+ // this.flags.set(FORCE_PREVIEW_USE, chatEvent.usePreviewComponent()); // TODO (future, maybe?) + } + + private void complete(final AbstractChatEvent event) { @@ -993,9 +807,6 @@ index 0000000000000000000000000000000000000000..57081e84d50f7eca7ea11540b550da82 + final ChatType.Bound chatType = ChatType.bind(chatTypeKey, this.player.level().registryAccess(), PaperAdventure.asVanilla(displayName(player))); + + OutgoingChat outgoingChat = viewers instanceof LazyChatAudienceSet lazyAudienceSet && lazyAudienceSet.isLazy() ? new ServerOutgoingChat() : new ViewersOutgoingChat(); -+ /* if (this.flags.get(FORCE_PREVIEW_USE)) { // TODO (future, maybe?) -+ outgoingChat.sendOriginal(player, viewers, chatType); -+ } else */ + if (this.flags.get(FORMAT_CHANGED)) { + if (renderer instanceof ChatRenderer.ViewerUnaware unaware) { + outgoingChat.sendFormatChangedViewerUnaware(player, PaperAdventure.asVanilla(unaware.render(player, displayName, message)), viewers, chatType); @@ -1004,7 +815,7 @@ index 0000000000000000000000000000000000000000..57081e84d50f7eca7ea11540b550da82 + } + } else if (this.flags.get(MESSAGE_CHANGED)) { + if (!(renderer instanceof ChatRenderer.ViewerUnaware unaware)) { -+ throw new IllegalStateException("BUG: There should not be a non-legacy renderer at this point"); ++ throw new IllegalStateException("BUG: This should be a ViewerUnaware renderer at this point"); + } + final Component renderedComponent = chatTypeKey == ChatType.CHAT ? message : unaware.render(player, displayName, message); + outgoingChat.sendMessageChanged(player, PaperAdventure.asVanilla(renderedComponent), viewers, chatType); @@ -1085,7 +896,7 @@ index 0000000000000000000000000000000000000000..57081e84d50f7eca7ea11540b550da82 + }); + + private net.kyori.adventure.chat.ChatType.Bound adventure(ChatType.Bound chatType) { -+ final String stringKey = Objects.requireNonNull( ++ @Subst("key:value") final String stringKey = Objects.requireNonNull( + ChatProcessor.this.server.registryAccess().registryOrThrow(Registries.CHAT_TYPE).getKey(chatType.chatType()), + () -> "No key for '%s' in CHAT_TYPE registry.".formatted(chatType) + ).toString(); @@ -1213,6 +1024,67 @@ index 0000000000000000000000000000000000000000..d496a9a6ad229e42f1c44e31eafa6974 + return LegacyComponentSerializer.legacySection().serialize(player.adventure$displayName); + } +} +diff --git a/src/main/java/io/papermc/paper/adventure/ImprovedChatDecorator.java b/src/main/java/io/papermc/paper/adventure/ImprovedChatDecorator.java +new file mode 100644 +index 0000000000000000000000000000000000000000..0848ad9c7a6d386f0219b75df1ae4d08ba23aa59 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/adventure/ImprovedChatDecorator.java +@@ -0,0 +1,55 @@ ++package io.papermc.paper.adventure; ++ ++import io.papermc.paper.event.player.AsyncChatCommandDecorateEvent; ++import io.papermc.paper.event.player.AsyncChatDecorateEvent; ++import java.util.concurrent.CompletableFuture; ++import net.minecraft.commands.CommandSourceStack; ++import net.minecraft.network.chat.ChatDecorator; ++import net.minecraft.network.chat.Component; ++import net.minecraft.server.MinecraftServer; ++import net.minecraft.server.level.ServerPlayer; ++import org.bukkit.craftbukkit.entity.CraftPlayer; ++import org.checkerframework.checker.nullness.qual.NonNull; ++import org.checkerframework.checker.nullness.qual.Nullable; ++import org.checkerframework.framework.qual.DefaultQualifier; ++ ++@DefaultQualifier(NonNull.class) ++public final class ImprovedChatDecorator implements ChatDecorator { ++ private final MinecraftServer server; ++ ++ public ImprovedChatDecorator(final MinecraftServer server) { ++ this.server = server; ++ } ++ ++ @Override ++ public CompletableFuture decorate(final @Nullable ServerPlayer sender, final Component message) { ++ return decorate(this.server, sender, null, message); ++ } ++ ++ @Override ++ public CompletableFuture decorate(final @Nullable ServerPlayer sender, final @Nullable CommandSourceStack commandSourceStack, final Component message) { ++ return decorate(this.server, sender, commandSourceStack, message); ++ } ++ ++ private static CompletableFuture decorate(final MinecraftServer server, final @Nullable ServerPlayer player, final @Nullable CommandSourceStack commandSourceStack, final Component originalMessage) { ++ return CompletableFuture.supplyAsync(() -> { ++ final net.kyori.adventure.text.Component initialResult = PaperAdventure.asAdventure(originalMessage); ++ ++ final @Nullable CraftPlayer craftPlayer = player == null ? null : player.getBukkitEntity(); ++ ++ final AsyncChatDecorateEvent event; ++ if (commandSourceStack != null) { ++ // TODO more command decorate context ++ event = new AsyncChatCommandDecorateEvent(craftPlayer, initialResult); ++ } else { ++ event = new AsyncChatDecorateEvent(craftPlayer, initialResult); ++ } ++ ++ if (event.callEvent()) { ++ return PaperAdventure.asVanilla(event.result()); ++ } ++ ++ return originalMessage; ++ }, server.chatExecutor); ++ } ++} diff --git a/src/main/java/io/papermc/paper/adventure/LazyChatAudienceSet.java b/src/main/java/io/papermc/paper/adventure/LazyChatAudienceSet.java new file mode 100644 index 0000000000000000000000000000000000000000..2fd6c3e65354071af71c7d8ebb97b559b6e105ce @@ -1247,7 +1119,7 @@ index 0000000000000000000000000000000000000000..2fd6c3e65354071af71c7d8ebb97b559 +} diff --git a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java new file mode 100644 -index 0000000000000000000000000000000000000000..032d23ecda574ed1a3c740c16d13055f399bd6c4 +index 0000000000000000000000000000000000000000..5bacfadf01777171e51858d450a68135d422bf0f --- /dev/null +++ b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java @@ -0,0 +1,421 @@ @@ -1401,7 +1273,7 @@ index 0000000000000000000000000000000000000000..032d23ecda574ed1a3c740c16d13055f + + // Component + -+ public static Component asAdventure(final net.minecraft.network.chat.Component component) { ++ public static @NotNull Component asAdventure(@Nullable final net.minecraft.network.chat.Component component) { + return component == null ? Component.empty() : WRAPPER_AWARE_SERIALIZER.deserialize(component); + } + @@ -1429,7 +1301,7 @@ index 0000000000000000000000000000000000000000..032d23ecda574ed1a3c740c16d13055f + return jsons; + } + -+ public static net.minecraft.network.chat.Component asVanilla(final Component component) { ++ public static net.minecraft.network.chat.Component asVanilla(@Nullable final Component component) { + if (component == null) return null; + if (true) return new AdventureComponent(component); + return WRAPPER_AWARE_SERIALIZER.serialize(component); @@ -2131,7 +2003,7 @@ index db93483cfee13ca4303d7452ecbb47507dc5f89e..f6938c35ac6f6116084d3e7ec9cdc918 public CommandSourceStack(CommandSource output, Vec3 pos, Vec2 rot, ServerLevel world, int level, String name, Component displayName, MinecraftServer server, @Nullable Entity entity) { this(output, pos, rot, world, level, name, displayName, server, entity, false, CommandResultCallback.EMPTY, EntityAnchorArgument.Anchor.FEET, CommandSigningContext.ANONYMOUS, TaskChainer.immediate(server)); diff --git a/src/main/java/net/minecraft/commands/arguments/MessageArgument.java b/src/main/java/net/minecraft/commands/arguments/MessageArgument.java -index 7511445f48d9f13106b5d45b5d5bae9172fccfe4..43a47a6d8e5043ef743c5c2d8fb802d8ba3cb8ec 100644 +index 7511445f48d9f13106b5d45b5d5bae9172fccfe4..23f6b833e71002c648e20744ed0beb344efbe8b9 100644 --- a/src/main/java/net/minecraft/commands/arguments/MessageArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/MessageArgument.java @@ -50,17 +50,21 @@ public class MessageArgument implements SignedArgument @@ -2142,9 +2014,9 @@ index 7511445f48d9f13106b5d45b5d5bae9172fccfe4..43a47a6d8e5043ef743c5c2d8fb802d8 - source.getChatMessageChainer().append(completableFuture, filtered -> { - PlayerChatMessage playerChatMessage2 = message.withUnsignedContent(component).filter(filtered.mask()); + // Paper start - support asynchronous chat decoration -+ CompletableFuture componentFuture = minecraftServer.getChatDecorator().decorate(source.getPlayer(), source, message.decoratedContent()); ++ CompletableFuture componentFuture = minecraftServer.getChatDecorator().decorate(source.getPlayer(), source, message.decoratedContent()); + source.getChatMessageChainer().append(CompletableFuture.allOf(completableFuture, componentFuture), filtered -> { -+ PlayerChatMessage playerChatMessage2 = message.withUnsignedContent(componentFuture.join().component()).filter(completableFuture.join().mask()); ++ PlayerChatMessage playerChatMessage2 = message.withUnsignedContent(componentFuture.join()).filter(completableFuture.join().mask()); + // Paper end - support asynchronous chat decoration callback.accept(playerChatMessage2); }); @@ -2155,8 +2027,8 @@ index 7511445f48d9f13106b5d45b5d5bae9172fccfe4..43a47a6d8e5043ef743c5c2d8fb802d8 - Component component = chatDecorator.decorate(source.getPlayer(), message.decoratedContent()); - callback.accept(message.withUnsignedContent(component)); + // Paper start - support asynchronous chat decoration -+ CompletableFuture componentFuture = chatDecorator.decorate(source.getPlayer(), source, message.decoratedContent()); -+ source.getChatMessageChainer().append(componentFuture, (result) -> callback.accept(message.withUnsignedContent(result.component()))); ++ CompletableFuture componentFuture = chatDecorator.decorate(source.getPlayer(), source, message.decoratedContent()); ++ source.getChatMessageChainer().append(componentFuture, (result) -> callback.accept(message.withUnsignedContent(result))); + // Paper end - support asynchronous chat decoration } @@ -2237,10 +2109,10 @@ index d0e159f54da70bf0bd834738ced5d4b414a36142..0d80fcee1831af59b06c4d00dc713bd4 try { int j = friendlyByteBuf.writerIndex(); diff --git a/src/main/java/net/minecraft/network/chat/ChatDecorator.java b/src/main/java/net/minecraft/network/chat/ChatDecorator.java -index e4624d696dcf0ddb6d42a80701dfc47ec6877540..8885e405b626daa0af1485ad734863af73b3c1f3 100644 +index e4624d696dcf0ddb6d42a80701dfc47ec6877540..6b8dc1eb490098cc14673c9ab0aa16fe3471325b 100644 --- a/src/main/java/net/minecraft/network/chat/ChatDecorator.java +++ b/src/main/java/net/minecraft/network/chat/ChatDecorator.java -@@ -2,10 +2,70 @@ package net.minecraft.network.chat; +@@ -2,10 +2,18 @@ package net.minecraft.network.chat; import javax.annotation.Nullable; import net.minecraft.server.level.ServerPlayer; @@ -2249,68 +2121,16 @@ index e4624d696dcf0ddb6d42a80701dfc47ec6877540..8885e405b626daa0af1485ad734863af @FunctionalInterface public interface ChatDecorator { - ChatDecorator PLAIN = (sender, message) -> message; -+ ChatDecorator PLAIN = (sender, message) -> CompletableFuture.completedFuture(message); // Paper - adventure; support async chat decoration events; ++ ChatDecorator PLAIN = (sender, message) -> CompletableFuture.completedFuture(message); // Paper - adventure; support async chat decoration events - Component decorate(@Nullable ServerPlayer sender, Component message); -+ @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper - adventure; support chat decoration events ++ @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper - adventure; support chat decoration events (callers should use the overload with CommandSourceStack) + CompletableFuture decorate(@Nullable ServerPlayer sender, Component message); // Paper - adventure; support async chat decoration events + + // Paper start - adventure; support async chat decoration events -+ default CompletableFuture decorate(@Nullable ServerPlayer sender, @Nullable net.minecraft.commands.CommandSourceStack commandSourceStack, Component message) { ++ default CompletableFuture decorate(@Nullable ServerPlayer sender, @Nullable net.minecraft.commands.CommandSourceStack commandSourceStack, Component message) { + throw new UnsupportedOperationException("Must override this implementation"); + } -+ -+ static ChatDecorator create(ImprovedChatDecorator delegate) { -+ return new ChatDecorator() { -+ @Override -+ public CompletableFuture decorate(@Nullable ServerPlayer sender, Component message) { -+ return this.decorate(sender, null, message).thenApply(Result::component); -+ } -+ -+ @Override -+ public CompletableFuture decorate(@Nullable ServerPlayer sender, @Nullable net.minecraft.commands.CommandSourceStack commandSourceStack, Component message) { -+ return delegate.decorate(sender, commandSourceStack, message); -+ } -+ }; -+ } -+ -+ @FunctionalInterface -+ interface ImprovedChatDecorator { -+ CompletableFuture decorate(@Nullable ServerPlayer sender, @Nullable net.minecraft.commands.CommandSourceStack commandSourceStack, Component message); -+ } -+ -+ interface Result { -+ boolean hasNoFormatting(); -+ -+ Component component(); -+ -+ MessagePair message(); -+ -+ boolean modernized(); -+ } -+ -+ record MessagePair(net.kyori.adventure.text.Component component, String legacyMessage) { } -+ -+ record LegacyResult(Component component, String format, MessagePair message, boolean hasNoFormatting, boolean modernized) implements Result { -+ public LegacyResult(net.kyori.adventure.text.Component component, String format, MessagePair message, boolean hasNoFormatting, boolean modernified) { -+ this(io.papermc.paper.adventure.PaperAdventure.asVanilla(component), format, message, hasNoFormatting, modernified); -+ } -+ public LegacyResult { -+ component = component instanceof io.papermc.paper.adventure.AdventureComponent adventureComponent ? adventureComponent.deepConverted() : component; -+ } -+ } -+ -+ record ModernResult(Component component, boolean hasNoFormatting, boolean modernized) implements Result { -+ public ModernResult(net.kyori.adventure.text.Component component, boolean hasNoFormatting, boolean modernized) { -+ this(io.papermc.paper.adventure.PaperAdventure.asVanilla(component), hasNoFormatting, modernized); -+ } -+ -+ @Override -+ public MessagePair message() { -+ final net.kyori.adventure.text.Component adventureComponent = io.papermc.paper.adventure.PaperAdventure.WRAPPER_AWARE_SERIALIZER.deserialize(this.component); -+ return new MessagePair(adventureComponent, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(adventureComponent)); -+ } -+ } + // Paper end - adventure; support async chat decoration events } diff --git a/src/main/java/net/minecraft/network/chat/ComponentSerialization.java b/src/main/java/net/minecraft/network/chat/ComponentSerialization.java @@ -2452,27 +2272,14 @@ index e2def0ca552343143e495736d533b3334686fd62..c87b708c368713a23a10ad97704575ee sender.connection.sendPlayerChatMessage(playerChatMessage, params); } diff --git a/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java b/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java -index d89049328641faa889b7c567123ab3a2c63b8df0..81e904e78c9fec49ac244f0a62cef75e5824f2dd 100644 +index d89049328641faa889b7c567123ab3a2c63b8df0..76b304560c2b631a18f20e656a65ac75af7b4e63 100644 --- a/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java +++ b/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java -@@ -15,8 +15,54 @@ import net.minecraft.util.SignatureUpdater; - import net.minecraft.util.SignatureValidator; - +@@ -17,6 +17,42 @@ import net.minecraft.util.SignatureValidator; public record PlayerChatMessage( -- SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask -+ SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask, @Nullable net.minecraft.network.chat.ChatDecorator.Result result // Paper - adventure; support signed messages + SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask ) { + // Paper start - adventure; support signed messages -+ public PlayerChatMessage(SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask) { -+ this(link, signature, signedBody, unsignedContent, filterMask, null); -+ } -+ public PlayerChatMessage withResult(net.minecraft.network.chat.ChatDecorator.Result result) { -+ final PlayerChatMessage msg = this.withUnsignedContent(result.component()); -+ return new PlayerChatMessage(msg.link, msg.signature, msg.signedBody, msg.unsignedContent, msg.filterMask, result); -+ } -+ public net.minecraft.network.chat.ChatDecorator.Result requireResult() { -+ return Objects.requireNonNull(this.result, "Requires a decoration result to be set here"); -+ } + public final class AdventureView implements net.kyori.adventure.chat.SignedMessage { + private AdventureView() { + } @@ -2511,12 +2318,19 @@ index d89049328641faa889b7c567123ab3a2c63b8df0..81e904e78c9fec49ac244f0a62cef75e public static final MapCodec MAP_CODEC = RecordCodecBuilder.mapCodec( instance -> instance.group( SignedMessageLink.CODEC.fieldOf("link").forGetter(PlayerChatMessage::link), -@@ -47,7 +93,7 @@ public record PlayerChatMessage( +@@ -47,7 +83,14 @@ public record PlayerChatMessage( } public PlayerChatMessage withUnsignedContent(Component unsignedContent) { - Component component = !unsignedContent.equals(Component.literal(this.signedContent())) ? unsignedContent : null; -+ Component component = !(unsignedContent instanceof io.papermc.paper.adventure.AdventureComponent advComponent ? advComponent.deepConverted() : unsignedContent).equals(Component.literal(this.signedContent())) ? unsignedContent : null; // Paper - adventure; convert adventure component wraps ++ // Paper start - adventure ++ final Component component; ++ if (unsignedContent instanceof io.papermc.paper.adventure.AdventureComponent advComponent) { ++ component = this.signedContent().equals(io.papermc.paper.adventure.AdventureCodecs.tryCollapseToString(advComponent.adventure$component())) ? null : unsignedContent; ++ } else { ++ component = !unsignedContent.equals(Component.literal(this.signedContent())) ? unsignedContent : null; ++ } ++ // Paper end - adventure return new PlayerChatMessage(this.link, this.signature, this.signedBody, component, this.filterMask); } @@ -2662,7 +2476,7 @@ index a5578cbce2d1d39ba3315e53425d5323e6823a65..7a036c08fa67504d06c8f72a32c22814 @Override diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4035faedd9f5f72f262822a9f050178d99be06e4..4c18491a627e66297627abbded1af48b2026e610 100644 +index 4035faedd9f5f72f262822a9f050178d99be06e4..00a1806720e67eb747061e0a6c2ea334dd4453ce 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -191,6 +191,7 @@ import org.bukkit.craftbukkit.SpigotTimings; // Spigot @@ -2722,7 +2536,7 @@ index 4035faedd9f5f72f262822a9f050178d99be06e4..4c18491a627e66297627abbded1af48b this.motd = motd; } -@@ -2434,23 +2445,28 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { -+ final io.papermc.paper.adventure.ChatDecorationProcessor processor = new io.papermc.paper.adventure.ChatDecorationProcessor(this, sender, commandSourceStack, message); -+ return processor.process(); -+ }); -+ // Paper end ++ return this.improvedChatDecorator; // Paper - support async chat decoration events } public boolean logIPs() { @@ -2947,7 +2757,7 @@ index a60fef571c94858998a91711b17d3670c28a81bd..04a728a16bb629adbae1cd8586764a6d @Override diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 58872976048a1162602d5f11a85eaead837cd805..93ef520b8f047870f48e908ae55590547ad88729 100644 +index 58872976048a1162602d5f11a85eaead837cd805..c51e38bb683d239d6116075b5a613b5ef709056a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -44,6 +44,7 @@ import net.minecraft.nbt.ListTag; @@ -2987,12 +2797,12 @@ index 58872976048a1162602d5f11a85eaead837cd805..93ef520b8f047870f48e908ae5559054 CompletableFuture completablefuture = this.filterTextPacket(playerchatmessage.signedContent()).thenApplyAsync(Function.identity(), this.server.chatExecutor); // CraftBukkit - async chat - Component ichatbasecomponent = this.server.getChatDecorator().decorate(this.player, playerchatmessage.decoratedContent()); -+ CompletableFuture componentFuture = this.server.getChatDecorator().decorate(this.player, null, playerchatmessage.decoratedContent()); // Paper ++ CompletableFuture componentFuture = this.server.getChatDecorator().decorate(this.player, null, playerchatmessage.decoratedContent()); // Paper - Adventure - this.chatMessageChain.append(completablefuture, (filteredtext) -> { - PlayerChatMessage playerchatmessage1 = playerchatmessage.withUnsignedContent(ichatbasecomponent).filter(filteredtext.mask()); -+ this.chatMessageChain.append(CompletableFuture.allOf(completablefuture, componentFuture), (filteredtext) -> { -+ PlayerChatMessage playerchatmessage1 = playerchatmessage.filter(completablefuture.join().mask()).withResult(componentFuture.join()); // Paper ++ this.chatMessageChain.append(CompletableFuture.allOf(completablefuture, componentFuture), (filteredtext) -> { // Paper - Adventure ++ PlayerChatMessage playerchatmessage1 = playerchatmessage.withUnsignedContent(componentFuture.join()).filter(completablefuture.join().mask()); // Paper - Adventure this.broadcastChatMessage(playerchatmessage1); }); diff --git a/patches/server/0051-Improve-Player-chat-API-handling.patch b/patches/server/0051-Improve-Player-chat-API-handling.patch index c0ca302a0b..3c0f6c4f88 100644 --- a/patches/server/0051-Improve-Player-chat-API-handling.patch +++ b/patches/server/0051-Improve-Player-chat-API-handling.patch @@ -17,7 +17,7 @@ Co-authored-by: Jake Potrebic Co-authored-by: SoSeDiK diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4be0935a36bd7b2e0d83e30b6edc43a6429dac22..37cba1e693490e42908f45dc68e60ac3afebbb49 100644 +index ee369964eb7f0ac0c24699b804214ce1a9632043..01d1759aefdb0a224f1e8764ec1114ef1baa6cf5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1930,7 +1930,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -53,7 +53,7 @@ index 56a63adc3c0c919594c3f2646d4cf5b86b5c6f1e..5b22714d6f5eb8318275ca0bf01597be if (this.commandMap.dispatch(sender, commandLine)) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 42b27e1b8bc317a4cd0fcc27a5d7ce2d69d33aeb..6f3c450cd03fa4848175cada63be2dcf5abe45ba 100644 +index 42b27e1b8bc317a4cd0fcc27a5d7ce2d69d33aeb..0391c8f663a52a006e3d7c447a529a958fb98e18 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -462,7 +462,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -68,7 +68,7 @@ index 42b27e1b8bc317a4cd0fcc27a5d7ce2d69d33aeb..6f3c450cd03fa4848175cada63be2dcf + if (msg.startsWith("/")) { + this.getHandle().connection.handleCommand(msg); + } else { -+ final PlayerChatMessage playerChatMessage = PlayerChatMessage.system(msg).withResult(new net.minecraft.network.chat.ChatDecorator.ModernResult(Component.literal(msg), true, false)); ++ final PlayerChatMessage playerChatMessage = PlayerChatMessage.system(msg).withUnsignedContent(Component.literal(msg)); + // TODO chat decorating + // TODO text filtering + this.getHandle().connection.chat(msg, playerChatMessage, false); diff --git a/patches/server/0084-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch b/patches/server/0084-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch index b6c2dcf1d9..38801c08e4 100644 --- a/patches/server/0084-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch +++ b/patches/server/0084-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch @@ -12,13 +12,13 @@ for this on CB at one point but I can't find it. We may need to do this ourselves at some point in the future. diff --git a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java -index 57081e84d50f7eca7ea11540b550da8269378e9e..e4fd372a1d585887287253a02531cd192929377b 100644 +index bfb1904be53112cdff62001c3307c7d5ef89704c..1d78e8beacbc93ef2cd6beb418edca843f8a5429 100644 --- a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java +++ b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java -@@ -19,6 +19,7 @@ import net.kyori.adventure.audience.Audience; - import net.kyori.adventure.audience.ForwardingAudience; +@@ -20,6 +20,7 @@ import net.kyori.adventure.audience.ForwardingAudience; import net.kyori.adventure.key.Key; import net.kyori.adventure.text.Component; + import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import net.minecraft.ChatFormatting; import net.minecraft.Optionull; import net.minecraft.Util; @@ -31,7 +31,7 @@ index 57081e84d50f7eca7ea11540b550da8269378e9e..e4fd372a1d585887287253a02531cd19 import org.bukkit.craftbukkit.entity.CraftPlayer; import org.bukkit.craftbukkit.util.LazyPlayerSet; import org.bukkit.craftbukkit.util.Waitable; -@@ -367,10 +369,16 @@ public final class ChatProcessor { +@@ -329,10 +331,16 @@ public final class ChatProcessor { } static String legacyDisplayName(final CraftPlayer player) { diff --git a/patches/server/0337-Add-tick-times-API-and-mspt-command.patch b/patches/server/0337-Add-tick-times-API-and-mspt-command.patch index 3e698fc207..0dd8f2ca3e 100644 --- a/patches/server/0337-Add-tick-times-API-and-mspt-command.patch +++ b/patches/server/0337-Add-tick-times-API-and-mspt-command.patch @@ -125,7 +125,7 @@ index 72f2e81b9905a0d57ed8e2a88578f62d5235c456..7b58b2d6297800c2dcdbf7539e5ab8e7 public static void registerCommands(final MinecraftServer server) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 46386befc7c76788bdd136f7d7b4eb8e1e5d19b9..1a7dffb3947dab0e334cd5873c69542f383aed61 100644 +index 6342b7a3c4ccad528f026384da64e973e630f030..746eeb22127d8633f1eeef1bb9c20edb7fd23e5a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -252,6 +252,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Date: Fri, 19 Apr 2024 13:03:32 -0700 Subject: [PATCH 055/215] Add API for ticking fluids (#10435) * Add API for ticking fluids * update javadocs --- patches/api/0368-Block-Ticking-API.patch | 24 ++++++++++++-- patches/server/0773-Block-Ticking-API.patch | 33 ++++++++++++++----- ...0899-Only-capture-actual-tree-growth.patch | 4 +-- ...e-experience-dropping-on-block-break.patch | 4 +-- 4 files changed, 50 insertions(+), 15 deletions(-) diff --git a/patches/api/0368-Block-Ticking-API.patch b/patches/api/0368-Block-Ticking-API.patch index aba95a2d13..02fed74c9e 100644 --- a/patches/api/0368-Block-Ticking-API.patch +++ b/patches/api/0368-Block-Ticking-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Block Ticking API diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index cf9600c743e977312c0a15c455d602391797ef34..38cf77e32b76bc7d9db7523f7f21427ebb72f913 100644 +index cf9600c743e977312c0a15c455d602391797ef34..8a842840e1a2652a6356d4a56e4749a5ba36e902 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -589,6 +589,21 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr +@@ -589,6 +589,41 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr * @return true if the block was destroyed */ boolean breakNaturally(@NotNull ItemStack tool, boolean triggerEffect, boolean dropExperience); @@ -17,14 +17,34 @@ index cf9600c743e977312c0a15c455d602391797ef34..38cf77e32b76bc7d9db7523f7f21427e + * Causes the block to be ticked, this is different from {@link Block#randomTick()}, + * in that it is usually scheduled to occur, for example + * redstone components being activated, sand falling, etc. ++ *

        ++ * This method may directly fire events relating to block ticking. ++ * ++ * @see #fluidTick() + */ + void tick(); + + /** ++ * Causes the fluid to be ticked, this is different from {@link Block#randomTick()}, ++ * in that it is usually scheduled to occur, for example ++ * causing waterlogged blocks to spread. ++ *

        ++ * This method may directly fire events relating to fluid ticking. ++ * ++ * @see #tick() ++ */ ++ void fluidTick(); ++ ++ /** + * Causes the block to be ticked randomly. + * This has a chance to execute naturally if {@link BlockData#isRandomlyTicked()} is true. + *

        + * For certain blocks, this behavior may be the same as {@link Block#tick()}. ++ *

        ++ * This method may directly fire events relating to block random ticking. ++ * ++ * @see #tick() ++ * @see #fluidTick() + */ + void randomTick(); // Paper end diff --git a/patches/server/0773-Block-Ticking-API.patch b/patches/server/0773-Block-Ticking-API.patch index 9afbc4d4b1..d26cc16750 100644 --- a/patches/server/0773-Block-Ticking-API.patch +++ b/patches/server/0773-Block-Ticking-API.patch @@ -5,28 +5,43 @@ Subject: [PATCH] Block Ticking API diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 6d10396347b69d9243ab902ecc68ede93fa17b7d..0a96b00a98227714ef99005e0a223765feae8fe9 100644 +index 6d10396347b69d9243ab902ecc68ede93fa17b7d..af219df5267589300f0ad1d30fa5c81a1f50234f 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -709,5 +709,21 @@ public class CraftBlock implements Block { +@@ -78,6 +78,12 @@ public class CraftBlock implements Block { + return this.world.getBlockState(this.position); + } + ++ // Paper start ++ public net.minecraft.world.level.material.FluidState getNMSFluid() { ++ return this.world.getFluidState(this.position); ++ } ++ // Paper end ++ + public BlockPos getPosition() { + return this.position; + } +@@ -709,5 +715,23 @@ public class CraftBlock implements Block { public boolean isValidTool(ItemStack itemStack) { return getDrops(itemStack).size() != 0; } + + @Override + public void tick() { -+ net.minecraft.world.level.block.state.BlockState blockData = this.getNMS(); -+ net.minecraft.server.level.ServerLevel level = this.world.getMinecraftWorld(); ++ final ServerLevel level = this.world.getMinecraftWorld(); ++ this.getNMS().tick(level, this.position, level.random); ++ } + -+ blockData.getBlock().tick(blockData, level, this.position, level.random); ++ ++ @Override ++ public void fluidTick() { ++ this.getNMSFluid().tick(this.world.getMinecraftWorld(), this.position); + } + + @Override + public void randomTick() { -+ net.minecraft.world.level.block.state.BlockState blockData = this.getNMS(); -+ net.minecraft.server.level.ServerLevel level = this.world.getMinecraftWorld(); -+ -+ blockData.getBlock().randomTick(blockData, level, this.position, level.random); ++ final ServerLevel level = this.world.getMinecraftWorld(); ++ this.getNMS().randomTick(level, this.position, level.random); + } // Paper end } diff --git a/patches/server/0899-Only-capture-actual-tree-growth.patch b/patches/server/0899-Only-capture-actual-tree-growth.patch index 845e3ce577..683dad5511 100644 --- a/patches/server/0899-Only-capture-actual-tree-growth.patch +++ b/patches/server/0899-Only-capture-actual-tree-growth.patch @@ -60,10 +60,10 @@ index 83e6e3286d04c39d6d7ba496251aec962621f72e..3ff0d08e4964aae82d8e51d3b8bf9aa0 } } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 0a96b00a98227714ef99005e0a223765feae8fe9..e5506a7d074a9f89d41f4d5d7549a458779bef20 100644 +index af219df5267589300f0ad1d30fa5c81a1f50234f..461a66c323a74db5a70981fafc5fa20f54f0f40d 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -566,6 +566,7 @@ public class CraftBlock implements Block { +@@ -572,6 +572,7 @@ public class CraftBlock implements Block { if (!event.isCancelled()) { for (BlockState blockstate : blocks) { blockstate.update(true); diff --git a/patches/server/0974-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/0974-Properly-handle-experience-dropping-on-block-break.patch index 3cc682a856..57e56e24ab 100644 --- a/patches/server/0974-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/0974-Properly-handle-experience-dropping-on-block-break.patch @@ -80,10 +80,10 @@ index e57e3a26b0fb856e1ab693df5783fe8b9bee9719..64300077fce6eb28b6bddd42b3467eaa public List getDrops(LootParams.Builder builder) { diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index e5506a7d074a9f89d41f4d5d7549a458779bef20..4b42ef2a876ea210d948238e63fd7a2b7035bb5b 100644 +index 461a66c323a74db5a70981fafc5fa20f54f0f40d..ac11f18690434922179b61ffcc3036dea025b0cb 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -503,7 +503,7 @@ public class CraftBlock implements Block { +@@ -509,7 +509,7 @@ public class CraftBlock implements Block { // Modelled off EntityHuman#hasBlock if (block != Blocks.AIR && (item == null || !iblockdata.requiresCorrectToolForDrops() || nmsItem.isCorrectToolForDrops(iblockdata))) { From 908b8141c9100989f71747e357e82416d8e3b08f Mon Sep 17 00:00:00 2001 From: Tamion <70228790+notTamion@users.noreply.github.com> Date: Sat, 20 Apr 2024 05:23:32 +0200 Subject: [PATCH 056/215] Fix inventory desync with PlayerLeashEntityEvent (#10436) --- patches/server/0926-Fix-inventory-desync.patch | 12 ++++++++++++ .../server/0972-Add-PlayerShieldDisableEvent.patch | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/patches/server/0926-Fix-inventory-desync.patch b/patches/server/0926-Fix-inventory-desync.patch index 4345fa9aa5..f69c4d7ee9 100644 --- a/patches/server/0926-Fix-inventory-desync.patch +++ b/patches/server/0926-Fix-inventory-desync.patch @@ -4,6 +4,18 @@ Date: Wed, 23 Aug 2023 13:22:09 -0700 Subject: [PATCH] Fix inventory desync +diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java +index d1833dcc92b1570e62a1941bbea6d66ff0b2ee5f..5da7ffee71bf6d82a53b3c2f99e2bd898d0b1799 100644 +--- a/src/main/java/net/minecraft/world/entity/Mob.java ++++ b/src/main/java/net/minecraft/world/entity/Mob.java +@@ -1336,6 +1336,7 @@ public abstract class Mob extends LivingEntity implements Targeting { + // CraftBukkit start - fire PlayerLeashEntityEvent + if (CraftEventFactory.callPlayerLeashEntityEvent(this, player, player, hand).isCancelled()) { + ((ServerPlayer) player).connection.send(new ClientboundSetEntityLinkPacket(this, this.getLeashHolder())); ++ player.containerMenu.sendAllDataToRemote(); // Paper - Fix inventory desync + return InteractionResult.PASS; + } + // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java index e258e5915b286f1117bc1413dfd3d2a5c4655380..8d2c0accadaf0c5d28e7db6e62a05f6c619cf02f 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java diff --git a/patches/server/0972-Add-PlayerShieldDisableEvent.patch b/patches/server/0972-Add-PlayerShieldDisableEvent.patch index a02011827d..196eafaea2 100644 --- a/patches/server/0972-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/0972-Add-PlayerShieldDisableEvent.patch @@ -16,10 +16,10 @@ sideeffects, meaning the disable event cannot share a handlerlist with the cooldown event diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 4e8aee81cb9e9fe4a4e5df4e228c0314b3af486b..544e22f569d7ddeb1ba46a9ef7f4d4d6ca37c431 100644 +index a59ee9d9b93404060e7a4702497071859daec6df..f7818fd5e59784554732c39ef5c56461ea0d62c4 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1698,7 +1698,11 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1699,7 +1699,11 @@ public abstract class Mob extends LivingEntity implements Targeting { float f = 0.25F + (float) EnchantmentHelper.getBlockEfficiency(this) * 0.05F; if (this.random.nextFloat() < f) { From 3af134652070c43fa70568203ccdd974d1503533 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 20 Apr 2024 15:24:42 +0200 Subject: [PATCH 057/215] Allow setting player list name early --- patches/server/0010-Adventure.patch | 33 ++++++++++++------- patches/server/0014-Timings-v2.patch | 8 ++--- .../0029-Player-affects-spawning-API.patch | 6 ++-- ...030-Only-refresh-abilities-if-needed.patch | 4 +-- ...44-Implement-PlayerLocaleChangeEvent.patch | 4 +-- ...051-Improve-Player-chat-API-handling.patch | 6 ++-- ...ble-inter-world-teleportation-safety.patch | 4 +-- .../0063-Complete-resource-pack-API.patch | 4 +-- ...th-absorb-values-and-repair-bad-data.patch | 4 +-- ...3-Ability-to-apply-mending-to-XP-API.patch | 4 +-- .../0176-Player.setPlayerProfile-API.patch | 14 ++++---- ...81-Flag-to-disable-the-channel-limit.patch | 4 +-- .../0208-InventoryCloseEvent-Reason-API.patch | 6 ++-- ...e-attack-cooldown-methods-for-Player.patch | 4 +-- .../server/0245-Improve-death-events.patch | 4 +-- ...-Replace-OfflinePlayer-getLastPlayed.patch | 8 ++--- ...-Implement-Player-Client-Options-API.patch | 4 +-- patches/server/0411-Brand-support.patch | 4 +-- ...r-spawnParticle-x-y-z-precision-loss.patch | 4 +-- patches/server/0493-Add-sendOpLevel-API.patch | 4 +-- ...557-Expand-PlayerGameModeChangeEvent.patch | 6 ++-- .../0569-Add-PlayerKickEvent-causes.patch | 12 +++---- .../server/0602-Add-PlayerSetSpawnEvent.patch | 4 +-- ...ulti-Block-Change-API-Implementation.patch | 4 +-- patches/server/0764-More-Teleport-API.patch | 14 ++++---- ...stom-Chat-Completion-Suggestions-API.patch | 4 +-- .../0795-Elder-Guardian-appearance-API.patch | 4 +-- .../0810-Add-Player-Warden-Warning-API.patch | 4 +-- patches/server/0823-fix-Instruments.patch | 4 +-- patches/server/0833-Flying-Fall-Damage.patch | 4 +-- patches/server/0839-Win-Screen-API.patch | 4 +-- .../0866-Expand-PlayerItemMendEvent.patch | 4 +-- patches/server/0887-Fix-BanList-API.patch | 6 ++-- .../server/0906-Bandaid-fix-for-Effect.patch | 4 +-- .../0914-Add-Listing-API-for-Player.patch | 6 ++-- .../0946-Add-player-idle-duration-API.patch | 4 +-- ...stack-for-Player-sendEquipmentChange.patch | 4 +-- .../0970-Add-experience-points-API.patch | 4 +-- .../server/0980-Rewrite-chunk-system.patch | 6 ++-- 39 files changed, 122 insertions(+), 113 deletions(-) diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index 503b0f421d..b91e0bfc27 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -3976,10 +3976,10 @@ index 61759e8179d0f6342abf0c0294e5a024928db8d9..92e21126a9347f1ee2279ab09bb6abf2 public boolean isOp() { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a46f45fd76 100644 +index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e87f36d8aa86b9ac9ccc234f7b51a4a51bff2426 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -306,14 +306,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -306,14 +306,40 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public String getDisplayName() { @@ -3997,6 +3997,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 + @Override + public void playerListName(net.kyori.adventure.text.Component name) { + getHandle().listName = name == null ? null : io.papermc.paper.adventure.PaperAdventure.asVanilla(name); ++ if (getHandle().connection == null) return; // Updates are possible before the player has fully joined + for (ServerPlayer player : server.getHandle().players) { + if (player.getBukkitEntity().canSee(this)) { + player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, getHandle())); @@ -4019,7 +4020,15 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 @Override public String getPlayerListName() { return this.getHandle().listName == null ? this.getName() : CraftChatMessage.fromComponent(this.getHandle().listName); -@@ -332,42 +357,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -325,6 +351,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + name = this.getName(); + } + this.getHandle().listName = name.equals(this.getName()) ? null : CraftChatMessage.fromStringOrNull(name); ++ if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined + for (ServerPlayer player : (List) this.server.getHandle().players) { + if (player.getBukkitEntity().canSee(this)) { + player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); +@@ -332,42 +359,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } @@ -4071,7 +4080,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 this.getHandle().connection.send(packet); } -@@ -399,6 +424,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -399,6 +426,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.disconnect(message == null ? "" : message); } @@ -4095,7 +4104,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 @Override public void setCompassTarget(Location loc) { Preconditions.checkArgument(loc != null, "Location cannot be null"); -@@ -695,6 +737,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -695,6 +739,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } @@ -4120,7 +4129,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 @Override public void sendSignChange(Location loc, String[] lines) { this.sendSignChange(loc, lines, DyeColor.BLACK); -@@ -718,6 +778,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -718,6 +780,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (this.getHandle().connection == null) return; Component[] components = CraftSign.sanitizeLines(lines); @@ -4132,7 +4141,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 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())); -@@ -727,7 +792,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -727,7 +794,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } sign.setText(text, true); @@ -4142,7 +4151,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 } @Override -@@ -1735,7 +1801,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1735,7 +1803,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setResourcePack(String url) { @@ -4151,7 +4160,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 } @Override -@@ -1750,7 +1816,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1750,7 +1818,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setResourcePack(String url, byte[] hash, boolean force) { @@ -4160,7 +4169,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 } @Override -@@ -1787,6 +1853,59 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1787,6 +1855,59 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.handlePushResourcePack(new ClientboundResourcePackPushPacket(id, url, hashStr, force, CraftChatMessage.fromStringOrNull(prompt, true)), false); } @@ -4220,7 +4229,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 @Override public void removeResourcePack(UUID id) { Preconditions.checkArgument(id != null, "Resource pack id cannot be null"); -@@ -2203,6 +2322,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2203,6 +2324,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return (this.getHandle().requestedViewDistance() == 0) ? Bukkit.getViewDistance() : this.getHandle().requestedViewDistance(); } @@ -4233,7 +4242,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4 @Override public int getPing() { return this.getHandle().connection.latency(); -@@ -2253,6 +2378,252 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2253,6 +2380,252 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().allowsListing(); } diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch index 23cfa84192..b26cda4bf9 100644 --- a/patches/server/0014-Timings-v2.patch +++ b/patches/server/0014-Timings-v2.patch @@ -714,7 +714,7 @@ index c8134e605e2dd58c2af1cbefc5e20e91b6414d2a..b7ffab0284b0bccd79775b8d03c8b2e0 } catch (Exception exception) { label25: diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4c18491a627e66297627abbded1af48b2026e610..3365d2ec8426888c16873a311226fa69840fa2f0 100644 +index 00a1806720e67eb747061e0a6c2ea334dd4453ce..2be50609ccf90d3db6e572377ba63bcbad156382 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -186,7 +186,7 @@ import org.bukkit.craftbukkit.Main; @@ -1244,7 +1244,7 @@ index 9ea829aafa7a874a784d02da889576c80de17d0c..13725b794e923a4de0d06edcba1adf1b 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 93ef520b8f047870f48e908ae55590547ad88729..4be0935a36bd7b2e0d83e30b6edc43a6429dac22 100644 +index c51e38bb683d239d6116075b5a613b5ef709056a..0b09b4adefdaba43949b1a83dc8f89af147924e9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -322,7 +322,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1819,10 +1819,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 e5330d41512dc59b5f94d9cacda340a46f45fd76..d53e15a3a70de8e2a405d3a39ff51a3551e82dbc 100644 +index e87f36d8aa86b9ac9ccc234f7b51a4a51bff2426..2da161b901189c3dcf90c95a074b8c2cbf30f282 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2699,6 +2699,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2701,6 +2701,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/0029-Player-affects-spawning-API.patch b/patches/server/0029-Player-affects-spawning-API.patch index ddf77c972b..31777af114 100644 --- a/patches/server/0029-Player-affects-spawning-API.patch +++ b/patches/server/0029-Player-affects-spawning-API.patch @@ -98,7 +98,7 @@ index d156f7e3430685947d2b4c30aa867e8002ca70ad..e888cf862662ae6baa6d0de8188aa74a public void clientTick(Level world, BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index d4fb3c62825927a2c7c71a18e0f678ef7f4dec22..72b3913d00d6f2ec01a716444debe065c48174f6 100644 +index f38f62e777d88a783e1e3b7e1a48da921cc67cf4..77ae7882a08441d9a80b50492be5e48487a2fdab 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java @@ -74,6 +74,11 @@ public interface EntityGetter { @@ -135,10 +135,10 @@ index d4fb3c62825927a2c7c71a18e0f678ef7f4dec22..72b3913d00d6f2ec01a716444debe065 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 d53e15a3a70de8e2a405d3a39ff51a3551e82dbc..a592ee955a823309f1936a607823ff93822cd369 100644 +index 2da161b901189c3dcf90c95a074b8c2cbf30f282..e1510cb7cb1406bebed1804b8c18086425cb7d94 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2338,6 +2338,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2340,6 +2340,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().language; } diff --git a/patches/server/0030-Only-refresh-abilities-if-needed.patch b/patches/server/0030-Only-refresh-abilities-if-needed.patch index 47aaec74c5..59271ed1e6 100644 --- a/patches/server/0030-Only-refresh-abilities-if-needed.patch +++ b/patches/server/0030-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 a592ee955a823309f1936a607823ff93822cd369..6e47cd5cc17ad7edff3d946364485bb01bf87a41 100644 +index e1510cb7cb1406bebed1804b8c18086425cb7d94..4655d1c493651779c2038776e4d6fef23c7e7b43 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2010,12 +2010,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2012,12 +2012,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setFlying(boolean value) { diff --git a/patches/server/0044-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0044-Implement-PlayerLocaleChangeEvent.patch index dd5347f29c..2db14cb603 100644 --- a/patches/server/0044-Implement-PlayerLocaleChangeEvent.patch +++ b/patches/server/0044-Implement-PlayerLocaleChangeEvent.patch @@ -39,10 +39,10 @@ index 68a376743e531dfe06bf6bd7b5be3e7d8e3154d8..e3e96008d69926c831e5f42b28e1e701 // CraftBukkit end this.language = clientOptions.language(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6e47cd5cc17ad7edff3d946364485bb01bf87a41..42b27e1b8bc317a4cd0fcc27a5d7ce2d69d33aeb 100644 +index 4655d1c493651779c2038776e4d6fef23c7e7b43..245f58942b6a69a67fa7ed31121d461e27a98ae0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2336,7 +2336,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2338,7 +2338,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public String getLocale() { diff --git a/patches/server/0051-Improve-Player-chat-API-handling.patch b/patches/server/0051-Improve-Player-chat-API-handling.patch index 3c0f6c4f88..237217ce6f 100644 --- a/patches/server/0051-Improve-Player-chat-API-handling.patch +++ b/patches/server/0051-Improve-Player-chat-API-handling.patch @@ -17,7 +17,7 @@ Co-authored-by: Jake Potrebic Co-authored-by: SoSeDiK diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ee369964eb7f0ac0c24699b804214ce1a9632043..01d1759aefdb0a224f1e8764ec1114ef1baa6cf5 100644 +index 0b09b4adefdaba43949b1a83dc8f89af147924e9..f7babb4883a45244dd07eab1e87cf5fd4df83d91 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1930,7 +1930,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -53,10 +53,10 @@ index 56a63adc3c0c919594c3f2646d4cf5b86b5c6f1e..5b22714d6f5eb8318275ca0bf01597be if (this.commandMap.dispatch(sender, commandLine)) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 42b27e1b8bc317a4cd0fcc27a5d7ce2d69d33aeb..0391c8f663a52a006e3d7c447a529a958fb98e18 100644 +index 245f58942b6a69a67fa7ed31121d461e27a98ae0..1d6176714b097d4ab74af345af319e325735c58f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -462,7 +462,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -464,7 +464,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (this.getHandle().connection == null) return; diff --git a/patches/server/0058-Configurable-inter-world-teleportation-safety.patch b/patches/server/0058-Configurable-inter-world-teleportation-safety.patch index ca20bf2e17..1b392cb898 100644 --- a/patches/server/0058-Configurable-inter-world-teleportation-safety.patch +++ b/patches/server/0058-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 03dad5aa44d4484e9a3064279c867f009104a9b2..fc2374c9ecc7603c310761e6196c026eded788f6 100644 +index 5cff1571a4eb1af6c961a265051642234bf1b121..e20cba0126b844b8655a387e4977d79a67ee63df 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1156,7 +1156,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1158,7 +1158,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/0063-Complete-resource-pack-API.patch b/patches/server/0063-Complete-resource-pack-API.patch index 296b0713c6..22063b0c12 100644 --- a/patches/server/0063-Complete-resource-pack-API.patch +++ b/patches/server/0063-Complete-resource-pack-API.patch @@ -22,7 +22,7 @@ index c8041492b7b2a1ff67b95d9944cfccd476b3ee1d..66497960995dc30abe60d26200979a78 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index fc2374c9ecc7603c310761e6196c026eded788f6..b6851bd629c4d3b9aa7efdf1112e1cf59cd63f60 100644 +index e20cba0126b844b8655a387e4977d79a67ee63df..58c74ad83d17ec47e84a45d33529d88118a34599 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -195,6 +195,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -33,7 +33,7 @@ index fc2374c9ecc7603c310761e6196c026eded788f6..b6851bd629c4d3b9aa7efdf1112e1cf5 public CraftPlayer(CraftServer server, ServerPlayer entity) { super(server, entity); -@@ -2014,6 +2015,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2016,6 +2017,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end - adventure diff --git a/patches/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch index 5e32ddcea2..6aab455065 100644 --- a/patches/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch +++ b/patches/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch @@ -44,10 +44,10 @@ index 13438b60bb3891e40bf0b5e942e0b2ba744121f9..8447a47e1c493001ea9f54392e02f14d protected void internalSetAbsorptionAmount(float absorptionAmount) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b6851bd629c4d3b9aa7efdf1112e1cf59cd63f60..b79aea8ae49a4edbb45f0824535fd38d3686e67b 100644 +index 58c74ad83d17ec47e84a45d33529d88118a34599..02cabe9b5e413ce58b82061ea0347fc7a7ce6866 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2258,6 +2258,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2260,6 +2260,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void setRealHealth(double health) { diff --git a/patches/server/0163-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0163-Ability-to-apply-mending-to-XP-API.patch index 63a742ef9b..916e87f7c4 100644 --- a/patches/server/0163-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/server/0163-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 901a1c98024eb81d2fa3e7ca13add63864a9c5ef..0eea0024deb19da924df584e5af58917c2f41188 100644 +index 19ca1d6f6dc01ee56cb52d8d3e2c53c1549cb617..fbb1c342e51d3d64a837efe998a33632ad254b23 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1546,7 +1546,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1548,7 +1548,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } @Override diff --git a/patches/server/0176-Player.setPlayerProfile-API.patch b/patches/server/0176-Player.setPlayerProfile-API.patch index 2fb088dd67..084703f4ca 100644 --- a/patches/server/0176-Player.setPlayerProfile-API.patch +++ b/patches/server/0176-Player.setPlayerProfile-API.patch @@ -9,7 +9,7 @@ This can be useful for changing name or skins after a player has logged in. public-f net.minecraft.world.entity.player.Player gameProfile diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5d4730b9ced378c1e77d7734f2f8aba6d09a19d0..f19ab219dc51e9f9fff119637b33281dac4e03d2 100644 +index 8eec3d8b1693d9f9d7d882275e6f00cef4d3520f..6c3d907d2c4b512a4342646f9d01519cca10d87b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1467,7 +1467,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -77,7 +77,7 @@ index 954825dcd011716dcd859aa285a8e3cdb6ff5464..34925d6448e0ef1d5bb4b24359f732b6 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 0eea0024deb19da924df584e5af58917c2f41188..ac42d245f14c9b0565f64689b4646d84791b6a86 100644 +index fbb1c342e51d3d64a837efe998a33632ad254b23..d8668c60543dc048ef9084647877807fcfc168f9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -236,11 +236,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -92,7 +92,7 @@ index 0eea0024deb19da924df584e5af58917c2f41188..ac42d245f14c9b0565f64689b4646d84 @Override public InetSocketAddress getAddress() { if (this.getHandle().connection == null) return null; -@@ -1696,8 +1691,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1698,8 +1693,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 @@ -109,7 +109,7 @@ index 0eea0024deb19da924df584e5af58917c2f41188..ac42d245f14c9b0565f64689b4646d84 ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId()); if (entry != null) { entry.removePlayer(this.getHandle()); -@@ -1710,8 +1712,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1712,8 +1714,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(new ClientboundPlayerInfoRemovePacket(List.of(otherPlayer.getUUID()))); } } @@ -118,7 +118,7 @@ index 0eea0024deb19da924df584e5af58917c2f41188..ac42d245f14c9b0565f64689b4646d84 } void resetAndHideEntity(org.bukkit.entity.Entity entity) { -@@ -1776,12 +1776,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1778,12 +1778,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } private void trackAndShowEntity(org.bukkit.entity.Entity entity) { @@ -144,7 +144,7 @@ index 0eea0024deb19da924df584e5af58917c2f41188..ac42d245f14c9b0565f64689b4646d84 } ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId()); -@@ -1791,6 +1804,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1793,6 +1806,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.server.getPluginManager().callEvent(new PlayerShowEntityEvent(this, entity)); } @@ -184,7 +184,7 @@ index 0eea0024deb19da924df584e5af58917c2f41188..ac42d245f14c9b0565f64689b4646d84 void resetAndShowEntity(org.bukkit.entity.Entity entity) { // SPIGOT-7312: Can't show/hide self -@@ -1802,6 +1848,34 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1804,6 +1850,34 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.trackAndShowEntity(entity); } } diff --git a/patches/server/0181-Flag-to-disable-the-channel-limit.patch b/patches/server/0181-Flag-to-disable-the-channel-limit.patch index 11af2999d9..11c9e8bf36 100644 --- a/patches/server/0181-Flag-to-disable-the-channel-limit.patch +++ b/patches/server/0181-Flag-to-disable-the-channel-limit.patch @@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs. provide an optional flag to disable this check, at your own risk. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ac42d245f14c9b0565f64689b4646d84791b6a86..dbf67a52ae2e18589952b2d019b5258324ff3edc 100644 +index d8668c60543dc048ef9084647877807fcfc168f9..385b6df4695d924e0750e08a29f7741317ca5972 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -196,6 +196,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -20,7 +20,7 @@ index ac42d245f14c9b0565f64689b4646d84791b6a86..dbf67a52ae2e18589952b2d019b52583 public CraftPlayer(CraftServer server, ServerPlayer entity) { super(server, entity); -@@ -2186,7 +2187,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2188,7 +2189,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void addChannel(String channel) { diff --git a/patches/server/0208-InventoryCloseEvent-Reason-API.patch b/patches/server/0208-InventoryCloseEvent-Reason-API.patch index aa589afd1b..47c2c2a111 100644 --- a/patches/server/0208-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0208-InventoryCloseEvent-Reason-API.patch @@ -75,7 +75,7 @@ index 98d229fb8f342775482f2ed199265bda3f043a96..0b039c43bd3bd46f31477fc755850382 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 f19ab219dc51e9f9fff119637b33281dac4e03d2..29ffe034b3b7838e20be4d6a52a82cec004eb2a1 100644 +index 6c3d907d2c4b512a4342646f9d01519cca10d87b..0217a40d7c22d31fa5f5046df6f0c64d8bb44442 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2530,10 +2530,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -165,10 +165,10 @@ index 5d69945e6428c04a4b89c7469de905ed05d9dfc0..0886cb3367022c4ab7e4dbebafb70fc6 @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 dbf67a52ae2e18589952b2d019b5258324ff3edc..b4212f5a5b3b1e5476f7598be165ffb1defb5c21 100644 +index 385b6df4695d924e0750e08a29f7741317ca5972..d06d26133e00eb47b6ac950bb4efbf4ac6fe9da5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1182,7 +1182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1184,7 +1184,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Close any foreign inventory if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) { diff --git a/patches/server/0244-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0244-Expose-attack-cooldown-methods-for-Player.patch index 2d2577636a..a6b78911f9 100644 --- a/patches/server/0244-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/server/0244-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 b4212f5a5b3b1e5476f7598be165ffb1defb5c21..65c56d29e04fd0853a8bfe9f943d27fe71849cc2 100644 +index d06d26133e00eb47b6ac950bb4efbf4ac6fe9da5..3482fef56307357a4d75d52a79c2fd9988bab22e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2897,6 +2897,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2899,6 +2899,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.adventure$pointers; } diff --git a/patches/server/0245-Improve-death-events.patch b/patches/server/0245-Improve-death-events.patch index 245a5a43c7..af42cf617f 100644 --- a/patches/server/0245-Improve-death-events.patch +++ b/patches/server/0245-Improve-death-events.patch @@ -432,10 +432,10 @@ index 0634b88a5bbfb549d5ec5931e19f674fb9ca4cbe..11555d1b771f93234098a3bc6a6eaacd 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 65c56d29e04fd0853a8bfe9f943d27fe71849cc2..317fb90ad77aaaddc6a84d719de94d52bba12508 100644 +index 3482fef56307357a4d75d52a79c2fd9988bab22e..29ede2405a645499e804a2f914a2563ef443f919 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2434,7 +2434,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2436,7 +2436,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void sendHealthUpdate() { FoodData foodData = this.getHandle().getFoodData(); diff --git a/patches/server/0278-Replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0278-Replace-OfflinePlayer-getLastPlayed.patch index 6acfae9a68..4d9db7b485 100644 --- a/patches/server/0278-Replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/server/0278-Replace-OfflinePlayer-getLastPlayed.patch @@ -106,7 +106,7 @@ index 34925d6448e0ef1d5bb4b24359f732b67aaa4230..0c1b5f625a351905e082b2c2a63bfd73 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 317fb90ad77aaaddc6a84d719de94d52bba12508..4a07e7d3df71f3bfc026e1f1c0abfe25999c6b8e 100644 +index 29ede2405a645499e804a2f914a2563ef443f919..0e251c385db7969398eca95e3353de4a3de6d189 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -197,6 +197,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -117,7 +117,7 @@ index 317fb90ad77aaaddc6a84d719de94d52bba12508..4a07e7d3df71f3bfc026e1f1c0abfe25 public CraftPlayer(CraftServer server, ServerPlayer entity) { super(server, entity); -@@ -1956,6 +1957,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1958,6 +1959,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.firstPlayed = firstPlayed; } @@ -136,7 +136,7 @@ index 317fb90ad77aaaddc6a84d719de94d52bba12508..4a07e7d3df71f3bfc026e1f1c0abfe25 public void readExtraData(CompoundTag nbttagcompound) { this.hasPlayedBefore = true; if (nbttagcompound.contains("bukkit")) { -@@ -1978,6 +1991,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1980,6 +1993,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void setExtraData(CompoundTag nbttagcompound) { @@ -145,7 +145,7 @@ index 317fb90ad77aaaddc6a84d719de94d52bba12508..4a07e7d3df71f3bfc026e1f1c0abfe25 if (!nbttagcompound.contains("bukkit")) { nbttagcompound.put("bukkit", new CompoundTag()); } -@@ -1992,6 +2007,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1994,6 +2009,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/0352-Implement-Player-Client-Options-API.patch b/patches/server/0352-Implement-Player-Client-Options-API.patch index adc09129e4..7c7cf9b485 100644 --- a/patches/server/0352-Implement-Player-Client-Options-API.patch +++ b/patches/server/0352-Implement-Player-Client-Options-API.patch @@ -136,10 +136,10 @@ index 3a856f28237246660665aef983e5e9fe2bac8c37..3d7a938f72424a4f30f75563393a953c this.adventure$locale = java.util.Objects.requireNonNullElse(net.kyori.adventure.translation.Translator.parseLocale(this.language), java.util.Locale.US); // Paper this.requestedViewDistance = clientOptions.viewDistance(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 476b7bc14b4d2e7ed30c23b65dbc7aa0c6679b6b..5ba0fa6fda6d496f7540185e6dc58439cc1e04f1 100644 +index 314e01920fe0302441d2cc08a0098ff8fee263e5..587689c5d4f24c3cb40218b0a1e62e7d10a94a7a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -573,6 +573,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -575,6 +575,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { connection.disconnect(message == null ? net.kyori.adventure.text.Component.empty() : message); } } diff --git a/patches/server/0411-Brand-support.patch b/patches/server/0411-Brand-support.patch index bc78c3b986..b81244c027 100644 --- a/patches/server/0411-Brand-support.patch +++ b/patches/server/0411-Brand-support.patch @@ -57,10 +57,10 @@ index e69043316372d98b122ed3788fda79cdd36849e8..6597e6e9987ddb5906909c22704fdfb6 } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5ba0fa6fda6d496f7540185e6dc58439cc1e04f1..16d1338df730fd66c079b66117cbef91786f2146 100644 +index 587689c5d4f24c3cb40218b0a1e62e7d10a94a7a..7c98519b13326acd8c9c871c0fbd0b8d52f80af2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3056,6 +3056,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3058,6 +3058,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end }; diff --git a/patches/server/0455-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0455-Fix-Player-spawnParticle-x-y-z-precision-loss.patch index 55306da79d..b11b93ea59 100644 --- a/patches/server/0455-Fix-Player-spawnParticle-x-y-z-precision-loss.patch +++ b/patches/server/0455-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 16d1338df730fd66c079b66117cbef91786f2146..f9188664f868c0c55c92c0ec7ca43204d267b91e 100644 +index 7c98519b13326acd8c9c871c0fbd0b8d52f80af2..b9f1848c382a52e6ef05c5d0c68015cfcfcde324 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2619,7 +2619,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2621,7 +2621,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/0493-Add-sendOpLevel-API.patch b/patches/server/0493-Add-sendOpLevel-API.patch index e5fdb1c643..7426d0591d 100644 --- a/patches/server/0493-Add-sendOpLevel-API.patch +++ b/patches/server/0493-Add-sendOpLevel-API.patch @@ -32,10 +32,10 @@ index 6fed863a0400ba23e0e299b0f0a0f28af19fa226..65c11774b9e3c724b5ac67a557bd84ef 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 f9188664f868c0c55c92c0ec7ca43204d267b91e..f4cf8cc4cf085c621cc0d3e71f3ad10b8ef9f15a 100644 +index b9f1848c382a52e6ef05c5d0c68015cfcfcde324..79a57bafc3b99e58f435bacbc65b9fd4c4c80b8a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -597,6 +597,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -599,6 +599,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end diff --git a/patches/server/0557-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0557-Expand-PlayerGameModeChangeEvent.patch index 809cfad9a7..369bfda4fb 100644 --- a/patches/server/0557-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0557-Expand-PlayerGameModeChangeEvent.patch @@ -131,7 +131,7 @@ index a03d1a85019afdc42de2b8449fc38384c4dac51e..4fe571915b247ec612b2376dce57991e } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e12740f601acbe2b344d8e1fffc4bee2c752face..c9a8d04d1485a9493f6353beb7998801e286923e 100644 +index 872e59c5de3a98bbdf40cf6d2aeb0694f2b88689..77560a31fc90387efb14ae0432b7a6aafb8cab61 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2641,7 +2641,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -144,10 +144,10 @@ index e12740f601acbe2b344d8e1fffc4bee2c752face..c9a8d04d1485a9493f6353beb7998801 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f4cf8cc4cf085c621cc0d3e71f3ad10b8ef9f15a..2b8a85008b9562358265cfb28743f889159c21eb 100644 +index 79a57bafc3b99e58f435bacbc65b9fd4c4c80b8a..7212d6f8fc7653983aa66d3731d7559a24b026ba 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1562,7 +1562,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1564,7 +1564,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/0569-Add-PlayerKickEvent-causes.patch b/patches/server/0569-Add-PlayerKickEvent-causes.patch index 17147225c5..e63dc58265 100644 --- a/patches/server/0569-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0569-Add-PlayerKickEvent-causes.patch @@ -48,7 +48,7 @@ index e15d740275d265c460c1771cdad5556bcec9d798..0af9ed92824ccf30814eceb6a2c2e5c1 public boolean shouldDisconnect() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c9545f96317fd6692889d82851d76084efa6a61d..fdda28bd6aa3a2d3079a383157b82ff825cc992d 100644 +index d972e82ce41ec0c1ff4f9c55646ed3c21c6381d2..86283e9b7c3ad18e4deb8fcd3de624be92908c55 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2167,7 +2167,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= 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 1a0023472b9ba5bbc0ee1d16824219d94944bdf9..69917a56fc05f8c16a1302fe331993e8d49889b9 100644 +index f80a71100d317c8670b728a7c289ffa40dd2038b..5a2969f97207b3d42937e8afffbc9293cba7cbf6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2498,6 +2498,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2500,6 +2500,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().onUpdateAbilities(); } diff --git a/patches/server/0839-Win-Screen-API.patch b/patches/server/0839-Win-Screen-API.patch index 25f9952de7..d42c24f3b8 100644 --- a/patches/server/0839-Win-Screen-API.patch +++ b/patches/server/0839-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 69917a56fc05f8c16a1302fe331993e8d49889b9..4996776287c58039507ad2eda9d59e3fd13c08a8 100644 +index 5a2969f97207b3d42937e8afffbc9293cba7cbf6..c52399e0c19fd919d59c007786de7c8036c9a424 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1214,6 +1214,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1216,6 +1216,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } diff --git a/patches/server/0866-Expand-PlayerItemMendEvent.patch b/patches/server/0866-Expand-PlayerItemMendEvent.patch index 932b1017b7..8faaf4a00b 100644 --- a/patches/server/0866-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0866-Expand-PlayerItemMendEvent.patch @@ -33,10 +33,10 @@ index a9c30fb4cfe4ff7bb27d498218373c572031fab8..36422fb394a158f36c84ba0ee03cc704 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 4996776287c58039507ad2eda9d59e3fd13c08a8..e111017c3de7b374c702fed20a5e98557011ea06 100644 +index c52399e0c19fd919d59c007786de7c8036c9a424..af4cf6ff7123b67807b147b80d143405ec6998a4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1757,11 +1757,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1759,11 +1759,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()); diff --git a/patches/server/0887-Fix-BanList-API.patch b/patches/server/0887-Fix-BanList-API.patch index ec8005e221..5c2d7a655d 100644 --- a/patches/server/0887-Fix-BanList-API.patch +++ b/patches/server/0887-Fix-BanList-API.patch @@ -208,10 +208,10 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e111017c3de7b374c702fed20a5e98557011ea06..748f49fd3fd4a3c1ed287d1eeed23ce5efecb8d4 100644 +index af4cf6ff7123b67807b147b80d143405ec6998a4..d4875f4477d1d76857bc135f6f0849b889baca22 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1655,23 +1655,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1657,23 +1657,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } @Override @@ -240,7 +240,7 @@ index e111017c3de7b374c702fed20a5e98557011ea06..748f49fd3fd4a3c1ed287d1eeed23ce5 if (kickPlayer) { this.kickPlayer(reason); } -@@ -1679,12 +1679,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1681,12 +1681,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } @Override diff --git a/patches/server/0906-Bandaid-fix-for-Effect.patch b/patches/server/0906-Bandaid-fix-for-Effect.patch index 64597f03d1..8b1e531d37 100644 --- a/patches/server/0906-Bandaid-fix-for-Effect.patch +++ b/patches/server/0906-Bandaid-fix-for-Effect.patch @@ -73,10 +73,10 @@ index 51e709beb32499f2f56189a0426bba93c43e1c0d..9dadce62fc3e248fa2a8607fe8796049 // Special case: the axis is optional for ELECTRIC_SPARK Preconditions.checkArgument(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for the %s effect", effect); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 748f49fd3fd4a3c1ed287d1eeed23ce5efecb8d4..15817a84ad5db54ec299f933387f4ad1e0e74b33 100644 +index d4875f4477d1d76857bc135f6f0849b889baca22..9eec302c02ebed13859bab0316896ae5a1c084d2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -837,7 +837,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -839,7 +839,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { Preconditions.checkArgument(effect != null, "Effect cannot be null"); if (data != null) { Preconditions.checkArgument(effect.getData() != null, "Effect.%s does not have a valid Data", effect); diff --git a/patches/server/0914-Add-Listing-API-for-Player.patch b/patches/server/0914-Add-Listing-API-for-Player.patch index 18d73fa178..8d97e7bc60 100644 --- a/patches/server/0914-Add-Listing-API-for-Player.patch +++ b/patches/server/0914-Add-Listing-API-for-Player.patch @@ -120,7 +120,7 @@ index bc0e9fb41fe22e0a603837fcbdd82134f51d21d9..d38fe02af4cc35ed5b22acec41bedb76 // Paper end - Use single player info update packet on join player.sentListPacket = true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 15817a84ad5db54ec299f933387f4ad1e0e74b33..15c7724e406655cffddad1a14081d737dab7ef44 100644 +index 9eec302c02ebed13859bab0316896ae5a1c084d2..2c7c39eab2bdbedf4aea903ba76f3289285bd7e7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -188,6 +188,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -131,7 +131,7 @@ index 15817a84ad5db54ec299f933387f4ad1e0e74b33..15c7724e406655cffddad1a14081d737 private static final WeakHashMap> pluginWeakReferences = new WeakHashMap<>(); private int hash = 0; private double health = 20; -@@ -1995,7 +1996,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1997,7 +1998,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { otherPlayer.setUUID(uuidOverride); } // Paper end @@ -140,7 +140,7 @@ index 15817a84ad5db54ec299f933387f4ad1e0e74b33..15c7724e406655cffddad1a14081d737 if (original != null) otherPlayer.setUUID(original); // Paper - uuid override } -@@ -2102,6 +2103,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2104,6 +2105,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return (entity != null) ? this.canSee(entity) : false; // If we can't find it, we can't see it } diff --git a/patches/server/0946-Add-player-idle-duration-API.patch b/patches/server/0946-Add-player-idle-duration-API.patch index 350f2962a2..a702fe4314 100644 --- a/patches/server/0946-Add-player-idle-duration-API.patch +++ b/patches/server/0946-Add-player-idle-duration-API.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a0bca5349074afd8012df429bb548c0f2640b432..eee2ed951ebcf0ad58aa7dc95ed9adc927322748 100644 +index 3cbebe9a08a6f37c8716a71db9c34454025b458a..84df724997ac36fb2e27e78ba08a31e3009cabf4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3335,6 +3335,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3337,6 +3337,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end diff --git a/patches/server/0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch index 72c810300c..6f15e00d6a 100644 --- a/patches/server/0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch +++ b/patches/server/0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ff3db4efd2c10b3351453656937e88064267fb22..0b34a90d275534a84bea7d7d9cce08b41ea7a698 100644 +index 84df724997ac36fb2e27e78ba08a31e3009cabf4..482b6bd9277277923528d8c9a3e9b49d3f5628bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1047,7 +1047,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1049,7 +1049,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void sendEquipmentChange(LivingEntity entity, EquipmentSlot slot, ItemStack item) { diff --git a/patches/server/0970-Add-experience-points-API.patch b/patches/server/0970-Add-experience-points-API.patch index 5256a6ae70..114c8103e5 100644 --- a/patches/server/0970-Add-experience-points-API.patch +++ b/patches/server/0970-Add-experience-points-API.patch @@ -18,10 +18,10 @@ index e92cb12a04827c2afc0662a26320458527aa2bd4..020b74065f7489a46b70ac52e5abbdb2 // Paper start - send while respecting visibility private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0b34a90d275534a84bea7d7d9cce08b41ea7a698..e874d76437fc4c86fd4ed2d03e416dd1ff528b76 100644 +index 482b6bd9277277923528d8c9a3e9b49d3f5628bc..25450884fa763b27ceaf16dd1bb3e80c10cb40c3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1824,6 +1824,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1826,6 +1826,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player { Preconditions.checkArgument(exp >= 0, "Total experience points must not be negative (%s)", exp); this.getHandle().totalExperience = exp; } diff --git a/patches/server/0980-Rewrite-chunk-system.patch b/patches/server/0980-Rewrite-chunk-system.patch index 7a2c4e756f..e013a3c5f4 100644 --- a/patches/server/0980-Rewrite-chunk-system.patch +++ b/patches/server/0980-Rewrite-chunk-system.patch @@ -15520,7 +15520,7 @@ index 2906cb10461b5334a7555046384c28848eec149f..329471af4f40e0a74612707cce96bb00 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 64a9a0bc5bd99102ab6e7e4262d74ae26e5ff7c1..52c2ae28cad0c8b810df5d60d181f3bc5c8d6eed 100644 +index 882b6effa39b62172914b41af54e54c2890480fb..03d566c3e6d7541487ea79ed868aa7334793df3b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -311,7 +311,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Date: Sat, 20 Apr 2024 19:56:59 +0200 Subject: [PATCH 058/215] Added chunk view API (#10398) --- .../0471-API-for-checking-sent-chunks.patch | 58 +++++++++++++++++ .../1057-API-for-checking-sent-chunks.patch | 62 +++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 patches/api/0471-API-for-checking-sent-chunks.patch create mode 100644 patches/server/1057-API-for-checking-sent-chunks.patch diff --git a/patches/api/0471-API-for-checking-sent-chunks.patch b/patches/api/0471-API-for-checking-sent-chunks.patch new file mode 100644 index 0000000000..30170f4dfe --- /dev/null +++ b/patches/api/0471-API-for-checking-sent-chunks.patch @@ -0,0 +1,58 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Flo0 +Date: Mon, 8 Apr 2024 16:22:07 +0200 +Subject: [PATCH] API for checking sent chunks + + +diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java +index c6cb4f17469a8f2e60dd3e28d41402851ce5fb21..d048ae07cc33fd77d128cc1ebf88b0804969fa3c 100644 +--- a/src/main/java/org/bukkit/entity/Player.java ++++ b/src/main/java/org/bukkit/entity/Player.java +@@ -3707,6 +3707,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM + void resetIdleDuration(); + // Paper end + ++ // Paper start - Add chunk view API ++ /** ++ * Gets the a set of chunk keys for all chunks that have been sent to the player. ++ * ++ * @return an immutable set of chunk keys ++ * @apiNote currently marked as experimental to gather feedback regarding the returned set being an immutable copy ++ * vs it potentially being an unmodifiable view of the set chunks. ++ */ ++ @ApiStatus.Experimental ++ java.util.@NotNull @org.jetbrains.annotations.Unmodifiable Set getSentChunkKeys(); ++ ++ /** ++ * Gets the set of chunks that have been sent to the player. ++ * ++ * @return an immutable set of chunks ++ * @apiNote currently marked as experimental to gather feedback regarding the returned set being an immutable copy ++ * vs it potentially being an unmodifiable view of the set chunks. ++ */ ++ @ApiStatus.Experimental ++ java.util.@NotNull @org.jetbrains.annotations.Unmodifiable Set getSentChunks(); ++ ++ /** ++ * Checks if the player has been sent a specific chunk. ++ * ++ * @param chunk the chunk to check ++ * @return true if the player has been sent the chunk, false otherwise ++ */ ++ default boolean isChunkSent(@NotNull org.bukkit.Chunk chunk) { ++ return this.isChunkSent(chunk.getChunkKey()); ++ } ++ ++ /** ++ * Checks if the player has been sent a specific chunk. ++ * ++ * @param chunkKey the chunk key to check ++ * @return true if the player has been sent the chunk, false otherwise ++ * @see org.bukkit.Chunk#getChunkKey() ++ */ ++ boolean isChunkSent(long chunkKey); ++ // Paper end ++ + @NotNull + @Override + Spigot spigot(); diff --git a/patches/server/1057-API-for-checking-sent-chunks.patch b/patches/server/1057-API-for-checking-sent-chunks.patch new file mode 100644 index 0000000000..4e4a9e5e87 --- /dev/null +++ b/patches/server/1057-API-for-checking-sent-chunks.patch @@ -0,0 +1,62 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Flo0 +Date: Mon, 8 Apr 2024 16:43:16 +0200 +Subject: [PATCH] API for checking sent chunks + + +diff --git a/src/main/java/io/papermc/paper/chunk/system/RegionizedPlayerChunkLoader.java b/src/main/java/io/papermc/paper/chunk/system/RegionizedPlayerChunkLoader.java +index 1b090f1e79b996e52097afc49c1cec85936653e6..bf3c5efa0d58c58a5b0b6b73880aaf03c8a37c12 100644 +--- a/src/main/java/io/papermc/paper/chunk/system/RegionizedPlayerChunkLoader.java ++++ b/src/main/java/io/papermc/paper/chunk/system/RegionizedPlayerChunkLoader.java +@@ -1107,6 +1107,11 @@ public class RegionizedPlayerChunkLoader { + + // now all tickets should be removed, which is all of our external state + } ++ ++ // For external checks ++ public it.unimi.dsi.fastutil.longs.LongOpenHashSet getSentChunksRaw() { ++ return this.sentChunks; ++ } + } + + // TODO rebase into util patch +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +index 4aa6084fb3540f7811f13e09b5d11e2e0cf48220..d5dd3c0d50ad34fe339f7aaaba0652ec69441e44 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +@@ -3390,6 +3390,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + } + // Paper end + ++ // Paper start - Add chunk view API ++ @Override ++ public Set getSentChunkKeys() { ++ org.spigotmc.AsyncCatcher.catchOp("accessing sent chunks"); ++ return it.unimi.dsi.fastutil.longs.LongSets.unmodifiable( ++ this.getHandle().chunkLoader.getSentChunksRaw().clone() ++ ); ++ } ++ ++ @Override ++ public Set getSentChunks() { ++ org.spigotmc.AsyncCatcher.catchOp("accessing sent chunks"); ++ final it.unimi.dsi.fastutil.longs.LongOpenHashSet rawChunkKeys = this.getHandle().chunkLoader.getSentChunksRaw(); ++ final it.unimi.dsi.fastutil.objects.ObjectOpenHashSet chunks = new it.unimi.dsi.fastutil.objects.ObjectOpenHashSet<>(rawChunkKeys.size()); ++ final org.bukkit.World world = this.getWorld(); ++ ++ final it.unimi.dsi.fastutil.longs.LongIterator iter = this.getHandle().chunkLoader.getSentChunksRaw().longIterator(); ++ while (iter.hasNext()) chunks.add(world.getChunkAt(iter.nextLong(), false)); ++ ++ return it.unimi.dsi.fastutil.objects.ObjectSets.unmodifiable(chunks); ++ } ++ ++ @Override ++ public boolean isChunkSent(final long chunkKey) { ++ org.spigotmc.AsyncCatcher.catchOp("accessing sent chunks"); ++ return this.getHandle().chunkLoader.getSentChunksRaw().contains(chunkKey); ++ } ++ // Paper end ++ + public Player.Spigot spigot() + { + return this.spigot; From c5f68ff9be27c99d86999d08428315dd69576ca0 Mon Sep 17 00:00:00 2001 From: Janet Blackquill Date: Sat, 20 Apr 2024 14:10:35 -0400 Subject: [PATCH 059/215] Add CartographyItemEvent and get/setResult for CartographyInventory (#10396) --- ...93-Add-item-slot-convenience-methods.patch | 32 ++++++++++++++ .../api/0472-Add-CartographyItemEvent.patch | 44 +++++++++++++++++++ .../1057-API-for-checking-sent-chunks.patch | 4 +- .../1058-Add-CartographyItemEvent.patch | 43 ++++++++++++++++++ 4 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 patches/api/0472-Add-CartographyItemEvent.patch create mode 100644 patches/server/1058-Add-CartographyItemEvent.patch diff --git a/patches/api/0193-Add-item-slot-convenience-methods.patch b/patches/api/0193-Add-item-slot-convenience-methods.patch index 3f2480123e..20638212e8 100644 --- a/patches/api/0193-Add-item-slot-convenience-methods.patch +++ b/patches/api/0193-Add-item-slot-convenience-methods.patch @@ -3,6 +3,7 @@ From: Nassim Jahnke Date: Sat, 25 Apr 2020 23:31:28 +0200 Subject: [PATCH] Add item slot convenience methods +Co-authored-by: Janet Blackquill diff --git a/src/main/java/org/bukkit/inventory/AnvilInventory.java b/src/main/java/org/bukkit/inventory/AnvilInventory.java index 52519cd877017704b53d36088d4d4c28f8f27397..c60be4fd24c7fdf65251dd6169e5e1ac3b588d95 100644 @@ -73,6 +74,37 @@ index 52519cd877017704b53d36088d4d4c28f8f27397..c60be4fd24c7fdf65251dd6169e5e1ac + } + // Paper end } +diff --git a/src/main/java/org/bukkit/inventory/CartographyInventory.java b/src/main/java/org/bukkit/inventory/CartographyInventory.java +index 29c9b2682b92433f468d434d25d3c2495b5ac91b..d040ecea3a086711acbf5a852def090ba6c51fae 100644 +--- a/src/main/java/org/bukkit/inventory/CartographyInventory.java ++++ b/src/main/java/org/bukkit/inventory/CartographyInventory.java +@@ -3,4 +3,25 @@ package org.bukkit.inventory; + /** + * Interface to the inventory of a Cartography table. + */ +-public interface CartographyInventory extends Inventory { } ++public interface CartographyInventory extends Inventory { ++ // Paper begin - add getResult/setResult to CartographyInventory ++ /** ++ * Check what item is in the result slot of this smithing table. ++ * ++ * @return the result item ++ */ ++ @org.jetbrains.annotations.Nullable ++ default ItemStack getResult() { ++ return this.getItem(2); // net.minecraft.world.inventory.CartographyTableMenu.RESULT_SLOT ++ } ++ ++ /** ++ * Set the item in the result slot of the smithing table ++ * ++ * @param newResult the new result item ++ */ ++ default void setResult(final @org.jetbrains.annotations.Nullable ItemStack newResult) { ++ this.setItem(2, newResult); // net.minecraft.world.inventory.CartographyTableMenu.RESULT_SLOT ++ } ++ // Paper end - add getResult/setResult to CartographyInventory ++} diff --git a/src/main/java/org/bukkit/inventory/GrindstoneInventory.java b/src/main/java/org/bukkit/inventory/GrindstoneInventory.java index 9048892c8768c6b4d6cea03da73339f13bfbe82e..1c750108f55a0a31ad23433b333e0ea486a63ff2 100644 --- a/src/main/java/org/bukkit/inventory/GrindstoneInventory.java diff --git a/patches/api/0472-Add-CartographyItemEvent.patch b/patches/api/0472-Add-CartographyItemEvent.patch new file mode 100644 index 0000000000..1f19663c9f --- /dev/null +++ b/patches/api/0472-Add-CartographyItemEvent.patch @@ -0,0 +1,44 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Janet Blackquill +Date: Sun, 7 Apr 2024 16:51:04 -0400 +Subject: [PATCH] Add CartographyItemEvent + +Similar to SmithItemEvent, but for cartography tables. + +diff --git a/src/main/java/io/papermc/paper/event/player/CartographyItemEvent.java b/src/main/java/io/papermc/paper/event/player/CartographyItemEvent.java +new file mode 100644 +index 0000000000000000000000000000000000000000..659b620696e5cc0784ed707c70876e4348897c7f +--- /dev/null ++++ b/src/main/java/io/papermc/paper/event/player/CartographyItemEvent.java +@@ -0,0 +1,31 @@ ++package io.papermc.paper.event.player; ++ ++import org.bukkit.inventory.InventoryView; ++import org.bukkit.inventory.CartographyInventory; ++import org.bukkit.event.inventory.ClickType; ++import org.bukkit.event.inventory.InventoryType; ++import org.bukkit.event.inventory.InventoryAction; ++import org.bukkit.event.inventory.InventoryClickEvent; ++import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++ ++/** ++ * Called when the recipe of an Item is completed inside a cartography table. ++ */ ++public class CartographyItemEvent extends InventoryClickEvent { ++ @ApiStatus.Internal ++ public CartographyItemEvent(@NotNull InventoryView view, @NotNull InventoryType.SlotType type, int slot, @NotNull ClickType click, @NotNull InventoryAction action) { ++ super(view, type, slot, click, action); ++ } ++ ++ @ApiStatus.Internal ++ public CartographyItemEvent(@NotNull InventoryView view, @NotNull InventoryType.SlotType type, int slot, @NotNull ClickType click, @NotNull InventoryAction action, int key) { ++ super(view, type, slot, click, action, key); ++ } ++ ++ @NotNull ++ @Override ++ public CartographyInventory getInventory() { ++ return (CartographyInventory) super.getInventory(); ++ } ++} diff --git a/patches/server/1057-API-for-checking-sent-chunks.patch b/patches/server/1057-API-for-checking-sent-chunks.patch index 4e4a9e5e87..b418da022b 100644 --- a/patches/server/1057-API-for-checking-sent-chunks.patch +++ b/patches/server/1057-API-for-checking-sent-chunks.patch @@ -21,10 +21,10 @@ index 1b090f1e79b996e52097afc49c1cec85936653e6..bf3c5efa0d58c58a5b0b6b73880aaf03 // TODO rebase into util patch diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4aa6084fb3540f7811f13e09b5d11e2e0cf48220..d5dd3c0d50ad34fe339f7aaaba0652ec69441e44 100644 +index 3fbc0312ed291a3878c26c005bfc79f417c695e4..44f4665db613c558078df5bb49106e4ca5679dfe 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3390,6 +3390,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3392,6 +3392,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end diff --git a/patches/server/1058-Add-CartographyItemEvent.patch b/patches/server/1058-Add-CartographyItemEvent.patch new file mode 100644 index 0000000000..6cf27afb8b --- /dev/null +++ b/patches/server/1058-Add-CartographyItemEvent.patch @@ -0,0 +1,43 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Janet Blackquill +Date: Sun, 7 Apr 2024 16:52:42 -0400 +Subject: [PATCH] Add CartographyItemEvent + + +diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +index 2ad17823bf442ce0455227b64e5d3bb10d0ee2c1..fe2ef36ab5dc4b933abf24dbfd0e811c53239cf0 100644 +--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java ++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +@@ -3101,6 +3101,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + } + } + ++ // Paper start - cartography item event ++ if (packet.getSlotNum() == net.minecraft.world.inventory.CartographyTableMenu.RESULT_SLOT && top instanceof org.bukkit.inventory.CartographyInventory cartographyInventory) { ++ org.bukkit.inventory.ItemStack result = cartographyInventory.getResult(); ++ if (result != null && !result.isEmpty()) { ++ if (click == ClickType.NUMBER_KEY) { ++ event = new io.papermc.paper.event.player.CartographyItemEvent(inventory, type, packet.getSlotNum(), click, action, packet.getButtonNum()); ++ } else { ++ event = new io.papermc.paper.event.player.CartographyItemEvent(inventory, type, packet.getSlotNum(), click, action); ++ } ++ } ++ } ++ // Paper end - cartography item event ++ + event.setCancelled(cancelled); + AbstractContainerMenu oldContainer = this.player.containerMenu; // SPIGOT-1224 + this.cserver.getPluginManager().callEvent(event); +diff --git a/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java b/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java +index 45bf1c95d86bdfc709c5f1a1fbefb18e1cc51f4c..5ae3fd3ec22b4c3aa6bbd0cbda770f39dcab24a1 100644 +--- a/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java ++++ b/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java +@@ -69,7 +69,7 @@ public class CartographyTableMenu extends AbstractContainerMenu { + this.resultContainer = new ResultContainer(this.createBlockHolder(context)) { // Paper - Add missing InventoryHolders + @Override + public void setChanged() { +- CartographyTableMenu.this.slotsChanged(this); ++ // CartographyTableMenu.this.slotsChanged(this); // Paper - Add CatographyItemEvent - do not recompute results if the result slot changes - allows to set the result slot via api + super.setChanged(); + } + From fc53ff5a71d4b8475bc239ef36e091725f67d5b6 Mon Sep 17 00:00:00 2001 From: Tamion <70228790+notTamion@users.noreply.github.com> Date: Sat, 20 Apr 2024 21:29:32 +0200 Subject: [PATCH 060/215] Add Configuration for finding Structures outside World Border (#10437) --- patches/server/0005-Paper-config-files.patch | 5 +++-- .../server/0113-Bound-Treasure-Maps-to-World-Border.patch | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 12a6e0b87c..ca3d0593c0 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -1394,10 +1394,10 @@ index 0000000000000000000000000000000000000000..351fbbc577556ebbd62222615801a96b +} diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java new file mode 100644 -index 0000000000000000000000000000000000000000..dc7950f9a52a718317e5f41de9d396cd7b846bf3 +index 0000000000000000000000000000000000000000..d3fdf62912d190f8b468b77230a927023c361074 --- /dev/null +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -0,0 +1,553 @@ +@@ -0,0 +1,554 @@ +package io.papermc.paper.configuration; + +import com.google.common.collect.HashBasedTable; @@ -1816,6 +1816,7 @@ index 0000000000000000000000000000000000000000..dc7950f9a52a718317e5f41de9d396cd + public IntOr.Disabled netherCeilingVoidDamageHeight = IntOr.Disabled.DISABLED; + public int maxFluidTicks = 65536; + public int maxBlockTicks = 65536; ++ public boolean locateStructuresOutsideWorldBorder = false; + } + + public Spawn spawn; diff --git a/patches/server/0113-Bound-Treasure-Maps-to-World-Border.patch b/patches/server/0113-Bound-Treasure-Maps-to-World-Border.patch index 99e596d2e8..b48b9a0a34 100644 --- a/patches/server/0113-Bound-Treasure-Maps-to-World-Border.patch +++ b/patches/server/0113-Bound-Treasure-Maps-to-World-Border.patch @@ -34,14 +34,14 @@ index 52325a99ea38530ad69a39ac0215233139f35268..bf5ac907507bf3b5bfcef45b566c0bc1 return (double) pos.getMaxBlockX() > this.getMinX() && (double) pos.getMinBlockX() < this.getMaxX() && (double) pos.getMaxBlockZ() > this.getMinZ() && (double) pos.getMinBlockZ() < this.getMaxZ(); } diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index b2f9429e0d437cf70bf56410e163e957b80ebdf1..3e57142dd9cb23d43857d5a4cb30962e4b696b74 100644 +index b2f9429e0d437cf70bf56410e163e957b80ebdf1..4a731b9170222a5a2b0089ef5e9527dbd46a9ad5 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -217,6 +217,7 @@ public abstract class ChunkGenerator { while (iterator.hasNext()) { ChunkPos chunkcoordintpair = (ChunkPos) iterator.next(); -+ if (!world.getWorldBorder().isChunkInBounds(chunkcoordintpair.x, chunkcoordintpair.z)) { continue; } // Paper - Bound treasure maps to world border ++ if (!world.paperConfig().environment.locateStructuresOutsideWorldBorder && !world.getWorldBorder().isChunkInBounds(chunkcoordintpair.x, chunkcoordintpair.z)) { continue; } // Paper - Bound treasure maps to world border blockposition_mutableblockposition.set(SectionPos.sectionToBlockCoord(chunkcoordintpair.x, 8), 32, SectionPos.sectionToBlockCoord(chunkcoordintpair.z, 8)); double d1 = blockposition_mutableblockposition.distSqr(center); From a6b6ecdd221b6ae7687561c84c1850aaa62473b4 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 20 Apr 2024 12:57:51 -0700 Subject: [PATCH 061/215] More Raid API (#7537) --- patches/api/0473-More-Raid-API.patch | 62 ++++++++++++++ patches/server/1059-More-Raid-API.patch | 106 ++++++++++++++++++++++++ 2 files changed, 168 insertions(+) create mode 100644 patches/api/0473-More-Raid-API.patch create mode 100644 patches/server/1059-More-Raid-API.patch diff --git a/patches/api/0473-More-Raid-API.patch b/patches/api/0473-More-Raid-API.patch new file mode 100644 index 0000000000..6c0e5da000 --- /dev/null +++ b/patches/api/0473-More-Raid-API.patch @@ -0,0 +1,62 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Fri, 4 Mar 2022 09:46:40 -0800 +Subject: [PATCH] More Raid API + + +diff --git a/src/main/java/org/bukkit/Raid.java b/src/main/java/org/bukkit/Raid.java +index 983a8c20a06d2b509602b27f49c090598b8ecc42..fa98599e3eee37bf68f0e9813497c718f457485c 100644 +--- a/src/main/java/org/bukkit/Raid.java ++++ b/src/main/java/org/bukkit/Raid.java +@@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull; + /** + * Represents a raid event. + */ +-public interface Raid { ++public interface Raid extends org.bukkit.persistence.PersistentDataHolder { // Paper + + /** + * Get whether this raid started. +@@ -131,4 +131,20 @@ public interface Raid { + */ + STOPPED; + } ++ ++ // Paper start ++ /** ++ * Gets the id of this raid. ++ * ++ * @return the raid id ++ */ ++ int getId(); ++ ++ /** ++ * Get the boss bar to be displayed for this raid. ++ * ++ * @return the boss bar ++ */ ++ org.bukkit.boss.@NotNull BossBar getBossBar(); ++ // Paper end + } +diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java +index 35fb5047dd8a8521586a9ca9f8d70881355fb7f5..e6f66d70d024cf4f0536a5bf8e51bf7b306335df 100644 +--- a/src/main/java/org/bukkit/World.java ++++ b/src/main/java/org/bukkit/World.java +@@ -4199,6 +4199,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient + @Nullable + public Raid locateNearestRaid(@NotNull Location location, int radius); + ++ // Paper start - more Raid API ++ /** ++ * Get a raid with the specific id from {@link Raid#getId} ++ * from this world. ++ * ++ * @param id the id of the raid ++ * @return the raid or null if none with that id ++ */ ++ @Nullable Raid getRaid(int id); ++ // Paper end - more Raid API ++ + /** + * Gets all raids that are going on over this world. + * diff --git a/patches/server/1059-More-Raid-API.patch b/patches/server/1059-More-Raid-API.patch new file mode 100644 index 0000000000..b6ad0cb22a --- /dev/null +++ b/patches/server/1059-More-Raid-API.patch @@ -0,0 +1,106 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Fri, 4 Mar 2022 09:46:33 -0800 +Subject: [PATCH] More Raid API + +== AT == +public net.minecraft.world.entity.raid.Raid raidEvent + +diff --git a/src/main/java/net/minecraft/world/entity/raid/Raid.java b/src/main/java/net/minecraft/world/entity/raid/Raid.java +index c983214d9c396585255883b764195456885a08df..bf2c23fad919820512ce031cf28a000b249b2876 100644 +--- a/src/main/java/net/minecraft/world/entity/raid/Raid.java ++++ b/src/main/java/net/minecraft/world/entity/raid/Raid.java +@@ -106,6 +106,11 @@ public class Raid { + private Raid.RaidStatus status; + private int celebrationTicks; + private Optional waveSpawnPos; ++ // Paper start ++ private static final String PDC_NBT_KEY = "BukkitValues"; ++ private static final org.bukkit.craftbukkit.persistence.CraftPersistentDataTypeRegistry PDC_TYPE_REGISTRY = new org.bukkit.craftbukkit.persistence.CraftPersistentDataTypeRegistry(); ++ public final org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer persistentDataContainer = new org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer(PDC_TYPE_REGISTRY); ++ // Paper end + + public Raid(int id, ServerLevel world, BlockPos pos) { + this.raidEvent = new ServerBossEvent(Raid.RAID_NAME_COMPONENT, BossEvent.BossBarColor.RED, BossEvent.BossBarOverlay.NOTCHED_10); +@@ -149,6 +154,11 @@ public class Raid { + this.heroesOfTheVillage.add(NbtUtils.loadUUID(nbtbase)); + } + } ++ // Paper start ++ if (nbt.contains(PDC_NBT_KEY, net.minecraft.nbt.Tag.TAG_COMPOUND)) { ++ this.persistentDataContainer.putAll(nbt.getCompound(PDC_NBT_KEY)); ++ } ++ // Paper end + + } + +@@ -859,6 +869,11 @@ public class Raid { + } + + nbt.put("HeroesOfTheVillage", nbttaglist); ++ // Paper start ++ if (!this.persistentDataContainer.isEmpty()) { ++ nbt.put(PDC_NBT_KEY, this.persistentDataContainer.toTagCompound()); ++ } ++ // Paper end + return nbt; + } + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRaid.java b/src/main/java/org/bukkit/craftbukkit/CraftRaid.java +index 9650859b40576ff1d03b77ab3594499e47eeaf6a..611fc24ee90644359010b8d2bfb90f9eb2a04675 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftRaid.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftRaid.java +@@ -103,4 +103,34 @@ public final class CraftRaid implements Raid { + public net.minecraft.world.entity.raid.Raid getHandle() { + return this.handle; + } ++ ++ // Paper start - more Raid API ++ @Override ++ public int getId() { ++ return this.handle.getId(); ++ } ++ ++ @Override ++ public org.bukkit.boss.BossBar getBossBar() { ++ return new org.bukkit.craftbukkit.boss.CraftBossBar(this.handle.raidEvent); ++ } ++ ++ @Override ++ public org.bukkit.persistence.PersistentDataContainer getPersistentDataContainer() { ++ return this.handle.persistentDataContainer; ++ } ++ ++ @Override ++ public boolean equals(final Object o) { ++ if (this == o) return true; ++ if (o == null || this.getClass() != o.getClass()) return false; ++ final org.bukkit.craftbukkit.CraftRaid craftRaid = (org.bukkit.craftbukkit.CraftRaid) o; ++ return this.handle.equals(craftRaid.handle); ++ } ++ ++ @Override ++ public int hashCode() { ++ return this.handle.hashCode(); ++ } ++ // Paper end - more Raid API + } +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +index 01797d9791f19dfda4b168218eadeaae97f11eab..00357d78182b3ff87e3d9a45705b072af56739c8 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +@@ -2397,6 +2397,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { + return (raid == null) ? null : new CraftRaid(raid); + } + ++ // Paper start - more Raid API ++ @Override ++ public @Nullable Raid getRaid(final int id) { ++ final net.minecraft.world.entity.raid.@Nullable Raid nmsRaid = this.world.getRaids().raidMap.get(id); ++ return nmsRaid != null ? new CraftRaid(nmsRaid) : null; ++ } ++ // Paper end - more Raid API ++ + @Override + public List getRaids() { + Raids persistentRaid = this.world.getRaids(); From f4c7d373e4a1aff23539fe099745bf29a28559b9 Mon Sep 17 00:00:00 2001 From: leguan <59799222+Leguan16@users.noreply.github.com> Date: Mon, 22 Apr 2024 20:08:37 +0200 Subject: [PATCH 062/215] [ci skip] Fix javadoc typo (#10445) --- patches/api/0037-Add-PlayerUseUnknownEntityEvent.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/api/0037-Add-PlayerUseUnknownEntityEvent.patch b/patches/api/0037-Add-PlayerUseUnknownEntityEvent.patch index cf9c2da40e..e0d410dc6e 100644 --- a/patches/api/0037-Add-PlayerUseUnknownEntityEvent.patch +++ b/patches/api/0037-Add-PlayerUseUnknownEntityEvent.patch @@ -10,7 +10,7 @@ Co-authored-by: Nassim Jahnke diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerUseUnknownEntityEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerUseUnknownEntityEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..f64b253f1794c7987a32a4313df19d7512bea1bc +index 0000000000000000000000000000000000000000..dbb635686e9108b9d3df5d373e6972cca07c0621 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerUseUnknownEntityEvent.java @@ -0,0 +1,86 @@ @@ -28,7 +28,7 @@ index 0000000000000000000000000000000000000000..f64b253f1794c7987a32a4313df19d75 + +/** + * Represents an event that is called when a player right-clicks an unknown entity. -+ * Useful for plugins dealing with virtual entities (entities that don't actually spawned on the server). ++ * Useful for plugins dealing with virtual entities (entities that aren't actually spawned on the server). + *
        + * This event may be called multiple times per interaction with different interaction hands + * and with or without the clicked position. From abc49bf069cc52230e4b909b4264e5e3534ef853 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Tue, 23 Apr 2024 10:02:08 -0700 Subject: [PATCH 063/215] Begin update to 1.20.5 --- README.md | 8 +- build.gradle.kts | 8 +- gradle.properties | 6 +- .../api/0001-Convert-project-to-Gradle.patch | 13 +- patches/api/0006-Adventure.patch | 573 +++++++++--------- patches/api/0009-Paper-Plugins.patch | 50 +- patches/api/0011-Timings-v2.patch | 28 +- ...-option-to-load-extra-plugin-jars-no.patch | 10 +- .../0013-Player-affects-spawning-API.patch | 4 +- patches/api/0014-Add-getTPS-method.patch | 8 +- patches/api/0016-Entity-Origin-API.patch | 4 +- patches/api/0018-Add-view-distance-API.patch | 8 +- .../api/0021-Expose-server-CommandMap.patch | 8 +- ...cord-chat-API-from-spigot-subclasses.patch | 12 +- .../0023-Add-exception-reporting-event.patch | 10 +- .../0026-Player-Tab-List-and-Title-APIs.patch | 4 +- ...working-with-arrows-stuck-in-living-.patch | 4 +- .../api/0028-Complete-resource-pack-API.patch | 4 +- ...eload-permissions.yml-and-require-co.patch | 8 +- ...4-Allow-Reloading-of-Command-Aliases.patch | 8 +- ...0047-Add-String-based-Action-Bar-API.patch | 6 +- ...rovide-E-TE-Chunk-count-stat-methods.patch | 2 +- ...n-option-to-prevent-player-names-fro.patch | 10 +- patches/api/0056-Fix-upstream-javadocs.patch | 44 +- .../api/0060-Basic-PlayerProfile-API.patch | 8 +- patches/api/0063-Entity-fromMobSpawner.patch | 4 +- patches/api/0068-LivingEntity-setKiller.patch | 2 +- ...nt-protocol-version-and-virtual-host.patch | 4 +- ...1-Ability-to-apply-mending-to-XP-API.patch | 6 +- ...dd-more-fields-to-AsyncPreLoginEvent.patch | 56 +- .../0092-Player.setPlayerProfile-API.patch | 20 +- patches/api/0093-getPlayerUniqueId-API.patch | 8 +- ...5-Add-openSign-method-to-HumanEntity.patch | 4 +- ...96-Add-Ban-Methods-to-Player-Objects.patch | 4 +- ...tional-world.getNearbyEntities-API-s.patch | 2 +- ...ld.spawnParticle-API-and-add-Builder.patch | 8 +- ...e-shield-blocking-delay-configurable.patch | 4 +- ...ent-consumeArrow-and-getArrowItem-AP.patch | 2 +- patches/api/0115-Expand-Explosions-API.patch | 4 +- .../0117-LivingEntity-Active-Item-API.patch | 4 +- .../0119-Add-World.getEntity-UUID-API.patch | 2 +- patches/api/0122-Entity-getChunk-API.patch | 4 +- ...vide-Chunk-Coordinates-as-a-Long-API.patch | 2 +- ...Blocks-to-be-accessed-via-a-long-key.patch | 2 +- patches/api/0141-isChunkGenerated-API.patch | 2 +- patches/api/0143-Async-Chunks-API.patch | 4 +- ...-ray-tracing-methods-to-LivingEntity.patch | 2 +- ...e-attack-cooldown-methods-for-Player.patch | 4 +- ...mation-to-version-command-on-startup.patch | 6 +- ...CanPlaceOn-and-CanDestroy-NBT-values.patch | 4 +- patches/api/0153-Material-API-additions.patch | 6 +- patches/api/0154-Add-Material-Tags.patch | 2 +- ...156-Add-LivingEntity-getTargetEntity.patch | 2 +- patches/api/0157-Add-sun-related-API.patch | 2 +- ...ault-permission-message-configurable.patch | 10 +- ...tion-supression-of-EntityDismount-Ve.patch | 44 -- .../0172-Entity-getEntitySpawnReason.patch | 4 +- .../0173-Fix-Spigot-annotation-mistakes.patch | 162 ++--- patches/api/0176-Add-Heightmap-API.patch | 2 +- ...181-Expose-the-internal-current-tick.patch | 8 +- patches/api/0185-Entity-Jump-API.patch | 4 +- patches/api/0187-Add-tick-times-API.patch | 8 +- ...188-Expose-MinecraftServer-isRunning.patch | 8 +- .../0190-Add-Player-Client-Options-API.patch | 4 +- ...2-Add-item-slot-convenience-methods.patch} | 0 ...mStack-swapping-the-extended-and-upg.patch | 21 - ...patch => 0193-Villager-Restocks-API.patch} | 0 ...n.patch => 0194-Expose-game-version.patch} | 8 +- ...-API.patch => 0195-Add-Mob-Goal-API.patch} | 8 +- ...=> 0196-Add-villager-reputation-API.patch} | 0 ...-API.patch => 0197-Spawn-Reason-API.patch} | 0 ...API.patch => 0198-Potential-bed-API.patch} | 0 ...older-method-without-block-snapshot.patch} | 0 ...mplement-PlayerRecipeBookClickEvent.patch} | 0 ...0201-Support-components-in-ItemMeta.patch} | 14 +- ...TargetReasons-for-1.16-mob-behavior.patch} | 0 ...patch => 0203-Add-entity-liquid-API.patch} | 4 +- ...eResultEvent-PrepareGrindstoneEvent.patch} | 0 ...ent.patch => 0205-Add-BellRingEvent.patch} | 0 ...support.patch => 0206-Brand-support.patch} | 4 +- ...PI.patch => 0207-Add-moon-phase-API.patch} | 0 ...PickupItemAnimation-to-LivingEntity.patch} | 4 +- ...I.patch => 0209-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 30 +- ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...l-open-container-api-to-HumanEntity.patch} | 0 ...-Counter-to-allow-plugins-to-use-va.patch} | 0 ...king.patch => 0214-Entity-isTicking.patch} | 4 +- ....patch => 0215-Villager-resetOffers.patch} | 0 ...tch => 0216-Player-elytra-boost-API.patch} | 4 +- ...Add-getOfflinePlayerIfCached-String.patch} | 8 +- ...ch => 0218-Add-ignore-discounts-API.patch} | 0 ...> 0219-Item-no-age-no-player-pickup.patch} | 0 ...220-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0221-Add-API-for-quit-reason.patch} | 0 ...patch => 0222-Add-Destroy-Speed-API.patch} | 0 ...23-Add-LivingEntity-clearActiveItem.patch} | 4 +- ...=> 0224-Add-PlayerItemCooldownEvent.patch} | 0 ...PI.patch => 0225-More-lightning-API.patch} | 0 ...h => 0226-Add-PlayerShearBlockEvent.patch} | 0 ...227-Player-Chunk-Load-Unload-Events.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 4 +- ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 0 ...atch => 0230-Added-PlayerTradeEvent.patch} | 0 ...atch => 0231-Add-TargetHitEvent-API.patch} | 0 ...232-Additional-Block-Material-API-s.patch} | 0 ...t-Material-from-Boats-and-Minecarts.patch} | 0 ...-Add-PlayerFlowerPotManipulateEvent.patch} | 0 ...h => 0235-Zombie-API-breaking-doors.patch} | 0 ...=> 0236-Add-EntityLoadCrossbowEvent.patch} | 0 ...0237-Added-WorldGameRuleChangeEvent.patch} | 0 ...-Added-ServerResourcesReloadedEvent.patch} | 0 ...> 0239-Add-BlockFailedDispenseEvent.patch} | 0 ...-Added-PlayerLecternPageChangeEvent.patch} | 0 ...-Added-PlayerLoomPatternSelectEvent.patch} | 0 ...act-interaction-point-in-PlayerInte.patch} | 0 ...I.patch => 0243-Add-sendOpLevel-API.patch} | 4 +- ...try.patch => 0244-Add-PaperRegistry.patch} | 0 ...h => 0245-Add-StructuresLocateEvent.patch} | 4 +- ...h => 0246-Add-BlockPreDispenseEvent.patch} | 0 ...Added-PlayerChangeBeaconEffectEvent.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...eash-variable-to-EntityUnleashEvent.patch} | 0 ...atch => 0250-add-DragonEggFormEvent.patch} | 0 ...Event.patch => 0251-EntityMoveEvent.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 0 ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...s.patch => 0255-Add-missing-effects.patch} | 18 +- ...atch => 0256-Expose-Tracked-Players.patch} | 4 +- ...ache-the-result-of-Material-isBlock.patch} | 8 +- ...atch => 0258-Add-worldborder-events.patch} | 0 ...=> 0259-added-PlayerNameEntityEvent.patch} | 0 ...h => 0260-Add-recipe-to-cook-events.patch} | 0 ...patch => 0261-Add-Block-isValidTool.patch} | 0 ....patch => 0262-Expand-world-key-API.patch} | 8 +- ...y-API.patch => 0263-Item-Rarity-API.patch} | 4 +- ...tch => 0264-Expose-protocol-version.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ... => 0268-Added-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0269-More-World-API.patch} | 4 +- ... 0270-Added-PlayerBedFailEnterEvent.patch} | 0 ...acon-activation-deactivation-events.patch} | 0 ...> 0272-PlayerMoveEvent-Improvements.patch} | 0 ...-RespawnFlags-to-PlayerRespawnEvent.patch} | 0 ...> 0274-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...close.patch => 0277-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0279-Add-basic-Datapack-API.patch} | 12 +- ...itions-to-PlayerGameModeChangeEvent.patch} | 0 ... => 0281-ItemStack-repair-check-API.patch} | 0 ....patch => 0282-More-Enchantment-API.patch} | 6 +- ...PI.patch => 0283-Add-Mob-lookAt-API.patch} | 0 ...ta.patch => 0284-ItemStack-editMeta.patch} | 0 ... => 0285-Add-EntityInsideBlockEvent.patch} | 0 ...86-Attributes-API-for-item-defaults.patch} | 4 +- ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0288-More-Lidded-Block-API.patch} | 0 ... => 0289-Add-PlayerKickEvent-causes.patch} | 4 +- ...0290-Add-PufferFishStateChangeEvent.patch} | 0 ...h => 0291-Add-BellRevealRaiderEvent.patch} | 0 ...92-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0293-Add-more-line-of-sight-methods.patch} | 2 +- ... => 0294-Add-WaterBottleSplashEvent.patch} | 0 ... => 0295-Add-more-LimitedRegion-API.patch} | 0 ...PI.patch => 0296-Missing-Entity-API.patch} | 14 +- ...ch => 0297-Adds-PlayerArmSwingEvent.patch} | 0 ...dd-PlayerSignCommandPreprocessEvent.patch} | 0 ...array-elements-in-command-arguments.patch} | 0 ...inger-API.patch => 0300-Stinger-API.patch} | 2 +- ...-to-contain-the-source-jars-in-stac.patch} | 0 ...tch => 0302-Add-PlayerSetSpawnEvent.patch} | 0 ...=> 0303-Added-EntityDamageItemEvent.patch} | 0 ...Make-EntityUnleashEvent-cancellable.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0306-Add-BlockBreakBlockEvent.patch} | 0 ...pers-for-left-right-click-to-Action.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0309-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0311-add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 2 +- ... 0313-Get-entity-default-attributes.patch} | 4 +- ...d-API.patch => 0314-Left-handed-API.patch} | 0 ...tch => 0315-Add-critical-damage-API.patch} | 0 ...ch => 0316-Add-more-advancement-API.patch} | 0 ...0317-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 8 +- ...-ram-API.patch => 0319-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...1-Add-Raw-Byte-Entity-Serialization.patch} | 4 +- ...0322-Add-PlayerItemFrameChangeEvent.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 8 +- ...patch => 0324-Add-more-Campfire-API.patch} | 0 ...eCollisionEvent-move-HandlerList-up.patch} | 0 ... => 0326-Improve-scoreboard-entries.patch} | 0 ...ch => 0327-Entity-powdered-snow-API.patch} | 6 +- ...0328-Add-API-for-item-entity-health.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...le-API.patch => 0330-Bucketable-API.patch} | 0 ...-for-default-config-comment-parsing.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ...3-Multiple-Entries-with-Scoreboards.patch} | 0 ...n-strange-EventHandler-return-types.patch} | 0 ...atch => 0335-Multi-Block-Change-API.patch} | 4 +- ...ent.patch => 0336-Fix-NotePlayEvent.patch} | 0 ....patch => 0337-Freeze-Tick-Lock-API.patch} | 2 +- ...lphin-API.patch => 0338-Dolphin-API.patch} | 0 ...h => 0339-More-PotionEffectType-API.patch} | 13 +- ...command-sender-which-forwards-feedb.patch} | 8 +- ...h => 0341-Implement-regenerateChunk.patch} | 2 +- ...gs.patch => 0342-Add-GameEvent-tags.patch} | 6 +- ...tch => 0343-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...s.patch => 0346-Custom-Potion-Mixes.patch} | 8 +- ...Expose-furnace-minecart-push-values.patch} | 0 ...I.patch => 0348-More-Projectile-API.patch} | 0 ...ch => 0349-Add-getComputedBiome-API.patch} | 0 ...h => 0350-Add-enchantWithLevels-API.patch} | 0 ... 0351-Add-TameableDeathMessageEvent.patch} | 0 ...hange-the-podium-of-the-EnderDragon.patch} | 0 ...-blockstate-in-EntityBreakDoorEvent.patch} | 0 ...ing-amount-to-PlayerItemDamageEvent.patch} | 0 ...> 0355-WorldCreator-keepSpawnLoaded.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 8 +- ...> 0357-Add-PlayerStopUsingItemEvent.patch} | 0 ...tch => 0358-Expand-FallingBlock-API.patch} | 8 +- ...dd-method-isTickingWorlds-to-Bukkit.patch} | 12 +- ... => 0360-Add-WardenAngerChangeEvent.patch} | 0 ...I.patch => 0361-Nameable-Banner-API.patch} | 0 ...atch => 0362-Add-Player-getFishHook.patch} | 0 ...API.patch => 0363-More-Teleport-API.patch} | 6 +- ... => 0364-Add-EntityPortalReadyEvent.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 4 +- ...ion-API.patch => 0366-Collision-API.patch} | 4 +- ...API.patch => 0367-Block-Ticking-API.patch} | 0 ...368-Add-NamespacedKey-biome-methods.patch} | 0 ...o-load-resources-from-LibraryLoader.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...limit-in-YamlConfigOptions-and-incr.patch} | 0 ... => 0373-Add-getDrops-to-BlockState.patch} | 4 +- ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0375-Elder-Guardian-appearance-API.patch} | 4 +- ...ow-changing-bed-s-occupied-property.patch} | 0 ...d-EquipmentSlot-convenience-methods.patch} | 15 +- ...swingHand-EquipmentSlot-convenience.patch} | 4 +- ...ch => 0379-Add-entity-knockback-API.patch} | 4 +- ... => 0380-Added-EntityToggleSitEvent.patch} | 0 ...patch => 0381-Add-Moving-Piston-API.patch} | 0 ...0382-Add-PrePlayerAttackEntityEvent.patch} | 0 ... 0383-Add-Player-Warden-Warning-API.patch} | 4 +- ...a-friendly-methods-to-update-trades.patch} | 0 ...385-Add-paper-dumplisteners-command.patch} | 0 ....patch => 0386-ItemStack-damage-API.patch} | 4 +- ...patch => 0387-Add-Tick-TemporalUnit.patch} | 0 ...tion-API.patch => 0388-Friction-API.patch} | 2 +- ... 0389-Player-Entity-Tracking-Events.patch} | 0 ...atch => 0390-Add-missing-Fluid-type.patch} | 0 ...ments.patch => 0391-fix-Instruments.patch} | 0 ...tch => 0392-Add-BlockLockCheckEvent.patch} | 0 ... 0393-Add-Sneaking-API-for-Entities.patch} | 8 +- ....patch => 0394-Improve-PortalEvents.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...atch => 0396-Flying-Fall-Damage-API.patch} | 4 +- ...eplace-ItemFlag.HIDE_POTION_EFFECTS.patch} | 0 ...en-API.patch => 0398-Win-Screen-API.patch} | 4 +- ...tch => 0399-Add-Entity-Body-Yaw-API.patch} | 8 +- ...or-InventoryBlockStartEvent-subclas.patch} | 0 ...=> 0401-Add-EntityFertilizeEggEvent.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...API.patch => 0403-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ... 0405-Add-Mob-Experience-reward-API.patch} | 0 ... => 0406-Expand-PlayerItemMendEvent.patch} | 0 ... => 0407-Add-transient-modifier-API.patch} | 0 ...he-experimental-smithing-inventory-.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 2 +- ...olia-scheduler-and-owned-region-API.patch} | 12 +- ...1-Add-event-for-player-editing-sign.patch} | 0 ...412-Add-Sign-getInteractableSideFor.patch} | 0 ...t-API.patch => 0413-Fix-BanList-API.patch} | 8 +- ....patch => 0414-Add-whitelist-events.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 16 +- ...tch => 0416-Add-PlayerFailMoveEvent.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...tch => 0418-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 4 +- ...lace-methods-with-old-StructureType.patch} | 14 +- ... => 0421-Add-Listing-API-for-Player.patch} | 4 +- ...d-BlockFace-during-BlockDamageEvent.patch} | 0 ...h => 0423-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0424-Expand-Pose-API.patch} | 2 +- ...MerchantRecipe-add-copy-constructor.patch} | 0 ...patch => 0426-More-DragonBattle-API.patch} | 0 ...tch => 0427-Add-PlayerPickItemEvent.patch} | 0 ...=> 0428-Allow-trident-custom-damage.patch} | 0 ...pose-hand-during-BlockCanBuildEvent.patch} | 0 ...t-setBurnTime-to-valid-short-values.patch} | 0 ... 0431-Add-OfflinePlayer-isConnected.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...dItemsEvent-throwing-exception-when.patch} | 0 ...> 0435-Add-player-idle-duration-API.patch} | 4 +- ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 2 +- ...h-event-for-all-player-interactions.patch} | 0 ...439-Add-UUID-attribute-modifier-API.patch} | 0 ... => 0440-Expand-LingeringPotion-API.patch} | 0 ...y-durability-check-in-ItemStack-isS.patch} | 0 ...tch => 0442-Add-Structure-check-API.patch} | 2 +- ...dd-missing-Experimental-annotations.patch} | 162 +++-- ...tch => 0444-Add-more-scoreboard-API.patch} | 0 ...stry.patch => 0445-Improve-Registry.patch} | 16 +- ...h => 0446-Add-experience-points-API.patch} | 4 +- ...h => 0447-Add-missing-InventoryType.patch} | 0 ...h => 0448-Add-drops-to-shear-events.patch} | 0 ... => 0449-Add-HiddenPotionEffect-API.patch} | 2 +- ...> 0450-Add-PlayerShieldDisableEvent.patch} | 0 ...mpty-String-in-NamespacedKey.fromSt.patch} | 0 ...-Add-BlockStateMeta-clearBlockState.patch} | 0 ...53-Expose-LootTable-of-DecoratedPot.patch} | 0 ...h => 0454-Add-ShulkerDuplicateEvent.patch} | 0 ...dd-api-for-spawn-egg-texture-colors.patch} | 0 ... => 0456-Add-Lifecycle-Event-system.patch} | 0 ...patch => 0457-ItemStack-Tooltip-API.patch} | 0 ...Snapshot-includeLightData-parameter.patch} | 0 patches/api/0458-Conduit-API.patch | 46 -- ...PI.patch => 0459-Add-FluidState-API.patch} | 0 ...patch => 0460-add-number-format-api.patch} | 0 ...patch => 0461-improve-BanList-types.patch} | 8 +- ...=> 0462-Suspicious-Effect-Entry-API.patch} | 0 ....patch => 0463-Fix-DamageSource-API.patch} | 0 ...I.patch => 0464-Expanded-Hopper-API.patch} | 0 ...tables-to-prevent-unexpected-issues.patch} | 0 ...6-Add-BlockBreakProgressUpdateEvent.patch} | 0 ...=> 0467-Deprecate-ItemStack-setType.patch} | 0 ...s.patch => 0468-Item-Mutation-Fixes.patch} | 0 ...> 0469-API-for-checking-sent-chunks.patch} | 4 +- ...ch => 0470-Add-CartographyItemEvent.patch} | 0 ...aid-API.patch => 0471-More-Raid-API.patch} | 4 +- .../server/0001-Setup-Gradle-project.patch | 59 +- patches/server/0002-Remap-fixes.patch | 51 +- .../server/0003-Build-system-changes.patch | 28 +- .../server/0004-Test-changes.patch | 0 .../server/0005-Paper-config-files.patch | 0 .../server/0006-MC-Dev-fixes.patch | 0 .../server/0007-ConcurrentUtil.patch | 0 .../server/0008-CB-fixes.patch | 2 +- .../server/0009-MC-Utils.patch | 0 .../server/0010-Adventure.patch | 0 .../server/0011-Paper-command.patch | 0 .../server/0012-Paper-Metrics.patch | 0 .../server/0013-Paper-Plugins.patch | 2 +- .../server/0014-Timings-v2.patch | 0 .../server/0015-Add-TickThread.patch | 0 ...016-Further-improve-server-tick-loop.patch | 2 +- ...-option-to-load-extra-plugin-jars-no.patch | 0 .../0018-Support-components-in-ItemMeta.patch | 0 ...cactus-bamboo-and-reed-growth-height.patch | 0 ...figurable-baby-zombie-movement-speed.patch | 0 ...021-Configurable-fishing-time-ranges.patch | 0 .../0022-Allow-nerfed-mobs-to-jump.patch | 0 ...onfigurable-entity-despawn-distances.patch | 0 ...4-Allow-for-toggling-of-spawn-chunks.patch | 0 ...ck-and-tnt-entities-at-the-specified.patch | 0 ...ient-crashes-server-lists-and-Mojang.patch | 2 +- .../0027-Implement-Paper-VersionChecker.patch | 0 ...d-version-history-to-version-command.patch | 0 .../0029-Player-affects-spawning-API.patch | 0 ...030-Only-refresh-abilities-if-needed.patch | 0 ...ix-ItemMeta-removing-CustomModelData.patch | 0 .../server/0032-Entity-Origin-API.patch | 0 ...vent-block-entity-and-entity-crashes.patch | 0 ...nfigurable-top-of-nether-void-damage.patch | 0 ...e-before-converting-and-renaming-pla.patch | 0 ...ties-to-activation-range-ignore-list.patch | 0 .../0037-Configurable-end-credits.patch | 0 ...-explosions-processing-dead-entities.patch | 0 .../server/0039-Optimize-explosions.patch | 2 +- .../0040-Disable-explosion-knockback.patch | 0 .../server/0041-Disable-thunder.patch | 0 .../server/0042-Disable-ice-and-snow.patch | 0 ...3-Configurable-mob-spawner-tick-rate.patch | 0 ...44-Implement-PlayerLocaleChangeEvent.patch | 0 .../server/0045-Add-BeaconEffectEvent.patch | 0 ...figurable-container-update-tick-rate.patch | 0 .../0047-Use-UserCache-for-player-heads.patch | 0 .../0048-Disable-spigot-tick-limiters.patch | 0 .../0049-Add-PlayerInitialSpawnEvent.patch | 0 ...urable-Disabling-Cat-Chest-Detection.patch | 0 ...051-Improve-Player-chat-API-handling.patch | 0 ...chunks-are-slime-spawn-chunks-toggle.patch | 0 .../0053-Expose-server-CommandMap.patch | 0 ...e-informative-in-maxHealth-exception.patch | 0 .../0055-Player-Tab-List-and-Title-APIs.patch | 2 +- ...dd-configurable-portal-search-radius.patch | 0 .../server/0057-Add-velocity-warnings.patch | 0 ...ble-inter-world-teleportation-safety.patch | 0 .../0059-Add-exception-reporting-event.patch | 0 ...oreboards-for-non-players-by-default.patch | 0 ...working-with-arrows-stuck-in-living-.patch | 0 .../server/0062-Chunk-Save-Reattempt.patch | 0 .../0063-Complete-resource-pack-API.patch | 0 ...ading-permissions.yml-before-plugins.patch | 0 ...llow-Reloading-of-Custom-Permissions.patch | 0 .../0066-Remove-Metadata-on-reload.patch | 0 ...067-Handle-Item-Meta-Inconsistencies.patch | 0 ...urable-Non-Player-Arrow-Despawn-Rate.patch | 0 .../server/0069-Add-World-Util-Methods.patch | 0 ...0-Custom-replacement-for-eaten-items.patch | 0 ...th-absorb-values-and-repair-bad-data.patch | 0 ...072-Use-a-Shared-Random-for-Entities.patch | 0 ...le-spawn-chances-for-skeleton-horses.patch | 0 ...ckPhysicsEvent-if-a-plugin-has-a-lis.patch | 2 +- ...Entity-AddTo-RemoveFrom-World-Events.patch | 0 ...76-Configurable-Chunk-Inhabited-Time.patch | 0 .../server/0077-EntityPathfindEvent.patch | 0 ...egionFileCache-and-make-configurable.patch | 0 ...9-Do-not-load-chunks-for-Pathfinding.patch | 2 +- ...0080-Add-PlayerUseUnknownEntityEvent.patch | 2 +- ...gurable-random-tick-rates-for-blocks.patch | 0 ...g-BlockPlaceEvent-triggering-physics.patch | 0 .../server/0083-Optimize-DataBits.patch | 0 ...nilla-per-world-scoreboard-coloring-.patch | 0 .../0085-Configurable-Player-Collision.patch | 2 +- ...ent-to-allow-plugins-to-handle-clien.patch | 0 .../0087-Configurable-RCON-IP-address.patch | 0 ...ityRegainHealthEvent-isFastRegen-API.patch | 0 ...-to-configure-frosted_ice-properties.patch | 0 ...-possibility-for-getServer-singleton.patch | 2 +- ...y-scoreboard-teams-to-scoreboard.dat.patch | 2 +- ...able-API-and-replenishable-lootables.patch | 0 ...tem-property-for-disabling-watchdoge.patch | 0 .../0094-Async-GameProfileCache-saving.patch | 2 +- ...5-Optional-TNT-doesn-t-move-in-water.patch | 0 ...r-redstone-torch-rapid-clock-removal.patch | 0 .../0097-Add-server-name-parameter.patch | 0 .../0098-Fix-global-sound-handling.patch | 0 ...blocking-on-Network-Manager-creation.patch | 0 ...e-profiles-that-have-no-UUID-and-no-.patch | 0 ...setting-for-proxy-online-mode-status.patch | 0 ...ptimise-BlockState-s-hashCode-equals.patch | 4 +- ...onfigurable-packet-in-spam-threshold.patch | 2 +- ...04-Configurable-flying-kick-messages.patch | 2 +- .../server/0105-Add-EntityZapEvent.patch | 0 ...-entity-nbt-data-from-falling-blocks.patch | 0 ...107-Cache-user-authenticator-threads.patch | 0 ...8-Allow-Reloading-of-Command-Aliases.patch | 0 ...9-Add-source-to-PlayerExpChangeEvent.patch | 0 .../0110-Add-ProjectileCollideEvent.patch | 0 ...vent-Pathfinding-out-of-World-Border.patch | 0 ...ize-Level.hasChunkAt-BlockPosition-Z.patch | 0 ...-Bound-Treasure-Maps-to-World-Border.patch | 0 ...figurable-Cartographer-Treasure-Maps.patch | 0 ...-to-control-if-armor-stands-can-move.patch | 0 .../0116-String-based-Action-Bar-API.patch | 2 +- ...17-Properly-fix-item-duplication-bug.patch | 0 .../server/0118-Firework-API-s.patch | 0 .../0119-PlayerTeleportEndGatewayEvent.patch | 0 ...rovide-E-TE-Chunk-count-stat-methods.patch | 0 .../0121-Enforce-Sync-Player-Saves.patch | 0 ...PI-for-Reason-Source-Triggering-play.patch | 0 .../server/0123-Cap-Entity-Collisions.patch | 0 ...e-CraftScheduler-Async-Task-Debugger.patch | 0 ...le-async-calls-to-restart-the-server.patch | 2 +- ...ke-parrots-stay-on-shoulders-despite.patch | 2 +- ...n-option-to-prevent-player-names-fro.patch | 0 ...oleAppender-for-console-improvements.patch | 4 +- ...urable-option-to-disable-creeper-lin.patch | 0 .../server/0130-Item-canEntityPickup.patch | 0 ...PlayerPickupItemEvent-setFlyAtPlayer.patch | 0 .../0132-PlayerAttemptPickupItemEvent.patch | 0 ...-profile-lookups-to-worldgen-threads.patch | 2 +- .../server/0134-Basic-PlayerProfile-API.patch | 0 .../server/0135-Add-UnknownCommandEvent.patch | 0 .../0136-Shoulder-Entities-Release-API.patch | 0 .../server/0137-Profile-Lookup-Events.patch | 0 ...player-logins-during-server-shutdown.patch | 0 .../server/0139-Entity-fromMobSpawner.patch | 0 ...40-Improve-the-Saddle-API-for-Horses.patch | 0 .../0141-ensureServerConversions-API.patch | 0 .../0142-Implement-getI18NDisplayName.patch | 0 .../0143-ProfileWhitelistVerifyEvent.patch | 0 .../0144-Fix-this-stupid-bullshit.patch | 0 .../server/0145-LivingEntity-setKiller.patch | 0 ...awns-should-honor-nametags-and-leash.patch | 0 ...imer-when-spawner-event-is-cancelled.patch | 0 ...-a-custom-authentication-servers-dow.patch | 0 ...n-prefixes-using-Log4J-configuration.patch | 0 ...e-Log4J-Configuration-Plugin-Loggers.patch | 0 .../server/0151-Add-PlayerJumpEvent.patch | 2 +- ...dle-ServerboundKeepAlivePacket-async.patch | 0 ...nt-protocol-version-and-virtual-host.patch | 2 +- ...rt-serverside-behavior-of-keepalives.patch | 0 ...dEffects-only-to-players-who-can-see.patch | 0 .../0156-Add-PlayerArmorChangeEvent.patch | 0 ...rom-being-processed-when-the-player-.patch | 0 ...117075-Block-entity-unload-lag-spike.patch | 0 ...e-implementations-for-captured-block.patch | 0 ...-get-a-BlockState-without-a-snapshot.patch | 0 .../server/0161-AsyncTabCompleteEvent.patch | 2 +- .../0162-PlayerPickupExperienceEvent.patch | 0 ...3-Ability-to-apply-mending-to-XP-API.patch | 0 ...4-PlayerNaturallySpawnCreaturesEvent.patch | 0 ...-Add-setPlayerProfile-API-for-Skulls.patch | 0 .../server/0166-PreCreatureSpawnEvent.patch | 0 .../0167-Fill-Profile-Property-Events.patch | 0 ...PlayerAdvancementCriterionGrantEvent.patch | 0 .../0169-Add-ArmorStand-Item-Meta.patch | 0 ...-Extend-Player-Interact-cancellation.patch | 0 .../0171-Tameable-getOwnerUniqueId-API.patch | 0 .../server/0172-Toggleable-player-crits.patch | 0 ...le-Explicit-Network-Manager-Flushing.patch | 0 ...nt-extended-PaperServerListPingEvent.patch | 2 +- ...dd-more-fields-to-AsyncPreLoginEvent.patch | 0 .../0176-Player.setPlayerProfile-API.patch | 0 .../server/0177-getPlayerUniqueId-API.patch | 0 .../0178-Improved-Async-Task-Scheduler.patch | 0 ...ke-legacy-ping-handler-more-reliable.patch | 0 ...ServerListPingEvent-for-legacy-pings.patch | 0 ...81-Flag-to-disable-the-channel-limit.patch | 0 ...2-Add-openSign-method-to-HumanEntity.patch | 0 ...urable-sprint-interruption-on-attack.patch | 0 .../server/0184-EndermanEscapeEvent.patch | 0 .../0185-Enderman.teleportRandomly.patch | 0 ...0186-Block-Enderpearl-Travel-Exploit.patch | 0 ...ld.spawnParticle-API-and-add-Builder.patch | 0 ...-allowed-colored-signs-to-be-created.patch | 0 .../0189-EndermanAttackPlayerEvent.patch | 0 .../server/0190-WitchConsumePotionEvent.patch | 0 .../server/0191-WitchThrowPotionEvent.patch | 0 .../server/0192-WitchReadyPotionEvent.patch | 0 ...0193-ItemStack-getMaxItemUseDuration.patch | 0 ...94-Add-EntityTeleportEndGatewayEvent.patch | 0 ...ed-flag-on-cancel-of-Explosion-Event.patch | 0 .../0196-Fix-CraftEntity-hashCode.patch | 0 ...7-Configurable-LootPool-luck-formula.patch | 0 ...ils-when-failing-to-save-player-data.patch | 0 ...e-shield-blocking-delay-configurable.patch | 0 .../0200-Improve-EntityShootBowEvent.patch | 0 .../server/0201-PlayerReadyArrowEvent.patch | 0 ...ackByEntityEvent-and-EntityPushedByE.patch | 0 .../server/0203-Expand-Explosions-API.patch | 0 .../0204-LivingEntity-Active-Item-API.patch | 0 .../server/0205-RangedEntity-API.patch | 0 ...to-disable-ender-dragon-legacy-check.patch | 0 ...7-Implement-World.getEntity-UUID-API.patch | 0 .../0208-InventoryCloseEvent-Reason-API.patch | 0 .../server/0209-Vex-get-setSummoner-API.patch | 0 ...nventory-when-cancelling-PlayerInter.patch | 2 +- ...r-to-keep-logging-IO-off-main-thread.patch | 0 ...-more-information-to-Entity.toString.patch | 0 .../server/0213-EnderDragon-Events.patch | 0 .../server/0214-PlayerElytraBoostEvent.patch | 2 +- .../0215-PlayerLaunchProjectileEvent.patch | 2 +- .../0216-Improve-BlockPosition-inlining.patch | 0 ...t-armor-stands-from-doing-entity-loo.patch | 0 ...8-Vanished-players-don-t-have-rights.patch | 0 ...-Allow-disabling-armor-stand-ticking.patch | 0 .../server/0220-SkeletonHorse-Additions.patch | 2 +- ...on-t-call-getItemMeta-on-hasItemMeta.patch | 0 .../server/0222-Expand-ArmorStand-API.patch | 0 .../server/0223-AnvilDamageEvent.patch | 0 .../server/0224-Add-TNTPrimeEvent.patch | 0 ...nd-make-tab-spam-limits-configurable.patch | 2 +- .../server/0226-Fix-NBT-type-issues.patch | 0 ...Remove-unnecessary-itemmeta-handling.patch | 0 ...ies-option-to-debug-dupe-uuid-issues.patch | 0 ...dd-Early-Warning-Feature-to-WatchDog.patch | 2 +- ...30-Use-ConcurrentHashMap-in-JsonList.patch | 0 ...31-Use-a-Queue-for-Queueing-Commands.patch | 0 ...lock-entities-from-a-chunk-without-s.patch | 0 ...ptimize-BlockPosition-helper-methods.patch | 0 ...default-mob-spawn-range-and-water-an.patch | 0 .../server/0235-Slime-Pathfinder-Events.patch | 0 ...le-speed-for-water-flowing-over-lava.patch | 0 ...237-Optimize-CraftBlockData-Creation.patch | 0 .../server/0238-Optimize-MappedRegistry.patch | 0 .../0239-Add-PhantomPreSpawnEvent.patch | 0 .../server/0240-Add-More-Creeper-API.patch | 0 .../0241-Inventory-removeItemAnySlot.patch | 0 ...loadChunk-int-int-false-load-unconve.patch | 0 ...-ray-tracing-methods-to-LivingEntity.patch | 0 ...e-attack-cooldown-methods-for-Player.patch | 0 .../server/0245-Improve-death-events.patch | 0 ...ow-chests-to-be-placed-with-NBT-data.patch | 0 .../server/0247-Mob-Pathfinding-API.patch | 2 +- ...CanPlaceOn-and-CanDestroy-NBT-values.patch | 0 ...interactions-from-causing-chunk-load.patch | 2 +- ...wning-from-loading-generating-chunks.patch | 0 ...nt-furnace-cook-speed-multiplier-API.patch | 0 .../0252-Honor-EntityAgeable.ageLock.patch | 0 ...ble-connection-throttle-kick-message.patch | 0 ...ent-chunk-loading-from-Fluid-Flowing.patch | 0 .../0255-Hook-into-CB-plugin-rewrites.patch | 0 .../server/0256-PreSpawnerSpawnEvent.patch | 0 ...257-Add-LivingEntity-getTargetEntity.patch | 0 .../server/0258-Add-sun-related-API.patch | 0 ...xception-in-entity-and-block-entity-.patch | 0 .../server/0260-Turtle-API.patch | 0 ...tator-target-events-and-improve-impl.patch | 0 .../server/0262-Add-more-Witch-API.patch | 0 ...owned-for-Villager-Aggression-Config.patch | 0 ...event-players-from-moving-into-unloa.patch | 2 +- ...65-Reset-players-airTicks-on-respawn.patch | 0 ...-after-profile-lookups-if-not-needed.patch | 0 ...er-Thread-Pool-and-Thread-Priorities.patch | 4 +- .../0268-Optimize-World-Time-Updates.patch | 2 +- ...store-custom-InventoryHolder-support.patch | 0 .../0270-Fix-SpongeAbsortEvent-handling.patch | 0 ...t-allow-digging-into-unloaded-chunks.patch | 2 +- ...ault-permission-message-configurable.patch | 0 ...e-Large-Packets-disconnecting-client.patch | 2 +- ...entity-dismount-during-teleportation.patch | 0 .../server/0275-Add-more-Zombie-API.patch | 0 .../server/0276-Book-Size-Limits.patch | 2 +- .../0277-Add-PlayerConnectionCloseEvent.patch | 0 ...-Replace-OfflinePlayer-getLastPlayed.patch | 0 ...vehicle-tracking-issue-on-disconnect.patch | 0 ...r-remove-if-the-handle-is-a-custom-p.patch | 2 +- .../server/0281-BlockDestroyEvent.patch | 0 .../0282-Async-command-map-building.patch | 2 +- .../server/0283-Brigadier-Mojang-API.patch | 2 +- ...rove-exact-choice-recipe-ingredients.patch | 0 .../0285-Limit-Client-Sign-length-more.patch | 2 +- ...oggleEvent-when-whitelist-is-toggled.patch | 0 .../0287-Entity-getEntitySpawnReason.patch | 0 .../server/0288-Fire-event-on-GS4-query.patch | 2 +- .../0289-Add-PlayerPostRespawnEvent.patch | 0 ...-for-pickupDelay-breaks-picking-up-i.patch | 0 .../server/0291-Server-Tick-Events.patch | 2 +- ...0292-PlayerDeathEvent-getItemsToKeep.patch | 0 ...Optimize-Captured-BlockEntity-Lookup.patch | 0 .../server/0294-Add-Heightmap-API.patch | 0 .../0295-Mob-Spawner-API-Enhancements.patch | 0 ...l-to-changed-postToMainThread-method.patch | 0 ...n-item-frames-are-modified-MC-123450.patch | 0 .../0298-Implement-CraftBlockSoundGroup.patch | 0 ...le-Keep-Spawn-Loaded-range-per-world.patch | 2 +- ...300-Expose-the-internal-current-tick.patch | 0 ...ate-location-if-we-failed-to-read-it.patch | 0 ...al-Spawned-mobs-towards-natural-spaw.patch | 0 ...gurable-projectile-relative-velocity.patch | 0 .../0304-offset-item-frame-ticking.patch | 0 ...revent-consuming-the-wrong-itemstack.patch | 0 ...06-Dont-send-unnecessary-sign-update.patch | 0 ...d-option-to-disable-pillager-patrols.patch | 0 ...nk-loads-when-villagers-try-to-find-.patch | 0 ...5656-Fix-Follow-Range-Initial-Target.patch | 0 .../0310-Duplicate-UUID-Resolve-Option.patch | 0 ...layerDeathEvent-shouldDropExperience.patch | 0 ...oading-chunks-checking-hive-position.patch | 0 ...Chunks-from-Hoppers-and-other-things.patch | 0 ...ptimise-EntityGetter-getPlayerByUUID.patch | 0 ...0315-Fix-items-not-falling-correctly.patch | 0 ...mize-call-to-getFluid-for-explosions.patch | 0 ...k-in-stack-not-having-effects-when-d.patch | 0 ...rializing-mismatching-chunk-coordina.patch | 0 .../0319-Alternative-item-despawn-rate.patch | 0 .../0320-Tracking-Range-Improvements.patch | 0 ...x-items-vanishing-through-end-portal.patch | 0 ...get-gravity-in-void.-Fixes-MC-167279.patch | 0 ...323-Improve-Block-breakNaturally-API.patch | 0 ...e-getChunkAt-calls-for-loaded-chunks.patch | 0 .../0325-Add-debug-for-sync-chunk-loads.patch | 0 .../0326-Improve-java-version-check.patch | 0 .../server/0327-Add-ThrownEggHatchEvent.patch | 0 .../server/0328-Entity-Jump-API.patch | 0 ...n-to-nerf-pigmen-from-nether-portals.patch | 0 .../0330-Make-the-GUI-graph-fancier.patch | 0 ...331-add-hand-to-BlockMultiPlaceEvent.patch | 0 ...ripwire-hook-placement-before-update.patch | 0 ...to-allow-iron-golems-to-spawn-in-air.patch | 0 ...-chance-of-villager-zombie-infection.patch | 0 .../server/0335-Optimise-Chunk-getFluid.patch | 0 ...erbose-world-setting-to-false-by-def.patch | 0 ...-Add-tick-times-API-and-mspt-command.patch | 0 ...338-Expose-MinecraftServer-isRunning.patch | 0 ...Add-Raw-Byte-ItemStack-Serialization.patch | 0 ...spawn-settings-and-per-player-option.patch | 0 ...nnections-shouldn-t-hold-up-shutdown.patch | 0 ...low-bees-to-load-chunks-for-beehives.patch | 0 ...-PlayerChunkMap-adds-crashing-server.patch | 0 .../server/0344-Don-t-tick-dead-players.patch | 0 ...d-Player-s-shouldn-t-be-able-to-move.patch | 0 ...move-existing-players-to-world-spawn.patch | 0 .../server/0347-Optimize-Pathfinding.patch | 0 ...48-Reduce-Either-Optional-allocation.patch | 0 ...duce-memory-footprint-of-CompoundTag.patch | 0 ...vent-opening-inventories-when-frozen.patch | 0 ...-entity-collision-code-if-not-needed.patch | 0 ...-Implement-Player-Client-Options-API.patch | 0 ...layer-is-attempted-to-be-removed-fro.patch | 0 ...nEvent-when-Player-is-actually-ready.patch | 0 ...pawn-point-if-spawn-in-unloaded-worl.patch | 0 ...PlayerAttackEntityCooldownResetEvent.patch | 0 ...t-fire-BlockFade-on-worldgen-threads.patch | 0 ...ntom-creative-and-insomniac-controls.patch | 0 ...item-duplication-and-teleport-issues.patch | 0 .../server/0360-Villager-Restocks-API.patch | 0 ...PickItem-Packet-and-kick-for-invalid.patch | 2 +- .../server/0362-Expose-game-version.patch | 0 ...-per-thread-native-byte-buffer-cache.patch | 0 .../server/0364-misc-debugging-dumps.patch | 2 +- ...65-Prevent-teleporting-dead-entities.patch | 2 +- ...ktraces-in-log-messages-crash-report.patch | 2 +- .../server/0367-Implement-Mob-Goal-API.patch | 0 .../0368-Add-villager-reputation-API.patch | 0 ...-maximum-exp-value-when-merging-orbs.patch | 0 .../server/0370-ExperienceOrbMergeEvent.patch | 0 ...1-Fix-PotionEffect-ignores-icon-flag.patch | 0 .../server/0372-Potential-bed-API.patch | 0 ...Wait-for-Async-Tasks-during-shutdown.patch | 2 +- ...der-respects-game-and-entity-rules-f.patch | 0 .../0375-Ensure-safe-gateway-teleport.patch | 0 ...n-for-console-having-all-permissions.patch | 0 ...ix-villager-trading-demand-MC-163962.patch | 0 .../0378-Maps-shouldn-t-load-chunks.patch | 0 ...ookup-for-Treasure-Maps-Fixes-lag-fr.patch | 0 ...er-runTaskTimerAsynchronously-Plugin.patch | 0 ...ston-physics-inconsistency-MC-188840.patch | 0 ...ssing-chunks-due-to-integer-overflow.patch | 0 ...t-position-desync-causing-tp-exploit.patch | 2 +- ...Holder-method-without-block-snapshot.patch | 0 .../0385-Add-PlayerRecipeBookClickEvent.patch | 2 +- ...6-Hide-sync-chunk-writes-behind-flag.patch | 0 ...87-Add-permission-for-command-blocks.patch | 2 +- ...-position-and-AABB-are-never-invalid.patch | 0 ...ld-Difficulty-Remembering-Difficulty.patch | 4 +- .../server/0390-Paper-dumpitem-command.patch | 0 ...-Legacy-Component-serialization-size.patch | 0 ...-Plugin-Tickets-to-API-Chunk-Methods.patch | 0 ...3-Add-BlockStateMeta-clearBlockState.patch | 0 ...0394-Support-old-UUID-format-for-NBT.patch | 0 ...nvert-legacy-attributes-in-Item-Meta.patch | 0 ...o-not-accept-invalid-client-settings.patch | 2 +- ...ve-fix-EntityTargetLivingEntityEvent.patch | 0 .../server/0398-Add-entity-liquid-API.patch | 0 ...pdate-itemstack-legacy-name-and-lore.patch | 0 .../server/0400-Add-PrepareResultEvent.patch | 0 ...k-for-portal-on-world-gen-entity-add.patch | 0 ...ix-arrows-never-despawning-MC-125757.patch | 0 ...-Vanilla-Command-permission-checking.patch | 0 .../server/0404-Fix-SPIGOT-5989.patch | 0 ...4-Bukkit-world-container-is-not-used.patch | 0 ...-5885-Unable-to-disable-advancements.patch | 0 ...ataPlayer-leak-due-from-quitting-ear.patch | 0 ...ze-NetworkManager-Exception-Handling.patch | 0 ...Fix-some-rails-connecting-improperly.patch | 0 ...istake-in-CB-NBT-int-deserialization.patch | 0 .../server/0411-Brand-support.patch | 0 ...yPickupItemAnimation-to-LivingEntity.patch | 0 .../0413-Don-t-require-FACING-data.patch | 0 ...geEvent-not-firing-for-all-use-cases.patch | 0 .../server/0415-Add-moon-phase-API.patch | 0 ...erver-load-chunks-from-newer-version.patch | 0 ...-headless-pistons-from-being-created.patch | 0 .../server/0418-Add-BellRingEvent.patch | 0 ...Add-zombie-targets-turtle-egg-config.patch | 0 .../server/0420-Buffer-joins-to-world.patch | 0 ...rs-not-working-in-some-kick-messages.patch | 0 ...CreateEvent-needs-to-know-its-entity.patch | 0 .../server/0423-Add-more-Evoker-API.patch | 0 ...-Add-methods-to-get-translation-keys.patch | 0 ...ate-HoverEvent-from-ItemStack-Entity.patch | 0 .../0426-Cache-block-data-strings.patch | 2 +- ...ortation-and-cancel-velocity-if-tele.patch | 2 +- ...al-open-container-api-to-HumanEntity.patch | 0 ...taFixerUpper-Rewrite-Rules-on-demand.patch | 0 ...p-capture-to-capture-all-items-added.patch | 0 ...y-Counter-to-allow-plugins-to-use-va.patch | 0 ...-track-plugin-scoreboards-by-default.patch | 0 .../server/0433-Entity-isTicking.patch | 0 ...-non-whitelisted-player-when-white-l.patch | 2 +- ...x-Concurrency-issue-in-ShufflingList.patch | 0 ...Reset-Ender-Crystals-on-Dragon-Spawn.patch | 0 ...r-large-move-vectors-crashing-server.patch | 2 +- .../server/0438-Optimise-getType-calls.patch | 0 .../server/0439-Villager-resetOffers.patch | 0 ...ace-order-when-capturing-blockstates.patch | 0 ...blockpos-allocation-from-pathfinding.patch | 0 ...tem-locations-dropped-from-campfires.patch | 0 ...43-Fix-bell-block-entity-memory-leak.patch | 0 ...ling-up-when-item-stack-is-empty-in-.patch | 0 ...-Add-getOfflinePlayerIfCached-String.patch | 0 .../0446-Add-ignore-discounts-API.patch | 0 ...-Toggle-for-removing-existing-dragon.patch | 0 ...ix-client-lag-on-advancement-loading.patch | 0 .../0449-Item-no-age-no-player-pickup.patch | 0 ...0450-Beacon-API-custom-effect-ranges.patch | 0 .../server/0451-Add-API-for-quit-reason.patch | 0 ...ing-Trader-spawn-rate-config-options.patch | 0 .../0453-Expose-world-spawn-angle.patch | 0 .../server/0454-Add-Destroy-Speed-API.patch | 0 ...r-spawnParticle-x-y-z-precision-loss.patch | 0 ...456-Add-LivingEntity-clearActiveItem.patch | 0 .../0457-Add-PlayerItemCooldownEvent.patch | 0 ...prove-performance-of-the-end-generat.patch | 0 .../server/0459-More-lightning-API.patch | 0 ...-should-not-bypass-cramming-gamerule.patch | 0 ...d-missing-default-perms-for-commands.patch | 0 .../0462-Add-PlayerShearBlockEvent.patch | 0 .../server/0463-Limit-recipe-packets.patch | 2 +- ...x-CraftSound-backwards-compatibility.patch | 0 ...0465-Player-Chunk-Load-Unload-Events.patch | 2 +- ...66-Optimize-Dynamic-get-Missing-Keys.patch | 0 ...7-Expose-LivingEntity-hurt-direction.patch | 0 ...-OBSTRUCTED-reason-to-BedEnterResult.patch | 0 ...nvalid-ingredient-lists-in-VillagerA.patch | 0 .../server/0470-Add-TargetHitEvent.patch | 0 .../0471-MC-4-Fix-item-position-desync.patch | 0 .../0472-Additional-Block-Material-API.patch | 0 .../server/0473-Fix-harming-potion-dupe.patch | 0 ...et-Material-from-Boats-and-Minecarts.patch | 0 .../server/0475-Cache-burn-durations.patch | 0 ...mob-spawner-spawn-egg-transformation.patch | 0 ...Fix-Not-a-string-Map-Conversion-spam.patch | 0 ...8-Add-PlayerFlowerPotManipulateEvent.patch | 0 ...act-event-not-being-called-sometimes.patch | 2 +- .../0480-Zombie-API-breaking-doors.patch | 0 ...0481-Fix-nerfed-slime-when-splitting.patch | 0 .../0482-Add-EntityLoadCrossbowEvent.patch | 0 .../0483-Add-WorldGameRuleChangeEvent.patch | 0 ...484-Add-ServerResourcesReloadedEvent.patch | 2 +- ...ld-settings-for-mobs-picking-up-loot.patch | 0 .../0486-Add-BlockFailedDispenseEvent.patch | 0 ...487-Add-PlayerLecternPageChangeEvent.patch | 0 ...488-Add-PlayerLoomPatternSelectEvent.patch | 0 ...onfigurable-door-breaking-difficulty.patch | 0 ...pty-commands-shall-not-be-dispatched.patch | 0 .../server/0491-Remove-stale-POIs.patch | 0 .../0492-Fix-villager-boat-exploit.patch | 0 .../server/0493-Add-sendOpLevel-API.patch | 0 .../0494-TODO-Registry-Modification-API.patch | 0 .../0495-Add-StructuresLocateEvent.patch | 2 +- ...n-for-requiring-a-player-participant.patch | 0 ...ileHitEvent-call-when-fireballs-dead.patch | 0 ...onent-with-empty-text-instead-of-thr.patch | 0 ...0499-Make-schedule-command-per-world.patch | 0 ...0500-Configurable-max-leash-distance.patch | 0 .../0501-Add-BlockPreDispenseEvent.patch | 0 ...02-Add-PlayerChangeBeaconEffectEvent.patch | 0 ...le-for-always-placing-the-dragon-egg.patch | 0 ...d-PlayerStonecutterRecipeSelectEvent.patch | 0 .../0505-Expand-EntityUnleashEvent.patch | 0 ...-shield-blocking-on-dimension-change.patch | 0 .../server/0507-Add-DragonEggFormEvent.patch | 0 .../server/0508-Add-EntityMoveEvent.patch | 2 +- ...disable-pathfinding-updates-on-block.patch | 0 .../0510-Inline-shift-direction-fields.patch | 0 ...w-adding-items-to-BlockDropItemEvent.patch | 0 ...ainThreadExecutor-to-BukkitScheduler.patch | 0 ...-entity-allow-attribute-registration.patch | 0 ...fix-dead-slime-setSize-invincibility.patch | 0 ...ipes-should-return-an-immutable-list.patch | 0 .../server/0516-Expose-Tracked-Players.patch | 0 .../server/0517-Improve-ServerGUI.patch | 0 ...0518-fix-converting-txt-to-json-file.patch | 0 .../server/0519-Add-worldborder-events.patch | 0 .../0520-Add-PlayerNameEntityEvent.patch | 0 ...-grindstones-from-overstacking-items.patch | 0 .../0522-Add-recipe-to-cook-events.patch | 0 .../server/0523-Add-Block-isValidTool.patch | 0 ...-using-signs-inside-spawn-protection.patch | 2 +- .../server/0525-Expand-world-key-API.patch | 0 ...lternative-constructor-for-Rotations.patch | 0 .../server/0527-Item-Rarity-API.patch | 0 ...ed-item-when-player-has-disconnected.patch | 0 ...telist-use-configurable-kick-message.patch | 2 +- ...ignore-result-of-PlayerEditBookEvent.patch | 2 +- .../server/0531-Expose-protocol-version.patch | 0 ...tab-completions-for-brigadier-comman.patch | 0 ...ItemConsumeEvent-cancelling-properly.patch | 0 .../server/0534-Add-bypass-host-check.patch | 0 .../0535-Set-area-affect-cloud-rotation.patch | 0 ...-add-isDeeplySleeping-to-HumanEntity.patch | 0 ...-add-consumeFuel-to-FurnaceBurnEvent.patch | 0 ...t-set-drop-chance-to-EntityEquipment.patch | 0 ...fix-PigZombieAngerEvent-cancellation.patch | 0 ...fix-PlayerItemHeldEvent-firing-twice.patch | 2 +- .../0541-Add-PlayerDeepSleepEvent.patch | 0 .../server/0542-More-World-API.patch | 0 .../0543-Add-PlayerBedFailEnterEvent.patch | 0 ...s-to-convert-between-Component-and-B.patch | 0 ...pawnEvent-fix-passed-parameter-issue.patch | 2 +- ...eacon-activation-deactivation-events.patch | 0 ...Add-Channel-initialization-listeners.patch | 0 ...mmands-if-tab-completion-is-disabled.patch | 0 .../0549-Add-more-WanderingTrader-API.patch | 0 ...Add-EntityBlockStorage-clearEntities.patch | 0 ...essage-to-PlayerAdvancementDoneEvent.patch | 0 .../0552-Add-HiddenPotionEffect-API.patch | 0 .../server/0553-Inventory-close.patch | 0 ...n-in-sunlight-API-for-Phantoms-and-S.patch | 0 .../server/0555-Add-basic-Datapack-API.patch | 0 ...nment-variable-to-disable-server-gui.patch | 0 ...557-Expand-PlayerGameModeChangeEvent.patch | 0 .../0558-ItemStack-repair-check-API.patch | 0 .../server/0559-More-Enchantment-API.patch | 0 ...ove-range-check-for-block-placing-up.patch | 2 +- .../server/0561-Add-Mob-lookAt-API.patch | 0 ...if-bucket-dispenses-will-succeed-for.patch | 0 .../0563-Add-Unix-domain-socket-support.patch | 2 +- .../0564-Add-EntityInsideBlockEvent.patch | 0 ...565-Attributes-API-for-item-defaults.patch | 0 ...cause-to-Weather-ThunderChangeEvents.patch | 0 .../server/0567-More-Lidded-Block-API.patch | 0 ...568-Limit-item-frame-cursors-on-maps.patch | 0 .../0569-Add-PlayerKickEvent-causes.patch | 0 .../0570-Add-PufferFishStateChangeEvent.patch | 0 ...yerBucketEmptyEvent-result-itemstack.patch | 0 ...ttedContainer-instead-of-ThreadingDe.patch | 0 ...n-to-fix-items-merging-through-walls.patch | 0 .../0574-Add-BellRevealRaiderEvent.patch | 0 .../0575-Fix-invulnerable-end-crystals.patch | 0 ...576-Add-ElderGuardianAppearanceEvent.patch | 0 .../0577-Fix-dangerous-end-portal-logic.patch | 0 ...e-Biome-Mob-Lookups-for-Mob-Spawning.patch | 0 ...9-Make-item-validations-configurable.patch | 0 .../server/0580-Line-Of-Sight-Changes.patch | 0 .../0581-add-per-world-spawn-limits.patch | 0 .../0582-Fix-potions-splash-events.patch | 0 .../0583-Add-more-LimitedRegion-API.patch | 0 ...PlayerDropItemEvent-using-wrong-item.patch | 0 .../server/0585-Missing-Entity-API.patch | 2 +- ...nect-for-book-edit-is-called-on-main.patch | 2 +- ...-of-Block-applyBoneMeal-always-being.patch | 0 ...etChunkIfLoadedImmediately-in-places.patch | 0 ...from-signs-not-firing-command-events.patch | 0 .../server/0590-Add-PlayerArmSwingEvent.patch | 2 +- ...k-event-leave-message-not-being-sent.patch | 2 +- ...g-for-mobs-immune-to-default-effects.patch | 0 ...n-t-apply-cramming-damage-to-players.patch | 0 ...nd-timings-for-sensors-and-behaviors.patch | 0 .../0595-Add-missing-forceDrop-toggles.patch | 0 .../server/0596-Stinger-API.patch | 0 ...ncy-issue-with-empty-map-items-in-CB.patch | 0 .../0598-Add-System.out-err-catcher.patch | 0 ...s-to-contain-the-source-jars-in-stac.patch | 0 ...-AFK-kick-while-watching-end-credits.patch | 2 +- ...riting-of-comments-to-server.propert.patch | 0 .../server/0602-Add-PlayerSetSpawnEvent.patch | 0 ...ers-respect-inventory-max-stack-size.patch | 0 ...mize-entity-tracker-passenger-checks.patch | 0 ...g-option-for-Piglins-guarding-chests.patch | 0 .../0606-Add-EntityDamageItemEvent.patch | 0 ...ptimize-indirect-passenger-iteration.patch | 0 ...tem-frame-map-cursor-update-interval.patch | 0 ...0609-Clear-bucket-NBT-after-dispense.patch | 0 ...target-without-changing-other-things.patch | 0 .../0611-Add-BlockBreakBlockEvent.patch | 0 ...prevent-NBT-copy-in-smithing-recipes.patch | 0 .../server/0613-More-CommandBlock-API.patch | 0 ...d-missing-team-sidebar-display-slots.patch | 0 .../0615-Add-back-EntityPortalExitEvent.patch | 0 ...o-find-targets-for-lightning-strikes.patch | 0 .../0617-Get-entity-default-attributes.patch | 0 .../server/0618-Left-handed-API.patch | 0 .../0619-Add-more-advancement-API.patch | 0 ...0620-Add-ItemFactory-getSpawnEgg-API.patch | 0 .../server/0621-Add-critical-damage-API.patch | 0 .../0622-Fix-issues-with-mob-conversion.patch | 0 ...Collidable-methods-to-various-places.patch | 0 .../server/0624-Goat-ram-API.patch | 0 ...Add-API-for-resetting-a-single-score.patch | 0 ...26-Add-Raw-Byte-Entity-Serialization.patch | 0 ...627-Vanilla-command-permission-fixes.patch | 0 ...-logic-for-inventories-on-chunk-unlo.patch | 0 ...629-Fix-GameProfileCache-concurrency.patch | 0 ...0630-Improve-and-expand-AsyncCatcher.patch | 2 +- ...aper-mobcaps-and-paper-playermobcaps.patch | 0 ...itize-ResourceLocation-error-logging.patch | 0 ...ally-inline-methods-in-BlockPosition.patch | 0 ...uler-threads-according-to-the-plugin.patch | 0 ...d-getChunkAt-has-inlined-logic-for-l.patch | 0 ...bour-chunk-data-off-disk-when-conver.patch | 0 ...id-state-when-raytracing-skip-air-bl.patch | 0 .../server/0638-Time-scoreboard-search.patch | 0 ...primise-map-impl-for-tracked-players.patch | 0 .../0640-Add-missing-InventoryType.patch | 0 ...timise-BlockSoil-nearby-water-lookup.patch | 0 ...entory-not-closing-on-entity-removal.patch | 0 ...irement-before-suggesting-root-nodes.patch | 0 ...-ServerboundCommandSuggestionPacket-.patch | 2 +- .../0645-Add-packet-limiter-config.patch | 0 ...rnColor-on-tropical-fish-bucket-meta.patch | 0 .../0647-Ensure-valid-vehicle-status.patch | 0 ...oftlocked-end-exit-portal-generation.patch | 0 ...or-causing-a-crash-when-trying-to-ge.patch | 0 ...n-t-log-debug-logging-being-disabled.patch | 0 ...ious-menus-with-empty-level-accesses.patch | 0 .../0652-Preserve-overstacked-loot.patch | 0 ...date-head-rotation-in-missing-places.patch | 0 ...-unintended-light-block-manipulation.patch | 0 .../0655-Fix-CraftCriteria-defaults-map.patch | 0 ...-Fix-upstreams-block-state-factories.patch | 0 .../0657-Configurable-feature-seeds.patch | 2 +- .../0658-Add-root-admin-user-detection.patch | 0 ...ways-allow-item-changing-in-Fireball.patch | 0 ...-t-attempt-to-teleport-dead-entities.patch | 0 ...sive-velocity-through-repeated-crits.patch | 0 ...de-code-using-deprecated-for-removal.patch | 0 ...removing-recipes-from-RecipeIterator.patch | 0 ...oversized-item-data-in-equipment-and.patch | 0 ...de-unnecessary-itemmeta-from-clients.patch | 2 +- .../0666-Fix-Spigot-growth-modifiers.patch | 0 ...rOpenersCounter-openCount-from-going.patch | 0 .../0668-Add-PlayerItemFrameChangeEvent.patch | 0 .../server/0669-Optimize-HashMapPalette.patch | 0 ...llow-delegation-to-vanilla-chunk-gen.patch | 0 ...t-isSectionEmpty-int-and-optimize-Pa.patch | 0 .../server/0672-Add-more-Campfire-API.patch | 0 ...-data-to-disk-if-it-serializes-witho.patch | 0 ...ward-CraftEntity-in-teleport-command.patch | 0 .../0675-Improve-scoreboard-entries.patch | 0 .../0676-Entity-powdered-snow-API.patch | 0 .../0677-Add-API-for-item-entity-health.patch | 0 ...max-block-light-for-monster-spawning.patch | 0 ...-pistons-and-BlockPistonRetractEvent.patch | 0 ...mplifiers-greater-than-127-correctly.patch | 0 ...d-canSmelt-methods-to-FurnaceInvento.patch | 0 .../0682-Fix-bees-aging-inside-hives.patch | 0 .../server/0683-Bucketable-API.patch | 0 .../server/0684-Validate-usernames.patch | 0 ...ter-animal-spawn-height-configurable.patch | 0 ...vanilla-BiomeProvider-from-WorldInfo.patch | 2 +- ...tion-for-worlds-affected-by-time-cmd.patch | 0 ...check-for-PersistentDataContainer-ha.patch | 0 ...89-Multiple-Entries-with-Scoreboards.patch | 2 +- ...0690-Reset-placed-block-on-exception.patch | 0 ...-configurable-height-for-slime-spawn.patch | 0 .../0692-Fix-xp-reward-for-baby-zombies.patch | 0 ...ulti-Block-Change-API-Implementation.patch | 0 .../server/0694-Fix-NotePlayEvent.patch | 0 .../server/0695-Freeze-Tick-Lock-API.patch | 0 .../0696-More-PotionEffectType-API.patch | 0 ...-for-StructureTemplate.Pallete-cache.patch | 0 ...-command-sender-which-forwards-feedb.patch | 0 ...d-missing-structure-set-seed-configs.patch | 2 +- .../0700-Implement-regenerateChunk.patch | 0 ...elled-powdered-snow-bucket-placement.patch | 0 ...date-calls-to-CraftServer-getSpawnLi.patch | 0 .../server/0703-Add-GameEvent-tags.patch | 0 ...sks-fairly-for-worlds-while-waiting-.patch | 2 +- .../server/0705-Furnace-RecipesUsed-API.patch | 0 ...igurable-sculk-sensor-listener-range.patch | 0 ...dd-missing-block-data-mins-and-maxes.patch | 0 ...efault-CustomSpawners-in-custom-worl.patch | 2 +- ...o-worldlist-before-initing-the-world.patch | 2 +- .../0710-Fix-Entity-Position-Desync.patch | 0 .../server/0711-Custom-Potion-Mixes.patch | 2 +- ...712-Force-close-world-loading-screen.patch | 0 ...0713-Fix-falling-block-spawn-methods.patch | 0 ...-Expose-furnace-minecart-push-values.patch | 0 ...rojectileHitEvent-for-piercing-arrow.patch | 0 .../server/0716-More-Projectile-API.patch | 0 ...ix-swamp-hut-cat-generation-deadlock.patch | 0 ...cle-movement-from-players-while-tele.patch | 2 +- .../0719-Implement-getComputedBiome-API.patch | 0 .../0720-Make-some-itemstacks-nonnull.patch | 0 ...0721-Implement-enchantWithLevels-API.patch | 0 .../0722-Fix-saving-in-unloadWorld.patch | 0 .../0723-Buffer-OOB-setBlock-calls.patch | 0 .../0724-Add-TameableDeathMessageEvent.patch | 0 ...lock-data-for-EntityChangeBlockEvent.patch | 0 ...ables-running-when-mob-loot-gamerule.patch | 0 ...assenger-world-matches-ridden-entity.patch | 0 .../server/0728-cache-resource-keys.patch | 0 ...llow-changing-the-EnderDragon-podium.patch | 0 ...verriding-a-block-entity-during-worl.patch | 0 ...nt-tile-entity-copies-loading-chunks.patch | 2 +- ...tead-of-display-name-in-PlayerList-g.patch | 0 .../0733-Expand-PlayerItemDamageEvent.patch | 0 .../0734-WorldCreator-keepSpawnLoaded.patch | 0 ...E-in-CraftPersistentDataTypeRegistry.patch | 0 ..._destroyed-trigger-in-the-correct-pl.patch | 0 ...eEvent-and-CollarColorable-interface.patch | 0 ...-CauldronLevelChange-on-initial-fill.patch | 0 ...-snow-cauldrons-not-turning-to-water.patch | 0 .../0740-Add-PlayerStopUsingItemEvent.patch | 0 .../server/0741-Don-t-tick-markers.patch | 0 .../server/0742-Expand-FallingBlock-API.patch | 0 .../0743-Add-support-for-Proxy-Protocol.patch | 0 ...ix-OfflinePlayer-getBedSpawnLocation.patch | 0 ...ntory-for-smokers-and-blast-furnaces.patch | 0 ...y-read-and-store-sus-effect-duration.patch | 0 .../0747-Sanitize-sent-BlockEntity-NBT.patch | 0 ...t-selector-resolving-in-books-by-def.patch | 0 ...entity-loading-causing-async-lookups.patch | 0 ...n-on-world-create-while-being-ticked.patch | 2 +- ...751-Dont-resent-entity-on-art-update.patch | 0 .../0752-Add-WardenAngerChangeEvent.patch | 0 ...-strict-advancement-dimension-checks.patch | 0 ...rtant-BlockStateListPopulator-method.patch | 0 .../server/0755-Nameable-Banner-API.patch | 0 ...broadcast-messages-to-command-blocks.patch | 0 ...mpty-items-from-being-added-to-world.patch | 0 ...shPotion-and-LingeringPotion-spawnin.patch | 0 .../server/0759-Add-Player-getFishHook.patch | 0 ...-chunk-for-dynamic-game-event-listen.patch | 0 ...us-missing-EntityDropItemEvent-calls.patch | 0 .../server/0762-Fix-Bee-flower-NPE.patch | 0 ...g-not-using-commands.spam-exclusions.patch | 2 +- .../server/0764-More-Teleport-API.patch | 0 .../0765-Add-EntityPortalReadyEvent.patch | 0 ...-level-random-in-entity-constructors.patch | 0 ...ck-entities-after-destroy-prediction.patch | 2 +- ...-on-plugins-accessing-faraway-chunks.patch | 0 ...stom-Chat-Completion-Suggestions-API.patch | 0 ...-Add-and-fix-missing-BlockFadeEvents.patch | 0 .../server/0771-Collision-API.patch | 0 ...and-message-for-brigadier-syntax-exc.patch | 0 .../server/0773-Block-Ticking-API.patch | 0 ...4-Add-Velocity-IP-Forwarding-Support.patch | 0 ...0775-Add-NamespacedKey-biome-methods.patch | 0 ...ix-plugin-loggers-on-server-shutdown.patch | 2 +- ...ook-changes-from-crashing-the-server.patch | 0 ...ntityChangeBlockEvent-in-more-places.patch | 0 .../0779-Missing-eating-regain-reason.patch | 0 .../server/0780-Missing-effect-cause.patch | 0 ...-serialization-deserialization-for-P.patch | 0 ...arameter-to-ProjectileSource-launchP.patch | 0 ...83-Call-BlockPhysicsEvent-more-often.patch | 0 .../0784-Configurable-chat-thread-limit.patch | 2 +- ...-of-WorldCreator-keepSpawnLoaded-ret.patch | 0 .../0786-fix-Jigsaw-block-kicking-user.patch | 0 ...rmEvent-for-mud-converting-into-clay.patch | 0 .../0788-Add-getDrops-to-BlockState.patch | 0 .../0789-Fix-a-bunch-of-vanilla-bugs.patch | 0 ...ry-onTrackingStart-during-navigation.patch | 0 .../0791-Fix-custom-piglin-loved-items.patch | 0 .../0792-EntityPickupItemEvent-fixes.patch | 0 ...-interactions-with-items-on-cooldown.patch | 0 ...4-Add-PlayerInventorySlotChangeEvent.patch | 0 .../0795-Elder-Guardian-appearance-API.patch | 0 ...low-changing-bed-s-occupied-property.patch | 0 .../0797-Add-entity-knockback-API.patch | 0 .../server/0798-Detect-headless-JREs.patch | 0 ...y-vehicle-collision-event-not-called.patch | 0 .../0800-Add-EntityToggleSitEvent.patch | 0 .../0801-Add-fire-tick-delay-option.patch | 0 .../server/0802-Add-Moving-Piston-API.patch | 0 .../0803-Ignore-impossible-spawn-tick.patch | 0 ...-source-for-fireworks-from-dispenser.patch | 0 ...nt-suggestion-permissions-to-align-w.patch | 0 ...tEvent-cancellation-cant-fully-preve.patch | 0 .../0807-Add-PrePlayerAttackEntityEvent.patch | 0 ...re-reset-EnderDragon-boss-event-name.patch | 0 ...7-green-map-markers-do-not-disappear.patch | 0 .../0810-Add-Player-Warden-Warning-API.patch | 0 ...la-friendly-methods-to-update-trades.patch | 0 ...0812-Add-paper-dumplisteners-command.patch | 0 ...global-player-list-where-appropriate.patch | 0 ...async-entity-add-due-to-fungus-trees.patch | 0 .../server/0815-ItemStack-damage-API.patch | 0 .../server/0816-Friction-API.patch | 0 ...ntrol-player-s-insomnia-and-phantoms.patch | 0 ...x-premature-player-kicks-on-shutdown.patch | 2 +- .../0819-Sync-offhand-slot-in-menus.patch | 0 .../0820-Player-Entity-Tracking-Events.patch | 0 .../server/0821-Limit-pet-look-distance.patch | 0 ...and-additions-to-the-SpawnReason-API.patch | 0 .../server/0823-fix-Instruments.patch | 0 ...-for-some-hot-BlockBehavior-and-Flui.patch | 0 ...ies-in-dispense-events-regarding-sta.patch | 0 .../server/0826-Add-BlockLockCheckEvent.patch | 0 .../0827-Add-Sneaking-API-for-Entities.patch | 0 .../0828-Improve-logging-and-errors.patch | 2 +- .../server/0829-Improve-PortalEvents.patch | 0 ...tion-for-spider-worldborder-climbing.patch | 0 ...ssing-SpigotConfig-logCommands-check.patch | 2 +- ...-Allay-stopDancing-while-not-dancing.patch | 0 .../server/0833-Flying-Fall-Damage.patch | 0 ...ck-state-to-BlockExplodeEvent-and-En.patch | 0 ...sion-moving-velocity-to-VehicleBlock.patch | 0 ...config-for-disabling-entity-tag-tags.patch | 0 ...le-player-info-update-packet-on-join.patch | 2 +- ...nk-items-during-EntityResurrectEvent.patch | 0 .../server/0839-Win-Screen-API.patch | 0 ...tItemStack-setAmount-null-assignment.patch | 0 ...Fix-force-opening-enchantment-tables.patch | 0 .../server/0842-Add-Entity-Body-Yaw-API.patch | 0 ...event-sleeping-villagers-moving-towa.patch | 2 +- .../0844-Add-EntityFertilizeEggEvent.patch | 0 ...ity-drop-not-updating-the-client-inv.patch | 0 ...ItemEvent-and-EntityCompostItemEvent.patch | 0 ...ectly-handle-ArmorStand-invisibility.patch | 0 ...vancement-triggers-for-entity-damage.patch | 0 ...0849-Fix-text-display-error-on-spawn.patch | 0 ...inventories-returning-null-Locations.patch | 0 .../server/0851-Add-Shearable-API.patch | 0 ...-Fix-SpawnEggMeta-get-setSpawnedType.patch | 0 ...ng-to-bad-recipes-in-furnace-like-ti.patch | 0 ...uence-violations-like-they-should-be.patch | 2 +- ...duplicate-animate-packet-for-records.patch | 0 ...expired-keys-from-impacting-new-join.patch | 2 +- ...nts-being-fired-from-unloaded-chunks.patch | 0 .../0858-Use-array-for-gamerule-storage.patch | 0 ...-Fix-a-couple-of-upstream-bed-issues.patch | 0 ...Fix-demo-flag-not-enabling-demo-mode.patch | 0 .../0861-Add-Mob-Experience-reward-API.patch | 0 ...-redstone-on-top-of-trap-doors-early.patch | 0 ...-Lazy-Initialization-for-Enum-Fields.patch | 2 +- ...864-More-accurate-isInOpenWater-impl.patch | 0 ...access-to-lookups-field-in-RegistryO.patch | 2 +- .../0866-Expand-PlayerItemMendEvent.patch | 0 ...esh-ProjectileSource-for-projectiles.patch | 0 .../0868-Add-transient-modifier-API.patch | 0 .../server/0869-Fix-block-place-logic.patch | 0 ...und-playing-for-BlockItem-ItemStacks.patch | 0 ...ll-BlockGrowEvent-for-missing-blocks.patch | 0 ...anhasbukkit-default-if-alias-block-e.patch | 0 ...apLike-spam-for-missing-key-selector.patch | 0 ...4-Fix-sniffer-removeExploredLocation.patch | 0 ...-to-remove-all-active-potion-effects.patch | 0 ...crafting-result-amount-for-fireworks.patch | 0 ...77-Add-event-for-player-editing-sign.patch | 0 ...ck-item-frames-if-players-can-see-it.patch | 0 ...permission-levels-for-command-blocks.patch | 0 ...-Add-option-to-disable-block-updates.patch | 0 ...0881-Call-missing-BlockDispenseEvent.patch | 0 ...d-chunks-for-supporting-block-checks.patch | 0 ...-Optimize-player-lookups-for-beacons.patch | 0 ...0884-Add-Sign-getInteractableSideFor.patch | 0 ...885-Array-backed-synched-entity-data.patch | 0 ...86-fix-item-meta-for-tadpole-buckets.patch | 0 .../server/0887-Fix-BanList-API.patch | 0 ...nd-water-fluid-explosion-resistance-.patch | 0 ...ix-possible-NPE-on-painting-creation.patch | 0 ...Timer-for-Wandering-Traders-spawned-.patch | 0 ...enceOrb-should-call-EntitySpawnEvent.patch | 0 ...st-throw-both-Spread-and-Grow-Events.patch | 0 .../server/0893-Add-whitelist-events.patch | 0 .../0894-Implement-PlayerFailMoveEvent.patch | 2 +- ...Folia-scheduler-and-owned-region-API.patch | 2 +- ...ase-allay-memory-on-non-item-targets.patch | 0 ...-API-for-updating-recipes-on-clients.patch | 0 ...ation-when-spawning-display-entities.patch | 0 ...0899-Only-capture-actual-tree-growth.patch | 0 ...urce-for-mushroom-block-spread-event.patch | 0 ...eData-on-more-entities-when-spawning.patch | 0 ...2-Use-correct-seed-on-api-world-load.patch | 0 ...ata-neighbour-ticks-outside-of-range.patch | 0 .../0904-Cache-map-ids-on-item-frames.patch | 0 ...x-custom-statistic-criteria-creation.patch | 0 .../server/0906-Bandaid-fix-for-Effect.patch | 0 .../server/0907-SculkCatalyst-bloom-API.patch | 0 ...-API-for-an-entity-s-scoreboard-name.patch | 0 ...place-methods-with-old-StructureType.patch | 0 ...te-namespaced-commands-if-send-names.patch | 2 +- ...y-handle-BlockBreakEvent-isDropItems.patch | 0 ...-entity-death-event-for-ender-dragon.patch | 0 ...ntity-tracking-range-by-Y-coordinate.patch | 0 .../0914-Add-Listing-API-for-Player.patch | 0 ...nfigurable-Region-Compression-Format.patch | 0 ...16-Add-BlockFace-to-BlockDamageEvent.patch | 0 .../0917-Fix-NPE-on-Boat-getStatus.patch | 0 .../server/0918-Expand-Pose-API.patch | 0 .../server/0919-More-DragonBattle-API.patch | 0 .../0920-Deep-clone-unhandled-nbt-tags.patch | 0 .../server/0921-Add-PlayerPickItemEvent.patch | 2 +- .../0922-Allow-trident-custom-damage.patch | 0 ...23-Expose-hand-in-BlockCanBuildEvent.patch | 0 ...e-nearest-structure-border-iteration.patch | 2 +- ...-Implement-OfflinePlayer-isConnected.patch | 2 +- .../server/0926-Fix-inventory-desync.patch | 0 ...-titleOverride-to-InventoryOpenEvent.patch | 0 ...928-Configure-sniffer-egg-hatch-time.patch | 0 ...l-proximity-check-before-entity-look.patch | 0 ...Skip-POI-finding-if-stuck-in-vehicle.patch | 0 ...ot-sanity-checks-in-container-clicks.patch | 2 +- ...all-BlockRedstoneEvents-for-lecterns.patch | 0 ...proper-checking-of-empty-item-stacks.patch | 0 ...Fix-silent-equipment-change-for-mobs.patch | 2 +- .../0935-Fix-spigot-s-Forced-Stats.patch | 0 ...sing-InventoryHolders-to-inventories.patch | 0 ...-entities-in-chunks-that-are-positio.patch | 0 ...ssing-logs-for-log-ips-config-option.patch | 0 ...on-on-UpgradeData.BlockFixers-class-.patch | 0 ...n-AdvancementProgress-getDateAwarded.patch | 0 ...sidebar-objectives-not-being-cleared.patch | 0 ...ix-missing-map-initialize-event-call.patch | 0 ...ta-when-attaching-firework-to-entity.patch | 0 ...able-for-initializing-CraftLootTable.patch | 0 ...945-Fix-UnsafeValues-loadAdvancement.patch | 0 .../0946-Add-player-idle-duration-API.patch | 0 ...k-if-we-can-see-non-visible-entities.patch | 0 ...-NPE-in-SculkBloomEvent-world-access.patch | 0 ...stack-for-Player-sendEquipmentChange.patch | 0 .../server/0950-Optimize-VarInts.patch | 0 ...he-collision-shape-of-a-block-before.patch | 0 ...predicate-for-blocks-when-raytracing.patch | 0 ...tem-packets-with-collector-as-source.patch | 0 .../0954-Expand-LingeringPotion-API.patch | 0 .../server/0955-Add-MaterialTagsTest.patch | 0 ...ingEffect-powers-lightning-rods-and-.patch | 0 ...sh-event-for-all-player-interactions.patch | 0 ...several-issues-with-EntityBreedEvent.patch | 0 ...0959-Add-UUID-attribute-modifier-API.patch | 0 ...g-event-call-for-entity-teleport-API.patch | 0 ...ly-create-LootContext-for-criterions.patch | 2 +- ...n-t-fire-sync-events-during-worldgen.patch | 0 .../server/0963-Add-Structure-check-API.patch | 0 ...m-getAttributeModifier-duplication-c.patch | 0 ...estore-vanilla-entity-drops-behavior.patch | 0 ...6-Dont-resend-blocks-on-interactions.patch | 0 .../server/0967-add-more-scoreboard-API.patch | 0 .../server/0968-Improve-Registry.patch | 0 ...-on-null-loc-for-EntityTeleportEvent.patch | 0 .../0970-Add-experience-points-API.patch | 0 .../0971-Add-drops-to-shear-events.patch | 0 .../0972-Add-PlayerShieldDisableEvent.patch | 0 ...date-ResourceLocation-in-NBT-reading.patch | 2 +- ...e-experience-dropping-on-block-break.patch | 0 .../0975-Fixup-NamespacedKey-handling.patch | 0 ...976-Expose-LootTable-of-DecoratedPot.patch | 0 ...llocation-of-Vec3D-by-entity-tracker.patch | 2 +- .../0978-Rewrite-dataconverter-system.patch | 2 +- .../server/0979-Starlight.patch | 0 .../server/0980-Rewrite-chunk-system.patch | 2 +- ...-incremental-chunk-and-player-saving.patch | 2 +- ...ldBounds-and-getBlockState-for-inlin.patch | 0 ...item-frames-performance-and-bug-fixe.patch | 0 ...cing-for-EntityLiving-hasLineOfSight.patch | 0 ...-Manager-and-add-advanced-packet-sup.patch | 0 ...986-Allow-Saving-of-Oversized-Chunks.patch | 0 ...987-Fix-World-isChunkGenerated-calls.patch | 0 ...0988-Flat-bedrock-generator-settings.patch | 0 .../0989-Entity-Activation-Range-2.0.patch | 2 +- .../0990-Optional-per-player-mob-spawns.patch | 0 .../server/0991-Anti-Xray.patch | 0 ...ng-PreCreatureSpawnEvent-with-per-pl.patch | 0 ...ptimize-Collision-to-not-load-chunks.patch | 0 ...oalSelector-Goal.Flag-Set-operations.patch | 0 ...995-Entity-load-save-limit-per-chunk.patch | 0 ...x-and-optimise-world-force-upgrading.patch | 2 +- .../0997-Improved-Watchdog-Support.patch | 2 +- .../0998-Optimize-Voxel-Shape-Merging.patch | 0 .../0999-Write-SavedData-IO-async.patch | 0 ...and-End-Portal-Frames-from-being-des.patch | 0 ...tance-map-to-optimise-entity-tracker.patch | 2 +- ...-Optimize-Bit-Operations-by-inlining.patch | 0 .../1003-Remove-streams-from-hot-code.patch | 0 ...4-Eigencraft-redstone-implementation.patch | 0 ...der-Remove-Streams-Optimized-collect.patch | 0 ...erTradeEvent-and-PlayerPurchaseEvent.patch | 0 ...7-Improve-boat-collision-performance.patch | 0 .../1008-Optimise-general-POI-access.patch | 0 ...lementation-for-blockstate-state-loo.patch | 0 .../1010-Execute-chunk-tasks-mid-tick.patch | 2 +- .../1011-Optimise-random-block-ticking.patch | 2 +- ...culate-regionfile-header-if-it-is-co.patch | 0 ...ocity-compression-and-cipher-natives.patch | 0 ...l-more-information-in-watchdog-dumps.patch | 2 +- .../server/1015-Collision-optimisations.patch | 0 ...on-checking-in-player-move-packet-ha.patch | 2 +- ...re-disarming-not-working-as-intended.patch | 0 ...y-type-tags-suggestions-in-selectors.patch | 0 ...nate-Current-redstone-implementation.patch | 0 ...020-optimize-dirt-and-snow-spreading.patch | 0 .../1021-Properly-resend-entities.patch | 2 +- .../server/1022-Optimize-Hoppers.patch | 2 +- ...3-Improve-performance-of-mass-crafts.patch | 0 .../1024-Actually-optimise-explosions.patch | 0 .../1025-Optimise-chunk-tick-iteration.patch | 0 .../server/1026-Lag-compensation-ticks.patch | 2 +- ...027-Optimise-nearby-player-retrieval.patch | 0 .../1028-Distance-manager-tick-timings.patch | 0 ...e-Oversized-block-entities-in-chunks.patch | 2 +- ...-packets-for-hard-colliding-entities.patch | 0 .../1031-Add-ShulkerDuplicateEvent.patch | 0 ...Add-api-for-spawn-egg-texture-colors.patch | 0 ...33-Disable-memory-reserve-allocating.patch | 0 .../1034-Improve-tag-parser-handling.patch | 2 +- .../1035-Add-Lifecycle-Event-system.patch | 0 .../server/1036-Conduit-API.patch | 0 .../server/1037-ItemStack-Tooltip-API.patch | 0 ...tackOverflowError-for-some-dispenses.patch | 0 ...he-changed-item-from-dispense-events.patch | 0 ...kSnapshot-includeLightData-parameter.patch | 0 .../server/1041-Add-FluidState-API.patch | 0 .../server/1042-add-number-format-api.patch | 0 ...heck-if-itemstack-is-stackable-first.patch | 0 ...eByEntityEvent-for-unowned-wither-sk.patch | 0 .../server/1045-improve-BanList-types.patch | 0 ...6-Configurable-max-block-fluid-ticks.patch | 0 ...047-disable-forced-empty-world-ticks.patch | 0 .../1048-Suspicious-Effect-Entry-API.patch | 0 ...9-Per-world-ticks-per-spawn-settings.patch | 0 ...ing-message-for-initial-server-start.patch | 4 +- .../server/1051-Fix-DamageSource-API.patch | 2 +- .../server/1052-Expanded-Hopper-API.patch | 0 ...invalid-block-entity-during-world-ge.patch | 0 ...54-Add-BlockBreakProgressUpdateEvent.patch | 0 .../1055-Deprecate-ItemStack-setType.patch | 0 .../server/1056-Item-Mutation-Fixes.patch | 0 .../1057-API-for-checking-sent-chunks.patch | 0 .../1058-Add-CartographyItemEvent.patch | 0 .../server/1059-More-Raid-API.patch | 0 work/BuildData | 2 +- work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 1409 files changed, 1134 insertions(+), 1281 deletions(-) rename patches/api/{0193-Add-item-slot-convenience-methods.patch => 0192-Add-item-slot-convenience-methods.patch} (100%) delete mode 100644 patches/api/0192-Fix-Potion-toItemStack-swapping-the-extended-and-upg.patch rename patches/api/{0194-Villager-Restocks-API.patch => 0193-Villager-Restocks-API.patch} (100%) rename patches/api/{0195-Expose-game-version.patch => 0194-Expose-game-version.patch} (83%) rename patches/api/{0196-Add-Mob-Goal-API.patch => 0195-Add-Mob-Goal-API.patch} (96%) rename patches/api/{0197-Add-villager-reputation-API.patch => 0196-Add-villager-reputation-API.patch} (100%) rename patches/api/{0198-Spawn-Reason-API.patch => 0197-Spawn-Reason-API.patch} (100%) rename patches/api/{0199-Potential-bed-API.patch => 0198-Potential-bed-API.patch} (100%) rename patches/api/{0200-Inventory-getHolder-method-without-block-snapshot.patch => 0199-Inventory-getHolder-method-without-block-snapshot.patch} (100%) rename patches/api/{0201-Add-and-implement-PlayerRecipeBookClickEvent.patch => 0200-Add-and-implement-PlayerRecipeBookClickEvent.patch} (100%) rename patches/api/{0202-Support-components-in-ItemMeta.patch => 0201-Support-components-in-ItemMeta.patch} (87%) rename patches/api/{0203-added-2-new-TargetReasons-for-1.16-mob-behavior.patch => 0202-added-2-new-TargetReasons-for-1.16-mob-behavior.patch} (100%) rename patches/api/{0204-Add-entity-liquid-API.patch => 0203-Add-entity-liquid-API.patch} (88%) rename patches/api/{0205-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch => 0204-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch} (100%) rename patches/api/{0206-Add-BellRingEvent.patch => 0205-Add-BellRingEvent.patch} (100%) rename patches/api/{0207-Brand-support.patch => 0206-Brand-support.patch} (85%) rename patches/api/{0208-Add-moon-phase-API.patch => 0207-Add-moon-phase-API.patch} (100%) rename patches/api/{0209-Add-playPickupItemAnimation-to-LivingEntity.patch => 0208-Add-playPickupItemAnimation-to-LivingEntity.patch} (89%) rename patches/api/{0210-Add-more-Evoker-API.patch => 0209-Add-more-Evoker-API.patch} (100%) rename patches/api/{0211-Add-methods-to-get-translation-keys.patch => 0210-Add-methods-to-get-translation-keys.patch} (94%) rename patches/api/{0212-Create-HoverEvent-from-ItemStack-Entity.patch => 0211-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/api/{0213-Add-additional-open-container-api-to-HumanEntity.patch => 0212-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/api/{0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0213-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (100%) rename patches/api/{0215-Entity-isTicking.patch => 0214-Entity-isTicking.patch} (79%) rename patches/api/{0216-Villager-resetOffers.patch => 0215-Villager-resetOffers.patch} (100%) rename patches/api/{0217-Player-elytra-boost-API.patch => 0216-Player-elytra-boost-API.patch} (91%) rename patches/api/{0218-Add-getOfflinePlayerIfCached-String.patch => 0217-Add-getOfflinePlayerIfCached-String.patch} (88%) rename patches/api/{0219-Add-ignore-discounts-API.patch => 0218-Add-ignore-discounts-API.patch} (100%) rename patches/api/{0220-Item-no-age-no-player-pickup.patch => 0219-Item-no-age-no-player-pickup.patch} (100%) rename patches/api/{0221-Beacon-API-custom-effect-ranges.patch => 0220-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/api/{0222-Add-API-for-quit-reason.patch => 0221-Add-API-for-quit-reason.patch} (100%) rename patches/api/{0223-Add-Destroy-Speed-API.patch => 0222-Add-Destroy-Speed-API.patch} (100%) rename patches/api/{0224-Add-LivingEntity-clearActiveItem.patch => 0223-Add-LivingEntity-clearActiveItem.patch} (82%) rename patches/api/{0225-Add-PlayerItemCooldownEvent.patch => 0224-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/api/{0226-More-lightning-API.patch => 0225-More-lightning-API.patch} (100%) rename patches/api/{0227-Add-PlayerShearBlockEvent.patch => 0226-Add-PlayerShearBlockEvent.patch} (100%) rename patches/api/{0228-Player-Chunk-Load-Unload-Events.patch => 0227-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/api/{0229-Expose-LivingEntity-hurt-direction.patch => 0228-Expose-LivingEntity-hurt-direction.patch} (91%) rename patches/api/{0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0229-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (100%) rename patches/api/{0231-Added-PlayerTradeEvent.patch => 0230-Added-PlayerTradeEvent.patch} (100%) rename patches/api/{0232-Add-TargetHitEvent-API.patch => 0231-Add-TargetHitEvent-API.patch} (100%) rename patches/api/{0233-Additional-Block-Material-API-s.patch => 0232-Additional-Block-Material-API-s.patch} (100%) rename patches/api/{0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch => 0233-Add-API-to-get-Material-from-Boats-and-Minecarts.patch} (100%) rename patches/api/{0235-Add-PlayerFlowerPotManipulateEvent.patch => 0234-Add-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/api/{0236-Zombie-API-breaking-doors.patch => 0235-Zombie-API-breaking-doors.patch} (100%) rename patches/api/{0237-Add-EntityLoadCrossbowEvent.patch => 0236-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/api/{0238-Added-WorldGameRuleChangeEvent.patch => 0237-Added-WorldGameRuleChangeEvent.patch} (100%) rename patches/api/{0239-Added-ServerResourcesReloadedEvent.patch => 0238-Added-ServerResourcesReloadedEvent.patch} (100%) rename patches/api/{0240-Add-BlockFailedDispenseEvent.patch => 0239-Add-BlockFailedDispenseEvent.patch} (100%) rename patches/api/{0241-Added-PlayerLecternPageChangeEvent.patch => 0240-Added-PlayerLecternPageChangeEvent.patch} (100%) rename patches/api/{0242-Added-PlayerLoomPatternSelectEvent.patch => 0241-Added-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/api/{0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch => 0242-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch} (100%) rename patches/api/{0244-Add-sendOpLevel-API.patch => 0243-Add-sendOpLevel-API.patch} (88%) rename patches/api/{0245-Add-PaperRegistry.patch => 0244-Add-PaperRegistry.patch} (100%) rename patches/api/{0246-Add-StructuresLocateEvent.patch => 0245-Add-StructuresLocateEvent.patch} (99%) rename patches/api/{0247-Add-BlockPreDispenseEvent.patch => 0246-Add-BlockPreDispenseEvent.patch} (100%) rename patches/api/{0248-Added-PlayerChangeBeaconEffectEvent.patch => 0247-Added-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/api/{0249-Added-PlayerStonecutterRecipeSelectEvent.patch => 0248-Added-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/api/{0250-Add-dropLeash-variable-to-EntityUnleashEvent.patch => 0249-Add-dropLeash-variable-to-EntityUnleashEvent.patch} (100%) rename patches/api/{0251-add-DragonEggFormEvent.patch => 0250-add-DragonEggFormEvent.patch} (100%) rename patches/api/{0252-EntityMoveEvent.patch => 0251-EntityMoveEvent.patch} (100%) rename patches/api/{0253-Allow-adding-items-to-BlockDropItemEvent.patch => 0252-Allow-adding-items-to-BlockDropItemEvent.patch} (100%) rename patches/api/{0254-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0253-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/api/{0255-living-entity-allow-attribute-registration.patch => 0254-living-entity-allow-attribute-registration.patch} (100%) rename patches/api/{0256-Add-missing-effects.patch => 0255-Add-missing-effects.patch} (94%) rename patches/api/{0257-Expose-Tracked-Players.patch => 0256-Expose-Tracked-Players.patch} (84%) rename patches/api/{0258-Cache-the-result-of-Material-isBlock.patch => 0257-Cache-the-result-of-Material-isBlock.patch} (81%) rename patches/api/{0259-Add-worldborder-events.patch => 0258-Add-worldborder-events.patch} (100%) rename patches/api/{0260-added-PlayerNameEntityEvent.patch => 0259-added-PlayerNameEntityEvent.patch} (100%) rename patches/api/{0261-Add-recipe-to-cook-events.patch => 0260-Add-recipe-to-cook-events.patch} (100%) rename patches/api/{0262-Add-Block-isValidTool.patch => 0261-Add-Block-isValidTool.patch} (100%) rename patches/api/{0263-Expand-world-key-API.patch => 0262-Expand-world-key-API.patch} (95%) rename patches/api/{0264-Item-Rarity-API.patch => 0263-Item-Rarity-API.patch} (95%) rename patches/api/{0265-Expose-protocol-version.patch => 0264-Expose-protocol-version.patch} (100%) rename patches/api/{0266-add-isDeeplySleeping-to-HumanEntity.patch => 0265-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/api/{0267-add-consumeFuel-to-FurnaceBurnEvent.patch => 0266-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/api/{0268-add-get-set-drop-chance-to-EntityEquipment.patch => 0267-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/api/{0269-Added-PlayerDeepSleepEvent.patch => 0268-Added-PlayerDeepSleepEvent.patch} (100%) rename patches/api/{0270-More-World-API.patch => 0269-More-World-API.patch} (96%) rename patches/api/{0271-Added-PlayerBedFailEnterEvent.patch => 0270-Added-PlayerBedFailEnterEvent.patch} (100%) rename patches/api/{0272-Introduce-beacon-activation-deactivation-events.patch => 0271-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/api/{0273-PlayerMoveEvent-Improvements.patch => 0272-PlayerMoveEvent-Improvements.patch} (100%) rename patches/api/{0274-add-RespawnFlags-to-PlayerRespawnEvent.patch => 0273-add-RespawnFlags-to-PlayerRespawnEvent.patch} (100%) rename patches/api/{0275-Add-more-WanderingTrader-API.patch => 0274-Add-more-WanderingTrader-API.patch} (100%) rename patches/api/{0276-Add-EntityBlockStorage-clearEntities.patch => 0275-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/api/{0277-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0276-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/api/{0278-Inventory-close.patch => 0277-Inventory-close.patch} (100%) rename patches/api/{0279-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0278-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/api/{0280-Add-basic-Datapack-API.patch => 0279-Add-basic-Datapack-API.patch} (91%) rename patches/api/{0281-additions-to-PlayerGameModeChangeEvent.patch => 0280-additions-to-PlayerGameModeChangeEvent.patch} (100%) rename patches/api/{0282-ItemStack-repair-check-API.patch => 0281-ItemStack-repair-check-API.patch} (100%) rename patches/api/{0283-More-Enchantment-API.patch => 0282-More-Enchantment-API.patch} (96%) rename patches/api/{0284-Add-Mob-lookAt-API.patch => 0283-Add-Mob-lookAt-API.patch} (100%) rename patches/api/{0285-ItemStack-editMeta.patch => 0284-ItemStack-editMeta.patch} (100%) rename patches/api/{0286-Add-EntityInsideBlockEvent.patch => 0285-Add-EntityInsideBlockEvent.patch} (100%) rename patches/api/{0287-Attributes-API-for-item-defaults.patch => 0286-Attributes-API-for-item-defaults.patch} (93%) rename patches/api/{0288-Add-cause-to-Weather-ThunderChangeEvents.patch => 0287-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/api/{0289-More-Lidded-Block-API.patch => 0288-More-Lidded-Block-API.patch} (100%) rename patches/api/{0290-Add-PlayerKickEvent-causes.patch => 0289-Add-PlayerKickEvent-causes.patch} (96%) rename patches/api/{0291-Add-PufferFishStateChangeEvent.patch => 0290-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/api/{0292-Add-BellRevealRaiderEvent.patch => 0291-Add-BellRevealRaiderEvent.patch} (100%) rename patches/api/{0293-Add-ElderGuardianAppearanceEvent.patch => 0292-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/api/{0294-Add-more-line-of-sight-methods.patch => 0293-Add-more-line-of-sight-methods.patch} (95%) rename patches/api/{0295-Add-WaterBottleSplashEvent.patch => 0294-Add-WaterBottleSplashEvent.patch} (100%) rename patches/api/{0296-Add-more-LimitedRegion-API.patch => 0295-Add-more-LimitedRegion-API.patch} (100%) rename patches/api/{0297-Missing-Entity-API.patch => 0296-Missing-Entity-API.patch} (98%) rename patches/api/{0298-Adds-PlayerArmSwingEvent.patch => 0297-Adds-PlayerArmSwingEvent.patch} (100%) rename patches/api/{0299-Add-PlayerSignCommandPreprocessEvent.patch => 0298-Add-PlayerSignCommandPreprocessEvent.patch} (100%) rename patches/api/{0300-fix-empty-array-elements-in-command-arguments.patch => 0299-fix-empty-array-elements-in-command-arguments.patch} (100%) rename patches/api/{0301-Stinger-API.patch => 0300-Stinger-API.patch} (95%) rename patches/api/{0302-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0301-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/api/{0303-Add-PlayerSetSpawnEvent.patch => 0302-Add-PlayerSetSpawnEvent.patch} (100%) rename patches/api/{0304-Added-EntityDamageItemEvent.patch => 0303-Added-EntityDamageItemEvent.patch} (100%) rename patches/api/{0305-Make-EntityUnleashEvent-cancellable.patch => 0304-Make-EntityUnleashEvent-cancellable.patch} (100%) rename patches/api/{0306-Change-EnderEye-target-without-changing-other-things.patch => 0305-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/api/{0307-Add-BlockBreakBlockEvent.patch => 0306-Add-BlockBreakBlockEvent.patch} (100%) rename patches/api/{0308-Add-helpers-for-left-right-click-to-Action.patch => 0307-Add-helpers-for-left-right-click-to-Action.patch} (100%) rename patches/api/{0309-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0308-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/api/{0310-More-CommandBlock-API.patch => 0309-More-CommandBlock-API.patch} (100%) rename patches/api/{0311-Add-missing-team-sidebar-display-slots.patch => 0310-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/api/{0312-add-back-EntityPortalExitEvent.patch => 0311-add-back-EntityPortalExitEvent.patch} (100%) rename patches/api/{0313-Add-methods-to-find-targets-for-lightning-strikes.patch => 0312-Add-methods-to-find-targets-for-lightning-strikes.patch} (95%) rename patches/api/{0314-Get-entity-default-attributes.patch => 0313-Get-entity-default-attributes.patch} (94%) rename patches/api/{0315-Left-handed-API.patch => 0314-Left-handed-API.patch} (100%) rename patches/api/{0316-Add-critical-damage-API.patch => 0315-Add-critical-damage-API.patch} (100%) rename patches/api/{0317-Add-more-advancement-API.patch => 0316-Add-more-advancement-API.patch} (100%) rename patches/api/{0318-Fix-issues-with-mob-conversion.patch => 0317-Fix-issues-with-mob-conversion.patch} (100%) rename patches/api/{0319-Add-isCollidable-methods-to-various-places.patch => 0318-Add-isCollidable-methods-to-various-places.patch} (90%) rename patches/api/{0320-Goat-ram-API.patch => 0319-Goat-ram-API.patch} (100%) rename patches/api/{0321-Add-API-for-resetting-a-single-score.patch => 0320-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/api/{0322-Add-Raw-Byte-Entity-Serialization.patch => 0321-Add-Raw-Byte-Entity-Serialization.patch} (94%) rename patches/api/{0323-Add-PlayerItemFrameChangeEvent.patch => 0322-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/api/{0324-Allow-delegation-to-vanilla-chunk-gen.patch => 0323-Allow-delegation-to-vanilla-chunk-gen.patch} (92%) rename patches/api/{0325-Add-more-Campfire-API.patch => 0324-Add-more-Campfire-API.patch} (100%) rename patches/api/{0326-Extend-VehicleCollisionEvent-move-HandlerList-up.patch => 0325-Extend-VehicleCollisionEvent-move-HandlerList-up.patch} (100%) rename patches/api/{0327-Improve-scoreboard-entries.patch => 0326-Improve-scoreboard-entries.patch} (100%) rename patches/api/{0328-Entity-powdered-snow-API.patch => 0327-Entity-powdered-snow-API.patch} (85%) rename patches/api/{0329-Add-API-for-item-entity-health.patch => 0328-Add-API-for-item-entity-health.patch} (100%) rename patches/api/{0330-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0329-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/api/{0331-Bucketable-API.patch => 0330-Bucketable-API.patch} (100%) rename patches/api/{0332-System-prop-for-default-config-comment-parsing.patch => 0331-System-prop-for-default-config-comment-parsing.patch} (100%) rename patches/api/{0333-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0332-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/api/{0334-Multiple-Entries-with-Scoreboards.patch => 0333-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/api/{0335-Warn-on-strange-EventHandler-return-types.patch => 0334-Warn-on-strange-EventHandler-return-types.patch} (100%) rename patches/api/{0336-Multi-Block-Change-API.patch => 0335-Multi-Block-Change-API.patch} (92%) rename patches/api/{0337-Fix-NotePlayEvent.patch => 0336-Fix-NotePlayEvent.patch} (100%) rename patches/api/{0338-Freeze-Tick-Lock-API.patch => 0337-Freeze-Tick-Lock-API.patch} (92%) rename patches/api/{0339-Dolphin-API.patch => 0338-Dolphin-API.patch} (100%) rename patches/api/{0340-More-PotionEffectType-API.patch => 0339-More-PotionEffectType-API.patch} (92%) rename patches/api/{0341-API-for-creating-command-sender-which-forwards-feedb.patch => 0340-API-for-creating-command-sender-which-forwards-feedb.patch} (87%) rename patches/api/{0342-Implement-regenerateChunk.patch => 0341-Implement-regenerateChunk.patch} (91%) rename patches/api/{0343-Add-GameEvent-tags.patch => 0342-Add-GameEvent-tags.patch} (78%) rename patches/api/{0344-Furnace-RecipesUsed-API.patch => 0343-Furnace-RecipesUsed-API.patch} (100%) rename patches/api/{0345-Configurable-sculk-sensor-listener-range.patch => 0344-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/api/{0346-Add-missing-block-data-mins-and-maxes.patch => 0345-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/api/{0347-Custom-Potion-Mixes.patch => 0346-Custom-Potion-Mixes.patch} (96%) rename patches/api/{0348-Expose-furnace-minecart-push-values.patch => 0347-Expose-furnace-minecart-push-values.patch} (100%) rename patches/api/{0349-More-Projectile-API.patch => 0348-More-Projectile-API.patch} (100%) rename patches/api/{0350-Add-getComputedBiome-API.patch => 0349-Add-getComputedBiome-API.patch} (100%) rename patches/api/{0351-Add-enchantWithLevels-API.patch => 0350-Add-enchantWithLevels-API.patch} (100%) rename patches/api/{0352-Add-TameableDeathMessageEvent.patch => 0351-Add-TameableDeathMessageEvent.patch} (100%) rename patches/api/{0353-Allow-to-change-the-podium-of-the-EnderDragon.patch => 0352-Allow-to-change-the-podium-of-the-EnderDragon.patch} (100%) rename patches/api/{0354-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch => 0353-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch} (100%) rename patches/api/{0355-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch => 0354-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch} (100%) rename patches/api/{0356-WorldCreator-keepSpawnLoaded.patch => 0355-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/api/{0357-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0356-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (96%) rename patches/api/{0358-Add-PlayerStopUsingItemEvent.patch => 0357-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/api/{0359-Expand-FallingBlock-API.patch => 0358-Expand-FallingBlock-API.patch} (93%) rename patches/api/{0360-Add-method-isTickingWorlds-to-Bukkit.patch => 0359-Add-method-isTickingWorlds-to-Bukkit.patch} (91%) rename patches/api/{0361-Add-WardenAngerChangeEvent.patch => 0360-Add-WardenAngerChangeEvent.patch} (100%) rename patches/api/{0362-Nameable-Banner-API.patch => 0361-Nameable-Banner-API.patch} (100%) rename patches/api/{0363-Add-Player-getFishHook.patch => 0362-Add-Player-getFishHook.patch} (100%) rename patches/api/{0364-More-Teleport-API.patch => 0363-More-Teleport-API.patch} (97%) rename patches/api/{0365-Add-EntityPortalReadyEvent.patch => 0364-Add-EntityPortalReadyEvent.patch} (100%) rename patches/api/{0366-Custom-Chat-Completion-Suggestions-API.patch => 0365-Custom-Chat-Completion-Suggestions-API.patch} (91%) rename patches/api/{0367-Collision-API.patch => 0366-Collision-API.patch} (93%) rename patches/api/{0368-Block-Ticking-API.patch => 0367-Block-Ticking-API.patch} (100%) rename patches/api/{0369-Add-NamespacedKey-biome-methods.patch => 0368-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/api/{0370-Also-load-resources-from-LibraryLoader.patch => 0369-Also-load-resources-from-LibraryLoader.patch} (100%) rename patches/api/{0371-Added-byte-array-serialization-deserialization-for-P.patch => 0370-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/api/{0372-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0371-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/api/{0373-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch => 0372-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch} (100%) rename patches/api/{0374-Add-getDrops-to-BlockState.patch => 0373-Add-getDrops-to-BlockState.patch} (93%) rename patches/api/{0375-Add-PlayerInventorySlotChangeEvent.patch => 0374-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/api/{0376-Elder-Guardian-appearance-API.patch => 0375-Elder-Guardian-appearance-API.patch} (87%) rename patches/api/{0377-Allow-changing-bed-s-occupied-property.patch => 0376-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/api/{0378-Add-EquipmentSlot-convenience-methods.patch => 0377-Add-EquipmentSlot-convenience-methods.patch} (77%) rename patches/api/{0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch => 0378-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch} (90%) rename patches/api/{0380-Add-entity-knockback-API.patch => 0379-Add-entity-knockback-API.patch} (88%) rename patches/api/{0381-Added-EntityToggleSitEvent.patch => 0380-Added-EntityToggleSitEvent.patch} (100%) rename patches/api/{0382-Add-Moving-Piston-API.patch => 0381-Add-Moving-Piston-API.patch} (100%) rename patches/api/{0383-Add-PrePlayerAttackEntityEvent.patch => 0382-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/api/{0384-Add-Player-Warden-Warning-API.patch => 0383-Add-Player-Warden-Warning-API.patch} (93%) rename patches/api/{0385-More-vanilla-friendly-methods-to-update-trades.patch => 0384-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/api/{0386-Add-paper-dumplisteners-command.patch => 0385-Add-paper-dumplisteners-command.patch} (100%) rename patches/api/{0387-ItemStack-damage-API.patch => 0386-ItemStack-damage-API.patch} (96%) rename patches/api/{0388-Add-Tick-TemporalUnit.patch => 0387-Add-Tick-TemporalUnit.patch} (100%) rename patches/api/{0389-Friction-API.patch => 0388-Friction-API.patch} (96%) rename patches/api/{0390-Player-Entity-Tracking-Events.patch => 0389-Player-Entity-Tracking-Events.patch} (100%) rename patches/api/{0391-Add-missing-Fluid-type.patch => 0390-Add-missing-Fluid-type.patch} (100%) rename patches/api/{0392-fix-Instruments.patch => 0391-fix-Instruments.patch} (100%) rename patches/api/{0393-Add-BlockLockCheckEvent.patch => 0392-Add-BlockLockCheckEvent.patch} (100%) rename patches/api/{0394-Add-Sneaking-API-for-Entities.patch => 0393-Add-Sneaking-API-for-Entities.patch} (83%) rename patches/api/{0395-Improve-PortalEvents.patch => 0394-Improve-PortalEvents.patch} (100%) rename patches/api/{0396-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0395-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/api/{0397-Flying-Fall-Damage-API.patch => 0396-Flying-Fall-Damage-API.patch} (88%) rename patches/api/{0398-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch => 0397-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch} (100%) rename patches/api/{0399-Win-Screen-API.patch => 0398-Win-Screen-API.patch} (94%) rename patches/api/{0400-Add-Entity-Body-Yaw-API.patch => 0399-Add-Entity-Body-Yaw-API.patch} (86%) rename patches/api/{0401-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch => 0400-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch} (100%) rename patches/api/{0402-Add-EntityFertilizeEggEvent.patch => 0401-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/api/{0403-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0402-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/api/{0404-Add-Shearable-API.patch => 0403-Add-Shearable-API.patch} (100%) rename patches/api/{0405-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0404-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/api/{0406-Add-Mob-Experience-reward-API.patch => 0405-Add-Mob-Experience-reward-API.patch} (100%) rename patches/api/{0407-Expand-PlayerItemMendEvent.patch => 0406-Expand-PlayerItemMendEvent.patch} (100%) rename patches/api/{0408-Add-transient-modifier-API.patch => 0407-Add-transient-modifier-API.patch} (100%) rename patches/api/{0409-Properly-remove-the-experimental-smithing-inventory-.patch => 0408-Properly-remove-the-experimental-smithing-inventory-.patch} (100%) rename patches/api/{0410-Add-method-to-remove-all-active-potion-effects.patch => 0409-Add-method-to-remove-all-active-potion-effects.patch} (91%) rename patches/api/{0411-Folia-scheduler-and-owned-region-API.patch => 0410-Folia-scheduler-and-owned-region-API.patch} (98%) rename patches/api/{0412-Add-event-for-player-editing-sign.patch => 0411-Add-event-for-player-editing-sign.patch} (100%) rename patches/api/{0413-Add-Sign-getInteractableSideFor.patch => 0412-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/api/{0414-Fix-BanList-API.patch => 0413-Fix-BanList-API.patch} (96%) rename patches/api/{0415-Add-whitelist-events.patch => 0414-Add-whitelist-events.patch} (100%) rename patches/api/{0416-API-for-updating-recipes-on-clients.patch => 0415-API-for-updating-recipes-on-clients.patch} (91%) rename patches/api/{0417-Add-PlayerFailMoveEvent.patch => 0416-Add-PlayerFailMoveEvent.patch} (100%) rename patches/api/{0418-Fix-custom-statistic-criteria-creation.patch => 0417-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/api/{0419-SculkCatalyst-bloom-API.patch => 0418-SculkCatalyst-bloom-API.patch} (100%) rename patches/api/{0420-API-for-an-entity-s-scoreboard-name.patch => 0419-API-for-an-entity-s-scoreboard-name.patch} (88%) rename patches/api/{0421-Deprecate-and-replace-methods-with-old-StructureType.patch => 0420-Deprecate-and-replace-methods-with-old-StructureType.patch} (94%) rename patches/api/{0422-Add-Listing-API-for-Player.patch => 0421-Add-Listing-API-for-Player.patch} (89%) rename patches/api/{0423-Expose-clicked-BlockFace-during-BlockDamageEvent.patch => 0422-Expose-clicked-BlockFace-during-BlockDamageEvent.patch} (100%) rename patches/api/{0424-Fix-NPE-on-Boat-getStatus.patch => 0423-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/api/{0425-Expand-Pose-API.patch => 0424-Expand-Pose-API.patch} (95%) rename patches/api/{0426-MerchantRecipe-add-copy-constructor.patch => 0425-MerchantRecipe-add-copy-constructor.patch} (100%) rename patches/api/{0427-More-DragonBattle-API.patch => 0426-More-DragonBattle-API.patch} (100%) rename patches/api/{0428-Add-PlayerPickItemEvent.patch => 0427-Add-PlayerPickItemEvent.patch} (100%) rename patches/api/{0429-Allow-trident-custom-damage.patch => 0428-Allow-trident-custom-damage.patch} (100%) rename patches/api/{0430-Expose-hand-during-BlockCanBuildEvent.patch => 0429-Expose-hand-during-BlockCanBuildEvent.patch} (100%) rename patches/api/{0431-Limit-setBurnTime-to-valid-short-values.patch => 0430-Limit-setBurnTime-to-valid-short-values.patch} (100%) rename patches/api/{0432-Add-OfflinePlayer-isConnected.patch => 0431-Add-OfflinePlayer-isConnected.patch} (100%) rename patches/api/{0433-Add-titleOverride-to-InventoryOpenEvent.patch => 0432-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/api/{0434-Allow-proper-checking-of-empty-item-stacks.patch => 0433-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/api/{0435-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch => 0434-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch} (100%) rename patches/api/{0436-Add-player-idle-duration-API.patch => 0435-Add-player-idle-duration-API.patch} (89%) rename patches/api/{0437-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0436-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/api/{0438-Add-predicate-for-blocks-when-raytracing.patch => 0437-Add-predicate-for-blocks-when-raytracing.patch} (98%) rename patches/api/{0439-Add-hand-to-fish-event-for-all-player-interactions.patch => 0438-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/api/{0440-Add-UUID-attribute-modifier-API.patch => 0439-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/api/{0441-Expand-LingeringPotion-API.patch => 0440-Expand-LingeringPotion-API.patch} (100%) rename patches/api/{0442-Remove-unnecessary-durability-check-in-ItemStack-isS.patch => 0441-Remove-unnecessary-durability-check-in-ItemStack-isS.patch} (100%) rename patches/api/{0443-Add-Structure-check-API.patch => 0442-Add-Structure-check-API.patch} (94%) rename patches/api/{0444-add-missing-Experimental-annotations.patch => 0443-add-missing-Experimental-annotations.patch} (83%) rename patches/api/{0445-Add-more-scoreboard-API.patch => 0444-Add-more-scoreboard-API.patch} (100%) rename patches/api/{0446-Improve-Registry.patch => 0445-Improve-Registry.patch} (91%) rename patches/api/{0447-Add-experience-points-API.patch => 0446-Add-experience-points-API.patch} (93%) rename patches/api/{0448-Add-missing-InventoryType.patch => 0447-Add-missing-InventoryType.patch} (100%) rename patches/api/{0449-Add-drops-to-shear-events.patch => 0448-Add-drops-to-shear-events.patch} (100%) rename patches/api/{0450-Add-HiddenPotionEffect-API.patch => 0449-Add-HiddenPotionEffect-API.patch} (98%) rename patches/api/{0451-Add-PlayerShieldDisableEvent.patch => 0450-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/api/{0452-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch => 0451-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch} (100%) rename patches/api/{0453-Add-BlockStateMeta-clearBlockState.patch => 0452-Add-BlockStateMeta-clearBlockState.patch} (100%) rename patches/api/{0454-Expose-LootTable-of-DecoratedPot.patch => 0453-Expose-LootTable-of-DecoratedPot.patch} (100%) rename patches/api/{0455-Add-ShulkerDuplicateEvent.patch => 0454-Add-ShulkerDuplicateEvent.patch} (100%) rename patches/api/{0456-Add-api-for-spawn-egg-texture-colors.patch => 0455-Add-api-for-spawn-egg-texture-colors.patch} (100%) rename patches/api/{0457-Add-Lifecycle-Event-system.patch => 0456-Add-Lifecycle-Event-system.patch} (100%) rename patches/api/{0459-ItemStack-Tooltip-API.patch => 0457-ItemStack-Tooltip-API.patch} (100%) rename patches/api/{0460-Add-getChunkSnapshot-includeLightData-parameter.patch => 0458-Add-getChunkSnapshot-includeLightData-parameter.patch} (100%) delete mode 100644 patches/api/0458-Conduit-API.patch rename patches/api/{0461-Add-FluidState-API.patch => 0459-Add-FluidState-API.patch} (100%) rename patches/api/{0462-add-number-format-api.patch => 0460-add-number-format-api.patch} (100%) rename patches/api/{0463-improve-BanList-types.patch => 0461-improve-BanList-types.patch} (93%) rename patches/api/{0464-Suspicious-Effect-Entry-API.patch => 0462-Suspicious-Effect-Entry-API.patch} (100%) rename patches/api/{0465-Fix-DamageSource-API.patch => 0463-Fix-DamageSource-API.patch} (100%) rename patches/api/{0466-Expanded-Hopper-API.patch => 0464-Expanded-Hopper-API.patch} (100%) rename patches/api/{0467-Clone-mutables-to-prevent-unexpected-issues.patch => 0465-Clone-mutables-to-prevent-unexpected-issues.patch} (100%) rename patches/api/{0468-Add-BlockBreakProgressUpdateEvent.patch => 0466-Add-BlockBreakProgressUpdateEvent.patch} (100%) rename patches/api/{0469-Deprecate-ItemStack-setType.patch => 0467-Deprecate-ItemStack-setType.patch} (100%) rename patches/api/{0470-Item-Mutation-Fixes.patch => 0468-Item-Mutation-Fixes.patch} (100%) rename patches/api/{0471-API-for-checking-sent-chunks.patch => 0469-API-for-checking-sent-chunks.patch} (93%) rename patches/api/{0472-Add-CartographyItemEvent.patch => 0470-Add-CartographyItemEvent.patch} (100%) rename patches/api/{0473-More-Raid-API.patch => 0471-More-Raid-API.patch} (91%) rename patches/{ => unapplied}/server/0004-Test-changes.patch (100%) rename patches/{ => unapplied}/server/0005-Paper-config-files.patch (100%) rename patches/{ => unapplied}/server/0006-MC-Dev-fixes.patch (100%) rename patches/{ => unapplied}/server/0007-ConcurrentUtil.patch (100%) rename patches/{ => unapplied}/server/0008-CB-fixes.patch (99%) rename patches/{ => unapplied}/server/0009-MC-Utils.patch (100%) rename patches/{ => unapplied}/server/0010-Adventure.patch (100%) rename patches/{ => unapplied}/server/0011-Paper-command.patch (100%) rename patches/{ => unapplied}/server/0012-Paper-Metrics.patch (100%) rename patches/{ => unapplied}/server/0013-Paper-Plugins.patch (99%) rename patches/{ => unapplied}/server/0014-Timings-v2.patch (100%) rename patches/{ => unapplied}/server/0015-Add-TickThread.patch (100%) rename patches/{ => unapplied}/server/0016-Further-improve-server-tick-loop.patch (99%) rename patches/{ => unapplied}/server/0017-Add-command-line-option-to-load-extra-plugin-jars-no.patch (100%) rename patches/{ => unapplied}/server/0018-Support-components-in-ItemMeta.patch (100%) rename patches/{ => unapplied}/server/0019-Configurable-cactus-bamboo-and-reed-growth-height.patch (100%) rename patches/{ => unapplied}/server/0020-Configurable-baby-zombie-movement-speed.patch (100%) rename patches/{ => unapplied}/server/0021-Configurable-fishing-time-ranges.patch (100%) rename patches/{ => unapplied}/server/0022-Allow-nerfed-mobs-to-jump.patch (100%) rename patches/{ => unapplied}/server/0023-Add-configurable-entity-despawn-distances.patch (100%) rename patches/{ => unapplied}/server/0024-Allow-for-toggling-of-spawn-chunks.patch (100%) rename patches/{ => unapplied}/server/0025-Drop-falling-block-and-tnt-entities-at-the-specified.patch (100%) rename patches/{ => unapplied}/server/0026-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch (98%) rename patches/{ => unapplied}/server/0027-Implement-Paper-VersionChecker.patch (100%) rename patches/{ => unapplied}/server/0028-Add-version-history-to-version-command.patch (100%) rename patches/{ => unapplied}/server/0029-Player-affects-spawning-API.patch (100%) rename patches/{ => unapplied}/server/0030-Only-refresh-abilities-if-needed.patch (100%) rename patches/{ => unapplied}/server/0031-fix-ItemMeta-removing-CustomModelData.patch (100%) rename patches/{ => unapplied}/server/0032-Entity-Origin-API.patch (100%) rename patches/{ => unapplied}/server/0033-Prevent-block-entity-and-entity-crashes.patch (100%) rename patches/{ => unapplied}/server/0034-Configurable-top-of-nether-void-damage.patch (100%) rename patches/{ => unapplied}/server/0035-Check-online-mode-before-converting-and-renaming-pla.patch (100%) rename patches/{ => unapplied}/server/0036-Add-more-entities-to-activation-range-ignore-list.patch (100%) rename patches/{ => unapplied}/server/0037-Configurable-end-credits.patch (100%) rename patches/{ => unapplied}/server/0038-Fix-lag-from-explosions-processing-dead-entities.patch (100%) rename patches/{ => unapplied}/server/0039-Optimize-explosions.patch (98%) rename patches/{ => unapplied}/server/0040-Disable-explosion-knockback.patch (100%) rename patches/{ => unapplied}/server/0041-Disable-thunder.patch (100%) rename patches/{ => unapplied}/server/0042-Disable-ice-and-snow.patch (100%) rename patches/{ => unapplied}/server/0043-Configurable-mob-spawner-tick-rate.patch (100%) rename patches/{ => unapplied}/server/0044-Implement-PlayerLocaleChangeEvent.patch (100%) rename patches/{ => unapplied}/server/0045-Add-BeaconEffectEvent.patch (100%) rename patches/{ => unapplied}/server/0046-Configurable-container-update-tick-rate.patch (100%) rename patches/{ => unapplied}/server/0047-Use-UserCache-for-player-heads.patch (100%) rename patches/{ => unapplied}/server/0048-Disable-spigot-tick-limiters.patch (100%) rename patches/{ => unapplied}/server/0049-Add-PlayerInitialSpawnEvent.patch (100%) rename patches/{ => unapplied}/server/0050-Configurable-Disabling-Cat-Chest-Detection.patch (100%) rename patches/{ => unapplied}/server/0051-Improve-Player-chat-API-handling.patch (100%) rename patches/{ => unapplied}/server/0052-All-chunks-are-slime-spawn-chunks-toggle.patch (100%) rename patches/{ => unapplied}/server/0053-Expose-server-CommandMap.patch (100%) rename patches/{ => unapplied}/server/0054-Be-a-bit-more-informative-in-maxHealth-exception.patch (100%) rename patches/{ => unapplied}/server/0055-Player-Tab-List-and-Title-APIs.patch (98%) rename patches/{ => unapplied}/server/0056-Add-configurable-portal-search-radius.patch (100%) rename patches/{ => unapplied}/server/0057-Add-velocity-warnings.patch (100%) rename patches/{ => unapplied}/server/0058-Configurable-inter-world-teleportation-safety.patch (100%) rename patches/{ => unapplied}/server/0059-Add-exception-reporting-event.patch (100%) rename patches/{ => unapplied}/server/0060-Disable-Scoreboards-for-non-players-by-default.patch (100%) rename patches/{ => unapplied}/server/0061-Add-methods-for-working-with-arrows-stuck-in-living-.patch (100%) rename patches/{ => unapplied}/server/0062-Chunk-Save-Reattempt.patch (100%) rename patches/{ => unapplied}/server/0063-Complete-resource-pack-API.patch (100%) rename patches/{ => unapplied}/server/0064-Default-loading-permissions.yml-before-plugins.patch (100%) rename patches/{ => unapplied}/server/0065-Allow-Reloading-of-Custom-Permissions.patch (100%) rename patches/{ => unapplied}/server/0066-Remove-Metadata-on-reload.patch (100%) rename patches/{ => unapplied}/server/0067-Handle-Item-Meta-Inconsistencies.patch (100%) rename patches/{ => unapplied}/server/0068-Configurable-Non-Player-Arrow-Despawn-Rate.patch (100%) rename patches/{ => unapplied}/server/0069-Add-World-Util-Methods.patch (100%) rename patches/{ => unapplied}/server/0070-Custom-replacement-for-eaten-items.patch (100%) rename patches/{ => unapplied}/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch (100%) rename patches/{ => unapplied}/server/0072-Use-a-Shared-Random-for-Entities.patch (100%) rename patches/{ => unapplied}/server/0073-Configurable-spawn-chances-for-skeleton-horses.patch (100%) rename patches/{ => unapplied}/server/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch (98%) rename patches/{ => unapplied}/server/0075-Entity-AddTo-RemoveFrom-World-Events.patch (100%) rename patches/{ => unapplied}/server/0076-Configurable-Chunk-Inhabited-Time.patch (100%) rename patches/{ => unapplied}/server/0077-EntityPathfindEvent.patch (100%) rename patches/{ => unapplied}/server/0078-Sanitise-RegionFileCache-and-make-configurable.patch (100%) rename patches/{ => unapplied}/server/0079-Do-not-load-chunks-for-Pathfinding.patch (96%) rename patches/{ => unapplied}/server/0080-Add-PlayerUseUnknownEntityEvent.patch (97%) rename patches/{ => unapplied}/server/0081-Configurable-random-tick-rates-for-blocks.patch (100%) rename patches/{ => unapplied}/server/0082-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch (100%) rename patches/{ => unapplied}/server/0083-Optimize-DataBits.patch (100%) rename patches/{ => unapplied}/server/0084-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch (100%) rename patches/{ => unapplied}/server/0085-Configurable-Player-Collision.patch (98%) rename patches/{ => unapplied}/server/0086-Add-handshake-event-to-allow-plugins-to-handle-clien.patch (100%) rename patches/{ => unapplied}/server/0087-Configurable-RCON-IP-address.patch (100%) rename patches/{ => unapplied}/server/0088-EntityRegainHealthEvent-isFastRegen-API.patch (100%) rename patches/{ => unapplied}/server/0089-Add-ability-to-configure-frosted_ice-properties.patch (100%) rename patches/{ => unapplied}/server/0090-remove-null-possibility-for-getServer-singleton.patch (95%) rename patches/{ => unapplied}/server/0091-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch (92%) rename patches/{ => unapplied}/server/0092-LootTable-API-and-replenishable-lootables.patch (100%) rename patches/{ => unapplied}/server/0093-System-property-for-disabling-watchdoge.patch (100%) rename patches/{ => unapplied}/server/0094-Async-GameProfileCache-saving.patch (97%) rename patches/{ => unapplied}/server/0095-Optional-TNT-doesn-t-move-in-water.patch (100%) rename patches/{ => unapplied}/server/0096-Faster-redstone-torch-rapid-clock-removal.patch (100%) rename patches/{ => unapplied}/server/0097-Add-server-name-parameter.patch (100%) rename patches/{ => unapplied}/server/0098-Fix-global-sound-handling.patch (100%) rename patches/{ => unapplied}/server/0099-Avoid-blocking-on-Network-Manager-creation.patch (100%) rename patches/{ => unapplied}/server/0100-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch (100%) rename patches/{ => unapplied}/server/0101-Add-setting-for-proxy-online-mode-status.patch (100%) rename patches/{ => unapplied}/server/0102-Optimise-BlockState-s-hashCode-equals.patch (94%) rename patches/{ => unapplied}/server/0103-Configurable-packet-in-spam-threshold.patch (94%) rename patches/{ => unapplied}/server/0104-Configurable-flying-kick-messages.patch (95%) rename patches/{ => unapplied}/server/0105-Add-EntityZapEvent.patch (100%) rename patches/{ => unapplied}/server/0106-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch (100%) rename patches/{ => unapplied}/server/0107-Cache-user-authenticator-threads.patch (100%) rename patches/{ => unapplied}/server/0108-Allow-Reloading-of-Command-Aliases.patch (100%) rename patches/{ => unapplied}/server/0109-Add-source-to-PlayerExpChangeEvent.patch (100%) rename patches/{ => unapplied}/server/0110-Add-ProjectileCollideEvent.patch (100%) rename patches/{ => unapplied}/server/0111-Prevent-Pathfinding-out-of-World-Border.patch (100%) rename patches/{ => unapplied}/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch (100%) rename patches/{ => unapplied}/server/0113-Bound-Treasure-Maps-to-World-Border.patch (100%) rename patches/{ => unapplied}/server/0114-Configurable-Cartographer-Treasure-Maps.patch (100%) rename patches/{ => unapplied}/server/0115-Add-API-methods-to-control-if-armor-stands-can-move.patch (100%) rename patches/{ => unapplied}/server/0116-String-based-Action-Bar-API.patch (96%) rename patches/{ => unapplied}/server/0117-Properly-fix-item-duplication-bug.patch (100%) rename patches/{ => unapplied}/server/0118-Firework-API-s.patch (100%) rename patches/{ => unapplied}/server/0119-PlayerTeleportEndGatewayEvent.patch (100%) rename patches/{ => unapplied}/server/0120-Provide-E-TE-Chunk-count-stat-methods.patch (100%) rename patches/{ => unapplied}/server/0121-Enforce-Sync-Player-Saves.patch (100%) rename patches/{ => unapplied}/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch (100%) rename patches/{ => unapplied}/server/0123-Cap-Entity-Collisions.patch (100%) rename patches/{ => unapplied}/server/0124-Remove-CraftScheduler-Async-Task-Debugger.patch (100%) rename patches/{ => unapplied}/server/0125-Properly-handle-async-calls-to-restart-the-server.patch (99%) rename patches/{ => unapplied}/server/0126-Add-option-to-make-parrots-stay-on-shoulders-despite.patch (96%) rename patches/{ => unapplied}/server/0127-Add-configuration-option-to-prevent-player-names-fro.patch (100%) rename patches/{ => unapplied}/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch (99%) rename patches/{ => unapplied}/server/0129-provide-a-configurable-option-to-disable-creeper-lin.patch (100%) rename patches/{ => unapplied}/server/0130-Item-canEntityPickup.patch (100%) rename patches/{ => unapplied}/server/0131-PlayerPickupItemEvent-setFlyAtPlayer.patch (100%) rename patches/{ => unapplied}/server/0132-PlayerAttemptPickupItemEvent.patch (100%) rename patches/{ => unapplied}/server/0133-Do-not-submit-profile-lookups-to-worldgen-threads.patch (97%) rename patches/{ => unapplied}/server/0134-Basic-PlayerProfile-API.patch (100%) rename patches/{ => unapplied}/server/0135-Add-UnknownCommandEvent.patch (100%) rename patches/{ => unapplied}/server/0136-Shoulder-Entities-Release-API.patch (100%) rename patches/{ => unapplied}/server/0137-Profile-Lookup-Events.patch (100%) rename patches/{ => unapplied}/server/0138-Block-player-logins-during-server-shutdown.patch (100%) rename patches/{ => unapplied}/server/0139-Entity-fromMobSpawner.patch (100%) rename patches/{ => unapplied}/server/0140-Improve-the-Saddle-API-for-Horses.patch (100%) rename patches/{ => unapplied}/server/0141-ensureServerConversions-API.patch (100%) rename patches/{ => unapplied}/server/0142-Implement-getI18NDisplayName.patch (100%) rename patches/{ => unapplied}/server/0143-ProfileWhitelistVerifyEvent.patch (100%) rename patches/{ => unapplied}/server/0144-Fix-this-stupid-bullshit.patch (100%) rename patches/{ => unapplied}/server/0145-LivingEntity-setKiller.patch (100%) rename patches/{ => unapplied}/server/0146-Ocelot-despawns-should-honor-nametags-and-leash.patch (100%) rename patches/{ => unapplied}/server/0147-Reset-spawner-timer-when-spawner-event-is-cancelled.patch (100%) rename patches/{ => unapplied}/server/0148-Allow-specifying-a-custom-authentication-servers-dow.patch (100%) rename patches/{ => unapplied}/server/0149-Handle-plugin-prefixes-using-Log4J-configuration.patch (100%) rename patches/{ => unapplied}/server/0150-Improve-Log4J-Configuration-Plugin-Loggers.patch (100%) rename patches/{ => unapplied}/server/0151-Add-PlayerJumpEvent.patch (96%) rename patches/{ => unapplied}/server/0152-handle-ServerboundKeepAlivePacket-async.patch (100%) rename patches/{ => unapplied}/server/0153-Expose-client-protocol-version-and-virtual-host.patch (97%) rename patches/{ => unapplied}/server/0154-revert-serverside-behavior-of-keepalives.patch (100%) rename patches/{ => unapplied}/server/0155-Send-attack-SoundEffects-only-to-players-who-can-see.patch (100%) rename patches/{ => unapplied}/server/0156-Add-PlayerArmorChangeEvent.patch (100%) rename patches/{ => unapplied}/server/0157-Prevent-logins-from-being-processed-when-the-player-.patch (100%) rename patches/{ => unapplied}/server/0158-Fix-MC-117075-Block-entity-unload-lag-spike.patch (100%) rename patches/{ => unapplied}/server/0159-use-CB-BlockState-implementations-for-captured-block.patch (100%) rename patches/{ => unapplied}/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch (100%) rename patches/{ => unapplied}/server/0161-AsyncTabCompleteEvent.patch (99%) rename patches/{ => unapplied}/server/0162-PlayerPickupExperienceEvent.patch (100%) rename patches/{ => unapplied}/server/0163-Ability-to-apply-mending-to-XP-API.patch (100%) rename patches/{ => unapplied}/server/0164-PlayerNaturallySpawnCreaturesEvent.patch (100%) rename patches/{ => unapplied}/server/0165-Add-setPlayerProfile-API-for-Skulls.patch (100%) rename patches/{ => unapplied}/server/0166-PreCreatureSpawnEvent.patch (100%) rename patches/{ => unapplied}/server/0167-Fill-Profile-Property-Events.patch (100%) rename patches/{ => unapplied}/server/0168-Add-PlayerAdvancementCriterionGrantEvent.patch (100%) rename patches/{ => unapplied}/server/0169-Add-ArmorStand-Item-Meta.patch (100%) rename patches/{ => unapplied}/server/0170-Extend-Player-Interact-cancellation.patch (100%) rename patches/{ => unapplied}/server/0171-Tameable-getOwnerUniqueId-API.patch (100%) rename patches/{ => unapplied}/server/0172-Toggleable-player-crits.patch (100%) rename patches/{ => unapplied}/server/0173-Disable-Explicit-Network-Manager-Flushing.patch (100%) rename patches/{ => unapplied}/server/0174-Implement-extended-PaperServerListPingEvent.patch (99%) rename patches/{ => unapplied}/server/0175-Add-more-fields-to-AsyncPreLoginEvent.patch (100%) rename patches/{ => unapplied}/server/0176-Player.setPlayerProfile-API.patch (100%) rename patches/{ => unapplied}/server/0177-getPlayerUniqueId-API.patch (100%) rename patches/{ => unapplied}/server/0178-Improved-Async-Task-Scheduler.patch (100%) rename patches/{ => unapplied}/server/0179-Make-legacy-ping-handler-more-reliable.patch (100%) rename patches/{ => unapplied}/server/0180-Call-PaperServerListPingEvent-for-legacy-pings.patch (100%) rename patches/{ => unapplied}/server/0181-Flag-to-disable-the-channel-limit.patch (100%) rename patches/{ => unapplied}/server/0182-Add-openSign-method-to-HumanEntity.patch (100%) rename patches/{ => unapplied}/server/0183-Configurable-sprint-interruption-on-attack.patch (100%) rename patches/{ => unapplied}/server/0184-EndermanEscapeEvent.patch (100%) rename patches/{ => unapplied}/server/0185-Enderman.teleportRandomly.patch (100%) rename patches/{ => unapplied}/server/0186-Block-Enderpearl-Travel-Exploit.patch (100%) rename patches/{ => unapplied}/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch (100%) rename patches/{ => unapplied}/server/0188-Fix-exploit-that-allowed-colored-signs-to-be-created.patch (100%) rename patches/{ => unapplied}/server/0189-EndermanAttackPlayerEvent.patch (100%) rename patches/{ => unapplied}/server/0190-WitchConsumePotionEvent.patch (100%) rename patches/{ => unapplied}/server/0191-WitchThrowPotionEvent.patch (100%) rename patches/{ => unapplied}/server/0192-WitchReadyPotionEvent.patch (100%) rename patches/{ => unapplied}/server/0193-ItemStack-getMaxItemUseDuration.patch (100%) rename patches/{ => unapplied}/server/0194-Add-EntityTeleportEndGatewayEvent.patch (100%) rename patches/{ => unapplied}/server/0195-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch (100%) rename patches/{ => unapplied}/server/0196-Fix-CraftEntity-hashCode.patch (100%) rename patches/{ => unapplied}/server/0197-Configurable-LootPool-luck-formula.patch (100%) rename patches/{ => unapplied}/server/0198-Print-Error-details-when-failing-to-save-player-data.patch (100%) rename patches/{ => unapplied}/server/0199-Make-shield-blocking-delay-configurable.patch (100%) rename patches/{ => unapplied}/server/0200-Improve-EntityShootBowEvent.patch (100%) rename patches/{ => unapplied}/server/0201-PlayerReadyArrowEvent.patch (100%) rename patches/{ => unapplied}/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch (100%) rename patches/{ => unapplied}/server/0203-Expand-Explosions-API.patch (100%) rename patches/{ => unapplied}/server/0204-LivingEntity-Active-Item-API.patch (100%) rename patches/{ => unapplied}/server/0205-RangedEntity-API.patch (100%) rename patches/{ => unapplied}/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch (100%) rename patches/{ => unapplied}/server/0207-Implement-World.getEntity-UUID-API.patch (100%) rename patches/{ => unapplied}/server/0208-InventoryCloseEvent-Reason-API.patch (100%) rename patches/{ => unapplied}/server/0209-Vex-get-setSummoner-API.patch (100%) rename patches/{ => unapplied}/server/0210-Refresh-player-inventory-when-cancelling-PlayerInter.patch (94%) rename patches/{ => unapplied}/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch (100%) rename patches/{ => unapplied}/server/0212-add-more-information-to-Entity.toString.patch (100%) rename patches/{ => unapplied}/server/0213-EnderDragon-Events.patch (100%) rename patches/{ => unapplied}/server/0214-PlayerElytraBoostEvent.patch (96%) rename patches/{ => unapplied}/server/0215-PlayerLaunchProjectileEvent.patch (99%) rename patches/{ => unapplied}/server/0216-Improve-BlockPosition-inlining.patch (100%) rename patches/{ => unapplied}/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch (100%) rename patches/{ => unapplied}/server/0218-Vanished-players-don-t-have-rights.patch (100%) rename patches/{ => unapplied}/server/0219-Allow-disabling-armor-stand-ticking.patch (100%) rename patches/{ => unapplied}/server/0220-SkeletonHorse-Additions.patch (97%) rename patches/{ => unapplied}/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch (100%) rename patches/{ => unapplied}/server/0222-Expand-ArmorStand-API.patch (100%) rename patches/{ => unapplied}/server/0223-AnvilDamageEvent.patch (100%) rename patches/{ => unapplied}/server/0224-Add-TNTPrimeEvent.patch (100%) rename patches/{ => unapplied}/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch (97%) rename patches/{ => unapplied}/server/0226-Fix-NBT-type-issues.patch (100%) rename patches/{ => unapplied}/server/0227-Remove-unnecessary-itemmeta-handling.patch (100%) rename patches/{ => unapplied}/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch (100%) rename patches/{ => unapplied}/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch (99%) rename patches/{ => unapplied}/server/0230-Use-ConcurrentHashMap-in-JsonList.patch (100%) rename patches/{ => unapplied}/server/0231-Use-a-Queue-for-Queueing-Commands.patch (100%) rename patches/{ => unapplied}/server/0232-Ability-to-get-block-entities-from-a-chunk-without-s.patch (100%) rename patches/{ => unapplied}/server/0233-Optimize-BlockPosition-helper-methods.patch (100%) rename patches/{ => unapplied}/server/0234-Restore-vanilla-default-mob-spawn-range-and-water-an.patch (100%) rename patches/{ => unapplied}/server/0235-Slime-Pathfinder-Events.patch (100%) rename patches/{ => unapplied}/server/0236-Configurable-speed-for-water-flowing-over-lava.patch (100%) rename patches/{ => unapplied}/server/0237-Optimize-CraftBlockData-Creation.patch (100%) rename patches/{ => unapplied}/server/0238-Optimize-MappedRegistry.patch (100%) rename patches/{ => unapplied}/server/0239-Add-PhantomPreSpawnEvent.patch (100%) rename patches/{ => unapplied}/server/0240-Add-More-Creeper-API.patch (100%) rename patches/{ => unapplied}/server/0241-Inventory-removeItemAnySlot.patch (100%) rename patches/{ => unapplied}/server/0242-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch (100%) rename patches/{ => unapplied}/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch (100%) rename patches/{ => unapplied}/server/0244-Expose-attack-cooldown-methods-for-Player.patch (100%) rename patches/{ => unapplied}/server/0245-Improve-death-events.patch (100%) rename patches/{ => unapplied}/server/0246-Allow-chests-to-be-placed-with-NBT-data.patch (100%) rename patches/{ => unapplied}/server/0247-Mob-Pathfinding-API.patch (98%) rename patches/{ => unapplied}/server/0248-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch (100%) rename patches/{ => unapplied}/server/0249-Prevent-various-interactions-from-causing-chunk-load.patch (98%) rename patches/{ => unapplied}/server/0250-Prevent-mob-spawning-from-loading-generating-chunks.patch (100%) rename patches/{ => unapplied}/server/0251-Implement-furnace-cook-speed-multiplier-API.patch (100%) rename patches/{ => unapplied}/server/0252-Honor-EntityAgeable.ageLock.patch (100%) rename patches/{ => unapplied}/server/0253-Configurable-connection-throttle-kick-message.patch (100%) rename patches/{ => unapplied}/server/0254-Prevent-chunk-loading-from-Fluid-Flowing.patch (100%) rename patches/{ => unapplied}/server/0255-Hook-into-CB-plugin-rewrites.patch (100%) rename patches/{ => unapplied}/server/0256-PreSpawnerSpawnEvent.patch (100%) rename patches/{ => unapplied}/server/0257-Add-LivingEntity-getTargetEntity.patch (100%) rename patches/{ => unapplied}/server/0258-Add-sun-related-API.patch (100%) rename patches/{ => unapplied}/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch (100%) rename patches/{ => unapplied}/server/0260-Turtle-API.patch (100%) rename patches/{ => unapplied}/server/0261-Call-player-spectator-target-events-and-improve-impl.patch (100%) rename patches/{ => unapplied}/server/0262-Add-more-Witch-API.patch (100%) rename patches/{ => unapplied}/server/0263-Check-Drowned-for-Villager-Aggression-Config.patch (100%) rename patches/{ => unapplied}/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch (98%) rename patches/{ => unapplied}/server/0265-Reset-players-airTicks-on-respawn.patch (100%) rename patches/{ => unapplied}/server/0266-Don-t-sleep-after-profile-lookups-if-not-needed.patch (100%) rename patches/{ => unapplied}/server/0267-Improve-Server-Thread-Pool-and-Thread-Priorities.patch (96%) rename patches/{ => unapplied}/server/0268-Optimize-World-Time-Updates.patch (96%) rename patches/{ => unapplied}/server/0269-Restore-custom-InventoryHolder-support.patch (100%) rename patches/{ => unapplied}/server/0270-Fix-SpongeAbsortEvent-handling.patch (100%) rename patches/{ => unapplied}/server/0271-Don-t-allow-digging-into-unloaded-chunks.patch (98%) rename patches/{ => unapplied}/server/0272-Make-the-default-permission-message-configurable.patch (100%) rename patches/{ => unapplied}/server/0273-Handle-Large-Packets-disconnecting-client.patch (98%) rename patches/{ => unapplied}/server/0274-force-entity-dismount-during-teleportation.patch (100%) rename patches/{ => unapplied}/server/0275-Add-more-Zombie-API.patch (100%) rename patches/{ => unapplied}/server/0276-Book-Size-Limits.patch (96%) rename patches/{ => unapplied}/server/0277-Add-PlayerConnectionCloseEvent.patch (100%) rename patches/{ => unapplied}/server/0278-Replace-OfflinePlayer-getLastPlayed.patch (100%) rename patches/{ => unapplied}/server/0279-Workaround-for-vehicle-tracking-issue-on-disconnect.patch (100%) rename patches/{ => unapplied}/server/0280-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch (92%) rename patches/{ => unapplied}/server/0281-BlockDestroyEvent.patch (100%) rename patches/{ => unapplied}/server/0282-Async-command-map-building.patch (97%) rename patches/{ => unapplied}/server/0283-Brigadier-Mojang-API.patch (99%) rename patches/{ => unapplied}/server/0284-Improve-exact-choice-recipe-ingredients.patch (100%) rename patches/{ => unapplied}/server/0285-Limit-Client-Sign-length-more.patch (96%) rename patches/{ => unapplied}/server/0286-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch (100%) rename patches/{ => unapplied}/server/0287-Entity-getEntitySpawnReason.patch (100%) rename patches/{ => unapplied}/server/0288-Fire-event-on-GS4-query.patch (98%) rename patches/{ => unapplied}/server/0289-Add-PlayerPostRespawnEvent.patch (100%) rename patches/{ => unapplied}/server/0290-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch (100%) rename patches/{ => unapplied}/server/0291-Server-Tick-Events.patch (94%) rename patches/{ => unapplied}/server/0292-PlayerDeathEvent-getItemsToKeep.patch (100%) rename patches/{ => unapplied}/server/0293-Optimize-Captured-BlockEntity-Lookup.patch (100%) rename patches/{ => unapplied}/server/0294-Add-Heightmap-API.patch (100%) rename patches/{ => unapplied}/server/0295-Mob-Spawner-API-Enhancements.patch (100%) rename patches/{ => unapplied}/server/0296-Fix-CB-call-to-changed-postToMainThread-method.patch (100%) rename patches/{ => unapplied}/server/0297-Fix-sounds-when-item-frames-are-modified-MC-123450.patch (100%) rename patches/{ => unapplied}/server/0298-Implement-CraftBlockSoundGroup.patch (100%) rename patches/{ => unapplied}/server/0299-Configurable-Keep-Spawn-Loaded-range-per-world.patch (99%) rename patches/{ => unapplied}/server/0300-Expose-the-internal-current-tick.patch (100%) rename patches/{ => unapplied}/server/0301-Show-blockstate-location-if-we-failed-to-read-it.patch (100%) rename patches/{ => unapplied}/server/0302-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch (100%) rename patches/{ => unapplied}/server/0303-Configurable-projectile-relative-velocity.patch (100%) rename patches/{ => unapplied}/server/0304-offset-item-frame-ticking.patch (100%) rename patches/{ => unapplied}/server/0305-Prevent-consuming-the-wrong-itemstack.patch (100%) rename patches/{ => unapplied}/server/0306-Dont-send-unnecessary-sign-update.patch (100%) rename patches/{ => unapplied}/server/0307-Add-option-to-disable-pillager-patrols.patch (100%) rename patches/{ => unapplied}/server/0308-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch (100%) rename patches/{ => unapplied}/server/0309-MC-145656-Fix-Follow-Range-Initial-Target.patch (100%) rename patches/{ => unapplied}/server/0310-Duplicate-UUID-Resolve-Option.patch (100%) rename patches/{ => unapplied}/server/0311-PlayerDeathEvent-shouldDropExperience.patch (100%) rename patches/{ => unapplied}/server/0312-Prevent-bees-loading-chunks-checking-hive-position.patch (100%) rename patches/{ => unapplied}/server/0313-Don-t-load-Chunks-from-Hoppers-and-other-things.patch (100%) rename patches/{ => unapplied}/server/0314-Optimise-EntityGetter-getPlayerByUUID.patch (100%) rename patches/{ => unapplied}/server/0315-Fix-items-not-falling-correctly.patch (100%) rename patches/{ => unapplied}/server/0316-Optimize-call-to-getFluid-for-explosions.patch (100%) rename patches/{ => unapplied}/server/0317-Fix-last-firework-in-stack-not-having-effects-when-d.patch (100%) rename patches/{ => unapplied}/server/0318-Guard-against-serializing-mismatching-chunk-coordina.patch (100%) rename patches/{ => unapplied}/server/0319-Alternative-item-despawn-rate.patch (100%) rename patches/{ => unapplied}/server/0320-Tracking-Range-Improvements.patch (100%) rename patches/{ => unapplied}/server/0321-Fix-items-vanishing-through-end-portal.patch (100%) rename patches/{ => unapplied}/server/0322-Bees-get-gravity-in-void.-Fixes-MC-167279.patch (100%) rename patches/{ => unapplied}/server/0323-Improve-Block-breakNaturally-API.patch (100%) rename patches/{ => unapplied}/server/0324-Optimise-getChunkAt-calls-for-loaded-chunks.patch (100%) rename patches/{ => unapplied}/server/0325-Add-debug-for-sync-chunk-loads.patch (100%) rename patches/{ => unapplied}/server/0326-Improve-java-version-check.patch (100%) rename patches/{ => unapplied}/server/0327-Add-ThrownEggHatchEvent.patch (100%) rename patches/{ => unapplied}/server/0328-Entity-Jump-API.patch (100%) rename patches/{ => unapplied}/server/0329-Add-option-to-nerf-pigmen-from-nether-portals.patch (100%) rename patches/{ => unapplied}/server/0330-Make-the-GUI-graph-fancier.patch (100%) rename patches/{ => unapplied}/server/0331-add-hand-to-BlockMultiPlaceEvent.patch (100%) rename patches/{ => unapplied}/server/0332-Validate-tripwire-hook-placement-before-update.patch (100%) rename patches/{ => unapplied}/server/0333-Add-option-to-allow-iron-golems-to-spawn-in-air.patch (100%) rename patches/{ => unapplied}/server/0334-Configurable-chance-of-villager-zombie-infection.patch (100%) rename patches/{ => unapplied}/server/0335-Optimise-Chunk-getFluid.patch (100%) rename patches/{ => unapplied}/server/0336-Set-spigots-verbose-world-setting-to-false-by-def.patch (100%) rename patches/{ => unapplied}/server/0337-Add-tick-times-API-and-mspt-command.patch (100%) rename patches/{ => unapplied}/server/0338-Expose-MinecraftServer-isRunning.patch (100%) rename patches/{ => unapplied}/server/0339-Add-Raw-Byte-ItemStack-Serialization.patch (100%) rename patches/{ => unapplied}/server/0340-Pillager-patrol-spawn-settings-and-per-player-option.patch (100%) rename patches/{ => unapplied}/server/0341-Remote-Connections-shouldn-t-hold-up-shutdown.patch (100%) rename patches/{ => unapplied}/server/0342-Do-not-allow-bees-to-load-chunks-for-beehives.patch (100%) rename patches/{ => unapplied}/server/0343-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch (100%) rename patches/{ => unapplied}/server/0344-Don-t-tick-dead-players.patch (100%) rename patches/{ => unapplied}/server/0345-Dead-Player-s-shouldn-t-be-able-to-move.patch (100%) rename patches/{ => unapplied}/server/0346-Don-t-move-existing-players-to-world-spawn.patch (100%) rename patches/{ => unapplied}/server/0347-Optimize-Pathfinding.patch (100%) rename patches/{ => unapplied}/server/0348-Reduce-Either-Optional-allocation.patch (100%) rename patches/{ => unapplied}/server/0349-Reduce-memory-footprint-of-CompoundTag.patch (100%) rename patches/{ => unapplied}/server/0350-Prevent-opening-inventories-when-frozen.patch (100%) rename patches/{ => unapplied}/server/0351-Don-t-run-entity-collision-code-if-not-needed.patch (100%) rename patches/{ => unapplied}/server/0352-Implement-Player-Client-Options-API.patch (100%) rename patches/{ => unapplied}/server/0353-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch (100%) rename patches/{ => unapplied}/server/0354-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch (100%) rename patches/{ => unapplied}/server/0355-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch (100%) rename patches/{ => unapplied}/server/0356-Add-PlayerAttackEntityCooldownResetEvent.patch (100%) rename patches/{ => unapplied}/server/0357-Don-t-fire-BlockFade-on-worldgen-threads.patch (100%) rename patches/{ => unapplied}/server/0358-Add-phantom-creative-and-insomniac-controls.patch (100%) rename patches/{ => unapplied}/server/0359-Fix-item-duplication-and-teleport-issues.patch (100%) rename patches/{ => unapplied}/server/0360-Villager-Restocks-API.patch (100%) rename patches/{ => unapplied}/server/0361-Validate-PickItem-Packet-and-kick-for-invalid.patch (95%) rename patches/{ => unapplied}/server/0362-Expose-game-version.patch (100%) rename patches/{ => unapplied}/server/0363-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch (100%) rename patches/{ => unapplied}/server/0364-misc-debugging-dumps.patch (98%) rename patches/{ => unapplied}/server/0365-Prevent-teleporting-dead-entities.patch (93%) rename patches/{ => unapplied}/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch (99%) rename patches/{ => unapplied}/server/0367-Implement-Mob-Goal-API.patch (100%) rename patches/{ => unapplied}/server/0368-Add-villager-reputation-API.patch (100%) rename patches/{ => unapplied}/server/0369-Option-for-maximum-exp-value-when-merging-orbs.patch (100%) rename patches/{ => unapplied}/server/0370-ExperienceOrbMergeEvent.patch (100%) rename patches/{ => unapplied}/server/0371-Fix-PotionEffect-ignores-icon-flag.patch (100%) rename patches/{ => unapplied}/server/0372-Potential-bed-API.patch (100%) rename patches/{ => unapplied}/server/0373-Wait-for-Async-Tasks-during-shutdown.patch (96%) rename patches/{ => unapplied}/server/0374-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch (100%) rename patches/{ => unapplied}/server/0375-Ensure-safe-gateway-teleport.patch (100%) rename patches/{ => unapplied}/server/0376-Add-option-for-console-having-all-permissions.patch (100%) rename patches/{ => unapplied}/server/0377-Fix-villager-trading-demand-MC-163962.patch (100%) rename patches/{ => unapplied}/server/0378-Maps-shouldn-t-load-chunks.patch (100%) rename patches/{ => unapplied}/server/0379-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch (100%) rename patches/{ => unapplied}/server/0380-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch (100%) rename patches/{ => unapplied}/server/0381-Fix-piston-physics-inconsistency-MC-188840.patch (100%) rename patches/{ => unapplied}/server/0382-Fix-missing-chunks-due-to-integer-overflow.patch (100%) rename patches/{ => unapplied}/server/0383-Prevent-position-desync-causing-tp-exploit.patch (94%) rename patches/{ => unapplied}/server/0384-Inventory-getHolder-method-without-block-snapshot.patch (100%) rename patches/{ => unapplied}/server/0385-Add-PlayerRecipeBookClickEvent.patch (97%) rename patches/{ => unapplied}/server/0386-Hide-sync-chunk-writes-behind-flag.patch (100%) rename patches/{ => unapplied}/server/0387-Add-permission-for-command-blocks.patch (98%) rename patches/{ => unapplied}/server/0388-Ensure-Entity-position-and-AABB-are-never-invalid.patch (100%) rename patches/{ => unapplied}/server/0389-Fix-Per-World-Difficulty-Remembering-Difficulty.patch (97%) rename patches/{ => unapplied}/server/0390-Paper-dumpitem-command.patch (100%) rename patches/{ => unapplied}/server/0391-Improve-Legacy-Component-serialization-size.patch (100%) rename patches/{ => unapplied}/server/0392-Add-Plugin-Tickets-to-API-Chunk-Methods.patch (100%) rename patches/{ => unapplied}/server/0393-Add-BlockStateMeta-clearBlockState.patch (100%) rename patches/{ => unapplied}/server/0394-Support-old-UUID-format-for-NBT.patch (100%) rename patches/{ => unapplied}/server/0395-Convert-legacy-attributes-in-Item-Meta.patch (100%) rename patches/{ => unapplied}/server/0396-Do-not-accept-invalid-client-settings.patch (94%) rename patches/{ => unapplied}/server/0397-Improve-fix-EntityTargetLivingEntityEvent.patch (100%) rename patches/{ => unapplied}/server/0398-Add-entity-liquid-API.patch (100%) rename patches/{ => unapplied}/server/0399-Update-itemstack-legacy-name-and-lore.patch (100%) rename patches/{ => unapplied}/server/0400-Add-PrepareResultEvent.patch (100%) rename patches/{ => unapplied}/server/0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch (100%) rename patches/{ => unapplied}/server/0402-Fix-arrows-never-despawning-MC-125757.patch (100%) rename patches/{ => unapplied}/server/0403-Thread-Safe-Vanilla-Command-permission-checking.patch (100%) rename patches/{ => unapplied}/server/0404-Fix-SPIGOT-5989.patch (100%) rename patches/{ => unapplied}/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch (100%) rename patches/{ => unapplied}/server/0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch (100%) rename patches/{ => unapplied}/server/0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch (100%) rename patches/{ => unapplied}/server/0408-Optimize-NetworkManager-Exception-Handling.patch (100%) rename patches/{ => unapplied}/server/0409-Fix-some-rails-connecting-improperly.patch (100%) rename patches/{ => unapplied}/server/0410-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch (100%) rename patches/{ => unapplied}/server/0411-Brand-support.patch (100%) rename patches/{ => unapplied}/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch (100%) rename patches/{ => unapplied}/server/0413-Don-t-require-FACING-data.patch (100%) rename patches/{ => unapplied}/server/0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch (100%) rename patches/{ => unapplied}/server/0415-Add-moon-phase-API.patch (100%) rename patches/{ => unapplied}/server/0416-Do-not-let-the-server-load-chunks-from-newer-version.patch (100%) rename patches/{ => unapplied}/server/0417-Prevent-headless-pistons-from-being-created.patch (100%) rename patches/{ => unapplied}/server/0418-Add-BellRingEvent.patch (100%) rename patches/{ => unapplied}/server/0419-Add-zombie-targets-turtle-egg-config.patch (100%) rename patches/{ => unapplied}/server/0420-Buffer-joins-to-world.patch (100%) rename patches/{ => unapplied}/server/0421-Fix-hex-colors-not-working-in-some-kick-messages.patch (100%) rename patches/{ => unapplied}/server/0422-PortalCreateEvent-needs-to-know-its-entity.patch (100%) rename patches/{ => unapplied}/server/0423-Add-more-Evoker-API.patch (100%) rename patches/{ => unapplied}/server/0424-Add-methods-to-get-translation-keys.patch (100%) rename patches/{ => unapplied}/server/0425-Create-HoverEvent-from-ItemStack-Entity.patch (100%) rename patches/{ => unapplied}/server/0426-Cache-block-data-strings.patch (97%) rename patches/{ => unapplied}/server/0427-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch (98%) rename patches/{ => unapplied}/server/0428-Add-additional-open-container-api-to-HumanEntity.patch (100%) rename patches/{ => unapplied}/server/0429-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch (100%) rename patches/{ => unapplied}/server/0430-Extend-block-drop-capture-to-capture-all-items-added.patch (100%) rename patches/{ => unapplied}/server/0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch (100%) rename patches/{ => unapplied}/server/0432-Lazily-track-plugin-scoreboards-by-default.patch (100%) rename patches/{ => unapplied}/server/0433-Entity-isTicking.patch (100%) rename patches/{ => unapplied}/server/0434-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch (94%) rename patches/{ => unapplied}/server/0435-Fix-Concurrency-issue-in-ShufflingList.patch (100%) rename patches/{ => unapplied}/server/0436-Reset-Ender-Crystals-on-Dragon-Spawn.patch (100%) rename patches/{ => unapplied}/server/0437-Fix-for-large-move-vectors-crashing-server.patch (98%) rename patches/{ => unapplied}/server/0438-Optimise-getType-calls.patch (100%) rename patches/{ => unapplied}/server/0439-Villager-resetOffers.patch (100%) rename patches/{ => unapplied}/server/0440-Retain-block-place-order-when-capturing-blockstates.patch (100%) rename patches/{ => unapplied}/server/0441-Reduce-blockpos-allocation-from-pathfinding.patch (100%) rename patches/{ => unapplied}/server/0442-Fix-item-locations-dropped-from-campfires.patch (100%) rename patches/{ => unapplied}/server/0443-Fix-bell-block-entity-memory-leak.patch (100%) rename patches/{ => unapplied}/server/0444-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch (100%) rename patches/{ => unapplied}/server/0445-Add-getOfflinePlayerIfCached-String.patch (100%) rename patches/{ => unapplied}/server/0446-Add-ignore-discounts-API.patch (100%) rename patches/{ => unapplied}/server/0447-Toggle-for-removing-existing-dragon.patch (100%) rename patches/{ => unapplied}/server/0448-Fix-client-lag-on-advancement-loading.patch (100%) rename patches/{ => unapplied}/server/0449-Item-no-age-no-player-pickup.patch (100%) rename patches/{ => unapplied}/server/0450-Beacon-API-custom-effect-ranges.patch (100%) rename patches/{ => unapplied}/server/0451-Add-API-for-quit-reason.patch (100%) rename patches/{ => unapplied}/server/0452-Add-Wandering-Trader-spawn-rate-config-options.patch (100%) rename patches/{ => unapplied}/server/0453-Expose-world-spawn-angle.patch (100%) rename patches/{ => unapplied}/server/0454-Add-Destroy-Speed-API.patch (100%) rename patches/{ => unapplied}/server/0455-Fix-Player-spawnParticle-x-y-z-precision-loss.patch (100%) rename patches/{ => unapplied}/server/0456-Add-LivingEntity-clearActiveItem.patch (100%) rename patches/{ => unapplied}/server/0457-Add-PlayerItemCooldownEvent.patch (100%) rename patches/{ => unapplied}/server/0458-Significantly-improve-performance-of-the-end-generat.patch (100%) rename patches/{ => unapplied}/server/0459-More-lightning-API.patch (100%) rename patches/{ => unapplied}/server/0460-Climbing-should-not-bypass-cramming-gamerule.patch (100%) rename patches/{ => unapplied}/server/0461-Add-missing-default-perms-for-commands.patch (100%) rename patches/{ => unapplied}/server/0462-Add-PlayerShearBlockEvent.patch (100%) rename patches/{ => unapplied}/server/0463-Limit-recipe-packets.patch (96%) rename patches/{ => unapplied}/server/0464-Fix-CraftSound-backwards-compatibility.patch (100%) rename patches/{ => unapplied}/server/0465-Player-Chunk-Load-Unload-Events.patch (95%) rename patches/{ => unapplied}/server/0466-Optimize-Dynamic-get-Missing-Keys.patch (100%) rename patches/{ => unapplied}/server/0467-Expose-LivingEntity-hurt-direction.patch (100%) rename patches/{ => unapplied}/server/0468-Add-OBSTRUCTED-reason-to-BedEnterResult.patch (100%) rename patches/{ => unapplied}/server/0469-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch (100%) rename patches/{ => unapplied}/server/0470-Add-TargetHitEvent.patch (100%) rename patches/{ => unapplied}/server/0471-MC-4-Fix-item-position-desync.patch (100%) rename patches/{ => unapplied}/server/0472-Additional-Block-Material-API.patch (100%) rename patches/{ => unapplied}/server/0473-Fix-harming-potion-dupe.patch (100%) rename patches/{ => unapplied}/server/0474-API-to-get-Material-from-Boats-and-Minecarts.patch (100%) rename patches/{ => unapplied}/server/0475-Cache-burn-durations.patch (100%) rename patches/{ => unapplied}/server/0476-Allow-disabling-mob-spawner-spawn-egg-transformation.patch (100%) rename patches/{ => unapplied}/server/0477-Fix-Not-a-string-Map-Conversion-spam.patch (100%) rename patches/{ => unapplied}/server/0478-Add-PlayerFlowerPotManipulateEvent.patch (100%) rename patches/{ => unapplied}/server/0479-Fix-interact-event-not-being-called-sometimes.patch (97%) rename patches/{ => unapplied}/server/0480-Zombie-API-breaking-doors.patch (100%) rename patches/{ => unapplied}/server/0481-Fix-nerfed-slime-when-splitting.patch (100%) rename patches/{ => unapplied}/server/0482-Add-EntityLoadCrossbowEvent.patch (100%) rename patches/{ => unapplied}/server/0483-Add-WorldGameRuleChangeEvent.patch (100%) rename patches/{ => unapplied}/server/0484-Add-ServerResourcesReloadedEvent.patch (97%) rename patches/{ => unapplied}/server/0485-Add-world-settings-for-mobs-picking-up-loot.patch (100%) rename patches/{ => unapplied}/server/0486-Add-BlockFailedDispenseEvent.patch (100%) rename patches/{ => unapplied}/server/0487-Add-PlayerLecternPageChangeEvent.patch (100%) rename patches/{ => unapplied}/server/0488-Add-PlayerLoomPatternSelectEvent.patch (100%) rename patches/{ => unapplied}/server/0489-Configurable-door-breaking-difficulty.patch (100%) rename patches/{ => unapplied}/server/0490-Empty-commands-shall-not-be-dispatched.patch (100%) rename patches/{ => unapplied}/server/0491-Remove-stale-POIs.patch (100%) rename patches/{ => unapplied}/server/0492-Fix-villager-boat-exploit.patch (100%) rename patches/{ => unapplied}/server/0493-Add-sendOpLevel-API.patch (100%) rename patches/{ => unapplied}/server/0494-TODO-Registry-Modification-API.patch (100%) rename patches/{ => unapplied}/server/0495-Add-StructuresLocateEvent.patch (99%) rename patches/{ => unapplied}/server/0496-Collision-option-for-requiring-a-player-participant.patch (100%) rename patches/{ => unapplied}/server/0497-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch (100%) rename patches/{ => unapplied}/server/0498-Return-chat-component-with-empty-text-instead-of-thr.patch (100%) rename patches/{ => unapplied}/server/0499-Make-schedule-command-per-world.patch (100%) rename patches/{ => unapplied}/server/0500-Configurable-max-leash-distance.patch (100%) rename patches/{ => unapplied}/server/0501-Add-BlockPreDispenseEvent.patch (100%) rename patches/{ => unapplied}/server/0502-Add-PlayerChangeBeaconEffectEvent.patch (100%) rename patches/{ => unapplied}/server/0503-Add-toggle-for-always-placing-the-dragon-egg.patch (100%) rename patches/{ => unapplied}/server/0504-Add-PlayerStonecutterRecipeSelectEvent.patch (100%) rename patches/{ => unapplied}/server/0505-Expand-EntityUnleashEvent.patch (100%) rename patches/{ => unapplied}/server/0506-Reset-shield-blocking-on-dimension-change.patch (100%) rename patches/{ => unapplied}/server/0507-Add-DragonEggFormEvent.patch (100%) rename patches/{ => unapplied}/server/0508-Add-EntityMoveEvent.patch (97%) rename patches/{ => unapplied}/server/0509-added-option-to-disable-pathfinding-updates-on-block.patch (100%) rename patches/{ => unapplied}/server/0510-Inline-shift-direction-fields.patch (100%) rename patches/{ => unapplied}/server/0511-Allow-adding-items-to-BlockDropItemEvent.patch (100%) rename patches/{ => unapplied}/server/0512-Add-getMainThreadExecutor-to-BukkitScheduler.patch (100%) rename patches/{ => unapplied}/server/0513-living-entity-allow-attribute-registration.patch (100%) rename patches/{ => unapplied}/server/0514-fix-dead-slime-setSize-invincibility.patch (100%) rename patches/{ => unapplied}/server/0515-Merchant-getRecipes-should-return-an-immutable-list.patch (100%) rename patches/{ => unapplied}/server/0516-Expose-Tracked-Players.patch (100%) rename patches/{ => unapplied}/server/0517-Improve-ServerGUI.patch (100%) rename patches/{ => unapplied}/server/0518-fix-converting-txt-to-json-file.patch (100%) rename patches/{ => unapplied}/server/0519-Add-worldborder-events.patch (100%) rename patches/{ => unapplied}/server/0520-Add-PlayerNameEntityEvent.patch (100%) rename patches/{ => unapplied}/server/0521-Prevent-grindstones-from-overstacking-items.patch (100%) rename patches/{ => unapplied}/server/0522-Add-recipe-to-cook-events.patch (100%) rename patches/{ => unapplied}/server/0523-Add-Block-isValidTool.patch (100%) rename patches/{ => unapplied}/server/0524-Allow-using-signs-inside-spawn-protection.patch (95%) rename patches/{ => unapplied}/server/0525-Expand-world-key-API.patch (100%) rename patches/{ => unapplied}/server/0526-Add-fast-alternative-constructor-for-Rotations.patch (100%) rename patches/{ => unapplied}/server/0527-Item-Rarity-API.patch (100%) rename patches/{ => unapplied}/server/0528-Drop-carried-item-when-player-has-disconnected.patch (100%) rename patches/{ => unapplied}/server/0529-forced-whitelist-use-configurable-kick-message.patch (92%) rename patches/{ => unapplied}/server/0530-Don-t-ignore-result-of-PlayerEditBookEvent.patch (91%) rename patches/{ => unapplied}/server/0531-Expose-protocol-version.patch (100%) rename patches/{ => unapplied}/server/0532-Enhance-console-tab-completions-for-brigadier-comman.patch (100%) rename patches/{ => unapplied}/server/0533-Fix-PlayerItemConsumeEvent-cancelling-properly.patch (100%) rename patches/{ => unapplied}/server/0534-Add-bypass-host-check.patch (100%) rename patches/{ => unapplied}/server/0535-Set-area-affect-cloud-rotation.patch (100%) rename patches/{ => unapplied}/server/0536-add-isDeeplySleeping-to-HumanEntity.patch (100%) rename patches/{ => unapplied}/server/0537-add-consumeFuel-to-FurnaceBurnEvent.patch (100%) rename patches/{ => unapplied}/server/0538-add-get-set-drop-chance-to-EntityEquipment.patch (100%) rename patches/{ => unapplied}/server/0539-fix-PigZombieAngerEvent-cancellation.patch (100%) rename patches/{ => unapplied}/server/0540-fix-PlayerItemHeldEvent-firing-twice.patch (93%) rename patches/{ => unapplied}/server/0541-Add-PlayerDeepSleepEvent.patch (100%) rename patches/{ => unapplied}/server/0542-More-World-API.patch (100%) rename patches/{ => unapplied}/server/0543-Add-PlayerBedFailEnterEvent.patch (100%) rename patches/{ => unapplied}/server/0544-Implement-methods-to-convert-between-Component-and-B.patch (100%) rename patches/{ => unapplied}/server/0545-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch (97%) rename patches/{ => unapplied}/server/0546-Introduce-beacon-activation-deactivation-events.patch (100%) rename patches/{ => unapplied}/server/0547-Add-Channel-initialization-listeners.patch (100%) rename patches/{ => unapplied}/server/0548-Send-empty-commands-if-tab-completion-is-disabled.patch (100%) rename patches/{ => unapplied}/server/0549-Add-more-WanderingTrader-API.patch (100%) rename patches/{ => unapplied}/server/0550-Add-EntityBlockStorage-clearEntities.patch (100%) rename patches/{ => unapplied}/server/0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch (100%) rename patches/{ => unapplied}/server/0552-Add-HiddenPotionEffect-API.patch (100%) rename patches/{ => unapplied}/server/0553-Inventory-close.patch (100%) rename patches/{ => unapplied}/server/0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch (100%) rename patches/{ => unapplied}/server/0555-Add-basic-Datapack-API.patch (100%) rename patches/{ => unapplied}/server/0556-Add-environment-variable-to-disable-server-gui.patch (100%) rename patches/{ => unapplied}/server/0557-Expand-PlayerGameModeChangeEvent.patch (100%) rename patches/{ => unapplied}/server/0558-ItemStack-repair-check-API.patch (100%) rename patches/{ => unapplied}/server/0559-More-Enchantment-API.patch (100%) rename patches/{ => unapplied}/server/0560-Move-range-check-for-block-placing-up.patch (92%) rename patches/{ => unapplied}/server/0561-Add-Mob-lookAt-API.patch (100%) rename patches/{ => unapplied}/server/0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch (100%) rename patches/{ => unapplied}/server/0563-Add-Unix-domain-socket-support.patch (98%) rename patches/{ => unapplied}/server/0564-Add-EntityInsideBlockEvent.patch (100%) rename patches/{ => unapplied}/server/0565-Attributes-API-for-item-defaults.patch (100%) rename patches/{ => unapplied}/server/0566-Add-cause-to-Weather-ThunderChangeEvents.patch (100%) rename patches/{ => unapplied}/server/0567-More-Lidded-Block-API.patch (100%) rename patches/{ => unapplied}/server/0568-Limit-item-frame-cursors-on-maps.patch (100%) rename patches/{ => unapplied}/server/0569-Add-PlayerKickEvent-causes.patch (100%) rename patches/{ => unapplied}/server/0570-Add-PufferFishStateChangeEvent.patch (100%) rename patches/{ => unapplied}/server/0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch (100%) rename patches/{ => unapplied}/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch (100%) rename patches/{ => unapplied}/server/0573-Add-option-to-fix-items-merging-through-walls.patch (100%) rename patches/{ => unapplied}/server/0574-Add-BellRevealRaiderEvent.patch (100%) rename patches/{ => unapplied}/server/0575-Fix-invulnerable-end-crystals.patch (100%) rename patches/{ => unapplied}/server/0576-Add-ElderGuardianAppearanceEvent.patch (100%) rename patches/{ => unapplied}/server/0577-Fix-dangerous-end-portal-logic.patch (100%) rename patches/{ => unapplied}/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch (100%) rename patches/{ => unapplied}/server/0579-Make-item-validations-configurable.patch (100%) rename patches/{ => unapplied}/server/0580-Line-Of-Sight-Changes.patch (100%) rename patches/{ => unapplied}/server/0581-add-per-world-spawn-limits.patch (100%) rename patches/{ => unapplied}/server/0582-Fix-potions-splash-events.patch (100%) rename patches/{ => unapplied}/server/0583-Add-more-LimitedRegion-API.patch (100%) rename patches/{ => unapplied}/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch (100%) rename patches/{ => unapplied}/server/0585-Missing-Entity-API.patch (99%) rename patches/{ => unapplied}/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch (92%) rename patches/{ => unapplied}/server/0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch (100%) rename patches/{ => unapplied}/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch (100%) rename patches/{ => unapplied}/server/0589-Fix-commands-from-signs-not-firing-command-events.patch (100%) rename patches/{ => unapplied}/server/0590-Add-PlayerArmSwingEvent.patch (92%) rename patches/{ => unapplied}/server/0591-Fix-kick-event-leave-message-not-being-sent.patch (98%) rename patches/{ => unapplied}/server/0592-Add-config-for-mobs-immune-to-default-effects.patch (100%) rename patches/{ => unapplied}/server/0593-Don-t-apply-cramming-damage-to-players.patch (100%) rename patches/{ => unapplied}/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch (100%) rename patches/{ => unapplied}/server/0595-Add-missing-forceDrop-toggles.patch (100%) rename patches/{ => unapplied}/server/0596-Stinger-API.patch (100%) rename patches/{ => unapplied}/server/0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch (100%) rename patches/{ => unapplied}/server/0598-Add-System.out-err-catcher.patch (100%) rename patches/{ => unapplied}/server/0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch (100%) rename patches/{ => unapplied}/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch (93%) rename patches/{ => unapplied}/server/0601-Allow-skipping-writing-of-comments-to-server.propert.patch (100%) rename patches/{ => unapplied}/server/0602-Add-PlayerSetSpawnEvent.patch (100%) rename patches/{ => unapplied}/server/0603-Make-hoppers-respect-inventory-max-stack-size.patch (100%) rename patches/{ => unapplied}/server/0604-Optimize-entity-tracker-passenger-checks.patch (100%) rename patches/{ => unapplied}/server/0605-Config-option-for-Piglins-guarding-chests.patch (100%) rename patches/{ => unapplied}/server/0606-Add-EntityDamageItemEvent.patch (100%) rename patches/{ => unapplied}/server/0607-Optimize-indirect-passenger-iteration.patch (100%) rename patches/{ => unapplied}/server/0608-Configurable-item-frame-map-cursor-update-interval.patch (100%) rename patches/{ => unapplied}/server/0609-Clear-bucket-NBT-after-dispense.patch (100%) rename patches/{ => unapplied}/server/0610-Change-EnderEye-target-without-changing-other-things.patch (100%) rename patches/{ => unapplied}/server/0611-Add-BlockBreakBlockEvent.patch (100%) rename patches/{ => unapplied}/server/0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch (100%) rename patches/{ => unapplied}/server/0613-More-CommandBlock-API.patch (100%) rename patches/{ => unapplied}/server/0614-Add-missing-team-sidebar-display-slots.patch (100%) rename patches/{ => unapplied}/server/0615-Add-back-EntityPortalExitEvent.patch (100%) rename patches/{ => unapplied}/server/0616-Add-methods-to-find-targets-for-lightning-strikes.patch (100%) rename patches/{ => unapplied}/server/0617-Get-entity-default-attributes.patch (100%) rename patches/{ => unapplied}/server/0618-Left-handed-API.patch (100%) rename patches/{ => unapplied}/server/0619-Add-more-advancement-API.patch (100%) rename patches/{ => unapplied}/server/0620-Add-ItemFactory-getSpawnEgg-API.patch (100%) rename patches/{ => unapplied}/server/0621-Add-critical-damage-API.patch (100%) rename patches/{ => unapplied}/server/0622-Fix-issues-with-mob-conversion.patch (100%) rename patches/{ => unapplied}/server/0623-Add-isCollidable-methods-to-various-places.patch (100%) rename patches/{ => unapplied}/server/0624-Goat-ram-API.patch (100%) rename patches/{ => unapplied}/server/0625-Add-API-for-resetting-a-single-score.patch (100%) rename patches/{ => unapplied}/server/0626-Add-Raw-Byte-Entity-Serialization.patch (100%) rename patches/{ => unapplied}/server/0627-Vanilla-command-permission-fixes.patch (100%) rename patches/{ => unapplied}/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch (100%) rename patches/{ => unapplied}/server/0629-Fix-GameProfileCache-concurrency.patch (100%) rename patches/{ => unapplied}/server/0630-Improve-and-expand-AsyncCatcher.patch (99%) rename patches/{ => unapplied}/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch (100%) rename patches/{ => unapplied}/server/0632-Sanitize-ResourceLocation-error-logging.patch (100%) rename patches/{ => unapplied}/server/0633-Manually-inline-methods-in-BlockPosition.patch (100%) rename patches/{ => unapplied}/server/0634-Name-craft-scheduler-threads-according-to-the-plugin.patch (100%) rename patches/{ => unapplied}/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch (100%) rename patches/{ => unapplied}/server/0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch (100%) rename patches/{ => unapplied}/server/0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch (100%) rename patches/{ => unapplied}/server/0638-Time-scoreboard-search.patch (100%) rename patches/{ => unapplied}/server/0639-Oprimise-map-impl-for-tracked-players.patch (100%) rename patches/{ => unapplied}/server/0640-Add-missing-InventoryType.patch (100%) rename patches/{ => unapplied}/server/0641-Optimise-BlockSoil-nearby-water-lookup.patch (100%) rename patches/{ => unapplied}/server/0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch (100%) rename patches/{ => unapplied}/server/0643-Check-requirement-before-suggesting-root-nodes.patch (100%) rename patches/{ => unapplied}/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch (92%) rename patches/{ => unapplied}/server/0645-Add-packet-limiter-config.patch (100%) rename patches/{ => unapplied}/server/0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch (100%) rename patches/{ => unapplied}/server/0647-Ensure-valid-vehicle-status.patch (100%) rename patches/{ => unapplied}/server/0648-Prevent-softlocked-end-exit-portal-generation.patch (100%) rename patches/{ => unapplied}/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch (100%) rename patches/{ => unapplied}/server/0650-Don-t-log-debug-logging-being-disabled.patch (100%) rename patches/{ => unapplied}/server/0651-fix-various-menus-with-empty-level-accesses.patch (100%) rename patches/{ => unapplied}/server/0652-Preserve-overstacked-loot.patch (100%) rename patches/{ => unapplied}/server/0653-Update-head-rotation-in-missing-places.patch (100%) rename patches/{ => unapplied}/server/0654-prevent-unintended-light-block-manipulation.patch (100%) rename patches/{ => unapplied}/server/0655-Fix-CraftCriteria-defaults-map.patch (100%) rename patches/{ => unapplied}/server/0656-Fix-upstreams-block-state-factories.patch (100%) rename patches/{ => unapplied}/server/0657-Configurable-feature-seeds.patch (96%) rename patches/{ => unapplied}/server/0658-Add-root-admin-user-detection.patch (100%) rename patches/{ => unapplied}/server/0659-Always-allow-item-changing-in-Fireball.patch (100%) rename patches/{ => unapplied}/server/0660-don-t-attempt-to-teleport-dead-entities.patch (100%) rename patches/{ => unapplied}/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch (100%) rename patches/{ => unapplied}/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch (100%) rename patches/{ => unapplied}/server/0663-Fix-removing-recipes-from-RecipeIterator.patch (100%) rename patches/{ => unapplied}/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch (100%) rename patches/{ => unapplied}/server/0665-Hide-unnecessary-itemmeta-from-clients.patch (98%) rename patches/{ => unapplied}/server/0666-Fix-Spigot-growth-modifiers.patch (100%) rename patches/{ => unapplied}/server/0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch (100%) rename patches/{ => unapplied}/server/0668-Add-PlayerItemFrameChangeEvent.patch (100%) rename patches/{ => unapplied}/server/0669-Optimize-HashMapPalette.patch (100%) rename patches/{ => unapplied}/server/0670-Allow-delegation-to-vanilla-chunk-gen.patch (100%) rename patches/{ => unapplied}/server/0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch (100%) rename patches/{ => unapplied}/server/0672-Add-more-Campfire-API.patch (100%) rename patches/{ => unapplied}/server/0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch (100%) rename patches/{ => unapplied}/server/0674-Forward-CraftEntity-in-teleport-command.patch (100%) rename patches/{ => unapplied}/server/0675-Improve-scoreboard-entries.patch (100%) rename patches/{ => unapplied}/server/0676-Entity-powdered-snow-API.patch (100%) rename patches/{ => unapplied}/server/0677-Add-API-for-item-entity-health.patch (100%) rename patches/{ => unapplied}/server/0678-Configurable-max-block-light-for-monster-spawning.patch (100%) rename patches/{ => unapplied}/server/0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch (100%) rename patches/{ => unapplied}/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch (100%) rename patches/{ => unapplied}/server/0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch (100%) rename patches/{ => unapplied}/server/0682-Fix-bees-aging-inside-hives.patch (100%) rename patches/{ => unapplied}/server/0683-Bucketable-API.patch (100%) rename patches/{ => unapplied}/server/0684-Validate-usernames.patch (100%) rename patches/{ => unapplied}/server/0685-Make-water-animal-spawn-height-configurable.patch (100%) rename patches/{ => unapplied}/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch (98%) rename patches/{ => unapplied}/server/0687-Add-config-option-for-worlds-affected-by-time-cmd.patch (100%) rename patches/{ => unapplied}/server/0688-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch (100%) rename patches/{ => unapplied}/server/0689-Multiple-Entries-with-Scoreboards.patch (98%) rename patches/{ => unapplied}/server/0690-Reset-placed-block-on-exception.patch (100%) rename patches/{ => unapplied}/server/0691-Add-configurable-height-for-slime-spawn.patch (100%) rename patches/{ => unapplied}/server/0692-Fix-xp-reward-for-baby-zombies.patch (100%) rename patches/{ => unapplied}/server/0693-Multi-Block-Change-API-Implementation.patch (100%) rename patches/{ => unapplied}/server/0694-Fix-NotePlayEvent.patch (100%) rename patches/{ => unapplied}/server/0695-Freeze-Tick-Lock-API.patch (100%) rename patches/{ => unapplied}/server/0696-More-PotionEffectType-API.patch (100%) rename patches/{ => unapplied}/server/0697-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch (100%) rename patches/{ => unapplied}/server/0698-API-for-creating-command-sender-which-forwards-feedb.patch (100%) rename patches/{ => unapplied}/server/0699-Add-missing-structure-set-seed-configs.patch (99%) rename patches/{ => unapplied}/server/0700-Implement-regenerateChunk.patch (100%) rename patches/{ => unapplied}/server/0701-Fix-cancelled-powdered-snow-bucket-placement.patch (100%) rename patches/{ => unapplied}/server/0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch (100%) rename patches/{ => unapplied}/server/0703-Add-GameEvent-tags.patch (100%) rename patches/{ => unapplied}/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch (94%) rename patches/{ => unapplied}/server/0705-Furnace-RecipesUsed-API.patch (100%) rename patches/{ => unapplied}/server/0706-Configurable-sculk-sensor-listener-range.patch (100%) rename patches/{ => unapplied}/server/0707-Add-missing-block-data-mins-and-maxes.patch (100%) rename patches/{ => unapplied}/server/0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch (96%) rename patches/{ => unapplied}/server/0709-Put-world-into-worldlist-before-initing-the-world.patch (95%) rename patches/{ => unapplied}/server/0710-Fix-Entity-Position-Desync.patch (100%) rename patches/{ => unapplied}/server/0711-Custom-Potion-Mixes.patch (99%) rename patches/{ => unapplied}/server/0712-Force-close-world-loading-screen.patch (100%) rename patches/{ => unapplied}/server/0713-Fix-falling-block-spawn-methods.patch (100%) rename patches/{ => unapplied}/server/0714-Expose-furnace-minecart-push-values.patch (100%) rename patches/{ => unapplied}/server/0715-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch (100%) rename patches/{ => unapplied}/server/0716-More-Projectile-API.patch (100%) rename patches/{ => unapplied}/server/0717-Fix-swamp-hut-cat-generation-deadlock.patch (100%) rename patches/{ => unapplied}/server/0718-Don-t-allow-vehicle-movement-from-players-while-tele.patch (94%) rename patches/{ => unapplied}/server/0719-Implement-getComputedBiome-API.patch (100%) rename patches/{ => unapplied}/server/0720-Make-some-itemstacks-nonnull.patch (100%) rename patches/{ => unapplied}/server/0721-Implement-enchantWithLevels-API.patch (100%) rename patches/{ => unapplied}/server/0722-Fix-saving-in-unloadWorld.patch (100%) rename patches/{ => unapplied}/server/0723-Buffer-OOB-setBlock-calls.patch (100%) rename patches/{ => unapplied}/server/0724-Add-TameableDeathMessageEvent.patch (100%) rename patches/{ => unapplied}/server/0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch (100%) rename patches/{ => unapplied}/server/0726-fix-player-loottables-running-when-mob-loot-gamerule.patch (100%) rename patches/{ => unapplied}/server/0727-Ensure-entity-passenger-world-matches-ridden-entity.patch (100%) rename patches/{ => unapplied}/server/0728-cache-resource-keys.patch (100%) rename patches/{ => unapplied}/server/0729-Allow-changing-the-EnderDragon-podium.patch (100%) rename patches/{ => unapplied}/server/0730-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch (100%) rename patches/{ => unapplied}/server/0731-Prevent-tile-entity-copies-loading-chunks.patch (94%) rename patches/{ => unapplied}/server/0732-Use-username-instead-of-display-name-in-PlayerList-g.patch (100%) rename patches/{ => unapplied}/server/0733-Expand-PlayerItemDamageEvent.patch (100%) rename patches/{ => unapplied}/server/0734-WorldCreator-keepSpawnLoaded.patch (100%) rename patches/{ => unapplied}/server/0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch (100%) rename patches/{ => unapplied}/server/0736-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch (100%) rename patches/{ => unapplied}/server/0737-Add-EntityDyeEvent-and-CollarColorable-interface.patch (100%) rename patches/{ => unapplied}/server/0738-Fire-CauldronLevelChange-on-initial-fill.patch (100%) rename patches/{ => unapplied}/server/0739-fix-powder-snow-cauldrons-not-turning-to-water.patch (100%) rename patches/{ => unapplied}/server/0740-Add-PlayerStopUsingItemEvent.patch (100%) rename patches/{ => unapplied}/server/0741-Don-t-tick-markers.patch (100%) rename patches/{ => unapplied}/server/0742-Expand-FallingBlock-API.patch (100%) rename patches/{ => unapplied}/server/0743-Add-support-for-Proxy-Protocol.patch (100%) rename patches/{ => unapplied}/server/0744-Fix-OfflinePlayer-getBedSpawnLocation.patch (100%) rename patches/{ => unapplied}/server/0745-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch (100%) rename patches/{ => unapplied}/server/0746-properly-read-and-store-sus-effect-duration.patch (100%) rename patches/{ => unapplied}/server/0747-Sanitize-sent-BlockEntity-NBT.patch (100%) rename patches/{ => unapplied}/server/0748-Disable-component-selector-resolving-in-books-by-def.patch (100%) rename patches/{ => unapplied}/server/0749-Prevent-entity-loading-causing-async-lookups.patch (100%) rename patches/{ => unapplied}/server/0750-Throw-exception-on-world-create-while-being-ticked.patch (97%) rename patches/{ => unapplied}/server/0751-Dont-resent-entity-on-art-update.patch (100%) rename patches/{ => unapplied}/server/0752-Add-WardenAngerChangeEvent.patch (100%) rename patches/{ => unapplied}/server/0753-Add-option-for-strict-advancement-dimension-checks.patch (100%) rename patches/{ => unapplied}/server/0754-Add-missing-important-BlockStateListPopulator-method.patch (100%) rename patches/{ => unapplied}/server/0755-Nameable-Banner-API.patch (100%) rename patches/{ => unapplied}/server/0756-Don-t-broadcast-messages-to-command-blocks.patch (100%) rename patches/{ => unapplied}/server/0757-Prevent-empty-items-from-being-added-to-world.patch (100%) rename patches/{ => unapplied}/server/0758-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch (100%) rename patches/{ => unapplied}/server/0759-Add-Player-getFishHook.patch (100%) rename patches/{ => unapplied}/server/0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch (100%) rename patches/{ => unapplied}/server/0761-Add-various-missing-EntityDropItemEvent-calls.patch (100%) rename patches/{ => unapplied}/server/0762-Fix-Bee-flower-NPE.patch (100%) rename patches/{ => unapplied}/server/0763-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch (92%) rename patches/{ => unapplied}/server/0764-More-Teleport-API.patch (100%) rename patches/{ => unapplied}/server/0765-Add-EntityPortalReadyEvent.patch (100%) rename patches/{ => unapplied}/server/0766-Don-t-use-level-random-in-entity-constructors.patch (100%) rename patches/{ => unapplied}/server/0767-Send-block-entities-after-destroy-prediction.patch (98%) rename patches/{ => unapplied}/server/0768-Warn-on-plugins-accessing-faraway-chunks.patch (100%) rename patches/{ => unapplied}/server/0769-Custom-Chat-Completion-Suggestions-API.patch (100%) rename patches/{ => unapplied}/server/0770-Add-and-fix-missing-BlockFadeEvents.patch (100%) rename patches/{ => unapplied}/server/0771-Collision-API.patch (100%) rename patches/{ => unapplied}/server/0772-Fix-suggest-command-message-for-brigadier-syntax-exc.patch (100%) rename patches/{ => unapplied}/server/0773-Block-Ticking-API.patch (100%) rename patches/{ => unapplied}/server/0774-Add-Velocity-IP-Forwarding-Support.patch (100%) rename patches/{ => unapplied}/server/0775-Add-NamespacedKey-biome-methods.patch (100%) rename patches/{ => unapplied}/server/0776-Fix-plugin-loggers-on-server-shutdown.patch (96%) rename patches/{ => unapplied}/server/0777-Stop-large-look-changes-from-crashing-the-server.patch (100%) rename patches/{ => unapplied}/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch (100%) rename patches/{ => unapplied}/server/0779-Missing-eating-regain-reason.patch (100%) rename patches/{ => unapplied}/server/0780-Missing-effect-cause.patch (100%) rename patches/{ => unapplied}/server/0781-Added-byte-array-serialization-deserialization-for-P.patch (100%) rename patches/{ => unapplied}/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch (100%) rename patches/{ => unapplied}/server/0783-Call-BlockPhysicsEvent-more-often.patch (100%) rename patches/{ => unapplied}/server/0784-Configurable-chat-thread-limit.patch (96%) rename patches/{ => unapplied}/server/0785-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch (100%) rename patches/{ => unapplied}/server/0786-fix-Jigsaw-block-kicking-user.patch (100%) rename patches/{ => unapplied}/server/0787-use-BlockFormEvent-for-mud-converting-into-clay.patch (100%) rename patches/{ => unapplied}/server/0788-Add-getDrops-to-BlockState.patch (100%) rename patches/{ => unapplied}/server/0789-Fix-a-bunch-of-vanilla-bugs.patch (100%) rename patches/{ => unapplied}/server/0790-Remove-unnecessary-onTrackingStart-during-navigation.patch (100%) rename patches/{ => unapplied}/server/0791-Fix-custom-piglin-loved-items.patch (100%) rename patches/{ => unapplied}/server/0792-EntityPickupItemEvent-fixes.patch (100%) rename patches/{ => unapplied}/server/0793-Correctly-handle-interactions-with-items-on-cooldown.patch (100%) rename patches/{ => unapplied}/server/0794-Add-PlayerInventorySlotChangeEvent.patch (100%) rename patches/{ => unapplied}/server/0795-Elder-Guardian-appearance-API.patch (100%) rename patches/{ => unapplied}/server/0796-Allow-changing-bed-s-occupied-property.patch (100%) rename patches/{ => unapplied}/server/0797-Add-entity-knockback-API.patch (100%) rename patches/{ => unapplied}/server/0798-Detect-headless-JREs.patch (100%) rename patches/{ => unapplied}/server/0799-fix-entity-vehicle-collision-event-not-called.patch (100%) rename patches/{ => unapplied}/server/0800-Add-EntityToggleSitEvent.patch (100%) rename patches/{ => unapplied}/server/0801-Add-fire-tick-delay-option.patch (100%) rename patches/{ => unapplied}/server/0802-Add-Moving-Piston-API.patch (100%) rename patches/{ => unapplied}/server/0803-Ignore-impossible-spawn-tick.patch (100%) rename patches/{ => unapplied}/server/0804-Track-projectile-source-for-fireworks-from-dispenser.patch (100%) rename patches/{ => unapplied}/server/0805-Fix-EntityArgument-suggestion-permissions-to-align-w.patch (100%) rename patches/{ => unapplied}/server/0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch (100%) rename patches/{ => unapplied}/server/0807-Add-PrePlayerAttackEntityEvent.patch (100%) rename patches/{ => unapplied}/server/0808-ensure-reset-EnderDragon-boss-event-name.patch (100%) rename patches/{ => unapplied}/server/0809-fix-MC-252817-green-map-markers-do-not-disappear.patch (100%) rename patches/{ => unapplied}/server/0810-Add-Player-Warden-Warning-API.patch (100%) rename patches/{ => unapplied}/server/0811-More-vanilla-friendly-methods-to-update-trades.patch (100%) rename patches/{ => unapplied}/server/0812-Add-paper-dumplisteners-command.patch (100%) rename patches/{ => unapplied}/server/0813-check-global-player-list-where-appropriate.patch (100%) rename patches/{ => unapplied}/server/0814-Fix-async-entity-add-due-to-fungus-trees.patch (100%) rename patches/{ => unapplied}/server/0815-ItemStack-damage-API.patch (100%) rename patches/{ => unapplied}/server/0816-Friction-API.patch (100%) rename patches/{ => unapplied}/server/0817-Ability-to-control-player-s-insomnia-and-phantoms.patch (100%) rename patches/{ => unapplied}/server/0818-Fix-premature-player-kicks-on-shutdown.patch (97%) rename patches/{ => unapplied}/server/0819-Sync-offhand-slot-in-menus.patch (100%) rename patches/{ => unapplied}/server/0820-Player-Entity-Tracking-Events.patch (100%) rename patches/{ => unapplied}/server/0821-Limit-pet-look-distance.patch (100%) rename patches/{ => unapplied}/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch (100%) rename patches/{ => unapplied}/server/0823-fix-Instruments.patch (100%) rename patches/{ => unapplied}/server/0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch (100%) rename patches/{ => unapplied}/server/0825-Fix-inconsistencies-in-dispense-events-regarding-sta.patch (100%) rename patches/{ => unapplied}/server/0826-Add-BlockLockCheckEvent.patch (100%) rename patches/{ => unapplied}/server/0827-Add-Sneaking-API-for-Entities.patch (100%) rename patches/{ => unapplied}/server/0828-Improve-logging-and-errors.patch (98%) rename patches/{ => unapplied}/server/0829-Improve-PortalEvents.patch (100%) rename patches/{ => unapplied}/server/0830-Add-config-option-for-spider-worldborder-climbing.patch (100%) rename patches/{ => unapplied}/server/0831-Add-missing-SpigotConfig-logCommands-check.patch (93%) rename patches/{ => unapplied}/server/0832-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch (100%) rename patches/{ => unapplied}/server/0833-Flying-Fall-Damage.patch (100%) rename patches/{ => unapplied}/server/0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch (100%) rename patches/{ => unapplied}/server/0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch (100%) rename patches/{ => unapplied}/server/0836-config-for-disabling-entity-tag-tags.patch (100%) rename patches/{ => unapplied}/server/0837-Use-single-player-info-update-packet-on-join.patch (97%) rename patches/{ => unapplied}/server/0838-Correctly-shrink-items-during-EntityResurrectEvent.patch (100%) rename patches/{ => unapplied}/server/0839-Win-Screen-API.patch (100%) rename patches/{ => unapplied}/server/0840-Remove-CraftItemStack-setAmount-null-assignment.patch (100%) rename patches/{ => unapplied}/server/0841-Fix-force-opening-enchantment-tables.patch (100%) rename patches/{ => unapplied}/server/0842-Add-Entity-Body-Yaw-API.patch (100%) rename patches/{ => unapplied}/server/0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch (93%) rename patches/{ => unapplied}/server/0844-Add-EntityFertilizeEggEvent.patch (100%) rename patches/{ => unapplied}/server/0845-Fix-HumanEntity-drop-not-updating-the-client-inv.patch (100%) rename patches/{ => unapplied}/server/0846-Add-CompostItemEvent-and-EntityCompostItemEvent.patch (100%) rename patches/{ => unapplied}/server/0847-Correctly-handle-ArmorStand-invisibility.patch (100%) rename patches/{ => unapplied}/server/0848-Fix-advancement-triggers-for-entity-damage.patch (100%) rename patches/{ => unapplied}/server/0849-Fix-text-display-error-on-spawn.patch (100%) rename patches/{ => unapplied}/server/0850-Fix-inventories-returning-null-Locations.patch (100%) rename patches/{ => unapplied}/server/0851-Add-Shearable-API.patch (100%) rename patches/{ => unapplied}/server/0852-Fix-SpawnEggMeta-get-setSpawnedType.patch (100%) rename patches/{ => unapplied}/server/0853-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch (100%) rename patches/{ => unapplied}/server/0854-Treat-sequence-violations-like-they-should-be.patch (92%) rename patches/{ => unapplied}/server/0855-remove-duplicate-animate-packet-for-records.patch (100%) rename patches/{ => unapplied}/server/0856-Prevent-causing-expired-keys-from-impacting-new-join.patch (97%) rename patches/{ => unapplied}/server/0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch (100%) rename patches/{ => unapplied}/server/0858-Use-array-for-gamerule-storage.patch (100%) rename patches/{ => unapplied}/server/0859-Fix-a-couple-of-upstream-bed-issues.patch (100%) rename patches/{ => unapplied}/server/0860-Fix-demo-flag-not-enabling-demo-mode.patch (100%) rename patches/{ => unapplied}/server/0861-Add-Mob-Experience-reward-API.patch (100%) rename patches/{ => unapplied}/server/0862-Break-redstone-on-top-of-trap-doors-early.patch (100%) rename patches/{ => unapplied}/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch (95%) rename patches/{ => unapplied}/server/0864-More-accurate-isInOpenWater-impl.patch (100%) rename patches/{ => unapplied}/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch (94%) rename patches/{ => unapplied}/server/0866-Expand-PlayerItemMendEvent.patch (100%) rename patches/{ => unapplied}/server/0867-Refresh-ProjectileSource-for-projectiles.patch (100%) rename patches/{ => unapplied}/server/0868-Add-transient-modifier-API.patch (100%) rename patches/{ => unapplied}/server/0869-Fix-block-place-logic.patch (100%) rename patches/{ => unapplied}/server/0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch (100%) rename patches/{ => unapplied}/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch (100%) rename patches/{ => unapplied}/server/0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch (100%) rename patches/{ => unapplied}/server/0873-fix-MapLike-spam-for-missing-key-selector.patch (100%) rename patches/{ => unapplied}/server/0874-Fix-sniffer-removeExploredLocation.patch (100%) rename patches/{ => unapplied}/server/0875-Add-method-to-remove-all-active-potion-effects.patch (100%) rename patches/{ => unapplied}/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch (100%) rename patches/{ => unapplied}/server/0877-Add-event-for-player-editing-sign.patch (100%) rename patches/{ => unapplied}/server/0878-Only-tick-item-frames-if-players-can-see-it.patch (100%) rename patches/{ => unapplied}/server/0879-Fix-cmd-permission-levels-for-command-blocks.patch (100%) rename patches/{ => unapplied}/server/0880-Add-option-to-disable-block-updates.patch (100%) rename patches/{ => unapplied}/server/0881-Call-missing-BlockDispenseEvent.patch (100%) rename patches/{ => unapplied}/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch (100%) rename patches/{ => unapplied}/server/0883-Optimize-player-lookups-for-beacons.patch (100%) rename patches/{ => unapplied}/server/0884-Add-Sign-getInteractableSideFor.patch (100%) rename patches/{ => unapplied}/server/0885-Array-backed-synched-entity-data.patch (100%) rename patches/{ => unapplied}/server/0886-fix-item-meta-for-tadpole-buckets.patch (100%) rename patches/{ => unapplied}/server/0887-Fix-BanList-API.patch (100%) rename patches/{ => unapplied}/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch (100%) rename patches/{ => unapplied}/server/0889-Fix-possible-NPE-on-painting-creation.patch (100%) rename patches/{ => unapplied}/server/0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch (100%) rename patches/{ => unapplied}/server/0891-ExperienceOrb-should-call-EntitySpawnEvent.patch (100%) rename patches/{ => unapplied}/server/0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch (100%) rename patches/{ => unapplied}/server/0893-Add-whitelist-events.patch (100%) rename patches/{ => unapplied}/server/0894-Implement-PlayerFailMoveEvent.patch (98%) rename patches/{ => unapplied}/server/0895-Folia-scheduler-and-owned-region-API.patch (99%) rename patches/{ => unapplied}/server/0896-Only-erase-allay-memory-on-non-item-targets.patch (100%) rename patches/{ => unapplied}/server/0897-API-for-updating-recipes-on-clients.patch (100%) rename patches/{ => unapplied}/server/0898-Fix-rotation-when-spawning-display-entities.patch (100%) rename patches/{ => unapplied}/server/0899-Only-capture-actual-tree-growth.patch (100%) rename patches/{ => unapplied}/server/0900-Use-correct-source-for-mushroom-block-spread-event.patch (100%) rename patches/{ => unapplied}/server/0901-Respect-randomizeData-on-more-entities-when-spawning.patch (100%) rename patches/{ => unapplied}/server/0902-Use-correct-seed-on-api-world-load.patch (100%) rename patches/{ => unapplied}/server/0903-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch (100%) rename patches/{ => unapplied}/server/0904-Cache-map-ids-on-item-frames.patch (100%) rename patches/{ => unapplied}/server/0905-Fix-custom-statistic-criteria-creation.patch (100%) rename patches/{ => unapplied}/server/0906-Bandaid-fix-for-Effect.patch (100%) rename patches/{ => unapplied}/server/0907-SculkCatalyst-bloom-API.patch (100%) rename patches/{ => unapplied}/server/0908-API-for-an-entity-s-scoreboard-name.patch (100%) rename patches/{ => unapplied}/server/0909-Deprecate-and-replace-methods-with-old-StructureType.patch (100%) rename patches/{ => unapplied}/server/0910-Don-t-tab-complete-namespaced-commands-if-send-names.patch (95%) rename patches/{ => unapplied}/server/0911-Properly-handle-BlockBreakEvent-isDropItems.patch (100%) rename patches/{ => unapplied}/server/0912-Fire-entity-death-event-for-ender-dragon.patch (100%) rename patches/{ => unapplied}/server/0913-Configurable-entity-tracking-range-by-Y-coordinate.patch (100%) rename patches/{ => unapplied}/server/0914-Add-Listing-API-for-Player.patch (100%) rename patches/{ => unapplied}/server/0915-Configurable-Region-Compression-Format.patch (100%) rename patches/{ => unapplied}/server/0916-Add-BlockFace-to-BlockDamageEvent.patch (100%) rename patches/{ => unapplied}/server/0917-Fix-NPE-on-Boat-getStatus.patch (100%) rename patches/{ => unapplied}/server/0918-Expand-Pose-API.patch (100%) rename patches/{ => unapplied}/server/0919-More-DragonBattle-API.patch (100%) rename patches/{ => unapplied}/server/0920-Deep-clone-unhandled-nbt-tags.patch (100%) rename patches/{ => unapplied}/server/0921-Add-PlayerPickItemEvent.patch (96%) rename patches/{ => unapplied}/server/0922-Allow-trident-custom-damage.patch (100%) rename patches/{ => unapplied}/server/0923-Expose-hand-in-BlockCanBuildEvent.patch (100%) rename patches/{ => unapplied}/server/0924-Optimize-nearest-structure-border-iteration.patch (95%) rename patches/{ => unapplied}/server/0925-Implement-OfflinePlayer-isConnected.patch (94%) rename patches/{ => unapplied}/server/0926-Fix-inventory-desync.patch (100%) rename patches/{ => unapplied}/server/0927-Add-titleOverride-to-InventoryOpenEvent.patch (100%) rename patches/{ => unapplied}/server/0928-Configure-sniffer-egg-hatch-time.patch (100%) rename patches/{ => unapplied}/server/0929-Do-crystal-portal-proximity-check-before-entity-look.patch (100%) rename patches/{ => unapplied}/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch (100%) rename patches/{ => unapplied}/server/0931-Add-slot-sanity-checks-in-container-clicks.patch (96%) rename patches/{ => unapplied}/server/0932-Call-BlockRedstoneEvents-for-lecterns.patch (100%) rename patches/{ => unapplied}/server/0933-Allow-proper-checking-of-empty-item-stacks.patch (100%) rename patches/{ => unapplied}/server/0934-Fix-silent-equipment-change-for-mobs.patch (98%) rename patches/{ => unapplied}/server/0935-Fix-spigot-s-Forced-Stats.patch (100%) rename patches/{ => unapplied}/server/0936-Add-missing-InventoryHolders-to-inventories.patch (100%) rename patches/{ => unapplied}/server/0937-Do-not-read-tile-entities-in-chunks-that-are-positio.patch (100%) rename patches/{ => unapplied}/server/0938-Add-missing-logs-for-log-ips-config-option.patch (100%) rename patches/{ => unapplied}/server/0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch (100%) rename patches/{ => unapplied}/server/0940-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch (100%) rename patches/{ => unapplied}/server/0941-Fix-team-sidebar-objectives-not-being-cleared.patch (100%) rename patches/{ => unapplied}/server/0942-Fix-missing-map-initialize-event-call.patch (100%) rename patches/{ => unapplied}/server/0943-Update-entity-data-when-attaching-firework-to-entity.patch (100%) rename patches/{ => unapplied}/server/0944-Use-correct-variable-for-initializing-CraftLootTable.patch (100%) rename patches/{ => unapplied}/server/0945-Fix-UnsafeValues-loadAdvancement.patch (100%) rename patches/{ => unapplied}/server/0946-Add-player-idle-duration-API.patch (100%) rename patches/{ => unapplied}/server/0947-Don-t-check-if-we-can-see-non-visible-entities.patch (100%) rename patches/{ => unapplied}/server/0948-Fix-NPE-in-SculkBloomEvent-world-access.patch (100%) rename patches/{ => unapplied}/server/0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch (100%) rename patches/{ => unapplied}/server/0950-Optimize-VarInts.patch (100%) rename patches/{ => unapplied}/server/0951-Add-API-to-get-the-collision-shape-of-a-block-before.patch (100%) rename patches/{ => unapplied}/server/0952-Add-predicate-for-blocks-when-raytracing.patch (100%) rename patches/{ => unapplied}/server/0953-Broadcast-take-item-packets-with-collector-as-source.patch (100%) rename patches/{ => unapplied}/server/0954-Expand-LingeringPotion-API.patch (100%) rename patches/{ => unapplied}/server/0955-Add-MaterialTagsTest.patch (100%) rename patches/{ => unapplied}/server/0956-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch (100%) rename patches/{ => unapplied}/server/0957-Add-hand-to-fish-event-for-all-player-interactions.patch (100%) rename patches/{ => unapplied}/server/0958-Fix-several-issues-with-EntityBreedEvent.patch (100%) rename patches/{ => unapplied}/server/0959-Add-UUID-attribute-modifier-API.patch (100%) rename patches/{ => unapplied}/server/0960-Fix-missing-event-call-for-entity-teleport-API.patch (100%) rename patches/{ => unapplied}/server/0961-Lazily-create-LootContext-for-criterions.patch (95%) rename patches/{ => unapplied}/server/0962-Don-t-fire-sync-events-during-worldgen.patch (100%) rename patches/{ => unapplied}/server/0963-Add-Structure-check-API.patch (100%) rename patches/{ => unapplied}/server/0964-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch (100%) rename patches/{ => unapplied}/server/0965-Restore-vanilla-entity-drops-behavior.patch (100%) rename patches/{ => unapplied}/server/0966-Dont-resend-blocks-on-interactions.patch (100%) rename patches/{ => unapplied}/server/0967-add-more-scoreboard-API.patch (100%) rename patches/{ => unapplied}/server/0968-Improve-Registry.patch (100%) rename patches/{ => unapplied}/server/0969-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch (100%) rename patches/{ => unapplied}/server/0970-Add-experience-points-API.patch (100%) rename patches/{ => unapplied}/server/0971-Add-drops-to-shear-events.patch (100%) rename patches/{ => unapplied}/server/0972-Add-PlayerShieldDisableEvent.patch (100%) rename patches/{ => unapplied}/server/0973-Validate-ResourceLocation-in-NBT-reading.patch (99%) rename patches/{ => unapplied}/server/0974-Properly-handle-experience-dropping-on-block-break.patch (100%) rename patches/{ => unapplied}/server/0975-Fixup-NamespacedKey-handling.patch (100%) rename patches/{ => unapplied}/server/0976-Expose-LootTable-of-DecoratedPot.patch (100%) rename patches/{ => unapplied}/server/0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch (97%) rename patches/{ => unapplied}/server/0978-Rewrite-dataconverter-system.patch (99%) rename patches/{ => unapplied}/server/0979-Starlight.patch (100%) rename patches/{ => unapplied}/server/0980-Rewrite-chunk-system.patch (99%) rename patches/{ => unapplied}/server/0981-incremental-chunk-and-player-saving.patch (98%) rename patches/{ => unapplied}/server/0982-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch (100%) rename patches/{ => unapplied}/server/0983-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch (100%) rename patches/{ => unapplied}/server/0984-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch (100%) rename patches/{ => unapplied}/server/0985-Optimize-Network-Manager-and-add-advanced-packet-sup.patch (100%) rename patches/{ => unapplied}/server/0986-Allow-Saving-of-Oversized-Chunks.patch (100%) rename patches/{ => unapplied}/server/0987-Fix-World-isChunkGenerated-calls.patch (100%) rename patches/{ => unapplied}/server/0988-Flat-bedrock-generator-settings.patch (100%) rename patches/{ => unapplied}/server/0989-Entity-Activation-Range-2.0.patch (99%) rename patches/{ => unapplied}/server/0990-Optional-per-player-mob-spawns.patch (100%) rename patches/{ => unapplied}/server/0991-Anti-Xray.patch (100%) rename patches/{ => unapplied}/server/0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch (100%) rename patches/{ => unapplied}/server/0993-Optimize-Collision-to-not-load-chunks.patch (100%) rename patches/{ => unapplied}/server/0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch (100%) rename patches/{ => unapplied}/server/0995-Entity-load-save-limit-per-chunk.patch (100%) rename patches/{ => unapplied}/server/0996-Fix-and-optimise-world-force-upgrading.patch (99%) rename patches/{ => unapplied}/server/0997-Improved-Watchdog-Support.patch (99%) rename patches/{ => unapplied}/server/0998-Optimize-Voxel-Shape-Merging.patch (100%) rename patches/{ => unapplied}/server/0999-Write-SavedData-IO-async.patch (100%) rename patches/{ => unapplied}/server/1000-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch (100%) rename patches/{ => unapplied}/server/1001-Use-distance-map-to-optimise-entity-tracker.patch (99%) rename patches/{ => unapplied}/server/1002-Optimize-Bit-Operations-by-inlining.patch (100%) rename patches/{ => unapplied}/server/1003-Remove-streams-from-hot-code.patch (100%) rename patches/{ => unapplied}/server/1004-Eigencraft-redstone-implementation.patch (100%) rename patches/{ => unapplied}/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch (100%) rename patches/{ => unapplied}/server/1006-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch (100%) rename patches/{ => unapplied}/server/1007-Improve-boat-collision-performance.patch (100%) rename patches/{ => unapplied}/server/1008-Optimise-general-POI-access.patch (100%) rename patches/{ => unapplied}/server/1009-Custom-table-implementation-for-blockstate-state-loo.patch (100%) rename patches/{ => unapplied}/server/1010-Execute-chunk-tasks-mid-tick.patch (98%) rename patches/{ => unapplied}/server/1011-Optimise-random-block-ticking.patch (99%) rename patches/{ => unapplied}/server/1012-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch (100%) rename patches/{ => unapplied}/server/1013-Use-Velocity-compression-and-cipher-natives.patch (100%) rename patches/{ => unapplied}/server/1014-Detail-more-information-in-watchdog-dumps.patch (99%) rename patches/{ => unapplied}/server/1015-Collision-optimisations.patch (100%) rename patches/{ => unapplied}/server/1016-Optimise-collision-checking-in-player-move-packet-ha.patch (99%) rename patches/{ => unapplied}/server/1017-Fix-tripwire-disarming-not-working-as-intended.patch (100%) rename patches/{ => unapplied}/server/1018-Fix-entity-type-tags-suggestions-in-selectors.patch (100%) rename patches/{ => unapplied}/server/1019-Add-Alternate-Current-redstone-implementation.patch (100%) rename patches/{ => unapplied}/server/1020-optimize-dirt-and-snow-spreading.patch (100%) rename patches/{ => unapplied}/server/1021-Properly-resend-entities.patch (99%) rename patches/{ => unapplied}/server/1022-Optimize-Hoppers.patch (99%) rename patches/{ => unapplied}/server/1023-Improve-performance-of-mass-crafts.patch (100%) rename patches/{ => unapplied}/server/1024-Actually-optimise-explosions.patch (100%) rename patches/{ => unapplied}/server/1025-Optimise-chunk-tick-iteration.patch (100%) rename patches/{ => unapplied}/server/1026-Lag-compensation-ticks.patch (98%) rename patches/{ => unapplied}/server/1027-Optimise-nearby-player-retrieval.patch (100%) rename patches/{ => unapplied}/server/1028-Distance-manager-tick-timings.patch (100%) rename patches/{ => unapplied}/server/1029-Handle-Oversized-block-entities-in-chunks.patch (97%) rename patches/{ => unapplied}/server/1030-Send-full-pos-packets-for-hard-colliding-entities.patch (100%) rename patches/{ => unapplied}/server/1031-Add-ShulkerDuplicateEvent.patch (100%) rename patches/{ => unapplied}/server/1032-Add-api-for-spawn-egg-texture-colors.patch (100%) rename patches/{ => unapplied}/server/1033-Disable-memory-reserve-allocating.patch (100%) rename patches/{ => unapplied}/server/1034-Improve-tag-parser-handling.patch (99%) rename patches/{ => unapplied}/server/1035-Add-Lifecycle-Event-system.patch (100%) rename patches/{ => unapplied}/server/1036-Conduit-API.patch (100%) rename patches/{ => unapplied}/server/1037-ItemStack-Tooltip-API.patch (100%) rename patches/{ => unapplied}/server/1038-Fix-possible-StackOverflowError-for-some-dispenses.patch (100%) rename patches/{ => unapplied}/server/1039-Properly-track-the-changed-item-from-dispense-events.patch (100%) rename patches/{ => unapplied}/server/1040-Add-getChunkSnapshot-includeLightData-parameter.patch (100%) rename patches/{ => unapplied}/server/1041-Add-FluidState-API.patch (100%) rename patches/{ => unapplied}/server/1042-add-number-format-api.patch (100%) rename patches/{ => unapplied}/server/1043-check-if-itemstack-is-stackable-first.patch (100%) rename patches/{ => unapplied}/server/1044-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch (100%) rename patches/{ => unapplied}/server/1045-improve-BanList-types.patch (100%) rename patches/{ => unapplied}/server/1046-Configurable-max-block-fluid-ticks.patch (100%) rename patches/{ => unapplied}/server/1047-disable-forced-empty-world-ticks.patch (100%) rename patches/{ => unapplied}/server/1048-Suspicious-Effect-Entry-API.patch (100%) rename patches/{ => unapplied}/server/1049-Per-world-ticks-per-spawn-settings.patch (100%) rename patches/{ => unapplied}/server/1050-Add-onboarding-message-for-initial-server-start.patch (96%) rename patches/{ => unapplied}/server/1051-Fix-DamageSource-API.patch (99%) rename patches/{ => unapplied}/server/1052-Expanded-Hopper-API.patch (100%) rename patches/{ => unapplied}/server/1053-Fix-creation-of-invalid-block-entity-during-world-ge.patch (100%) rename patches/{ => unapplied}/server/1054-Add-BlockBreakProgressUpdateEvent.patch (100%) rename patches/{ => unapplied}/server/1055-Deprecate-ItemStack-setType.patch (100%) rename patches/{ => unapplied}/server/1056-Item-Mutation-Fixes.patch (100%) rename patches/{ => unapplied}/server/1057-API-for-checking-sent-chunks.patch (100%) rename patches/{ => unapplied}/server/1058-Add-CartographyItemEvent.patch (100%) rename patches/{ => unapplied}/server/1059-More-Raid-API.patch (100%) diff --git a/README.md b/README.md index 14b8aa097e..f11287dc07 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ How To (Plugin Developers) io.papermc.paper paper-api - 1.20.4-R0.1-SNAPSHOT + 1.20.5-R0.1-SNAPSHOT provided ``` @@ -53,17 +53,17 @@ repositories { } dependencies { - compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:1.20.5-R0.1-SNAPSHOT") } java { - toolchain.languageVersion.set(JavaLanguageVersion.of(17)) + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) } ``` How To (Compiling Jar From Source) ------ -To compile Paper, you need JDK 17 and an internet connection. +To compile Paper, you need JDK 21 and an internet connection. Clone this repo, run `./gradlew applyPatches`, then `./gradlew createReobfBundlerJar` from your terminal. You can find the compiled jar in the project root's `build/libs` directory. diff --git a/build.gradle.kts b/build.gradle.kts index 73ac5cedc6..803c1d07c8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,7 +20,7 @@ allprojects { java { toolchain { - languageVersion = JavaLanguageVersion.of(17) + languageVersion = JavaLanguageVersion.of(21) } } } @@ -30,7 +30,7 @@ val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/" subprojects { tasks.withType { options.encoding = Charsets.UTF_8.name() - options.release = 17 + options.release = 21 } tasks.withType { options.encoding = Charsets.UTF_8.name() @@ -67,10 +67,10 @@ repositories { } dependencies { - paramMappings("net.fabricmc:yarn:1.20.4+build.1:mergedv2") + paramMappings("net.fabricmc:yarn:1.20.5+build.1:mergedv2") remapper("net.fabricmc:tiny-remapper:0.10.1:fat") decompiler("org.vineflower:vineflower:1.10.1") - spigotDecompiler("io.papermc:patched-spigot-fernflower:0.1+build.6") + spigotDecompiler("io.papermc:patched-spigot-fernflower:0.1+build.12") paperclip("io.papermc:paperclip:3.0.3") } diff --git a/gradle.properties b/gradle.properties index 794f7c1540..06573bcbf9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,9 +1,9 @@ group=io.papermc.paper -version=1.20.4-R0.1-SNAPSHOT -mcVersion=1.20.4 +version=1.20.5-R0.1-SNAPSHOT +mcVersion=1.20.5 # Set to true while updating Minecraft version -updatingMinecraft=false +updatingMinecraft=true org.gradle.caching=true org.gradle.parallel=true diff --git a/patches/api/0001-Convert-project-to-Gradle.patch b/patches/api/0001-Convert-project-to-Gradle.patch index f58981795e..e65b211bf2 100644 --- a/patches/api/0001-Convert-project-to-Gradle.patch +++ b/patches/api/0001-Convert-project-to-Gradle.patch @@ -124,10 +124,10 @@ index 0000000000000000000000000000000000000000..4756a5aa04f8a8f0a8f9ff2c7aa6776b +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index 931d1a0215f54a4ff172b1b6db2ab06c41cd0c39..0000000000000000000000000000000000000000 +index 35e6845d86cbfed386f666307add6d6f3e67dd1c..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null -@@ -1,277 +0,0 @@ +@@ -1,276 +0,0 @@ - - @@ -135,7 +135,7 @@ index 931d1a0215f54a4ff172b1b6db2ab06c41cd0c39..00000000000000000000000000000000 - - org.spigotmc - spigot-api -- 1.20.4-R0.1-SNAPSHOT +- 1.20.5-R0.1-SNAPSHOT - jar - - Spigot-API @@ -144,8 +144,7 @@ index 931d1a0215f54a4ff172b1b6db2ab06c41cd0c39..00000000000000000000000000000000 - - - true -- 17 -- 17 +- 17 - UTF-8 - - @@ -266,7 +265,7 @@ index 931d1a0215f54a4ff172b1b6db2ab06c41cd0c39..00000000000000000000000000000000 - - org.apache.maven.plugins - maven-compiler-plugin -- 3.11.0 +- 3.13.0 - - - eclipse @@ -277,7 +276,7 @@ index 931d1a0215f54a4ff172b1b6db2ab06c41cd0c39..00000000000000000000000000000000 - - org.codehaus.plexus - plexus-compiler-eclipse -- 2.13.0 +- 2.15.0 - - - diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch index 28009e5408..e2ce0357bc 100644 --- a/patches/api/0006-Adventure.patch +++ b/patches/api/0006-Adventure.patch @@ -778,10 +778,10 @@ index 0000000000000000000000000000000000000000..6e94562d79206d88b74b53814f9423f1 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce7641be7910 100644 +index b101827cb752c38d1f38b1c0efa83cca8062f7f7..6425151b7003a1376977717dca6172efa1864648 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -420,7 +420,9 @@ public final class Bukkit { +@@ -422,7 +422,9 @@ public final class Bukkit { * * @param message the message * @return the number of players @@ -791,7 +791,7 @@ index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce76 public static int broadcastMessage(@NotNull String message) { return server.broadcastMessage(message); } -@@ -1211,6 +1213,19 @@ public final class Bukkit { +@@ -1223,6 +1225,19 @@ public final class Bukkit { server.shutdown(); } @@ -811,7 +811,7 @@ index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce76 /** * Broadcasts the specified message to every user with the given * permission name. -@@ -1220,6 +1235,21 @@ public final class Bukkit { +@@ -1232,6 +1247,21 @@ public final class Bukkit { * permissibles} must have to receive the broadcast * @return number of message recipients */ @@ -833,7 +833,7 @@ index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce76 public static int broadcast(@NotNull String message, @NotNull String permission) { return server.broadcast(message, permission); } -@@ -1481,6 +1511,7 @@ public final class Bukkit { +@@ -1493,6 +1523,7 @@ public final class Bukkit { return server.createInventory(owner, type); } @@ -841,7 +841,7 @@ index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce76 /** * Creates an empty inventory with the specified type and title. If the type * is {@link InventoryType#CHEST}, the new inventory has a size of 27; -@@ -1506,6 +1537,38 @@ public final class Bukkit { +@@ -1518,6 +1549,38 @@ public final class Bukkit { * @see InventoryType#isCreatable() */ @NotNull @@ -880,7 +880,7 @@ index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce76 public static Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title) { return server.createInventory(owner, type, title); } -@@ -1524,6 +1587,7 @@ public final class Bukkit { +@@ -1536,6 +1599,7 @@ public final class Bukkit { return server.createInventory(owner, size); } @@ -888,7 +888,7 @@ index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce76 /** * Creates an empty inventory of type {@link InventoryType#CHEST} with the * specified size and title. -@@ -1536,10 +1600,30 @@ public final class Bukkit { +@@ -1548,10 +1612,30 @@ public final class Bukkit { * @throws IllegalArgumentException if the size is not a multiple of 9 */ @NotNull @@ -919,7 +919,7 @@ index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce76 /** * Creates an empty merchant. * -@@ -1547,7 +1631,20 @@ public final class Bukkit { +@@ -1559,7 +1643,20 @@ public final class Bukkit { * when the merchant inventory is viewed * @return a new merchant */ @@ -940,7 +940,7 @@ index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce76 public static Merchant createMerchant(@Nullable String title) { return server.createMerchant(title); } -@@ -1664,12 +1761,43 @@ public final class Bukkit { +@@ -1676,12 +1773,43 @@ public final class Bukkit { return server.isPrimaryThread(); } @@ -984,7 +984,7 @@ index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce76 public static String getMotd() { return server.getMotd(); } -@@ -1678,7 +1806,9 @@ public final class Bukkit { +@@ -1690,7 +1818,9 @@ public final class Bukkit { * Set the message that is displayed on the server list. * * @param motd The message to be displayed @@ -994,7 +994,7 @@ index 2e619279cb06cbe26bb4933a0312b245f8691d0b..bd1a010bb4e18a16d02549d64333ce76 public static void setMotd(@NotNull String motd) { server.setMotd(motd); } -@@ -1687,8 +1817,10 @@ public final class Bukkit { +@@ -1699,8 +1829,10 @@ public final class Bukkit { * Gets the default message that is displayed when the server is stopped. * * @return the shutdown message @@ -1176,10 +1176,10 @@ index ae7b51341fb66c41b8a7c4604fd273d876e311be..4034fcb9abc39b12f0de47c4b679f2ef + // Paper end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc0b0afd8a 100644 +index bfa9846d93317d07e55b6d7b971326fa07cae27d..3bf7db7eac81e3cc6f5c6700637d10d1b4b7a47b 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -63,13 +63,13 @@ import org.jetbrains.annotations.Nullable; +@@ -65,13 +65,13 @@ import org.jetbrains.annotations.Nullable; /** * Represents a server implementation. */ @@ -1195,7 +1195,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc */ public static final String BROADCAST_CHANNEL_ADMINISTRATIVE = "bukkit.broadcast.admin"; -@@ -77,7 +77,7 @@ public interface Server extends PluginMessageRecipient { +@@ -79,7 +79,7 @@ public interface Server extends PluginMessageRecipient { * Used for all announcement messages, such as informing users that a * player has joined. *

        @@ -1204,7 +1204,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc */ public static final String BROADCAST_CHANNEL_USERS = "bukkit.broadcast.user"; -@@ -353,7 +353,9 @@ public interface Server extends PluginMessageRecipient { +@@ -355,7 +355,9 @@ public interface Server extends PluginMessageRecipient { * * @param message the message * @return the number of players @@ -1214,7 +1214,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc public int broadcastMessage(@NotNull String message); /** -@@ -1039,8 +1041,33 @@ public interface Server extends PluginMessageRecipient { +@@ -1049,8 +1051,33 @@ public interface Server extends PluginMessageRecipient { * @param permission the required permission {@link Permissible * permissibles} must have to receive the broadcast * @return number of message recipients @@ -1248,7 +1248,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc /** * Gets the player by the given name, regardless if they are offline or -@@ -1257,6 +1284,35 @@ public interface Server extends PluginMessageRecipient { +@@ -1267,6 +1294,35 @@ public interface Server extends PluginMessageRecipient { @NotNull Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type); @@ -1284,7 +1284,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc /** * Creates an empty inventory with the specified type and title. If the type * is {@link InventoryType#CHEST}, the new inventory has a size of 27; -@@ -1278,9 +1334,11 @@ public interface Server extends PluginMessageRecipient { +@@ -1288,9 +1344,11 @@ public interface Server extends PluginMessageRecipient { * @return The new inventory. * @throws IllegalArgumentException if the {@link InventoryType} cannot be * viewed. @@ -1296,7 +1296,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc @NotNull Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title); -@@ -1296,6 +1354,22 @@ public interface Server extends PluginMessageRecipient { +@@ -1306,6 +1364,22 @@ public interface Server extends PluginMessageRecipient { @NotNull Inventory createInventory(@Nullable InventoryHolder owner, int size) throws IllegalArgumentException; @@ -1319,7 +1319,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc /** * Creates an empty inventory of type {@link InventoryType#CHEST} with the * specified size and title. -@@ -1306,18 +1380,32 @@ public interface Server extends PluginMessageRecipient { +@@ -1316,18 +1390,32 @@ public interface Server extends PluginMessageRecipient { * viewed * @return a new inventory * @throws IllegalArgumentException if the size is not a multiple of 9 @@ -1352,7 +1352,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc Merchant createMerchant(@Nullable String title); /** -@@ -1413,27 +1501,56 @@ public interface Server extends PluginMessageRecipient { +@@ -1423,27 +1511,56 @@ public interface Server extends PluginMessageRecipient { */ boolean isPrimaryThread(); @@ -1409,7 +1409,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc String getShutdownMessage(); /** -@@ -1815,7 +1932,9 @@ public interface Server extends PluginMessageRecipient { +@@ -1834,7 +1951,9 @@ public interface Server extends PluginMessageRecipient { * Sends the component to the player * * @param component the components to send @@ -1419,7 +1419,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc public void broadcast(@NotNull net.md_5.bungee.api.chat.BaseComponent component) { throw new UnsupportedOperationException("Not supported yet."); } -@@ -1824,7 +1943,9 @@ public interface Server extends PluginMessageRecipient { +@@ -1843,7 +1962,9 @@ public interface Server extends PluginMessageRecipient { * Sends an array of components as a single message to the player * * @param components the components to send @@ -1430,7 +1430,7 @@ index 76b365f98b81234ae1c35014387b0e44f722d5ea..6aed59819cc3d70f1b5975c3c7df40cc throw new UnsupportedOperationException("Not supported yet."); } diff --git a/src/main/java/org/bukkit/Sound.java b/src/main/java/org/bukkit/Sound.java -index 9b1247cdf8a2fed812c46c55193d574aafc3bc94..72ea6ddd00eed73459d700d657929f83ba1ca7ee 100644 +index bd3861c4c2eabca93065c0a6e24e0d3603d86db2..ddc4c5097214371108dc945371e1d28811352c38 100644 --- a/src/main/java/org/bukkit/Sound.java +++ b/src/main/java/org/bukkit/Sound.java @@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull; @@ -1442,7 +1442,7 @@ index 9b1247cdf8a2fed812c46c55193d574aafc3bc94..72ea6ddd00eed73459d700d657929f83 AMBIENT_BASALT_DELTAS_ADDITIONS("ambient.basalt_deltas.additions"), AMBIENT_BASALT_DELTAS_LOOP("ambient.basalt_deltas.loop"), -@@ -1614,4 +1614,11 @@ public enum Sound implements Keyed { +@@ -1727,4 +1727,11 @@ public enum Sound implements Keyed { public NamespacedKey getKey() { return key; } @@ -1523,7 +1523,7 @@ index efb97712cc9dc7c1e12a59f5b94e4f2ad7c6b7d8..3024468af4c073324e536c1cb26beffb return warning == null || warning.value(); } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 28193b8e3c79e14af2ce47857a717f9dd4f1fa42..b53f24c0368ff4e4f5287f1699643a0c00579031 100644 +index 3132e6754ab462eca0b7de1e7ad64c955316296d..a9858c2559f0921613b19710135cc6e060488e96 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -47,7 +47,7 @@ import org.jetbrains.annotations.Nullable; @@ -1743,7 +1743,7 @@ index 0f4ae7bd2ad379b5edb40f49f93de9e18c38f415..575e545a69b5279b90067d7ebee08b7b /** diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java -index 80209bb88a0294d4eedc78509533a6257315d856..75759131bd94b672bec4cd8e271ebff1ad391cba 100644 +index ac89f041dc983485174a174e79cd21159fdfba1e..f3cdf13f22aa789ee8cc235b61fda4035b254219 100644 --- a/src/main/java/org/bukkit/command/Command.java +++ b/src/main/java/org/bukkit/command/Command.java @@ -32,7 +32,7 @@ public abstract class Command { @@ -1770,35 +1770,25 @@ index 80209bb88a0294d4eedc78509533a6257315d856..75759131bd94b672bec4cd8e271ebff1 } return false; -@@ -317,10 +317,12 @@ public abstract class Command { - * command - * - * @return Permission check failed message -+ * @deprecated use {@link #permissionMessage()} - */ +@@ -327,7 +327,7 @@ public abstract class Command { + @Deprecated @Nullable -+ @Deprecated // Paper public String getPermissionMessage() { - return permissionMessage; + return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serializeOrNull(permissionMessage); // Paper } /** -@@ -381,10 +383,12 @@ public abstract class Command { - * @param permissionMessage new permission message, null to indicate - * default message, or an empty string to indicate no message - * @return this command object, for chaining -+ * @deprecated use {@link #permissionMessage(net.kyori.adventure.text.Component)} - */ +@@ -398,7 +398,7 @@ public abstract class Command { + @Deprecated @NotNull -+ @Deprecated // Paper public Command setPermissionMessage(@Nullable String permissionMessage) { - this.permissionMessage = permissionMessage; + this.permissionMessage = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserializeOrNull(permissionMessage); // Paper return this; } -@@ -399,13 +403,47 @@ public abstract class Command { +@@ -413,13 +413,61 @@ public abstract class Command { this.usageMessage = (usage == null) ? "" : usage; return this; } @@ -1807,7 +1797,14 @@ index 80209bb88a0294d4eedc78509533a6257315d856..75759131bd94b672bec4cd8e271ebff1 + * Gets the permission message. + * + * @return the permission message ++ * @deprecated permission messages have not worked for player-executed ++ * commands since 1.13 as clients without permission to execute a command ++ * are unaware of its existence and therefore will not send an unknown ++ * command execution to the server. This message will only ever be shown to ++ * consoles or when this command is executed with ++ * {@link Bukkit#dispatchCommand(CommandSender, String)}. + */ ++ @Deprecated + public net.kyori.adventure.text.@Nullable Component permissionMessage() { + return this.permissionMessage; + } @@ -1816,7 +1813,14 @@ index 80209bb88a0294d4eedc78509533a6257315d856..75759131bd94b672bec4cd8e271ebff1 + * Sets the permission message. + * + * @param permissionMessage the permission message ++ * @deprecated permission messages have not worked for player-executed ++ * commands since 1.13 as clients without permission to execute a command ++ * are unaware of its existence and therefore will not send an unknown ++ * command execution to the server. This message will only ever be shown to ++ * consoles or when this command is executed with ++ * {@link Bukkit#dispatchCommand(CommandSender, String)}. + */ ++ @Deprecated + public void permissionMessage(net.kyori.adventure.text.@Nullable Component permissionMessage) { + this.permissionMessage = permissionMessage; + } @@ -1847,7 +1851,7 @@ index 80209bb88a0294d4eedc78509533a6257315d856..75759131bd94b672bec4cd8e271ebff1 if (source instanceof BlockCommandSender) { BlockCommandSender blockCommandSender = (BlockCommandSender) source; -@@ -424,7 +462,12 @@ public abstract class Command { +@@ -438,7 +486,12 @@ public abstract class Command { } Set users = Bukkit.getPluginManager().getPermissionSubscriptions(Server.BROADCAST_CHANNEL_ADMINISTRATIVE); @@ -2178,10 +2182,10 @@ index b7d8dd30360a38dbdc7bbce40c8e6ced7261f833..0817f2395c2b18828565435568ce651f public void sendRawMessage(@Nullable UUID sender, @NotNull String message); } diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java -index a456e43308b95f51beed2159e6baf00f32702a71..350d52f4dd97a7e6a6a9a967e1c6a8781feda22e 100644 +index f9965740ffa267caa698f854120a5d89727c6d37..dddd0e74962d5713c4bb6219fba48aae5763e9ea 100644 --- a/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/src/main/java/org/bukkit/enchantments/Enchantment.java -@@ -296,6 +296,19 @@ public abstract class Enchantment implements Keyed, Translatable { +@@ -317,6 +317,19 @@ public abstract class Enchantment implements Keyed, Translatable { * @return True if the enchantment may be applied, otherwise False */ public abstract boolean canEnchantItem(@NotNull ItemStack item); @@ -2218,7 +2222,7 @@ index 7ad7bcf9a9333c8d6d1d7cab53a6d457ec20bbf6..c4f86ba1037f3f0e5d697a0962d71d6f + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 53450c104a25151094961a58ffa0d809e3b9a064..474765f40801a766c853018ea6e1adcd010375d2 100644 +index 558fe6e23f562ee873fc84112f930c6ea19a09f4..c78fb359bd28b8dc1ba242642ec612e856525993 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -30,7 +30,7 @@ import org.jetbrains.annotations.Nullable; @@ -2230,7 +2234,7 @@ index 53450c104a25151094961a58ffa0d809e3b9a064..474765f40801a766c853018ea6e1adcd /** * Gets the entity's current position -@@ -765,4 +765,20 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -776,4 +776,20 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @Override Spigot spigot(); // Spigot end @@ -2252,10 +2256,10 @@ index 53450c104a25151094961a58ffa0d809e3b9a064..474765f40801a766c853018ea6e1adcd + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a8904c998ea 100644 +index 712c0a8ae919ed9e7cb84cebd4b6a415ddaa63eb..4e9ba039669c7059180f5776ee2f7188f2dd01b5 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -54,7 +54,41 @@ import org.jetbrains.annotations.Nullable; +@@ -56,7 +56,41 @@ import org.jetbrains.annotations.Nullable; /** * Represents a player, connected or not */ @@ -2298,7 +2302,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 /** * {@inheritDoc} -@@ -71,7 +105,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -73,7 +107,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * places defined by plugins. * * @return the friendly name @@ -2308,7 +2312,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 @NotNull public String getDisplayName(); -@@ -83,15 +119,50 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -85,15 +121,50 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * places defined by plugins. * * @param name The new display name. @@ -2359,7 +2363,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public String getPlayerListName(); /** -@@ -100,14 +171,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -102,14 +173,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 @@ -2378,7 +2382,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 @Nullable public String getPlayerListHeader(); -@@ -115,7 +190,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -117,7 +192,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 @@ -2388,7 +2392,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 @Nullable public String getPlayerListFooter(); -@@ -123,14 +200,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -125,14 +202,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 @@ -2407,7 +2411,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public void setPlayerListFooter(@Nullable String footer); /** -@@ -139,7 +220,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -141,7 +222,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 @@ -2417,7 +2421,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public void setPlayerListHeaderFooter(@Nullable String header, @Nullable String footer); /** -@@ -177,9 +260,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -221,9 +304,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Kicks player with custom kick message. * * @param message kick message @@ -2443,7 +2447,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 /** * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will * update the entry. -@@ -842,6 +941,106 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -886,6 +985,106 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull Map items); @@ -2550,7 +2554,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 /** * 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. -@@ -859,7 +1058,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -903,7 +1102,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 @@ -2562,7 +2566,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException; /** -@@ -881,7 +1084,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -925,7 +1128,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 @@ -2574,7 +2578,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException; /** -@@ -904,7 +1111,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -948,7 +1155,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 @@ -2586,7 +2590,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor, boolean hasGlowingText) throws IllegalArgumentException; /** -@@ -1372,7 +1583,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1416,7 +1627,7 @@ 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. * @deprecated Minecraft no longer uses textures packs. Instead you @@ -2595,7 +2599,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 */ @Deprecated public void setTexturePack(@NotNull String url); -@@ -1408,7 +1619,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1452,7 +1663,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. @@ -2605,7 +2609,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public void setResourcePack(@NotNull String url); /** -@@ -1440,6 +1653,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1484,6 +1697,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * pack correctly. *

      * @@ -2613,7 +2617,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 * @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. -@@ -1452,6 +1666,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1496,6 +1710,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException Thrown if the hash is not 20 bytes * long. */ @@ -2621,7 +2625,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public void setResourcePack(@NotNull String url, @Nullable byte[] hash); /** -@@ -1476,12 +1691,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1520,12 +1735,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * {@link PlayerResourcePackStatusEvent} to figure out whether or not * the player loaded the pack! *
    • To remove a resource pack you can use @@ -2636,7 +2640,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 * @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. -@@ -1495,8 +1711,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1539,8 +1755,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException Thrown if the hash is not 20 bytes * long. */ @@ -2647,7 +2651,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 /** * Request that the player's client download and switch resource packs. *

      -@@ -1519,7 +1737,54 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1563,7 +1781,54 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * {@link PlayerResourcePackStatusEvent} to figure out whether or not * the player loaded the pack! *

    • To remove a resource pack you can use @@ -2703,7 +2707,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 *
    • The request is sent with empty string as the hash when the hash is * not provided. This might result in newer versions not loading the * pack correctly. -@@ -1538,7 +1803,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1582,7 +1847,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * length restriction is an implementation specific arbitrary value. * @throws IllegalArgumentException Thrown if the hash is not 20 bytes * long. @@ -2713,7 +2717,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public void setResourcePack(@NotNull String url, @Nullable byte[] hash, boolean force); /** -@@ -1563,7 +1830,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1607,7 +1874,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * {@link PlayerResourcePackStatusEvent} to figure out whether or not * the player loaded the pack! *
    • To remove a resource pack you can use @@ -2722,7 +2726,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 *
    • The request is sent with empty string as the hash when the hash is * not provided. This might result in newer versions not loading the * pack correctly. -@@ -1583,9 +1850,61 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1627,9 +1894,61 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * length restriction is an implementation specific arbitrary value. * @throws IllegalArgumentException Thrown if the hash is not 20 bytes * long. @@ -2784,7 +2788,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 /** * Request that the player's client download and switch resource packs. *

      -@@ -1608,7 +1927,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1652,7 +1971,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * {@link PlayerResourcePackStatusEvent} to figure out whether or not * the player loaded the pack! *

    • To remove a resource pack you can use @@ -2793,7 +2797,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 *
    • The request is sent with empty string as the hash when the hash is * not provided. This might result in newer versions not loading the * pack correctly. -@@ -1629,9 +1948,60 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1673,9 +1992,60 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * length restriction is an implementation specific arbitrary value. * @throws IllegalArgumentException Thrown if the hash is not 20 bytes * long. @@ -2854,7 +2858,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 /** * Request that the player's client download and include another resource pack. *

      -@@ -1684,12 +2054,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1728,12 +2098,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param id the id of the resource pack. * @throws IllegalArgumentException If the ID is null. @@ -2869,7 +2873,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 */ public void removeResourcePacks(); -@@ -1827,7 +2199,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1871,7 +2243,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param title Title text * @param subtitle Subtitle text @@ -2878,7 +2882,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 */ @Deprecated public void sendTitle(@Nullable String title, @Nullable String subtitle); -@@ -1846,7 +2218,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1890,7 +2262,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. @@ -2888,7 +2892,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public void sendTitle(@Nullable String title, @Nullable String subtitle, int fadeIn, int stay, int fadeOut); /** -@@ -2073,6 +2447,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2117,6 +2491,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public int getClientViewDistance(); @@ -2903,7 +2907,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 /** * Gets the player's estimated ping in milliseconds. * -@@ -2098,8 +2480,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2142,8 +2524,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * they wish. * * @return the player's locale @@ -2914,7 +2918,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 public String getLocale(); /** -@@ -2151,6 +2535,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2195,6 +2579,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public boolean isAllowingServerListings(); @@ -2929,7 +2933,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 // Spigot start public class Spigot extends Entity.Spigot { -@@ -2182,11 +2574,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2226,11 +2618,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM throw new UnsupportedOperationException("Not supported yet."); } @@ -2943,7 +2947,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 @Override public void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent... components) { throw new UnsupportedOperationException("Not supported yet."); -@@ -2197,7 +2591,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2241,7 +2635,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param position the screen position * @param component the components to send @@ -2953,7 +2957,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 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."); } -@@ -2207,7 +2603,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2251,7 +2647,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param position the screen position * @param components the components to send @@ -2963,7 +2967,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 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."); } -@@ -2218,7 +2616,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2262,7 +2660,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 @@ -2973,7 +2977,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 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."); } -@@ -2229,7 +2629,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2273,7 +2673,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 @@ -2984,7 +2988,7 @@ index 764390e5b258ab3cadedb14be00d0c0d601b8a1f..5c55715c8cdd79f2214b265a81d94a89 throw new UnsupportedOperationException("Not supported yet."); } diff --git a/src/main/java/org/bukkit/entity/TextDisplay.java b/src/main/java/org/bukkit/entity/TextDisplay.java -index d6d7ada3d3ff9a033ce3f780b104ef3e176f9083..f101ffde9e7b3f6c3ab6f1cffb8d6f4e720634b2 100644 +index bbce00a6d84aaad4a0ec892ec5cb1b995a0a5a05..a8277270e81bc3d9bbc64c029fe11e3d11e1d9ac 100644 --- a/src/main/java/org/bukkit/entity/TextDisplay.java +++ b/src/main/java/org/bukkit/entity/TextDisplay.java @@ -13,17 +13,37 @@ public interface TextDisplay extends Display { @@ -3330,7 +3334,7 @@ index 9c68c3f2d61500479f48b80264f625aaae2f3204..399afcd19fcb6acd24857ed6ab48cf0d private static final HandlerList handlers = new HandlerList(); private boolean cancel = false; diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -index 9866c07c999f46cb585709804aaad710c3031d5a..3432872303aa0df97b5d9090fe98b269ef3cb9f4 100644 +index 7ca90f318a013786931043c9a10a93cf6aede199..004f1fd55c143e6c21be74d0a6b9ee8b2e12cc59 100644 --- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java +++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java @@ -10,11 +10,18 @@ import org.jetbrains.annotations.NotNull; @@ -3353,8 +3357,8 @@ index 9866c07c999f46cb585709804aaad710c3031d5a..3432872303aa0df97b5d9090fe98b269 private final String name; private final InetAddress ipAddress; private final UUID uniqueId; -@@ -27,7 +34,7 @@ public class AsyncPlayerPreLoginEvent extends Event { - public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId) { +@@ -33,7 +40,7 @@ public class AsyncPlayerPreLoginEvent extends Event { + public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId, boolean transferred) { super(true); this.result = Result.ALLOWED; - this.message = ""; @@ -3362,7 +3366,7 @@ index 9866c07c999f46cb585709804aaad710c3031d5a..3432872303aa0df97b5d9090fe98b269 this.name = name; this.ipAddress = ipAddress; this.uniqueId = uniqueId; -@@ -79,6 +86,7 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -86,6 +93,7 @@ public class AsyncPlayerPreLoginEvent extends Event { this.result = result == null ? null : Result.valueOf(result.name()); } @@ -3370,7 +3374,7 @@ index 9866c07c999f46cb585709804aaad710c3031d5a..3432872303aa0df97b5d9090fe98b269 /** * Gets the current kick message that will be used if getResult() != * Result.ALLOWED -@@ -86,7 +94,7 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -93,7 +101,7 @@ public class AsyncPlayerPreLoginEvent extends Event { * @return Current kick message */ @NotNull @@ -3379,7 +3383,7 @@ index 9866c07c999f46cb585709804aaad710c3031d5a..3432872303aa0df97b5d9090fe98b269 return message; } -@@ -95,16 +103,66 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -102,16 +110,66 @@ public class AsyncPlayerPreLoginEvent extends Event { * * @param message New kick message */ @@ -3448,7 +3452,7 @@ index 9866c07c999f46cb585709804aaad710c3031d5a..3432872303aa0df97b5d9090fe98b269 } /** -@@ -112,10 +170,12 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -119,10 +177,12 @@ public class AsyncPlayerPreLoginEvent extends Event { * * @param result New result for disallowing the player * @param message Kick message to display to the user @@ -3462,7 +3466,7 @@ index 9866c07c999f46cb585709804aaad710c3031d5a..3432872303aa0df97b5d9090fe98b269 } /** -@@ -130,7 +190,7 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -137,7 +197,7 @@ public class AsyncPlayerPreLoginEvent extends Event { @Deprecated public void disallow(@NotNull final PlayerPreLoginEvent.Result result, @NotNull final String message) { this.result = result == null ? null : Result.valueOf(result.name()); @@ -4354,19 +4358,179 @@ index 88cdce67e6a55712cb56e946f2f09c82ddbc1d15..e76c847e57f3d32757129d56922862a4 + // Paper end } diff --git a/src/main/java/org/bukkit/inventory/meta/BookMeta.java b/src/main/java/org/bukkit/inventory/meta/BookMeta.java -index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f006905d6a988 100644 +index 9bab73c3c2ca759b8e1c7d07d98cc593c961666a..7cc66e5dd6f19295728d3c0e6c0898338281b8a7 100644 --- a/src/main/java/org/bukkit/inventory/meta/BookMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/BookMeta.java -@@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable; - * Represents a book ({@link Material#WRITABLE_BOOK} or {@link - * Material#WRITTEN_BOOK}) that can have a title, an author, and pages. - */ --public interface BookMeta extends ItemMeta { -+public interface BookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { // Paper +@@ -124,8 +124,10 @@ public interface BookMeta extends WritableBookMeta { + * + * @param page the page number to get + * @return the page from the book ++ * @deprecated in favour of {@link #page(int)} + */ + @NotNull ++ @Deprecated // Paper + public BaseComponent[] getPage(int page) { + throw new UnsupportedOperationException("Not supported yet."); + } +@@ -139,7 +141,9 @@ public interface BookMeta extends WritableBookMeta { + * + * @param page the page number to set + * @param data the data to set for that page ++ * @deprecated in favour of {@link #page(int, net.kyori.adventure.text.Component)} + */ ++ @Deprecated // Paper + public void setPage(int page, @Nullable BaseComponent... data) { + throw new UnsupportedOperationException("Not supported yet."); + } +@@ -148,8 +152,10 @@ public interface BookMeta extends WritableBookMeta { + * Gets all the pages in the book. + * + * @return list of all the pages in the book ++ * @deprecated in favour of {@link #pages()} + */ + @NotNull ++ @Deprecated // Paper + public List getPages() { + throw new UnsupportedOperationException("Not supported yet."); + } +@@ -159,7 +165,9 @@ public interface BookMeta extends WritableBookMeta { + * pages. Maximum 50 pages with 256 characters per page. + * + * @param pages A list of pages to set the book to use ++ * @deprecated in favour of {@link #pages(java.util.List)} + */ ++ @Deprecated // Paper + public void setPages(@NotNull List pages) { + throw new UnsupportedOperationException("Not supported yet."); + } +@@ -169,7 +177,9 @@ public interface BookMeta extends WritableBookMeta { + * pages. Maximum 50 pages with 256 characters per page. + * + * @param pages A list of component arrays, each being a page ++ * @deprecated in favour of {@link #pages(net.kyori.adventure.text.Component...)} + */ ++ @Deprecated // Paper + public void setPages(@NotNull BaseComponent[]... pages) { + throw new UnsupportedOperationException("Not supported yet."); + } +@@ -179,7 +189,9 @@ public interface BookMeta extends WritableBookMeta { + * with 256 characters per page. + * + * @param pages A list of component arrays, each being a page ++ * @deprecated in favour of {@link #addPages(net.kyori.adventure.text.Component...)} + */ ++ @Deprecated // Paper + public void addPage(@NotNull BaseComponent[]... pages) { + throw new UnsupportedOperationException("Not supported yet."); + } +diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +index 255f79d5bca15620cb17d7b54ffebb6ff00bff6b..d7c178b3584db5866a5a21c6ddaab876b94058b9 100644 +--- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java ++++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +@@ -34,6 +34,24 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste + */ + boolean hasDisplayName(); + ++ // Paper start ++ /** ++ * Gets the display name. ++ * ++ *

      Plugins should check that {@link #hasDisplayName()} returns true before calling this method.

      ++ * ++ * @return the display name ++ */ ++ net.kyori.adventure.text.@Nullable Component displayName(); ++ ++ /** ++ * Sets the display name. ++ * ++ * @param displayName the display name to set ++ */ ++ void displayName(final net.kyori.adventure.text.@Nullable Component displayName); ++ // Paper end ++ + /** + * Gets the display name that is set. + *

      +@@ -41,7 +59,9 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste + * before calling this method. + * + * @return the display name that is set ++ * @deprecated in favour of {@link #displayName()} + */ ++ @Deprecated // Paper + @NotNull + String getDisplayName(); + +@@ -49,7 +69,9 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste + * Sets the display name. + * + * @param name the name to set ++ * @deprecated in favour of {@link #displayName(net.kyori.adventure.text.Component)} + */ ++ @Deprecated // Paper + void setDisplayName(@Nullable String name); /** - * Represents the generation (or level of copying) of a written book -@@ -119,6 +119,109 @@ public interface BookMeta extends ItemMeta { +@@ -124,6 +146,24 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste + */ + boolean hasLore(); + ++ // Paper start ++ /** ++ * Gets the lore. ++ * ++ *

      Plugins should check that {@link #hasLore()} returns true before calling this method.

      ++ * ++ * @return the lore ++ */ ++ @Nullable List lore(); ++ ++ /** ++ * Sets the lore. ++ * ++ * @param lore the lore to set ++ */ ++ void lore(final @Nullable List lore); ++ // Paper end ++ + /** + * Gets the lore that is set. + *

      +@@ -131,7 +171,9 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste + * calling this method. + * + * @return a list of lore that is set ++ * @deprecated in favour of {@link #lore()} + */ ++ @Deprecated // Paper + @Nullable + List getLore(); + +@@ -140,7 +182,9 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste + * Removes lore when given null. + * + * @param lore the lore that will be set ++ * @deprecated in favour of {@link #lore(List)} + */ ++ @Deprecated // Paper + void setLore(@Nullable List lore); + + /** +diff --git a/src/main/java/org/bukkit/inventory/meta/WritableBookMeta.java b/src/main/java/org/bukkit/inventory/meta/WritableBookMeta.java +index 12595536080ffe09df2b6ecdb83d846f50100d38..dec77fc3aff1baf21aeff8d8d681a46f597935c9 100644 +--- a/src/main/java/org/bukkit/inventory/meta/WritableBookMeta.java ++++ b/src/main/java/org/bukkit/inventory/meta/WritableBookMeta.java +@@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; + * Represents a book ({@link Material#WRITABLE_BOOK} or {@link + * Material#WRITTEN_BOOK}) that can have pages. + */ +-public interface WritableBookMeta extends ItemMeta { ++public interface WritableBookMeta extends ItemMeta, net.kyori.adventure.inventory.Book { // Paper + + /** + * Checks for the existence of pages in the book. +@@ -17,6 +17,108 @@ public interface WritableBookMeta extends ItemMeta { */ boolean hasPages(); @@ -4380,7 +4544,7 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 + * @return the title of the book + */ + @Override -+ net.kyori.adventure.text.@Nullable Component title(); ++ net.kyori.adventure.text.@org.jetbrains.annotations.Nullable Component title(); + + /** + * Sets the title of the book. @@ -4392,7 +4556,7 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 + */ + @org.jetbrains.annotations.Contract(value = "_ -> this", pure = false) + @Override -+ @NotNull BookMeta title(net.kyori.adventure.text.@Nullable Component title); ++ @NotNull BookMeta title(net.kyori.adventure.text.@org.jetbrains.annotations.Nullable Component title); + + /** + * Gets the author of the book. @@ -4403,7 +4567,7 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 + * @return the author of the book + */ + @Override -+ net.kyori.adventure.text.@Nullable Component author(); ++ net.kyori.adventure.text.@org.jetbrains.annotations.Nullable Component author(); + + /** + * Sets the author of the book. Removes author when given null. @@ -4413,7 +4577,7 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 + */ + @org.jetbrains.annotations.Contract(value = "_ -> this", pure = false) + @Override -+ @NotNull BookMeta author(net.kyori.adventure.text.@Nullable Component author); ++ @NotNull BookMeta author(net.kyori.adventure.text.@org.jetbrains.annotations.Nullable Component author); + + /** + * Gets the specified page in the book. The page must exist. @@ -4447,13 +4611,13 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 + */ + void addPages(net.kyori.adventure.text.@NotNull Component @NotNull ... pages); + -+ interface BookMetaBuilder extends Builder { ++ interface BookMetaBuilder extends net.kyori.adventure.inventory.Book.Builder { + + @Override -+ @NotNull BookMetaBuilder title(net.kyori.adventure.text.@Nullable Component title); ++ @NotNull BookMetaBuilder title(net.kyori.adventure.text.@org.jetbrains.annotations.Nullable Component title); + + @Override -+ @NotNull BookMetaBuilder author(net.kyori.adventure.text.@Nullable Component author); ++ @NotNull BookMetaBuilder author(net.kyori.adventure.text.@org.jetbrains.annotations.Nullable Component author); + + @Override + @NotNull BookMetaBuilder addPage(net.kyori.adventure.text.@NotNull Component page); @@ -4470,13 +4634,12 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 + + @Override + @NotNull BookMetaBuilder toBuilder(); -+ + // Paper end + /** * Gets the specified page in the book. The given page must exist. *

      -@@ -126,8 +229,10 @@ public interface BookMeta extends ItemMeta { +@@ -24,8 +126,10 @@ public interface WritableBookMeta extends ItemMeta { * * @param page the page number to get, in range [1, getPageCount()] * @return the page from the book @@ -4487,7 +4650,7 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 String getPage(int page); /** -@@ -141,15 +246,19 @@ public interface BookMeta extends ItemMeta { +@@ -39,15 +143,19 @@ public interface WritableBookMeta extends ItemMeta { * * @param page the page number to set, in range [1, getPageCount()] * @param data the data to set for that page @@ -4507,7 +4670,7 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 List getPages(); /** -@@ -157,7 +266,9 @@ public interface BookMeta extends ItemMeta { +@@ -55,7 +163,9 @@ public interface WritableBookMeta extends ItemMeta { * pages. Maximum 100 pages with 1024 characters per page. * * @param pages A list of pages to set the book to use @@ -4517,7 +4680,7 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 void setPages(@NotNull List pages); /** -@@ -165,7 +276,9 @@ public interface BookMeta extends ItemMeta { +@@ -63,7 +173,9 @@ public interface WritableBookMeta extends ItemMeta { * pages. Maximum 100 pages with 1024 characters per page. * * @param pages A list of strings, each being a page @@ -4527,7 +4690,7 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 void setPages(@NotNull String... pages); /** -@@ -173,7 +286,9 @@ public interface BookMeta extends ItemMeta { +@@ -71,7 +183,9 @@ public interface WritableBookMeta extends ItemMeta { * 1024 characters per page. * * @param pages A list of strings, each being a page @@ -4536,162 +4699,6 @@ index fc94719f702f23da8de5340d7f9e9b9d0c9d7c66..151ccc0fe93a7d216677b20e904f0069 + @Deprecated // Paper void addPage(@NotNull String... pages); - /** -@@ -195,8 +310,10 @@ public interface BookMeta extends ItemMeta { - * - * @param page the page number to get - * @return the page from the book -+ * @deprecated in favour of {@link #page(int)} - */ - @NotNull -+ @Deprecated // Paper - public BaseComponent[] getPage(int page) { - throw new UnsupportedOperationException("Not supported yet."); - } -@@ -210,7 +327,9 @@ public interface BookMeta extends ItemMeta { - * - * @param page the page number to set - * @param data the data to set for that page -+ * @deprecated in favour of {@link #page(int, net.kyori.adventure.text.Component)} - */ -+ @Deprecated // Paper - public void setPage(int page, @Nullable BaseComponent... data) { - throw new UnsupportedOperationException("Not supported yet."); - } -@@ -219,8 +338,10 @@ public interface BookMeta extends ItemMeta { - * Gets all the pages in the book. - * - * @return list of all the pages in the book -+ * @deprecated in favour of {@link #pages()} - */ - @NotNull -+ @Deprecated // Paper - public List getPages() { - throw new UnsupportedOperationException("Not supported yet."); - } -@@ -230,7 +351,9 @@ public interface BookMeta extends ItemMeta { - * pages. Maximum 50 pages with 256 characters per page. - * - * @param pages A list of pages to set the book to use -+ * @deprecated in favour of {@link #pages(java.util.List)} - */ -+ @Deprecated // Paper - public void setPages(@NotNull List pages) { - throw new UnsupportedOperationException("Not supported yet."); - } -@@ -240,7 +363,9 @@ public interface BookMeta extends ItemMeta { - * pages. Maximum 50 pages with 256 characters per page. - * - * @param pages A list of component arrays, each being a page -+ * @deprecated in favour of {@link #pages(net.kyori.adventure.text.Component...)} - */ -+ @Deprecated // Paper - public void setPages(@NotNull BaseComponent[]... pages) { - throw new UnsupportedOperationException("Not supported yet."); - } -@@ -250,7 +375,9 @@ public interface BookMeta extends ItemMeta { - * with 256 characters per page. - * - * @param pages A list of component arrays, each being a page -+ * @deprecated in favour of {@link #addPages(net.kyori.adventure.text.Component...)} - */ -+ @Deprecated // Paper - public void addPage(@NotNull BaseComponent[]... pages) { - throw new UnsupportedOperationException("Not supported yet."); - } -diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -index 9f159ac909ad5287b719cee331db5c44654ec547..f1fcc844d563a0108230676dec84ef25485756b3 100644 ---- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -+++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -@@ -32,6 +32,24 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste - */ - boolean hasDisplayName(); - -+ // Paper start -+ /** -+ * Gets the display name. -+ * -+ *

      Plugins should check that {@link #hasDisplayName()} returns true before calling this method.

      -+ * -+ * @return the display name -+ */ -+ net.kyori.adventure.text.@Nullable Component displayName(); -+ -+ /** -+ * Sets the display name. -+ * -+ * @param displayName the display name to set -+ */ -+ void displayName(final net.kyori.adventure.text.@Nullable Component displayName); -+ // Paper end -+ - /** - * Gets the display name that is set. - *

      -@@ -39,7 +57,9 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste - * before calling this method. - * - * @return the display name that is set -+ * @deprecated in favour of {@link #displayName()} - */ -+ @Deprecated // Paper - @NotNull - String getDisplayName(); - -@@ -47,7 +67,9 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste - * Sets the display name. - * - * @param name the name to set -+ * @deprecated in favour of {@link #displayName(net.kyori.adventure.text.Component)} - */ -+ @Deprecated // Paper - void setDisplayName(@Nullable String name); - - /** -@@ -82,6 +104,24 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste - */ - boolean hasLore(); - -+ // Paper start -+ /** -+ * Gets the lore. -+ * -+ *

      Plugins should check that {@link #hasLore()} returns true before calling this method.

      -+ * -+ * @return the lore -+ */ -+ @Nullable List lore(); -+ -+ /** -+ * Sets the lore. -+ * -+ * @param lore the lore to set -+ */ -+ void lore(final @Nullable List lore); -+ // Paper end -+ - /** - * Gets the lore that is set. - *

      -@@ -89,7 +129,9 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste - * calling this method. - * - * @return a list of lore that is set -+ * @deprecated in favour of {@link #lore()} - */ -+ @Deprecated // Paper - @Nullable - List getLore(); - -@@ -98,7 +140,9 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste - * Removes lore when given null. - * - * @param lore the lore that will be set -+ * @deprecated in favour of {@link #lore(List)} - */ -+ @Deprecated // Paper - void setLore(@Nullable List lore); - /** diff --git a/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java b/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java index eb80f24da65918a21a2fa6691eeb64b621febaf4..941fac4eee338870d8c30cb1f64cab572cf54548 100644 @@ -4720,13 +4727,13 @@ index eb80f24da65918a21a2fa6691eeb64b621febaf4..941fac4eee338870d8c30cb1f64cab57 + // Paper end - adventure } diff --git a/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java b/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java -index ccf02c79e2784de75273f5ad7f83ce5c33a688fe..3fa087d09c7c2d864eea25659951a537359c9589 100644 +index bd512a7840d4686759097ee4cbd8b375c530956b..f2242ddc4085f7e7cdd748d860857822e3d9b007 100644 --- a/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java +++ b/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java -@@ -75,4 +75,21 @@ public interface TrimPattern extends Keyed, Translatable { - * {@link Material#HOST_ARMOR_TRIM_SMITHING_TEMPLATE}. +@@ -83,4 +83,21 @@ public interface TrimPattern extends Keyed, Translatable { + * {@link Material#BOLT_ARMOR_TRIM_SMITHING_TEMPLATE}. */ - public static final TrimPattern HOST = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft("host")); + public static final TrimPattern BOLT = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft("bolt")); + + // Paper start - adventure + /** @@ -4746,10 +4753,10 @@ index ccf02c79e2784de75273f5ad7f83ce5c33a688fe..3fa087d09c7c2d864eea25659951a537 + // Paper end - adventure } diff --git a/src/main/java/org/bukkit/map/MapCursor.java b/src/main/java/org/bukkit/map/MapCursor.java -index b90fd819a781d3a2117ffa25f0864b1576901f9f..7d4f4970dae6fe4eeea6b6b6810dcecfe20d6e51 100644 +index 4ddddc5d91a5febba2fd4dea3a15092f4ec32a6f..f9803c7483f7458fed1f22ddfda6e7ef03cfc688 100644 --- a/src/main/java/org/bukkit/map/MapCursor.java +++ b/src/main/java/org/bukkit/map/MapCursor.java -@@ -10,7 +10,7 @@ public final class MapCursor { +@@ -12,7 +12,7 @@ public final class MapCursor { private byte x, y; private byte direction, type; private boolean visible; @@ -4758,7 +4765,7 @@ index b90fd819a781d3a2117ffa25f0864b1576901f9f..7d4f4970dae6fe4eeea6b6b6810dcecf /** * Initialize the map cursor. -@@ -24,7 +24,7 @@ public final class MapCursor { +@@ -26,7 +26,7 @@ public final class MapCursor { */ @Deprecated public MapCursor(byte x, byte y, byte direction, byte type, boolean visible) { @@ -4767,7 +4774,7 @@ index b90fd819a781d3a2117ffa25f0864b1576901f9f..7d4f4970dae6fe4eeea6b6b6810dcecf } /** -@@ -37,7 +37,7 @@ public final class MapCursor { +@@ -39,7 +39,7 @@ public final class MapCursor { * @param visible Whether the cursor is visible by default. */ public MapCursor(byte x, byte y, byte direction, @NotNull Type type, boolean visible) { @@ -4776,7 +4783,7 @@ index b90fd819a781d3a2117ffa25f0864b1576901f9f..7d4f4970dae6fe4eeea6b6b6810dcecf } /** -@@ -49,7 +49,7 @@ public final class MapCursor { +@@ -51,7 +51,7 @@ public final class MapCursor { * @param type The type (color/style) of the map cursor. * @param visible Whether the cursor is visible by default. * @param caption cursor caption @@ -4785,7 +4792,7 @@ index b90fd819a781d3a2117ffa25f0864b1576901f9f..7d4f4970dae6fe4eeea6b6b6810dcecf */ @Deprecated public MapCursor(byte x, byte y, byte direction, byte type, boolean visible, @Nullable String caption) { -@@ -58,8 +58,42 @@ public final class MapCursor { +@@ -60,8 +60,42 @@ public final class MapCursor { setDirection(direction); setRawType(type); this.visible = visible; @@ -4829,7 +4836,7 @@ index b90fd819a781d3a2117ffa25f0864b1576901f9f..7d4f4970dae6fe4eeea6b6b6810dcecf /** * Initialize the map cursor. -@@ -77,7 +111,7 @@ public final class MapCursor { +@@ -79,7 +113,7 @@ public final class MapCursor { setDirection(direction); setType(type); this.visible = visible; @@ -4838,7 +4845,7 @@ index b90fd819a781d3a2117ffa25f0864b1576901f9f..7d4f4970dae6fe4eeea6b6b6810dcecf } /** -@@ -200,23 +234,45 @@ public final class MapCursor { +@@ -202,23 +236,45 @@ public final class MapCursor { this.visible = visible; } diff --git a/patches/api/0009-Paper-Plugins.patch b/patches/api/0009-Paper-Plugins.patch index f938e2be49..4c0bd33025 100644 --- a/patches/api/0009-Paper-Plugins.patch +++ b/patches/api/0009-Paper-Plugins.patch @@ -1545,7 +1545,7 @@ index a88733f1cd1ddb5d85ab1b0e6af4fd5b80bbc1c6..cb530369e667c426c842da356c31304b /** diff --git a/src/main/java/org/bukkit/plugin/PluginManager.java b/src/main/java/org/bukkit/plugin/PluginManager.java -index 41e26451fe12d8e6e0ef73c85731b24b4e3f200c..03213fde8315384ec56c16031cfc606ade2e8091 100644 +index ae3e68562c29992fab627428db3ff0006d8216f9..47153dee66782a00b980ecf15e8774ab6f3d887d 100644 --- a/src/main/java/org/bukkit/plugin/PluginManager.java +++ b/src/main/java/org/bukkit/plugin/PluginManager.java @@ -14,7 +14,7 @@ import org.jetbrains.annotations.Nullable; @@ -1565,7 +1565,7 @@ index 41e26451fe12d8e6e0ef73c85731b24b4e3f200c..03213fde8315384ec56c16031cfc606a public void registerInterface(@NotNull Class loader) throws IllegalArgumentException; /** -@@ -303,4 +304,17 @@ public interface PluginManager { +@@ -312,4 +313,17 @@ public interface PluginManager { * @return True if event timings are to be used */ public boolean useTimings(); @@ -1584,7 +1584,7 @@ index 41e26451fe12d8e6e0ef73c85731b24b4e3f200c..03213fde8315384ec56c16031cfc606a + // Paper end } diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e7666711998eb4e 100644 +index 34830d2815d331a1b611f22eca08f53d815ea08a..40794a8f60f7ba139e69c38e4fcbb7f4333f8608 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java @@ -43,6 +43,8 @@ import org.jetbrains.annotations.Nullable; @@ -1626,7 +1626,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 Preconditions.checkArgument(directory != null, "Directory cannot be null"); Preconditions.checkArgument(directory.isDirectory(), "Directory must be a directory"); -@@ -378,6 +388,15 @@ public final class SimplePluginManager implements PluginManager { +@@ -389,6 +399,15 @@ public final class SimplePluginManager implements PluginManager { @Nullable public synchronized Plugin loadPlugin(@NotNull File file) throws InvalidPluginException, UnknownDependencyException { Preconditions.checkArgument(file != null, "File cannot be null"); @@ -1642,7 +1642,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 checkUpdate(file); -@@ -428,12 +447,14 @@ public final class SimplePluginManager implements PluginManager { +@@ -439,12 +458,14 @@ public final class SimplePluginManager implements PluginManager { @Override @Nullable public synchronized Plugin getPlugin(@NotNull String name) { @@ -1657,7 +1657,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 return plugins.toArray(new Plugin[plugins.size()]); } -@@ -447,6 +468,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -458,6 +479,7 @@ public final class SimplePluginManager implements PluginManager { */ @Override public boolean isPluginEnabled(@NotNull String name) { @@ -1665,7 +1665,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 Plugin plugin = getPlugin(name); return isPluginEnabled(plugin); -@@ -460,6 +482,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -471,6 +493,7 @@ public final class SimplePluginManager implements PluginManager { */ @Override public boolean isPluginEnabled(@Nullable Plugin plugin) { @@ -1673,7 +1673,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 if ((plugin != null) && (plugins.contains(plugin))) { return plugin.isEnabled(); } else { -@@ -469,6 +492,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -480,6 +503,7 @@ public final class SimplePluginManager implements PluginManager { @Override public void enablePlugin(@NotNull final Plugin plugin) { @@ -1681,7 +1681,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 if (!plugin.isEnabled()) { List pluginCommands = PluginCommandYamlParser.parse(plugin); -@@ -488,6 +512,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -499,6 +523,7 @@ public final class SimplePluginManager implements PluginManager { @Override public void disablePlugins() { @@ -1689,7 +1689,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 Plugin[] plugins = getPlugins(); for (int i = plugins.length - 1; i >= 0; i--) { disablePlugin(plugins[i]); -@@ -496,6 +521,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -507,6 +532,7 @@ public final class SimplePluginManager implements PluginManager { @Override public void disablePlugin(@NotNull final Plugin plugin) { @@ -1697,7 +1697,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 if (plugin.isEnabled()) { try { plugin.getPluginLoader().disablePlugin(plugin); -@@ -540,6 +566,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -551,6 +577,7 @@ public final class SimplePluginManager implements PluginManager { @Override public void clearPlugins() { @@ -1705,7 +1705,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 synchronized (this) { disablePlugins(); plugins.clear(); -@@ -560,6 +587,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -571,6 +598,7 @@ public final class SimplePluginManager implements PluginManager { */ @Override public void callEvent(@NotNull Event event) { @@ -1713,7 +1713,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 if (event.isAsynchronous()) { if (Thread.holdsLock(this)) { throw new IllegalStateException(event.getEventName() + " cannot be triggered asynchronously from inside synchronized code."); -@@ -608,6 +636,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -619,6 +647,7 @@ public final class SimplePluginManager implements PluginManager { @Override public void registerEvents(@NotNull Listener listener, @NotNull Plugin plugin) { @@ -1721,7 +1721,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 if (!plugin.isEnabled()) { throw new IllegalPluginAccessException("Plugin attempted to register " + listener + " while not enabled"); } -@@ -641,6 +670,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -652,6 +681,7 @@ public final class SimplePluginManager implements PluginManager { Preconditions.checkArgument(priority != null, "Priority cannot be null"); Preconditions.checkArgument(executor != null, "Executor cannot be null"); Preconditions.checkArgument(plugin != null, "Plugin cannot be null"); @@ -1729,7 +1729,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 if (!plugin.isEnabled()) { throw new IllegalPluginAccessException("Plugin attempted to register " + event + " while not enabled"); -@@ -688,16 +718,19 @@ public final class SimplePluginManager implements PluginManager { +@@ -699,16 +729,19 @@ public final class SimplePluginManager implements PluginManager { @Override @Nullable public Permission getPermission(@NotNull String name) { @@ -1749,7 +1749,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 String name = perm.getName().toLowerCase(java.util.Locale.ENGLISH); if (permissions.containsKey(name)) { -@@ -711,21 +744,25 @@ public final class SimplePluginManager implements PluginManager { +@@ -722,21 +755,25 @@ public final class SimplePluginManager implements PluginManager { @Override @NotNull public Set getDefaultPermissions(boolean op) { @@ -1775,7 +1775,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 if (perm != null && permissions.containsKey(perm.getName().toLowerCase(java.util.Locale.ENGLISH))) { defaultPerms.get(true).remove(perm); defaultPerms.get(false).remove(perm); -@@ -765,6 +802,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -776,6 +813,7 @@ public final class SimplePluginManager implements PluginManager { @Override public void subscribeToPermission(@NotNull String permission, @NotNull Permissible permissible) { @@ -1783,7 +1783,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 String name = permission.toLowerCase(java.util.Locale.ENGLISH); Map map = permSubs.get(name); -@@ -778,6 +816,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -789,6 +827,7 @@ public final class SimplePluginManager implements PluginManager { @Override public void unsubscribeFromPermission(@NotNull String permission, @NotNull Permissible permissible) { @@ -1791,7 +1791,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 String name = permission.toLowerCase(java.util.Locale.ENGLISH); Map map = permSubs.get(name); -@@ -793,6 +832,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -804,6 +843,7 @@ public final class SimplePluginManager implements PluginManager { @Override @NotNull public Set getPermissionSubscriptions(@NotNull String permission) { @@ -1799,7 +1799,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 String name = permission.toLowerCase(java.util.Locale.ENGLISH); Map map = permSubs.get(name); -@@ -805,6 +845,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -816,6 +856,7 @@ public final class SimplePluginManager implements PluginManager { @Override public void subscribeToDefaultPerms(boolean op, @NotNull Permissible permissible) { @@ -1807,7 +1807,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 Map map = defSubs.get(op); if (map == null) { -@@ -817,6 +858,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -828,6 +869,7 @@ public final class SimplePluginManager implements PluginManager { @Override public void unsubscribeFromDefaultPerms(boolean op, @NotNull Permissible permissible) { @@ -1815,7 +1815,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 Map map = defSubs.get(op); if (map != null) { -@@ -831,6 +873,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -842,6 +884,7 @@ public final class SimplePluginManager implements PluginManager { @Override @NotNull public Set getDefaultPermSubscriptions(boolean op) { @@ -1823,7 +1823,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 Map map = defSubs.get(op); if (map == null) { -@@ -843,6 +886,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -854,6 +897,7 @@ public final class SimplePluginManager implements PluginManager { @Override @NotNull public Set getPermissions() { @@ -1831,7 +1831,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 return new HashSet(permissions.values()); } -@@ -866,6 +910,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -877,6 +921,7 @@ public final class SimplePluginManager implements PluginManager { @Override public boolean useTimings() { @@ -1839,7 +1839,7 @@ index a69c5d5cad6168aeaae41e8adc319dc8c976b1e2..77f9ebbe675cf1b6a17e98d98e766671 return useTimings; } -@@ -877,4 +922,28 @@ public final class SimplePluginManager implements PluginManager { +@@ -888,4 +933,28 @@ public final class SimplePluginManager implements PluginManager { public void useTimings(boolean use) { useTimings = use; } diff --git a/patches/api/0011-Timings-v2.patch b/patches/api/0011-Timings-v2.patch index d2e13bb2d4..7c1d573059 100644 --- a/patches/api/0011-Timings-v2.patch +++ b/patches/api/0011-Timings-v2.patch @@ -2854,10 +2854,10 @@ index 0000000000000000000000000000000000000000..3e61a926620a67daec3af54b72a1b911 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index bd1a010bb4e18a16d02549d64333ce7641be7910..07d393152320270e38f495120dd19e35ece73149 100644 +index 6425151b7003a1376977717dca6172efa1864648..e23be80c0ee7d7979b7c62ebce97ed0b2a0e146b 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -864,7 +864,6 @@ public final class Bukkit { +@@ -866,7 +866,6 @@ public final class Bukkit { */ public static void reload() { server.reload(); @@ -2866,10 +2866,10 @@ index bd1a010bb4e18a16d02549d64333ce7641be7910..07d393152320270e38f495120dd19e35 /** diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 6aed59819cc3d70f1b5975c3c7df40cc0b0afd8a..baa02b5223769755670c611ca4d6acc7bf202116 100644 +index 3bf7db7eac81e3cc6f5c6700637d10d1b4b7a47b..77f8b0889cd7039bf041fc052fba33b60aa77e17 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1928,6 +1928,26 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1947,6 +1947,26 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi throw new UnsupportedOperationException("Not supported yet."); } @@ -2949,7 +2949,7 @@ index 0000000000000000000000000000000000000000..f9a00aecca5ec41b460bf41dfe1c6969 + } +} diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java -index 75759131bd94b672bec4cd8e271ebff1ad391cba..5cfd88eec9bf02e83d77b6fce1a5c14b7687f48b 100644 +index f3cdf13f22aa789ee8cc235b61fda4035b254219..33c0a60e71f4bd29966c10ea60b22f14e56c1de4 100644 --- a/src/main/java/org/bukkit/command/Command.java +++ b/src/main/java/org/bukkit/command/Command.java @@ -33,7 +33,8 @@ public abstract class Command { @@ -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 5c55715c8cdd79f2214b265a81d94a8904c998ea..a714877c44e6a6c5e90d0e0c5bf6eb30937e1037 100644 +index 4e9ba039669c7059180f5776ee2f7188f2dd01b5..5b526d602057ab70b4a058142e01a0195694c28f 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2634,7 +2634,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2678,7 +2678,19 @@ 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."); @@ -3479,10 +3479,10 @@ index 5c55715c8cdd79f2214b265a81d94a8904c998ea..a714877c44e6a6c5e90d0e0c5bf6eb30 @NotNull diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 77f9ebbe675cf1b6a17e98d98e7666711998eb4e..63389474a2b3f0e283b42e7004aa6a94904a3d17 100644 +index 40794a8f60f7ba139e69c38e4fcbb7f4333f8608..c75fd7ce01ca11535563ad7ebe1944eb61e65600 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -368,7 +368,6 @@ public final class SimplePluginManager implements PluginManager { +@@ -379,7 +379,6 @@ public final class SimplePluginManager implements PluginManager { } } @@ -3490,7 +3490,7 @@ index 77f9ebbe675cf1b6a17e98d98e7666711998eb4e..63389474a2b3f0e283b42e7004aa6a94 return result.toArray(new Plugin[result.size()]); } -@@ -416,9 +415,9 @@ public final class SimplePluginManager implements PluginManager { +@@ -427,9 +426,9 @@ public final class SimplePluginManager implements PluginManager { if (result != null) { plugins.add(result); @@ -3502,7 +3502,7 @@ index 77f9ebbe675cf1b6a17e98d98e7666711998eb4e..63389474a2b3f0e283b42e7004aa6a94 } } -@@ -448,7 +447,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -459,7 +458,7 @@ public final class SimplePluginManager implements PluginManager { @Nullable public synchronized Plugin getPlugin(@NotNull String name) { if (true) {return this.paperPluginManager.getPlugin(name);} // Paper @@ -3511,7 +3511,7 @@ index 77f9ebbe675cf1b6a17e98d98e7666711998eb4e..63389474a2b3f0e283b42e7004aa6a94 } @Override -@@ -676,7 +675,8 @@ public final class SimplePluginManager implements PluginManager { +@@ -687,7 +686,8 @@ public final class SimplePluginManager implements PluginManager { throw new IllegalPluginAccessException("Plugin attempted to register " + event + " while not enabled"); } @@ -3521,7 +3521,7 @@ index 77f9ebbe675cf1b6a17e98d98e7666711998eb4e..63389474a2b3f0e283b42e7004aa6a94 getEventListeners(event).register(new TimedRegisteredListener(listener, executor, priority, plugin, ignoreCancelled)); } else { getEventListeners(event).register(new RegisteredListener(listener, executor, priority, plugin, ignoreCancelled)); -@@ -911,7 +911,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -922,7 +922,7 @@ public final class SimplePluginManager implements PluginManager { @Override public boolean useTimings() { if (true) {return this.paperPluginManager.useTimings();} // Paper @@ -3530,7 +3530,7 @@ index 77f9ebbe675cf1b6a17e98d98e7666711998eb4e..63389474a2b3f0e283b42e7004aa6a94 } /** -@@ -920,7 +920,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -931,7 +931,7 @@ public final class SimplePluginManager implements PluginManager { * @param use True if per event timing code should be used */ public void useTimings(boolean use) { diff --git a/patches/api/0012-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/api/0012-Add-command-line-option-to-load-extra-plugin-jars-no.patch index a9ee212a3c..6e7c583872 100644 --- a/patches/api/0012-Add-command-line-option-to-load-extra-plugin-jars-no.patch +++ b/patches/api/0012-Add-command-line-option-to-load-extra-plugin-jars-no.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Add command line option to load extra plugin jars not in the ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 07d393152320270e38f495120dd19e35ece73149..026c1accb03bdd42981a2eaf9189d7b2fe6e7339 100644 +index e23be80c0ee7d7979b7c62ebce97ed0b2a0e146b..336c0fb1fcde9efb7cb8d15a9fad8c4cbcf28744 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -80,6 +80,20 @@ public final class Bukkit { +@@ -82,6 +82,20 @@ public final class Bukkit { return server; } @@ -32,10 +32,10 @@ index 07d393152320270e38f495120dd19e35ece73149..026c1accb03bdd42981a2eaf9189d7b2 * Attempts to set the {@link Server} singleton. *

      diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index baa02b5223769755670c611ca4d6acc7bf202116..523f5ac54f7662c7c96182a352236732d2d3b122 100644 +index 77f8b0889cd7039bf041fc052fba33b60aa77e17..09012ce27344c60730b9c5fcde85712a8e7a69fb 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -65,6 +65,18 @@ import org.jetbrains.annotations.Nullable; +@@ -67,6 +67,18 @@ import org.jetbrains.annotations.Nullable; */ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audience.ForwardingAudience { // Paper @@ -55,7 +55,7 @@ index baa02b5223769755670c611ca4d6acc7bf202116..523f5ac54f7662c7c96182a352236732 * Used for all administrative messages, such as an operator using a * command. diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 63389474a2b3f0e283b42e7004aa6a94904a3d17..974ff7116b294473ec450757e8a9341540f43dcd 100644 +index c75fd7ce01ca11535563ad7ebe1944eb61e65600..f896cfb30b967b9c21ee94893534201123e6ec72 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java @@ -116,9 +116,22 @@ public final class SimplePluginManager implements PluginManager { diff --git a/patches/api/0013-Player-affects-spawning-API.patch b/patches/api/0013-Player-affects-spawning-API.patch index 7ec789cb09..4578c494e8 100644 --- a/patches/api/0013-Player-affects-spawning-API.patch +++ b/patches/api/0013-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 a714877c44e6a6c5e90d0e0c5bf6eb30937e1037..35de65a773146c4b4162df777a8ec594a22ca62c 100644 +index 5b526d602057ab70b4a058142e01a0195694c28f..f868eb1609f7c905fe6ebcf088a0a3030af55e92 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2486,6 +2486,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2530,6 +2530,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Deprecated // Paper public String getLocale(); diff --git a/patches/api/0014-Add-getTPS-method.patch b/patches/api/0014-Add-getTPS-method.patch index 3a5b0bf7b5..dc2c6a1882 100644 --- a/patches/api/0014-Add-getTPS-method.patch +++ b/patches/api/0014-Add-getTPS-method.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add getTPS method diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 026c1accb03bdd42981a2eaf9189d7b2fe6e7339..d640d6e8e919e410b54920502d7e26f2519d9e3c 100644 +index 336c0fb1fcde9efb7cb8d15a9fad8c4cbcf28744..ea5f1b4085fd2ec355c4c8036f3bc729e30fd1b7 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2070,6 +2070,17 @@ public final class Bukkit { +@@ -2093,6 +2093,17 @@ public final class Bukkit { return server.getEntity(uuid); } @@ -27,10 +27,10 @@ index 026c1accb03bdd42981a2eaf9189d7b2fe6e7339..d640d6e8e919e410b54920502d7e26f2 * Get the advancement specified by this key. * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 523f5ac54f7662c7c96182a352236732d2d3b122..7ae7db87b8507e726b6c28400bd3e7eb9413ffb0 100644 +index 09012ce27344c60730b9c5fcde85712a8e7a69fb..e37649ce4b3981f2cff96b64ed3bd4093c015346 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1765,6 +1765,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1784,6 +1784,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @Nullable Entity getEntity(@NotNull UUID uuid); diff --git a/patches/api/0016-Entity-Origin-API.patch b/patches/api/0016-Entity-Origin-API.patch index 79acd7187d..ff7c566968 100644 --- a/patches/api/0016-Entity-Origin-API.patch +++ b/patches/api/0016-Entity-Origin-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity Origin API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 474765f40801a766c853018ea6e1adcd010375d2..b0967614bfdba06b5e11c910186aa66ac7e2d503 100644 +index c78fb359bd28b8dc1ba242642ec612e856525993..4e1fb0974d061d5bb64899cac576318d2e6f8bf6 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -780,5 +780,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -791,5 +791,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent default net.kyori.adventure.text.event.HoverEvent asHoverEvent(final @NotNull java.util.function.UnaryOperator op) { return net.kyori.adventure.text.event.HoverEvent.showEntity(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowEntity.of(this.getType().getKey(), this.getUniqueId(), this.customName()))); } diff --git a/patches/api/0018-Add-view-distance-API.patch b/patches/api/0018-Add-view-distance-API.patch index 7de7e75f55..717285adff 100644 --- a/patches/api/0018-Add-view-distance-API.patch +++ b/patches/api/0018-Add-view-distance-API.patch @@ -8,10 +8,10 @@ Add per player no-tick, tick, and send view distances. Also add send/no-tick view distance to World. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index b53f24c0368ff4e4f5287f1699643a0c00579031..7176e37b37c0d22605240f3c5fd34ff7846256c9 100644 +index a9858c2559f0921613b19710135cc6e060488e96..890ae536fdaff11055b72b1be0fbf3766a41812c 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2925,6 +2925,66 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2941,6 +2941,66 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @NotNull public Set getFeatureFlags(); @@ -79,10 +79,10 @@ index b53f24c0368ff4e4f5287f1699643a0c00579031..7176e37b37c0d22605240f3c5fd34ff7 * Gets all generated structures that intersect the chunk at the given * coordinates.
      diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 35de65a773146c4b4162df777a8ec594a22ca62c..b66f9264ceb38677d7422b47e379a0e860bcac07 100644 +index f868eb1609f7c905fe6ebcf088a0a3030af55e92..5d5d37e2ebbbe4d2641177c7d174059ba29bb688 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2500,6 +2500,82 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2544,6 +2544,82 @@ 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-Expose-server-CommandMap.patch b/patches/api/0021-Expose-server-CommandMap.patch index 697a4cca7c..b57f0c2eff 100644 --- a/patches/api/0021-Expose-server-CommandMap.patch +++ b/patches/api/0021-Expose-server-CommandMap.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index d640d6e8e919e410b54920502d7e26f2519d9e3c..3d6c51fdd549a94a73fa3d19c0937aa2ec72b42e 100644 +index ea5f1b4085fd2ec355c4c8036f3bc729e30fd1b7..c427d9dd916db6fe5078fb570eb57cfbd0766080 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2271,6 +2271,19 @@ public final class Bukkit { +@@ -2294,6 +2294,19 @@ public final class Bukkit { return server.getUnsafe(); } @@ -29,10 +29,10 @@ index d640d6e8e919e410b54920502d7e26f2519d9e3c..3d6c51fdd549a94a73fa3d19c0937aa2 public static Server.Spigot spigot() { return server.spigot(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 7ae7db87b8507e726b6c28400bd3e7eb9413ffb0..95c9016e67c6c17ae8bac35fd01f62eae96ecf6a 100644 +index e37649ce4b3981f2cff96b64ed3bd4093c015346..fbe2f6e349f242a2c4e64e63aa8ffdff7fa7dc81 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1775,6 +1775,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1794,6 +1794,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi public double[] getTPS(); // Paper end diff --git a/patches/api/0022-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/patches/api/0022-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch index 73014012bc..b1812dae36 100644 --- a/patches/api/0022-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch +++ b/patches/api/0022-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Graduate bungeecord chat API from spigot subclasses Change Javadoc to be accurate diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 3d6c51fdd549a94a73fa3d19c0937aa2ec72b42e..bafbb72996cb0cacf17b5741a7efbb1583277c6e 100644 +index c427d9dd916db6fe5078fb570eb57cfbd0766080..19efe5cb6a8c2dcc5b293ff24caa58c9a57fc083 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -441,6 +441,30 @@ public final class Bukkit { +@@ -443,6 +443,30 @@ public final class Bukkit { return server.broadcastMessage(message); } @@ -41,10 +41,10 @@ index 3d6c51fdd549a94a73fa3d19c0937aa2ec72b42e..bafbb72996cb0cacf17b5741a7efbb15 * Gets the name of the update folder. The update folder is used to safely * update plugins at the right moment on a plugin load. diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 95c9016e67c6c17ae8bac35fd01f62eae96ecf6a..7edac90aa6f37c9c3ebbe7260186ae3e279cea0b 100644 +index fbe2f6e349f242a2c4e64e63aa8ffdff7fa7dc81..4c9c14b60eb6fd1d9845632c2c2fa765d882a741 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -370,6 +370,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -372,6 +372,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @Deprecated // Paper public int broadcastMessage(@NotNull String message); @@ -76,10 +76,10 @@ index 95c9016e67c6c17ae8bac35fd01f62eae96ecf6a..7edac90aa6f37c9c3ebbe7260186ae3e * 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 b66f9264ceb38677d7422b47e379a0e860bcac07..0ffe5812e2d59d3fbf56061eea0a2f391cde6758 100644 +index 5d5d37e2ebbbe4d2641177c7d174059ba29bb688..881c75e84ef31390a3519549985af2711e2828b5 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1172,6 +1172,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1216,6 +1216,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendMap(@NotNull MapView map); diff --git a/patches/api/0023-Add-exception-reporting-event.patch b/patches/api/0023-Add-exception-reporting-event.patch index 8b7d7bf596..d9e743cbd2 100644 --- a/patches/api/0023-Add-exception-reporting-event.patch +++ b/patches/api/0023-Add-exception-reporting-event.patch @@ -496,10 +496,10 @@ index 4205649948a9e2a72f64c3f007112245abac6d50..b3b32ce429edbf1ed040354dbe28ab86 } diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 974ff7116b294473ec450757e8a9341540f43dcd..fc2dae69165776d08274e34a69962cc70445f411 100644 +index f896cfb30b967b9c21ee94893534201123e6ec72..2ff417f91492a441085ac1b7ddd248726f05de0a 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -515,7 +515,8 @@ public final class SimplePluginManager implements PluginManager { +@@ -526,7 +526,8 @@ public final class SimplePluginManager implements PluginManager { try { plugin.getPluginLoader().enablePlugin(plugin); } catch (Throwable ex) { @@ -509,7 +509,7 @@ index 974ff7116b294473ec450757e8a9341540f43dcd..fc2dae69165776d08274e34a69962cc7 } HandlerList.bakeAll(); -@@ -538,32 +539,37 @@ public final class SimplePluginManager implements PluginManager { +@@ -549,32 +550,37 @@ public final class SimplePluginManager implements PluginManager { try { plugin.getPluginLoader().disablePlugin(plugin); } catch (Throwable ex) { @@ -552,7 +552,7 @@ index 974ff7116b294473ec450757e8a9341540f43dcd..fc2dae69165776d08274e34a69962cc7 } try { -@@ -576,6 +582,13 @@ public final class SimplePluginManager implements PluginManager { +@@ -587,6 +593,13 @@ public final class SimplePluginManager implements PluginManager { } } @@ -566,7 +566,7 @@ index 974ff7116b294473ec450757e8a9341540f43dcd..fc2dae69165776d08274e34a69962cc7 @Override public void clearPlugins() { if (true) {this.paperPluginManager.clearPlugins(); return;} // Paper -@@ -641,7 +654,13 @@ public final class SimplePluginManager implements PluginManager { +@@ -652,7 +665,13 @@ public final class SimplePluginManager implements PluginManager { )); } } catch (Throwable ex) { diff --git a/patches/api/0026-Player-Tab-List-and-Title-APIs.patch b/patches/api/0026-Player-Tab-List-and-Title-APIs.patch index f918234392..10fbe0175b 100644 --- a/patches/api/0026-Player-Tab-List-and-Title-APIs.patch +++ b/patches/api/0026-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 0ffe5812e2d59d3fbf56061eea0a2f391cde6758..ba58936116ce1e2e805a03251bb19484058e4f0f 100644 +index 881c75e84ef31390a3519549985af2711e2828b5..fc8c807ae9793452bbf3fbab5e72d05676e6fa83 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1206,6 +1206,131 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1250,6 +1250,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-Add-methods-for-working-with-arrows-stuck-in-living-.patch b/patches/api/0027-Add-methods-for-working-with-arrows-stuck-in-living-.patch index d8850b339e..471ee35ff8 100644 --- a/patches/api/0027-Add-methods-for-working-with-arrows-stuck-in-living-.patch +++ b/patches/api/0027-Add-methods-for-working-with-arrows-stuck-in-living-.patch @@ -7,7 +7,7 @@ Upstream added methods for this so the original methods are now deprecated diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 67632eae9249f2c65a9dfe04c72a3002a9e8b25b..10eeb304bc0785e0ea182ac99d32ed2554b4755f 100644 +index 67115810d5e837f154c3accd92dbb5e4192d264f..32e89741ffd895e31af0104a0126c2f72742a1bb 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -243,12 +243,44 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @@ -56,7 +56,7 @@ index 67632eae9249f2c65a9dfe04c72a3002a9e8b25b..10eeb304bc0785e0ea182ac99d32ed25 /** * Returns the living entity's current maximum no damage ticks. -@@ -775,4 +807,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -777,4 +809,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * @return Whether the entity is invisible */ public boolean isInvisible(); diff --git a/patches/api/0028-Complete-resource-pack-API.patch b/patches/api/0028-Complete-resource-pack-API.patch index 3a19d14165..30d84dbda9 100644 --- a/patches/api/0028-Complete-resource-pack-API.patch +++ b/patches/api/0028-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 ba58936116ce1e2e805a03251bb19484058e4f0f..6a8f5720ef33b54b3a89d4299462827ab304e0d9 100644 +index fc8c807ae9793452bbf3fbab5e72d05676e6fa83..6a7d63691fa3be09da0ade66cf07a41ae08d4190 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2163,6 +2163,180 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2207,6 +2207,180 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void setResourcePack(@NotNull UUID uuid, @NotNull String url, byte @Nullable [] hash, net.kyori.adventure.text.@Nullable Component prompt, boolean force); // Paper end diff --git a/patches/api/0031-Add-command-to-reload-permissions.yml-and-require-co.patch b/patches/api/0031-Add-command-to-reload-permissions.yml-and-require-co.patch index b3773538b8..e0fa8b2dd0 100644 --- a/patches/api/0031-Add-command-to-reload-permissions.yml-and-require-co.patch +++ b/patches/api/0031-Add-command-to-reload-permissions.yml-and-require-co.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add command to reload permissions.yml and require confirm to diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index bafbb72996cb0cacf17b5741a7efbb1583277c6e..0ce6fda182e4d87b1ef7abe4d8bd9e3a06891412 100644 +index 19efe5cb6a8c2dcc5b293ff24caa58c9a57fc083..c9be84560ee18ffe1bb84f159b2ed61c79f9e971 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2306,6 +2306,13 @@ public final class Bukkit { +@@ -2329,6 +2329,13 @@ public final class Bukkit { public static org.bukkit.command.CommandMap getCommandMap() { return server.getCommandMap(); } @@ -24,10 +24,10 @@ index bafbb72996cb0cacf17b5741a7efbb1583277c6e..0ce6fda182e4d87b1ef7abe4d8bd9e3a @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 7edac90aa6f37c9c3ebbe7260186ae3e279cea0b..f9dcb6728afb646f9c27e6642bb3b0d91e4448e9 100644 +index 4c9c14b60eb6fd1d9845632c2c2fa765d882a741..c0c61a29ba8d3c95ff76c36e4333740320302b4a 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2036,4 +2036,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2055,4 +2055,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull Spigot spigot(); // Spigot end diff --git a/patches/api/0044-Allow-Reloading-of-Command-Aliases.patch b/patches/api/0044-Allow-Reloading-of-Command-Aliases.patch index 2c0c9c2344..d0b3ec2335 100644 --- a/patches/api/0044-Allow-Reloading-of-Command-Aliases.patch +++ b/patches/api/0044-Allow-Reloading-of-Command-Aliases.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases Reload the aliases stored in commands.yml diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 0ce6fda182e4d87b1ef7abe4d8bd9e3a06891412..cf5cf4375f3a0bd68bb00dc061a039c9c1de0b5e 100644 +index c9be84560ee18ffe1bb84f159b2ed61c79f9e971..2dfd0080a0b0f05c5e5defa4326e0da9b85c2df5 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2313,6 +2313,15 @@ public final class Bukkit { +@@ -2336,6 +2336,15 @@ public final class Bukkit { public static void reloadPermissions() { server.reloadPermissions(); } @@ -26,10 +26,10 @@ index 0ce6fda182e4d87b1ef7abe4d8bd9e3a06891412..cf5cf4375f3a0bd68bb00dc061a039c9 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index f9dcb6728afb646f9c27e6642bb3b0d91e4448e9..d15b926de36f29ced80e0cfef7594ce0646b988e 100644 +index c0c61a29ba8d3c95ff76c36e4333740320302b4a..422a000ec33163f2f07502a05302b5d8851b2318 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2038,4 +2038,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2057,4 +2057,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi // Spigot end void reloadPermissions(); // Paper diff --git a/patches/api/0047-Add-String-based-Action-Bar-API.patch b/patches/api/0047-Add-String-based-Action-Bar-API.patch index fd2181f8a0..1420aad8b9 100644 --- a/patches/api/0047-Add-String-based-Action-Bar-API.patch +++ b/patches/api/0047-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 6a8f5720ef33b54b3a89d4299462827ab304e0d9..83f9026e86223bc763990a90da5fda26dec2785f 100644 +index 6a7d63691fa3be09da0ade66cf07a41ae08d4190..252390260f62ee945c21267cd8717b7725158a21 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1173,6 +1173,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1217,6 +1217,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public void sendMap(@NotNull MapView map); // Paper start @@ -48,7 +48,7 @@ index 6a8f5720ef33b54b3a89d4299462827ab304e0d9..83f9026e86223bc763990a90da5fda26 /** * Sends the component to the player * -@@ -1200,9 +1233,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1244,9 +1277,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/0052-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/api/0052-Provide-E-TE-Chunk-count-stat-methods.patch index f53ba6d986..65bf8c19a6 100644 --- a/patches/api/0052-Provide-E-TE-Chunk-count-stat-methods.patch +++ b/patches/api/0052-Provide-E-TE-Chunk-count-stat-methods.patch @@ -7,7 +7,7 @@ Provides counts without the ineffeciency of using .getEntities().size() which creates copy of the collections. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 7176e37b37c0d22605240f3c5fd34ff7846256c9..2b38b328187b853f5b36d796d3b6b359497647d8 100644 +index 890ae536fdaff11055b72b1be0fbf3766a41812c..4dc687f16a8181876fb7b3e56b39a55ea5507408 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -49,6 +49,33 @@ import org.jetbrains.annotations.Nullable; diff --git a/patches/api/0055-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/api/0055-Add-configuration-option-to-prevent-player-names-fro.patch index a04f9b446f..39e334dd8c 100644 --- a/patches/api/0055-Add-configuration-option-to-prevent-player-names-fro.patch +++ b/patches/api/0055-Add-configuration-option-to-prevent-player-names-fro.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index cf5cf4375f3a0bd68bb00dc061a039c9c1de0b5e..5f758640ae71bca8c5e532af21362011a0aafb89 100644 +index 2dfd0080a0b0f05c5e5defa4326e0da9b85c2df5..6b3a332f556e7c49796a62f20fd33241bbcde09e 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2322,6 +2322,16 @@ public final class Bukkit { +@@ -2345,6 +2345,16 @@ public final class Bukkit { public static boolean reloadCommandAliases() { return server.reloadCommandAliases(); } @@ -27,10 +27,10 @@ index cf5cf4375f3a0bd68bb00dc061a039c9c1de0b5e..5f758640ae71bca8c5e532af21362011 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index d15b926de36f29ced80e0cfef7594ce0646b988e..e3136651ce083e67a1a7cb976d27df5666843401 100644 +index 422a000ec33163f2f07502a05302b5d8851b2318..9088bd9dfb515381d5df1c255ae3319f9cdde81e 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2040,4 +2040,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2059,4 +2059,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi void reloadPermissions(); // Paper boolean reloadCommandAliases(); // Paper @@ -46,7 +46,7 @@ index d15b926de36f29ced80e0cfef7594ce0646b988e..e3136651ce083e67a1a7cb976d27df56 + // Paper end } diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java -index 5cfd88eec9bf02e83d77b6fce1a5c14b7687f48b..1c6205cc667bbec8f6aca479f13b3e9cfcd63ab2 100644 +index 33c0a60e71f4bd29966c10ea60b22f14e56c1de4..f7b78198d9983610fc2185124c3080e6b1c0fa35 100644 --- a/src/main/java/org/bukkit/command/Command.java +++ b/src/main/java/org/bukkit/command/Command.java @@ -99,7 +99,7 @@ public abstract class Command { diff --git a/patches/api/0056-Fix-upstream-javadocs.patch b/patches/api/0056-Fix-upstream-javadocs.patch index f31a77e295..aa59cb418a 100644 --- a/patches/api/0056-Fix-upstream-javadocs.patch +++ b/patches/api/0056-Fix-upstream-javadocs.patch @@ -49,10 +49,10 @@ index a04cde615f8c4bc593f8d9f8f6f1438008aaa707..548f6d28c28d74bed8b58ee828759093 * @param target the target to remove from this list */ diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 5f758640ae71bca8c5e532af21362011a0aafb89..2bdba56855d3427a1c48bfada0e6416085386cdb 100644 +index 6b3a332f556e7c49796a62f20fd33241bbcde09e..3b7087d5c71a498f513f67514db9e118780363c7 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1494,6 +1494,8 @@ public final class Bukkit { +@@ -1506,6 +1506,8 @@ public final class Bukkit { /** * Gets every player that has ever played on this server. @@ -114,10 +114,10 @@ index 4c9fd558fbf7f57a948fbb7f80f4651048c0fb57..458119a9ef7ce8e1f59bd47caa5b4bc6 * @param statePredicate The predicate which should get used to test if a block should be set or not. * @return true if the tree was created successfully, otherwise false diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index e3136651ce083e67a1a7cb976d27df5666843401..50e8c25cc378b02b09ef57643cc753fa58ec1166 100644 +index 9088bd9dfb515381d5df1c255ae3319f9cdde81e..012b5954a2f9dc61fb8ad29c4b8bce2648ddc681 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -568,13 +568,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -570,13 +570,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi *

    *

    * Note: If set to 0, {@link SpawnCategory} mobs spawning will be disabled. @@ -132,7 +132,7 @@ index e3136651ce083e67a1a7cb976d27df5666843401..50e8c25cc378b02b09ef57643cc753fa */ public int getTicksPerSpawns(@NotNull SpawnCategory spawnCategory); -@@ -1274,6 +1271,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1284,6 +1281,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi /** * Gets every player that has ever played on this server. @@ -142,10 +142,10 @@ index e3136651ce083e67a1a7cb976d27df5666843401..50e8c25cc378b02b09ef57643cc753fa * @return an array containing all previous players */ diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 2b38b328187b853f5b36d796d3b6b359497647d8..a55e92dc09202437abac9cb5b7aacf3c275f5b9c 100644 +index 4dc687f16a8181876fb7b3e56b39a55ea5507408..98e3c12801cc36c868f08b15d1188295ea4364e0 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2723,7 +2723,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2739,7 +2739,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient /** * Find the closest nearby structure of a given {@link StructureType}. * Finding unexplored structures can, and will, block if the world is @@ -154,7 +154,7 @@ index 2b38b328187b853f5b36d796d3b6b359497647d8..a55e92dc09202437abac9cb5b7aacf3c * temporarily freezing while locating an unexplored structure. *

    * The {@code radius} is not a rigid square radius. Each structure may alter -@@ -2757,7 +2757,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2773,7 +2773,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient /** * Find the closest nearby structure of a given {@link StructureType}. * Finding unexplored structures can, and will, block if the world is @@ -163,7 +163,7 @@ index 2b38b328187b853f5b36d796d3b6b359497647d8..a55e92dc09202437abac9cb5b7aacf3c * temporarily freezing while locating an unexplored structure. *

    * The {@code radius} is not a rigid square radius. Each structure may alter -@@ -2790,7 +2790,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2806,7 +2806,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient /** * Find the closest nearby structure of a given {@link Structure}. Finding * unexplored structures can, and will, block if the world is looking in @@ -343,10 +343,10 @@ index 91fc11dda99de506be83d40df8929bf7cd8e8d85..7dc631ebd009f5f5c3ac1699c3f3515c // Paper end } diff --git a/src/main/java/org/bukkit/entity/Arrow.java b/src/main/java/org/bukkit/entity/Arrow.java -index 8eb0cf31b1ce6d714a14cf65bbb117ff163ae2f3..8e57082e8b19a2fd9625816c2ea4a90d41f78ca5 100644 +index bd1116adc891b2a4243da205127f5ece76089925..4d4c9efb81ac14950b24a07edcfe1c46ab3caf91 100644 --- a/src/main/java/org/bukkit/entity/Arrow.java +++ b/src/main/java/org/bukkit/entity/Arrow.java -@@ -93,7 +93,7 @@ public interface Arrow extends AbstractArrow { +@@ -73,7 +73,7 @@ public interface Arrow extends AbstractArrow { * Removes a custom potion effect from this arrow. * * @param type the potion effect type to remove @@ -426,10 +426,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 83f9026e86223bc763990a90da5fda26dec2785f..d507aeb5b906b5b68d1daa5bfd2d98ede1b0e7b6 100644 +index 252390260f62ee945c21267cd8717b7725158a21..cd00d2a064ee4c86b394a7861182fba9cf79cfb3 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -434,15 +434,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -478,15 +478,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Saves the players current location, health, inventory, motion, and @@ -449,7 +449,7 @@ index 83f9026e86223bc763990a90da5fda26dec2785f..d507aeb5b906b5b68d1daa5bfd2d98ed *

    * Note: This will overwrite the players current inventory, health, * motion, etc, with the state from the saved dat file. -@@ -779,7 +779,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -823,7 +823,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Plays an effect to just this player. * @@ -458,7 +458,7 @@ index 83f9026e86223bc763990a90da5fda26dec2785f..d507aeb5b906b5b68d1daa5bfd2d98ed * @param loc the location to play the effect at * @param effect the {@link Effect} * @param data a data bit needed for some effects -@@ -1190,7 +1190,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1234,7 +1234,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * Use supplied alternative character to the section symbol to represent legacy color codes. * @@ -467,7 +467,7 @@ index 83f9026e86223bc763990a90da5fda26dec2785f..d507aeb5b906b5b68d1daa5bfd2d98ed * @param message The message to send * @deprecated use {@link #sendActionBar(net.kyori.adventure.text.Component)} */ -@@ -1656,7 +1656,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1700,7 +1700,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Allows this player to see a player that was previously hidden. If @@ -476,7 +476,7 @@ index 83f9026e86223bc763990a90da5fda26dec2785f..d507aeb5b906b5b68d1daa5bfd2d98ed * remain hidden until the other plugin calls this method too. * * @param plugin Plugin that wants to show the player -@@ -1683,7 +1683,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1727,7 +1727,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Allows this player to see an entity that was previously hidden. If @@ -485,7 +485,7 @@ index 83f9026e86223bc763990a90da5fda26dec2785f..d507aeb5b906b5b68d1daa5bfd2d98ed * remain hidden until the other plugin calls this method too. * * @param plugin Plugin that wants to show the entity -@@ -1766,9 +1766,6 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1810,9 +1810,6 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * case this method will have no affect on them. Use the * {@link PlayerResourcePackStatusEvent} to figure out whether or not * the player loaded the pack! @@ -495,7 +495,7 @@ index 83f9026e86223bc763990a90da5fda26dec2785f..d507aeb5b906b5b68d1daa5bfd2d98ed *

  1. The request is send with "null" as the hash. This might result * in newer versions not loading the pack correctly. * -@@ -1802,9 +1799,6 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1846,9 +1843,6 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * case this method will have no affect on them. Use the * {@link PlayerResourcePackStatusEvent} to figure out whether or not * the player loaded the pack! @@ -505,7 +505,7 @@ index 83f9026e86223bc763990a90da5fda26dec2785f..d507aeb5b906b5b68d1daa5bfd2d98ed *
  2. The request is send with empty string as the hash. This might result * in newer versions not loading the pack correctly. * -@@ -1841,9 +1835,6 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1885,9 +1879,6 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * case this method will have no affect on them. Use the * {@link PlayerResourcePackStatusEvent} to figure out whether or not * the player loaded the pack! @@ -1438,10 +1438,10 @@ index 07c3dff4d6190ef388d9c1e1c36f67f00a3e8e66..597a18a767b68b47e81454b7d44613c7 * @param input The input choice. * @return The changed recipe, so you can chain calls. diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -index f1fcc844d563a0108230676dec84ef25485756b3..80836c5f87c15d688f27af5247b4e114cea7028d 100644 +index d7c178b3584db5866a5a21c6ddaab876b94058b9..dff32cedf47e95fe14a865898d76b62748dee5f3 100644 --- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -@@ -311,7 +311,7 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste +@@ -483,7 +483,7 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste /** * Return an immutable copy of all {@link Attribute}s and their * {@link AttributeModifier}s for a given {@link EquipmentSlot}.
    diff --git a/patches/api/0060-Basic-PlayerProfile-API.patch b/patches/api/0060-Basic-PlayerProfile-API.patch index 4a664dab73..b4bd6d5e6f 100644 --- a/patches/api/0060-Basic-PlayerProfile-API.patch +++ b/patches/api/0060-Basic-PlayerProfile-API.patch @@ -321,10 +321,10 @@ index 0000000000000000000000000000000000000000..7b3b6ef533d32169fbeca389bd61cfc6 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 2bdba56855d3427a1c48bfada0e6416085386cdb..48cce5c4a31ce9df3f2fe0aba4dd50e0547493b6 100644 +index 3b7087d5c71a498f513f67514db9e118780363c7..b165a4f99802ced243f1fb56af2bcf2c2ab7abf1 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2334,6 +2334,83 @@ public final class Bukkit { +@@ -2357,6 +2357,83 @@ public final class Bukkit { public static boolean suggestPlayerNamesWhenNullTabCompletions() { return server.suggestPlayerNamesWhenNullTabCompletions(); } @@ -409,10 +409,10 @@ index 2bdba56855d3427a1c48bfada0e6416085386cdb..48cce5c4a31ce9df3f2fe0aba4dd50e0 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 50e8c25cc378b02b09ef57643cc753fa58ec1166..7bbd014aa3ecbae15518d9ebe4e6ec03a870ed5e 100644 +index 012b5954a2f9dc61fb8ad29c4b8bce2648ddc681..8e4bf531c0a2f7101c2a3733fe33733d31c611fd 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2048,5 +2048,74 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2067,5 +2067,74 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return true if player names should be suggested */ boolean suggestPlayerNamesWhenNullTabCompletions(); diff --git a/patches/api/0063-Entity-fromMobSpawner.patch b/patches/api/0063-Entity-fromMobSpawner.patch index 99bfacca7d..cf3a1dbcb7 100644 --- a/patches/api/0063-Entity-fromMobSpawner.patch +++ b/patches/api/0063-Entity-fromMobSpawner.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity#fromMobSpawner() diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index b0967614bfdba06b5e11c910186aa66ac7e2d503..b422a949b22edf412b518abb3e5ca0847c73d36b 100644 +index 4e1fb0974d061d5bb64899cac576318d2e6f8bf6..45f475b42bbef1c5dc461b3891a48c8fb6feefd3 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -790,5 +790,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -801,5 +801,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @Nullable Location getOrigin(); diff --git a/patches/api/0068-LivingEntity-setKiller.patch b/patches/api/0068-LivingEntity-setKiller.patch index bab1378afb..fb3719a679 100644 --- a/patches/api/0068-LivingEntity-setKiller.patch +++ b/patches/api/0068-LivingEntity-setKiller.patch @@ -5,7 +5,7 @@ Subject: [PATCH] LivingEntity#setKiller diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 10eeb304bc0785e0ea182ac99d32ed2554b4755f..40634f46fa238a68f70f19b664bad7400ef07709 100644 +index 32e89741ffd895e31af0104a0126c2f72742a1bb..f154c5607b1dc3585052d9f02cf8b28cf8a3c886 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -365,6 +365,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0077-Expose-client-protocol-version-and-virtual-host.patch b/patches/api/0077-Expose-client-protocol-version-and-virtual-host.patch index 95708e688a..5c858d8508 100644 --- a/patches/api/0077-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/api/0077-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 d507aeb5b906b5b68d1daa5bfd2d98ede1b0e7b6..74ccef3361a8089a2bf03cc3d2e0826f067b647e 100644 +index cd00d2a064ee4c86b394a7861182fba9cf79cfb3..401a43573eb84c1192261377a8b58dd73b895d76 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -54,7 +54,7 @@ import org.jetbrains.annotations.Nullable; +@@ -56,7 +56,7 @@ import org.jetbrains.annotations.Nullable; /** * Represents a player, connected or not */ diff --git a/patches/api/0081-Ability-to-apply-mending-to-XP-API.patch b/patches/api/0081-Ability-to-apply-mending-to-XP-API.patch index 5515a779ea..426ac50e39 100644 --- a/patches/api/0081-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/api/0081-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 74ccef3361a8089a2bf03cc3d2e0826f067b647e..8ec100779944579f83cfc1be4b124a4c780cdc07 100644 +index 401a43573eb84c1192261377a8b58dd73b895d76..8b92f258a85b4184d67d0af396c18400ded38a67 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1499,6 +1499,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1543,6 +1543,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void resetPlayerWeather(); @@ -29,7 +29,7 @@ index 74ccef3361a8089a2bf03cc3d2e0826f067b647e..8ec100779944579f83cfc1be4b124a4c /** * Gets the player's cooldown between picking up experience orbs. * -@@ -1524,8 +1533,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1568,8 +1577,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/0090-Add-more-fields-to-AsyncPreLoginEvent.patch b/patches/api/0090-Add-more-fields-to-AsyncPreLoginEvent.patch index 21b5ed3e5f..5159a46def 100644 --- a/patches/api/0090-Add-more-fields-to-AsyncPreLoginEvent.patch +++ b/patches/api/0090-Add-more-fields-to-AsyncPreLoginEvent.patch @@ -7,50 +7,43 @@ Co-authored-by: Connor Linfoot Co-authored-by: MCMDEV diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -index 3432872303aa0df97b5d9090fe98b269ef3cb9f4..bdb7d2345e7d3a48a2f0561832ce126a16781e89 100644 +index 004f1fd55c143e6c21be74d0a6b9ee8b2e12cc59..ae02788536d0c6736aba4ccf812844df4f9789f1 100644 --- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java +++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -@@ -2,6 +2,8 @@ package org.bukkit.event.player; - - import java.net.InetAddress; - import java.util.UUID; -+import com.destroystokyo.paper.profile.PlayerProfile; -+import org.bukkit.Bukkit; - import org.bukkit.event.Event; - import org.bukkit.event.HandlerList; - import org.jetbrains.annotations.NotNull; -@@ -22,9 +24,10 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -22,9 +22,10 @@ public class AsyncPlayerPreLoginEvent extends Event { private static final HandlerList handlers = new HandlerList(); private Result result; private net.kyori.adventure.text.Component message; // Paper - private final String name; private final InetAddress ipAddress; - private final UUID uniqueId; -+ private PlayerProfile profile; // Paper ++ private com.destroystokyo.paper.profile.PlayerProfile profile; // Paper + private final InetAddress rawAddress; // Paper + private final String hostname; // Paper + private final boolean transferred; @Deprecated - public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress) { -@@ -32,12 +35,29 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -38,12 +39,30 @@ public class AsyncPlayerPreLoginEvent extends Event { } - public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId) { + public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId, boolean transferred) { + // Paper start -+ this(name, ipAddress, uniqueId, Bukkit.createProfile(uniqueId, name)); ++ this(name, ipAddress, uniqueId, transferred, org.bukkit.Bukkit.createProfile(uniqueId, name)); + } + + @Deprecated(forRemoval = true) -+ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile) { -+ this(name, ipAddress, ipAddress, uniqueId, profile); ++ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId, boolean transferred, @NotNull com.destroystokyo.paper.profile.PlayerProfile profile) { ++ this(name, ipAddress, ipAddress, uniqueId, transferred, profile); + } + + @Deprecated(forRemoval = true) -+ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final InetAddress rawAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile) { -+ this(name, ipAddress, rawAddress, uniqueId, profile, ""); ++ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final InetAddress rawAddress, @NotNull final UUID uniqueId, boolean transferred, @NotNull com.destroystokyo.paper.profile.PlayerProfile profile) { ++ this(name, ipAddress, rawAddress, uniqueId, transferred, profile, ""); + } + -+ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final InetAddress rawAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile, @NotNull String hostname) { ++ @org.jetbrains.annotations.ApiStatus.Internal ++ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final InetAddress rawAddress, @NotNull final UUID uniqueId, boolean transferred, @NotNull com.destroystokyo.paper.profile.PlayerProfile profile, @NotNull String hostname) { ++ // Paper end super(true); this.result = Result.ALLOWED; this.message = net.kyori.adventure.text.Component.empty(); // Paper @@ -58,13 +51,12 @@ index 3432872303aa0df97b5d9090fe98b269ef3cb9f4..bdb7d2345e7d3a48a2f0561832ce126a + this.profile = profile; this.ipAddress = ipAddress; - this.uniqueId = uniqueId; -+ this.rawAddress = rawAddress; -+ this.hostname = hostname; -+ // Paper end ++ this.rawAddress = rawAddress; // Paper ++ this.hostname = hostname; // Paper + this.transferred = transferred; } - /** -@@ -200,7 +220,7 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -207,7 +226,7 @@ public class AsyncPlayerPreLoginEvent extends Event { */ @NotNull public String getName() { @@ -73,7 +65,7 @@ index 3432872303aa0df97b5d9090fe98b269ef3cb9f4..bdb7d2345e7d3a48a2f0561832ce126a } /** -@@ -220,9 +240,48 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -227,9 +246,48 @@ public class AsyncPlayerPreLoginEvent extends Event { */ @NotNull public UUID getUniqueId() { @@ -87,7 +79,7 @@ index 3432872303aa0df97b5d9090fe98b269ef3cb9f4..bdb7d2345e7d3a48a2f0561832ce126a + * @return The Profile + */ + @NotNull -+ public PlayerProfile getPlayerProfile() { ++ public com.destroystokyo.paper.profile.PlayerProfile getPlayerProfile() { + return profile; + } + @@ -95,7 +87,7 @@ index 3432872303aa0df97b5d9090fe98b269ef3cb9f4..bdb7d2345e7d3a48a2f0561832ce126a + * Changes the PlayerProfile the player will login as + * @param profile The profile to use + */ -+ public void setPlayerProfile(@NotNull PlayerProfile profile) { ++ public void setPlayerProfile(@NotNull com.destroystokyo.paper.profile.PlayerProfile profile) { + this.profile = profile; + } + @@ -120,6 +112,6 @@ index 3432872303aa0df97b5d9090fe98b269ef3cb9f4..bdb7d2345e7d3a48a2f0561832ce126a + } + // Paper end + - @NotNull - @Override - public HandlerList getHandlers() { + /** + * Gets if this connection has been transferred from another server. + * diff --git a/patches/api/0092-Player.setPlayerProfile-API.patch b/patches/api/0092-Player.setPlayerProfile-API.patch index 0d0b10e019..c821f93d0d 100644 --- a/patches/api/0092-Player.setPlayerProfile-API.patch +++ b/patches/api/0092-Player.setPlayerProfile-API.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Player.setPlayerProfile API This can be useful for changing name or skins after a player has logged in. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 48cce5c4a31ce9df3f2fe0aba4dd50e0547493b6..990436521c4d080d7adbd0a8c55f03690f17c1ec 100644 +index b165a4f99802ced243f1fb56af2bcf2c2ab7abf1..3ea17583766a462317a6a609ac693b5e488e006d 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1336,8 +1336,10 @@ public final class Bukkit { +@@ -1348,8 +1348,10 @@ public final class Bukkit { * @return the new PlayerProfile * @throws IllegalArgumentException if both the unique id is * null and the name is null or blank @@ -20,7 +20,7 @@ index 48cce5c4a31ce9df3f2fe0aba4dd50e0547493b6..990436521c4d080d7adbd0a8c55f0369 public static PlayerProfile createPlayerProfile(@Nullable UUID uniqueId, @Nullable String name) { return server.createPlayerProfile(uniqueId, name); } -@@ -1348,8 +1350,10 @@ public final class Bukkit { +@@ -1360,8 +1362,10 @@ public final class Bukkit { * @param uniqueId the unique id * @return the new PlayerProfile * @throws IllegalArgumentException if the unique id is null @@ -31,7 +31,7 @@ index 48cce5c4a31ce9df3f2fe0aba4dd50e0547493b6..990436521c4d080d7adbd0a8c55f0369 public static PlayerProfile createPlayerProfile(@NotNull UUID uniqueId) { return server.createPlayerProfile(uniqueId); } -@@ -1361,8 +1365,10 @@ public final class Bukkit { +@@ -1373,8 +1377,10 @@ public final class Bukkit { * @return the new PlayerProfile * @throws IllegalArgumentException if the name is null or * blank @@ -56,10 +56,10 @@ index ff59479f4782ac7726504aab239de79fdc840cde..abbf3d6f11350ab2dd47a277771d9f46 /** * Checks if this player has had their profile banned. diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 7bbd014aa3ecbae15518d9ebe4e6ec03a870ed5e..c60be47a0ac646133211ab4bf17b4fad4d1893db 100644 +index 8e4bf531c0a2f7101c2a3733fe33733d31c611fd..427b49836becbb0c9e1cb2e94fab7eb1db452ad9 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1143,8 +1143,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1153,8 +1153,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return the new PlayerProfile * @throws IllegalArgumentException if both the unique id is * null and the name is null or blank @@ -70,7 +70,7 @@ index 7bbd014aa3ecbae15518d9ebe4e6ec03a870ed5e..c60be47a0ac646133211ab4bf17b4fad PlayerProfile createPlayerProfile(@Nullable UUID uniqueId, @Nullable String name); /** -@@ -1153,8 +1155,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1163,8 +1165,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @param uniqueId the unique id * @return the new PlayerProfile * @throws IllegalArgumentException if the unique id is null @@ -81,7 +81,7 @@ index 7bbd014aa3ecbae15518d9ebe4e6ec03a870ed5e..c60be47a0ac646133211ab4bf17b4fad PlayerProfile createPlayerProfile(@NotNull UUID uniqueId); /** -@@ -1164,8 +1168,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1174,8 +1178,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return the new PlayerProfile * @throws IllegalArgumentException if the name is null or * blank @@ -93,10 +93,10 @@ index 7bbd014aa3ecbae15518d9ebe4e6ec03a870ed5e..c60be47a0ac646133211ab4bf17b4fad /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 8ec100779944579f83cfc1be4b124a4c780cdc07..ecc99524f20e1d7072bfad3ac310cccc4514e40f 100644 +index 8b92f258a85b4184d67d0af396c18400ded38a67..56eed06cd3dbb238330973c1428bffc6d5286019 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3017,6 +3017,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3061,6 +3061,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM } // Paper end diff --git a/patches/api/0093-getPlayerUniqueId-API.patch b/patches/api/0093-getPlayerUniqueId-API.patch index 64497be958..cc120a8b1a 100644 --- a/patches/api/0093-getPlayerUniqueId-API.patch +++ b/patches/api/0093-getPlayerUniqueId-API.patch @@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 990436521c4d080d7adbd0a8c55f03690f17c1ec..4f9ebcd991875d0bf486a8ebb39909f2ac32493b 100644 +index 3ea17583766a462317a6a609ac693b5e488e006d..3e32a6bbf593b269f1af23c7e2fdafaccc0d2110 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -719,6 +719,20 @@ public final class Bukkit { +@@ -721,6 +721,20 @@ public final class Bukkit { return server.getPlayer(id); } @@ -34,10 +34,10 @@ index 990436521c4d080d7adbd0a8c55f03690f17c1ec..4f9ebcd991875d0bf486a8ebb39909f2 * Gets the plugin manager for interfacing with plugins. * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index c60be47a0ac646133211ab4bf17b4fad4d1893db..7c53979f407a6a24c6d16bbfb205a8ac0321e5dc 100644 +index 427b49836becbb0c9e1cb2e94fab7eb1db452ad9..19e6cee94caabfe93c841da783c86a3c283ebcb9 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -617,6 +617,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -619,6 +619,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @Nullable public Player getPlayer(@NotNull UUID id); diff --git a/patches/api/0095-Add-openSign-method-to-HumanEntity.patch b/patches/api/0095-Add-openSign-method-to-HumanEntity.patch index ea763e9a13..4c28dd6d8c 100644 --- a/patches/api/0095-Add-openSign-method-to-HumanEntity.patch +++ b/patches/api/0095-Add-openSign-method-to-HumanEntity.patch @@ -36,10 +36,10 @@ index c426bdea5ef71a095cf2af9a8a83a162db3c05b7..2308fa3ca898bcb6c0ac2d4853f82a33 /** * 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 ecc99524f20e1d7072bfad3ac310cccc4514e40f..d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b 100644 +index 56eed06cd3dbb238330973c1428bffc6d5286019..d68a055ef2b309da6db2de385f27d841adca1f66 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2978,10 +2978,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3022,10 +3022,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Open a Sign for editing by the Player. * diff --git a/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch b/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch index 4efdc4fed1..c1a286c848 100644 --- a/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch +++ b/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch @@ -86,10 +86,10 @@ index abbf3d6f11350ab2dd47a277771d9f46221036bd..ef85e57f812c501fac7abe7dd27c9370 /** * 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 d06f9b4d0117515fb8fcf78d416dcd2b4ef6fb4b..3b80cb874dccf2ed4fde4c621f0f022ba1112bcd 100644 +index d68a055ef2b309da6db2de385f27d841adca1f66..9dcec906cea7d4eb6da99ef3100a98218a280594 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1173,6 +1173,186 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1217,6 +1217,186 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public void sendMap(@NotNull MapView map); // Paper start diff --git a/patches/api/0099-Additional-world.getNearbyEntities-API-s.patch b/patches/api/0099-Additional-world.getNearbyEntities-API-s.patch index ef4b091e49..05b73f46b1 100644 --- a/patches/api/0099-Additional-world.getNearbyEntities-API-s.patch +++ b/patches/api/0099-Additional-world.getNearbyEntities-API-s.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Additional world.getNearbyEntities API's Provides more methods to get nearby entities, and filter by types and predicates diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index a55e92dc09202437abac9cb5b7aacf3c275f5b9c..e2cd4750ec51da5e6a93f31a9b644516f64f7972 100644 +index 98e3c12801cc36c868f08b15d1188295ea4364e0..c489140bffdfdfa1e34e71489d308ed10cf10b21 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1,6 +1,9 @@ diff --git a/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch index 26b74a496c..6d7aa33b1f 100644 --- a/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -594,10 +594,10 @@ index 0000000000000000000000000000000000000000..507343f971fd42eada8ce3346b025daa + } +} diff --git a/src/main/java/org/bukkit/Particle.java b/src/main/java/org/bukkit/Particle.java -index ca6d0eaa9d9a37c07f3e1630b83a79bf98211edb..26d02aa5da444112f8fa84c07e3080bb669983a1 100644 +index 698ffe0c76adeb1b00e7e789ce7d164c6adc759d..690cf2aedf558396a71b20ba2b8ce737c61dfe43 100644 --- a/src/main/java/org/bukkit/Particle.java +++ b/src/main/java/org/bukkit/Particle.java -@@ -204,6 +204,18 @@ public enum Particle implements Keyed { +@@ -207,6 +207,18 @@ public enum Particle implements Keyed { return key; } @@ -617,10 +617,10 @@ index ca6d0eaa9d9a37c07f3e1630b83a79bf98211edb..26d02aa5da444112f8fa84c07e3080bb * Options which can be applied to redstone dust particles - a particle * color and size. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index e2cd4750ec51da5e6a93f31a9b644516f64f7972..6f084f081bd20b006c9a8e1090b6ad0e838810cb 100644 +index c489140bffdfdfa1e34e71489d308ed10cf10b21..b6d08d50c26aa0e69d2479d188fc3c690e8ed357 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2905,7 +2905,57 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2921,7 +2921,57 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @param data the data to use for the particle or null, * the type of this depends on {@link Particle#getDataType()} */ diff --git a/patches/api/0110-Make-shield-blocking-delay-configurable.patch b/patches/api/0110-Make-shield-blocking-delay-configurable.patch index 39f25d89b5..e6c6e635ca 100644 --- a/patches/api/0110-Make-shield-blocking-delay-configurable.patch +++ b/patches/api/0110-Make-shield-blocking-delay-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make shield blocking delay configurable diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 40634f46fa238a68f70f19b664bad7400ef07709..4a4a749449bc561a73e6747386c8ad51e623fc1e 100644 +index f154c5607b1dc3585052d9f02cf8b28cf8a3c886..7b53064364e206bc1a0f4b7af4931f6c658b7c55 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -835,5 +835,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -837,5 +837,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ @Deprecated void setArrowsStuck(int arrows); diff --git a/patches/api/0111-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch b/patches/api/0111-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch index 71a82a8eae..420b0ca896 100644 --- a/patches/api/0111-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch +++ b/patches/api/0111-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch @@ -6,7 +6,7 @@ Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API Adds ability to get what arrow was shot, and control if it should be consumed. diff --git a/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java b/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java -index d4d7ad9c3c953680342c121f39ddaef476549047..719d0d878320c1903b44076053989ba99fa0e92a 100644 +index 1a8366f6757431baaba4f3d48abea3cf0ec1f1ad..1cde639c5dc7e746209488b1a58c2a81080ab3d7 100644 --- a/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java +++ b/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java @@ -22,7 +22,32 @@ public class EntityShootBowEvent extends EntityEvent implements Cancellable { diff --git a/patches/api/0115-Expand-Explosions-API.patch b/patches/api/0115-Expand-Explosions-API.patch index c4c0e69ee6..369694a376 100644 --- a/patches/api/0115-Expand-Explosions-API.patch +++ b/patches/api/0115-Expand-Explosions-API.patch @@ -108,10 +108,10 @@ index 3161eae2fa5f03b7d3a5e9945ab659c15cf568c6..af737017ee397f80c44ee02c6cc60cef /** * Returns a list of entities within a bounding box centered around a Location. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 6f084f081bd20b006c9a8e1090b6ad0e838810cb..5ec220aa224c210c55517ef47aa5809ee26209e7 100644 +index b6d08d50c26aa0e69d2479d188fc3c690e8ed357..a735dcdb9a0684accf81674b4810928ff20eb7e6 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -1391,6 +1391,88 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -1397,6 +1397,88 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient */ public boolean createExplosion(@NotNull Location loc, float power, boolean setFire); diff --git a/patches/api/0117-LivingEntity-Active-Item-API.patch b/patches/api/0117-LivingEntity-Active-Item-API.patch index 1324ec1fdc..268d315eb2 100644 --- a/patches/api/0117-LivingEntity-Active-Item-API.patch +++ b/patches/api/0117-LivingEntity-Active-Item-API.patch @@ -23,7 +23,7 @@ index 2308fa3ca898bcb6c0ac2d4853f82a3398bf51f3..15115b1049bc5053796b84539acbf576 /** diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 4a4a749449bc561a73e6747386c8ad51e623fc1e..81a851580f81b2d6f6a2b2ebec38530f1d68530d 100644 +index 7b53064364e206bc1a0f4b7af4931f6c658b7c55..0ed64618b3f62ee984fe4f99dc6a52d5fad7b3cc 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -202,15 +202,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @@ -56,7 +56,7 @@ index 4a4a749449bc561a73e6747386c8ad51e623fc1e..81a851580f81b2d6f6a2b2ebec38530f public void setItemInUseTicks(int ticks); /** -@@ -850,4 +856,130 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -852,4 +858,130 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void setShieldBlockingDelay(int delay); // Paper end diff --git a/patches/api/0119-Add-World.getEntity-UUID-API.patch b/patches/api/0119-Add-World.getEntity-UUID-API.patch index 2b7e2e2815..89065f63d6 100644 --- a/patches/api/0119-Add-World.getEntity-UUID-API.patch +++ b/patches/api/0119-Add-World.getEntity-UUID-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add World.getEntity(UUID) API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 5ec220aa224c210c55517ef47aa5809ee26209e7..2aafd966778ee0f6adcbb3ea3772cb2104f8e687 100644 +index a735dcdb9a0684accf81674b4810928ff20eb7e6..b34eca520c34c70152860f5bad978cf3bed044fa 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -905,6 +905,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0122-Entity-getChunk-API.patch b/patches/api/0122-Entity-getChunk-API.patch index 0dbc27f2d1..8a3e473331 100644 --- a/patches/api/0122-Entity-getChunk-API.patch +++ b/patches/api/0122-Entity-getChunk-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Entity#getChunk API Get the chunk the entity is currently registered to diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index b422a949b22edf412b518abb3e5ca0847c73d36b..57a1d07d0430019fd38c72b9f58c7145927ecd02 100644 +index 45f475b42bbef1c5dc461b3891a48c8fb6feefd3..1e43deadce5a1a0e97521b1f69fee3106f5a0b9e 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -3,6 +3,7 @@ package org.bukkit.entity; @@ -17,7 +17,7 @@ index b422a949b22edf412b518abb3e5ca0847c73d36b..57a1d07d0430019fd38c72b9f58c7145 import org.bukkit.EntityEffect; import org.bukkit.Location; import org.bukkit.Nameable; -@@ -797,5 +798,16 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -808,5 +809,16 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return True if entity spawned from a mob spawner */ boolean fromMobSpawner(); diff --git a/patches/api/0133-Provide-Chunk-Coordinates-as-a-Long-API.patch b/patches/api/0133-Provide-Chunk-Coordinates-as-a-Long-API.patch index d2a1664557..2aff921ee0 100644 --- a/patches/api/0133-Provide-Chunk-Coordinates-as-a-Long-API.patch +++ b/patches/api/0133-Provide-Chunk-Coordinates-as-a-Long-API.patch @@ -44,7 +44,7 @@ index a25f112f4d679946ddcb5ec9b4d0a0e2d1795bd3..57976bbe682d2309f7d15d5dcd3ad7f8 * Gets the world containing this chunk * diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 2aafd966778ee0f6adcbb3ea3772cb2104f8e687..9e941753819214e75b9d712bb59e8d49427e6f8b 100644 +index b34eca520c34c70152860f5bad978cf3bed044fa..273c50b6e4f26457415779000cf09aeaffd21733 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -182,6 +182,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch b/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch index 6e66f2ae02..c2205057df 100644 --- a/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch +++ b/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch @@ -50,7 +50,7 @@ index 41125de49db8eafce4be59cc110ce5be06836a47..042d69e6d4584eb6d678b8ea13a3e4be * @return A new location where X/Y/Z are the center of the block */ diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 9e941753819214e75b9d712bb59e8d49427e6f8b..48f2c64491f93e5ac720bdb19a20f3f435a7e888 100644 +index 273c50b6e4f26457415779000cf09aeaffd21733..575fd50b8456beed7c5049a392fca011271a8fe4 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -99,6 +99,41 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0141-isChunkGenerated-API.patch b/patches/api/0141-isChunkGenerated-API.patch index bfe9b14df9..aba6214696 100644 --- a/patches/api/0141-isChunkGenerated-API.patch +++ b/patches/api/0141-isChunkGenerated-API.patch @@ -37,7 +37,7 @@ index 042d69e6d4584eb6d678b8ea13a3e4bea78703b8..02b4ffa6b918269bd64f7c518fcceef1 /** diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 48f2c64491f93e5ac720bdb19a20f3f435a7e888..8bef6168caf0932a5a64cf69eb7988fa3191b13a 100644 +index 575fd50b8456beed7c5049a392fca011271a8fe4..b3098ce9134acf24f49d23fc1babe79c6bf502f1 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -248,6 +248,19 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0143-Async-Chunks-API.patch b/patches/api/0143-Async-Chunks-API.patch index 30c484e7aa..68867e8a37 100644 --- a/patches/api/0143-Async-Chunks-API.patch +++ b/patches/api/0143-Async-Chunks-API.patch @@ -8,7 +8,7 @@ Adds API's to load or generate chunks asynchronously. Also adds utility methods to Entity to teleport asynchronously. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 8bef6168caf0932a5a64cf69eb7988fa3191b13a..ab183821b93dcfed1e881b481f0a3166f465ecfb 100644 +index b3098ce9134acf24f49d23fc1babe79c6bf502f1..5efe33cef4d9c153d760fc71606721ff8abafbfc 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -950,6 +950,472 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @@ -485,7 +485,7 @@ index 8bef6168caf0932a5a64cf69eb7988fa3191b13a..ab183821b93dcfed1e881b481f0a3166 * Get a list of all players in this World * diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 57a1d07d0430019fd38c72b9f58c7145927ecd02..8a7a4a8cf5f0b88664859cd43b0b01e6d261715d 100644 +index 1e43deadce5a1a0e97521b1f69fee3106f5a0b9e..f1fc42ad24648ee481b9a5d4c4cc58ae8c0a93c1 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -168,6 +168,39 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch index 46969f1d74..5a9655eafe 100644 --- a/patches/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch +++ b/patches/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch @@ -78,7 +78,7 @@ index 0000000000000000000000000000000000000000..c896d172519a8552a132031cb956378d + } +} diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 81a851580f81b2d6f6a2b2ebec38530f1d68530d..e6e0e16d122d78a160af549e4419e49dc046fb08 100644 +index 0ed64618b3f62ee984fe4f99dc6a52d5fad7b3cc..b41152d81c1ec89a65eaee2a606f4f1b0d421bc7 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -85,6 +85,98 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0145-Expose-attack-cooldown-methods-for-Player.patch b/patches/api/0145-Expose-attack-cooldown-methods-for-Player.patch index d91baa6170..0727dbdfbb 100644 --- a/patches/api/0145-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/api/0145-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 3b80cb874dccf2ed4fde4c621f0f022ba1112bcd..5e17bab05276de4340c5f06866f2efce81a9ab65 100644 +index 9dcec906cea7d4eb6da99ef3100a98218a280594..92a83edc03fa8d11f026ac312b989329fa6a7e88 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3219,6 +3219,28 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3263,6 +3263,28 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void setPlayerProfile(com.destroystokyo.paper.profile.@NotNull PlayerProfile profile); // Paper end - Player Profile API diff --git a/patches/api/0147-Add-Git-information-to-version-command-on-startup.patch b/patches/api/0147-Add-Git-information-to-version-command-on-startup.patch index 847ce11745..6c3f8d857b 100644 --- a/patches/api/0147-Add-Git-information-to-version-command-on-startup.patch +++ b/patches/api/0147-Add-Git-information-to-version-command-on-startup.patch @@ -48,10 +48,10 @@ index 0000000000000000000000000000000000000000..909617079db61b675cc7b60b44ef96b3 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 4f9ebcd991875d0bf486a8ebb39909f2ac32493b..c61096f724ea6a1ae7bc8990e9eaa44a16f5847e 100644 +index 3e32a6bbf593b269f1af23c7e2fdafaccc0d2110..d60780a26e10f5f9c80446693552384281327b51 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -58,6 +58,7 @@ import org.bukkit.util.CachedServerIcon; +@@ -60,6 +60,7 @@ import org.bukkit.util.CachedServerIcon; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -59,7 +59,7 @@ index 4f9ebcd991875d0bf486a8ebb39909f2ac32493b..c61096f724ea6a1ae7bc8990e9eaa44a /** * Represents the Bukkit core, for version and Server singleton handling -@@ -107,7 +108,25 @@ public final class Bukkit { +@@ -109,7 +110,25 @@ public final class Bukkit { } Bukkit.server = server; diff --git a/patches/api/0149-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch b/patches/api/0149-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch index b5c087c089..316ea7f83d 100644 --- a/patches/api/0149-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch +++ b/patches/api/0149-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch @@ -226,10 +226,10 @@ index 4034fcb9abc39b12f0de47c4b679f2ef82353c89..6fa219aef009f8dfb8a2b1e5ee0603b1 return key; } diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -index 80836c5f87c15d688f27af5247b4e114cea7028d..f800e776329c1b42f834cb30ebf2d0ace195d1a2 100644 +index dff32cedf47e95fe14a865898d76b62748dee5f3..de38d9b667e04852c7bdccfa17cbabb1512f4c19 100644 --- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -@@ -450,4 +450,87 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste +@@ -622,4 +622,87 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste @SuppressWarnings("javadoc") @NotNull ItemMeta clone(); diff --git a/patches/api/0153-Material-API-additions.patch b/patches/api/0153-Material-API-additions.patch index bf1a41d231..7fdeb9b3eb 100644 --- a/patches/api/0153-Material-API-additions.patch +++ b/patches/api/0153-Material-API-additions.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Material API additions diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index e15219c93995ff959a6730c17920618c0cdb3311..55fa9e8385e26aecb5690f623c2893972dc2a234 100644 +index d593dbace48998e5582c2f0c168275e0d59fe1cf..7ce1a0ee5504d4faf548be73be784e87cd4049fe 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -121,6 +121,7 @@ import org.jetbrains.annotations.Nullable; +@@ -122,6 +122,7 @@ import org.jetbrains.annotations.Nullable; /** * An enum of all material IDs accepted by the official server and client */ @@ -16,7 +16,7 @@ index e15219c93995ff959a6730c17920618c0cdb3311..55fa9e8385e26aecb5690f623c289397 public enum Material implements Keyed, Translatable { // AIR(9648, 0), -@@ -4684,6 +4685,22 @@ public enum Material implements Keyed, Translatable { +@@ -4722,6 +4723,22 @@ public enum Material implements Keyed, Translatable { } } diff --git a/patches/api/0154-Add-Material-Tags.patch b/patches/api/0154-Add-Material-Tags.patch index 12194664b8..87e49d154c 100644 --- a/patches/api/0154-Add-Material-Tags.patch +++ b/patches/api/0154-Add-Material-Tags.patch @@ -1132,7 +1132,7 @@ index 0000000000000000000000000000000000000000..5376e51adf5af15572b0d760b17f2de6 + .ensureSize("WATER_BASED", 11).lock(); +} diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java -index ec50179dd92402ad016bb2100251db5c5bf9d0c2..894e72aa97cd272ae57a91165cca0737a6d5742d 100644 +index 1be862110e94654be12fcef5980388abf242ac7f..298ae1294a122705bca6bd74ea540185839d1ed5 100644 --- a/src/main/java/org/bukkit/Tag.java +++ b/src/main/java/org/bukkit/Tag.java @@ -11,6 +11,10 @@ import org.jetbrains.annotations.NotNull; diff --git a/patches/api/0156-Add-LivingEntity-getTargetEntity.patch b/patches/api/0156-Add-LivingEntity-getTargetEntity.patch index 8447dca548..171a95979a 100644 --- a/patches/api/0156-Add-LivingEntity-getTargetEntity.patch +++ b/patches/api/0156-Add-LivingEntity-getTargetEntity.patch @@ -51,7 +51,7 @@ index 0000000000000000000000000000000000000000..af8765b213390cf75fe02a6eb68aecf7 + } +} diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index e6e0e16d122d78a160af549e4419e49dc046fb08..d8ac9ce8e448f8b3bc39ec6c140db0e25d14cec7 100644 +index b41152d81c1ec89a65eaee2a606f4f1b0d421bc7..8cd525dd8ded0ddbd405c66e9c0fbeb40f788521 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -175,6 +175,77 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0157-Add-sun-related-API.patch b/patches/api/0157-Add-sun-related-API.patch index 59c4495962..7132b29be0 100644 --- a/patches/api/0157-Add-sun-related-API.patch +++ b/patches/api/0157-Add-sun-related-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add sun related API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index ab183821b93dcfed1e881b481f0a3166f465ecfb..675dea2e1e9742043c18098774b9fde2e6f4602f 100644 +index 5efe33cef4d9c153d760fc71606721ff8abafbfc..b6ca63afb74b345e381d35646cc8faf52a2c7cbc 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1771,6 +1771,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0161-Make-the-default-permission-message-configurable.patch b/patches/api/0161-Make-the-default-permission-message-configurable.patch index cad7e3c310..8dac5d0ae4 100644 --- a/patches/api/0161-Make-the-default-permission-message-configurable.patch +++ b/patches/api/0161-Make-the-default-permission-message-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make the default permission message configurable diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index c61096f724ea6a1ae7bc8990e9eaa44a16f5847e..ac84e6d10a337f767477177ef90ad10d754341e6 100644 +index d60780a26e10f5f9c80446693552384281327b51..f248515862c3bc418b42b8e197feb43addfd122d 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2374,6 +2374,28 @@ public final class Bukkit { +@@ -2397,6 +2397,28 @@ public final class Bukkit { return server.suggestPlayerNamesWhenNullTabCompletions(); } @@ -38,10 +38,10 @@ index c61096f724ea6a1ae7bc8990e9eaa44a16f5847e..ac84e6d10a337f767477177ef90ad10d * Creates a PlayerProfile for the specified uuid, with name as null. * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 7c53979f407a6a24c6d16bbfb205a8ac0321e5dc..050cdd5147814b39d158f0ce0fa8f5aa20894cf7 100644 +index 19e6cee94caabfe93c841da783c86a3c283ebcb9..69f236d965c631510b008a7eb38aa1b62a4e196a 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2067,6 +2067,23 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2086,6 +2086,23 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ boolean suggestPlayerNamesWhenNullTabCompletions(); @@ -66,7 +66,7 @@ index 7c53979f407a6a24c6d16bbfb205a8ac0321e5dc..050cdd5147814b39d158f0ce0fa8f5aa * Creates a PlayerProfile for the specified uuid, with name as null. * diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java -index 1c6205cc667bbec8f6aca479f13b3e9cfcd63ab2..b791358f90fe92bc2264d9a26492245763813af3 100644 +index f7b78198d9983610fc2185124c3080e6b1c0fa35..b3a2c274f05156fd603bcc7a68ab41265f2eaf44 100644 --- a/src/main/java/org/bukkit/command/Command.java +++ b/src/main/java/org/bukkit/command/Command.java @@ -184,10 +184,9 @@ public abstract class Command { diff --git a/patches/api/0162-Support-cancellation-supression-of-EntityDismount-Ve.patch b/patches/api/0162-Support-cancellation-supression-of-EntityDismount-Ve.patch index b600b869ba..420a97487d 100644 --- a/patches/api/0162-Support-cancellation-supression-of-EntityDismount-Ve.patch +++ b/patches/api/0162-Support-cancellation-supression-of-EntityDismount-Ve.patch @@ -105,47 +105,3 @@ index 963b9ead4ca0426b2e95c5641b0e89317c48853d..39f6afd2f9cbcff6a74a91a21dcc3e29 @NotNull @Override public HandlerList getHandlers() { -diff --git a/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java b/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java -index be9560ffaa2d136ff1b5cd944baa678c1a938533..6533d1e0c5cb23e4a5e2831a56c5dbebe2d20f76 100644 ---- a/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java -+++ b/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java -@@ -21,10 +21,19 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable { - private static final HandlerList handlers = new HandlerList(); - private boolean cancelled; - private final Entity dismounted; -+ private final boolean isCancellable; // Paper - - public EntityDismountEvent(@NotNull Entity what, @NotNull Entity dismounted) { -- super(what); -+ // Paper start -+ this(what, dismounted, true); -+ } -+ -+ -+ public EntityDismountEvent(@NotNull Entity what, @NotNull Entity dismounted, boolean isCancellable) { -+ // Paper end -+ super( what ); - this.dismounted = dismounted; -+ this.isCancellable = isCancellable; // Paper - } - - @NotNull -@@ -39,9 +48,18 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable { - - @Override - public void setCancelled(boolean cancel) { -+ // Paper start -+ if (cancel && !isCancellable) { -+ return; -+ } - this.cancelled = cancel; - } - -+ public boolean isCancellable() { -+ return isCancellable; -+ // Paper end -+ } -+ - @NotNull - @Override - public HandlerList getHandlers() { diff --git a/patches/api/0172-Entity-getEntitySpawnReason.patch b/patches/api/0172-Entity-getEntitySpawnReason.patch index 25cf10b844..ef25308f6c 100644 --- a/patches/api/0172-Entity-getEntitySpawnReason.patch +++ b/patches/api/0172-Entity-getEntitySpawnReason.patch @@ -12,10 +12,10 @@ or DEFAULT since data was not stored. Co-authored-by: Aurora diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 8a7a4a8cf5f0b88664859cd43b0b01e6d261715d..11a77f977c6abc031cf5a4d58924bc7af5e7ea53 100644 +index f1fc42ad24648ee481b9a5d4c4cc58ae8c0a93c1..66716da0b475524917d4153e481100b795ea11a9 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -842,5 +842,11 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -853,5 +853,11 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent // TODO remove impl here return getLocation().getChunk(); } diff --git a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch index 1f17f45353..afaaad281a 100644 --- a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch @@ -40,10 +40,10 @@ index ac420f0059fc50d3e1294f85df7515c9e17ff78f..24daba85ce4129fb0babe67570059ca8 public static Art getById(int id) { return BY_ID.get(id); diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index ac84e6d10a337f767477177ef90ad10d754341e6..4716b9a9ebaf3deb0a262d4ea1da492547be4913 100644 +index f248515862c3bc418b42b8e197feb43addfd122d..395d7245aac45a1b805e15ee1fdb9949574f3f59 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -868,9 +868,8 @@ public final class Bukkit { +@@ -870,9 +870,8 @@ public final class Bukkit { * * @param id the id of the map to get * @return a map view if it exists, or null otherwise @@ -54,7 +54,7 @@ index ac84e6d10a337f767477177ef90ad10d754341e6..4716b9a9ebaf3deb0a262d4ea1da4925 @Nullable public static MapView getMap(int id) { return server.getMap(id); -@@ -949,8 +948,14 @@ public final class Bukkit { +@@ -951,8 +950,14 @@ public final class Bukkit { * Returns the primary logger associated with this server instance. * * @return Logger associated with this server @@ -69,7 +69,7 @@ index ac84e6d10a337f767477177ef90ad10d754341e6..4716b9a9ebaf3deb0a262d4ea1da4925 public static Logger getLogger() { return server.getLogger(); } -@@ -1337,10 +1342,8 @@ public final class Bukkit { +@@ -1349,10 +1354,8 @@ public final class Bukkit { * @param name the name the player to retrieve * @return an offline player * @see #getOfflinePlayer(java.util.UUID) @@ -81,7 +81,7 @@ index ac84e6d10a337f767477177ef90ad10d754341e6..4716b9a9ebaf3deb0a262d4ea1da4925 @NotNull public static OfflinePlayer getOfflinePlayer(@NotNull String name) { return server.getOfflinePlayer(name); -@@ -1931,7 +1934,7 @@ public final class Bukkit { +@@ -1954,7 +1957,7 @@ public final class Bukkit { * * @return the scoreboard manager or null if no worlds are loaded. */ @@ -183,10 +183,10 @@ index bd213cabddd8752e609544f24cfba95405726155..47df858e095c4423c20e49e029d72f0f public static DyeColor legacyValueOf(@Nullable String name) { return "SILVER".equals(name) ? DyeColor.LIGHT_GRAY : DyeColor.valueOf(name); diff --git a/src/main/java/org/bukkit/Effect.java b/src/main/java/org/bukkit/Effect.java -index 879d637691683ca862045402f74b751a892bf3ff..611b7df0e31de932f15c2f13bd8ed286e0b3b43f 100644 +index 0d0777771485a76d960da2f16e963b19d2cf6c2d..fd9cf25f2fdef5ee3b7143f27e5f43dfe3f21a38 100644 --- a/src/main/java/org/bukkit/Effect.java +++ b/src/main/java/org/bukkit/Effect.java -@@ -358,9 +358,9 @@ public enum Effect { +@@ -357,9 +357,9 @@ public enum Effect { * Gets the ID for this effect. * * @return ID of this effect @@ -198,7 +198,7 @@ index 879d637691683ca862045402f74b751a892bf3ff..611b7df0e31de932f15c2f13bd8ed286 public int getId() { return this.id; } -@@ -387,9 +387,9 @@ public enum Effect { +@@ -386,9 +386,9 @@ public enum Effect { * * @param id ID of the Effect to return * @return Effect with the given ID @@ -300,10 +300,10 @@ index 02b4ffa6b918269bd64f7c518fcceef1f6990737..f0878c7539696cc0676e6010e88914d3 if (this.world == null) { return null; diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 55fa9e8385e26aecb5690f623c2893972dc2a234..c24fe19600fa8440c130eaea247d5874da3873ec 100644 +index 7ce1a0ee5504d4faf548be73be784e87cd4049fe..76c96e1a82366aafa0148a1260500a38cea12f37 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -4705,20 +4705,20 @@ public enum Material implements Keyed, Translatable { +@@ -4743,20 +4743,20 @@ public enum Material implements Keyed, Translatable { * Do not use for any reason. * * @return ID of this material @@ -328,7 +328,7 @@ index 55fa9e8385e26aecb5690f623c2893972dc2a234..c24fe19600fa8440c130eaea247d5874 public boolean isLegacy() { return legacy; } -@@ -4789,8 +4789,10 @@ public enum Material implements Keyed, Translatable { +@@ -4827,8 +4827,10 @@ public enum Material implements Keyed, Translatable { * Gets the MaterialData class associated with this Material * * @return MaterialData associated with this Material @@ -339,7 +339,7 @@ index 55fa9e8385e26aecb5690f623c2893972dc2a234..c24fe19600fa8440c130eaea247d5874 public Class getData() { Preconditions.checkArgument(legacy, "Cannot get data class of Modern Material"); return ctor.getDeclaringClass(); -@@ -9052,7 +9054,11 @@ public enum Material implements Keyed, Translatable { +@@ -9095,7 +9097,11 @@ public enum Material implements Keyed, Translatable { * material. * * @return true if this material can be interacted with. @@ -452,47 +452,11 @@ index 48aecc9421c500137bbef1dfe3bec8de277c3ff9..aff858346776386f1288b648b221404f public byte getId() { return note; } -diff --git a/src/main/java/org/bukkit/Particle.java b/src/main/java/org/bukkit/Particle.java -index 26d02aa5da444112f8fa84c07e3080bb669983a1..0cb15350704955f4a1aeff184a8b60d9a9871ded 100644 ---- a/src/main/java/org/bukkit/Particle.java -+++ b/src/main/java/org/bukkit/Particle.java -@@ -54,7 +54,9 @@ public enum Particle implements Keyed { - BLOCK_CRACK("block", BlockData.class), - /** - * Uses {@link BlockData} as DataType -+ * @deprecated use {@link #BLOCK_CRACK} - */ -+ @Deprecated // Paper - BLOCK_DUST("block", BlockData.class, false), - WATER_DROP("rain"), - MOB_APPEARANCE("elder_guardian"), -@@ -148,15 +150,21 @@ public enum Particle implements Keyed { - // ----- Legacy Separator ----- - /** - * Uses {@link MaterialData} as DataType -+ * @deprecated {@link MaterialData} is deprecated API - */ -+ @Deprecated // Paper - LEGACY_BLOCK_CRACK(null, MaterialData.class, false), - /** - * Uses {@link MaterialData} as DataType -+ * @deprecated {@link MaterialData} is deprecated API - */ -+ @Deprecated // Paper - LEGACY_BLOCK_DUST(null, MaterialData.class, false), - /** - * Uses {@link MaterialData} as DataType -+ * @deprecated {@link MaterialData} is deprecated API - */ -+ @Deprecated // Paper - LEGACY_FALLING_DUST(null, MaterialData.class, false); - - private final NamespacedKey key; diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java -index db45423936d48835dee35d01ee502cdfdce4f68a..b3f8a2611ceb57f5d0b5c300fa80d8bad121498d 100644 +index ccc84e35dd8b94b5d9ddbac0341c2fae7a8e7115..18be407d4fb401d89f3a46a9bce044bacd8a888f 100644 --- a/src/main/java/org/bukkit/Registry.java +++ b/src/main/java/org/bukkit/Registry.java -@@ -199,14 +199,12 @@ public interface Registry extends Iterable { +@@ -201,14 +201,12 @@ public interface Registry extends Iterable { * * @see TrimMaterial */ @@ -507,7 +471,7 @@ index db45423936d48835dee35d01ee502cdfdce4f68a..b3f8a2611ceb57f5d0b5c300fa80d8ba Registry TRIM_PATTERN = Bukkit.getRegistry(TrimPattern.class); /** * Damage types. -@@ -295,8 +293,11 @@ public interface Registry extends Iterable { +@@ -310,8 +308,11 @@ public interface Registry extends Iterable { * * @param input non-null input * @return registered object or null if does not exist @@ -534,10 +498,10 @@ index 6277451c3c6c551078c237cd767b6d70c4f585ea..10f5cfb1885833a1d2c1027c03974da4 CRACKED(0x0), GLYPHED(0x1), diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 050cdd5147814b39d158f0ce0fa8f5aa20894cf7..1f98a99eea0fb9a7ebef5d650640e7dac392416e 100644 +index 69f236d965c631510b008a7eb38aa1b62a4e196a..2382322bc4f30ff3163b2941650692d9a13328ac 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -728,9 +728,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -730,9 +730,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * * @param id the id of the map to get * @return a map view if it exists, or null otherwise @@ -548,7 +512,7 @@ index 050cdd5147814b39d158f0ce0fa8f5aa20894cf7..1f98a99eea0fb9a7ebef5d650640e7da @Nullable public MapView getMap(int id); -@@ -797,8 +796,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -799,8 +798,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * Returns the primary logger associated with this server instance. * * @return Logger associated with this server @@ -563,7 +527,7 @@ index 050cdd5147814b39d158f0ce0fa8f5aa20894cf7..1f98a99eea0fb9a7ebef5d650640e7da public Logger getLogger(); /** -@@ -1127,10 +1132,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1137,10 +1142,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @param name the name the player to retrieve * @return an offline player * @see #getOfflinePlayer(java.util.UUID) @@ -575,7 +539,7 @@ index 050cdd5147814b39d158f0ce0fa8f5aa20894cf7..1f98a99eea0fb9a7ebef5d650640e7da @NotNull public OfflinePlayer getOfflinePlayer(@NotNull String name); -@@ -1630,7 +1633,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1649,7 +1652,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * * @return the scoreboard manager or null if no worlds are loaded. */ @@ -628,7 +592,7 @@ index e455eb21abf121dc6ff10ff8a13dd06f67096a8f..bbc01e7c192ae6689c301670047ff114 return origin; } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 675dea2e1e9742043c18098774b9fde2e6f4602f..0023b9737353c3c7dcfb38a143761bd8c03acf0d 100644 +index b6ca63afb74b345e381d35646cc8faf52a2c7cbc..a523d1725f175c924ab1a7d544d389ec81b68bcf 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -418,9 +418,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @@ -642,7 +606,7 @@ index 675dea2e1e9742043c18098774b9fde2e6f4602f..0023b9737353c3c7dcfb38a143761bd8 public boolean refreshChunk(int x, int z); /** -@@ -3754,6 +3753,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -3770,6 +3769,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient StructureSearchResult locateNearestStructure(@NotNull Location origin, @NotNull Structure structure, int radius, boolean findUnexplored); // Spigot start @@ -650,7 +614,7 @@ index 675dea2e1e9742043c18098774b9fde2e6f4602f..0023b9737353c3c7dcfb38a143761bd8 public class Spigot { /** -@@ -3787,7 +3787,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -3803,7 +3803,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient } } @@ -662,7 +626,7 @@ index 675dea2e1e9742043c18098774b9fde2e6f4602f..0023b9737353c3c7dcfb38a143761bd8 Spigot spigot(); // Spigot end -@@ -4005,9 +4009,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4021,9 +4025,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * Gets the dimension ID of this environment * * @return dimension ID @@ -674,7 +638,7 @@ index 675dea2e1e9742043c18098774b9fde2e6f4602f..0023b9737353c3c7dcfb38a143761bd8 public int getId() { return id; } -@@ -4017,9 +4021,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4033,9 +4037,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * * @param id The ID of the environment * @return The environment @@ -700,7 +664,7 @@ index a71001677e2b1b0b6225a7be63b8ea5ce4456862..c7ef0386a09a07a2317c56274ed41218 /** * Returns if the given item is a preferred choice to break this Block. diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java -index 7c5438fa92053cdbd7a01483a9baa4d48df07b24..a4f0a5270693e1c4af4fad827fa0a2ce753e07b5 100644 +index 3e07fc1bc0e08d0cfd998711c7fd547b2b7b6b73..fd4a9bdcfb6775dfbdb7492e6c9eb90722d2ecdc 100644 --- a/src/main/java/org/bukkit/block/BlockState.java +++ b/src/main/java/org/bukkit/block/BlockState.java @@ -36,8 +36,10 @@ public interface BlockState extends Metadatable { @@ -714,7 +678,7 @@ index 7c5438fa92053cdbd7a01483a9baa4d48df07b24..a4f0a5270693e1c4af4fad827fa0a2ce MaterialData getData(); /** -@@ -141,7 +143,9 @@ public interface BlockState extends Metadatable { +@@ -151,7 +153,9 @@ public interface BlockState extends Metadatable { * Sets the metadata for this block state. * * @param data New block specific metadata @@ -790,10 +754,10 @@ index 3afe2787de576f7190d87c796bea0ab34dc30248..58191017244f3949f6174fb108e3a245 /** diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java -index e3f440c9d9ce3b5710ed1b7f71522899fb98459f..a4578c520aa1078a741aac4b12fe89bf82b3c465 100644 +index b975f11d342ca4357362de9aaae3f1af6716049e..c52e386ffa08abbbd38683792b281665cc98bd31 100644 --- a/src/main/java/org/bukkit/entity/EntityType.java +++ b/src/main/java/org/bukkit/entity/EntityType.java -@@ -397,9 +397,9 @@ public enum EntityType implements Keyed, Translatable { +@@ -392,9 +392,9 @@ public enum EntityType implements Keyed, Translatable { * * @param name the entity type's name * @return the matching entity type or null @@ -848,7 +812,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 d8ac9ce8e448f8b3bc39ec6c140db0e25d14cec7..2f9299f407692c51dca17ca38a6135dde259b895 100644 +index 8cd525dd8ded0ddbd405c66e9c0fbeb40f788521..a6bcdcbe47e17ebdd423bb0e1fb4e29eb9de01c4 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -716,7 +716,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @@ -887,10 +851,10 @@ index 95c79c5fa0c4e30201f887da6467ce5f81c8a255..7f9c4d4b430a3f0276461346ff2621ba /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 5e17bab05276de4340c5f06866f2efce81a9ab65..8f2a6f8ac70a7d5c2b8f9c17199b6eb88750a703 100644 +index 92a83edc03fa8d11f026ac312b989329fa6a7e88..33547e9e3f8f7c906a5d91b75eb62327cc1f2a3a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1591,11 +1591,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1635,11 +1635,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Forces an update of the player's entire inventory. @@ -939,32 +903,6 @@ index 9cb08fe7201a9f91e88c7b1ee22c17889a7bf1c3..c0fcfccdf476106b48e626a099658c04 -@Deprecated +@Deprecated(forRemoval = true) // Paper public interface SplashPotion extends ThrownPotion { } -diff --git a/src/main/java/org/bukkit/entity/TextDisplay.java b/src/main/java/org/bukkit/entity/TextDisplay.java -index f101ffde9e7b3f6c3ab6f1cffb8d6f4e720634b2..8abc129f5953807e7a451166dabcf3e14e55483f 100644 ---- a/src/main/java/org/bukkit/entity/TextDisplay.java -+++ b/src/main/java/org/bukkit/entity/TextDisplay.java -@@ -62,19 +62,17 @@ public interface TextDisplay extends Display { - * Gets the text background color. - * - * @return the background color -- * @deprecated API subject to change - */ - @Nullable -- @Deprecated -+ // @Deprecated // Paper - is stable API - Color getBackgroundColor(); - - /** - * Sets the text background color. - * - * @param color new background color -- * @deprecated API subject to change - */ -- @Deprecated -+ // @Deprecated // Paper - is stable API - void setBackgroundColor(@Nullable Color color); - - /** diff --git a/src/main/java/org/bukkit/entity/memory/MemoryKey.java b/src/main/java/org/bukkit/entity/memory/MemoryKey.java index 8f601e85df580ef8106eaff8b9eafb5691a4874b..d615c006c9153fb65024241604b744fbfc383efc 100644 --- a/src/main/java/org/bukkit/entity/memory/MemoryKey.java @@ -1642,41 +1580,37 @@ index 597a18a767b68b47e81454b7d44613c7178c1366..bc3440eb72127824b3961fbdae583bb6 public ItemStack getInput() { return this.ingredient.getItemStack(); diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -index f800e776329c1b42f834cb30ebf2d0ace195d1a2..f23c0c942f200a68d2620f225ab90399a9057dfc 100644 +index de38d9b667e04852c7bdccfa17cbabb1512f4c19..348ad8932fc55830f83ccc60d5cc4aaf8a29d164 100644 --- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -@@ -75,8 +75,10 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste +@@ -111,6 +111,7 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste /** * Checks for existence of a localized name. * + * @deprecated Use {@link ItemMeta#displayName()} and check if it is instanceof a {@link net.kyori.adventure.text.TranslatableComponent}. * @return true if this has a localized name + * @deprecated meta no longer exists */ -+ @Deprecated // Paper - Deprecate old localized API - boolean hasLocalizedName(); - - /** -@@ -85,16 +87,20 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste +@@ -123,9 +124,11 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste * Plugins should check that hasLocalizedName() returns true * before calling this method. * + * @deprecated Use {@link ItemMeta#displayName()} and cast it to a {@link net.kyori.adventure.text.TranslatableComponent}. No longer used by the client. * @return the localized name that is set + * @deprecated meta no longer exists */ + @Deprecated // Paper - Deprecate old localized API @NotNull + @Deprecated(forRemoval = true) String getLocalizedName(); - +@@ -133,6 +136,7 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste /** * Sets the localized name. * + * @deprecated Use {@link ItemMeta#displayName(Component)} with a {@link net.kyori.adventure.text.TranslatableComponent}. No longer used by the client. * @param name the name to set + * @deprecated meta no longer exists */ -+ @Deprecated // Paper - Deprecate old localized API - void setLocalizedName(@Nullable String name); - - /** diff --git a/src/main/java/org/bukkit/inventory/meta/MapMeta.java b/src/main/java/org/bukkit/inventory/meta/MapMeta.java index 32055a8890425e0b819930f3059da5ea9dfca553..26a336dade83baee97d20eb39a058925659f5777 100644 --- a/src/main/java/org/bukkit/inventory/meta/MapMeta.java @@ -1740,10 +1674,10 @@ index 00437719722830c087ff925015086c29bbb04497..ae9bcc8262dbf6eb8673ca82395d0916 /** diff --git a/src/main/java/org/bukkit/map/MapCursor.java b/src/main/java/org/bukkit/map/MapCursor.java -index 7d4f4970dae6fe4eeea6b6b6810dcecfe20d6e51..599399e4d8ca7c46747439ad2dd0186d0a289a19 100644 +index f9803c7483f7458fed1f22ddfda6e7ef03cfc688..9abea12cb949f7ffa1b72aabf2a3c059b64f3557 100644 --- a/src/main/java/org/bukkit/map/MapCursor.java +++ b/src/main/java/org/bukkit/map/MapCursor.java -@@ -156,9 +156,9 @@ public final class MapCursor { +@@ -158,9 +158,9 @@ public final class MapCursor { * Get the type of this cursor. * * @return The type (color/style) of the map cursor. @@ -1755,7 +1689,7 @@ index 7d4f4970dae6fe4eeea6b6b6810dcecfe20d6e51..599399e4d8ca7c46747439ad2dd0186d public byte getRawType() { return type; } -@@ -215,9 +215,9 @@ public final class MapCursor { +@@ -217,9 +217,9 @@ public final class MapCursor { * Set the type of this cursor. * * @param type The type (color/style) of the map cursor. @@ -1767,7 +1701,7 @@ index 7d4f4970dae6fe4eeea6b6b6810dcecfe20d6e51..599399e4d8ca7c46747439ad2dd0186d public void setRawType(byte type) { if (type < 0 || type > 26) { throw new IllegalArgumentException("Type must be in the range 0-26"); -@@ -328,9 +328,9 @@ public final class MapCursor { +@@ -339,9 +339,9 @@ public final class MapCursor { * Gets the internal value of the cursor. * * @return the value @@ -1779,7 +1713,7 @@ index 7d4f4970dae6fe4eeea6b6b6810dcecfe20d6e51..599399e4d8ca7c46747439ad2dd0186d public byte getValue() { return value; } -@@ -340,9 +340,9 @@ public final class MapCursor { +@@ -351,9 +351,9 @@ public final class MapCursor { * * @param value the value * @return the matching type @@ -1933,10 +1867,10 @@ index 0ea9c6b2420a0f990bd1fdf50fc015e37a7060d8..e99644eae1c662b117aa19060d2484ac /** diff --git a/src/main/java/org/bukkit/potion/PotionEffectType.java b/src/main/java/org/bukkit/potion/PotionEffectType.java -index 28dd05c706211f78eb27329a4284e2f21c5f5eb5..f97dff2fd90cc8c35cbde04d1ace81320a8e4658 100644 +index 7feeb33f8938be968b20c19437723d8c968690fa..e045e6a74821f291938cc6af86e313c1f1c4626c 100644 --- a/src/main/java/org/bukkit/potion/PotionEffectType.java +++ b/src/main/java/org/bukkit/potion/PotionEffectType.java -@@ -240,9 +240,9 @@ public abstract class PotionEffectType implements Keyed, Translatable { +@@ -270,9 +270,9 @@ public abstract class PotionEffectType implements Keyed, Translatable { * Returns the unique ID of this type. * * @return Unique ID @@ -1948,7 +1882,7 @@ index 28dd05c706211f78eb27329a4284e2f21c5f5eb5..f97dff2fd90cc8c35cbde04d1ace8132 public abstract int getId(); /** -@@ -278,9 +278,9 @@ public abstract class PotionEffectType implements Keyed, Translatable { +@@ -308,9 +308,9 @@ public abstract class PotionEffectType implements Keyed, Translatable { * * @param id Unique ID to fetch * @return Resulting type, or null if not found. diff --git a/patches/api/0176-Add-Heightmap-API.patch b/patches/api/0176-Add-Heightmap-API.patch index bfa338c360..9c0ab69035 100644 --- a/patches/api/0176-Add-Heightmap-API.patch +++ b/patches/api/0176-Add-Heightmap-API.patch @@ -102,7 +102,7 @@ index f0878c7539696cc0676e6010e88914d3850acf20..c6049747fc286acb4e8053901fcc517e /** * Creates explosion at this location with given power diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 0023b9737353c3c7dcfb38a143761bd8c03acf0d..0a7c97aa289687cfbf6ae1a222f5eb2850f8f43e 100644 +index a523d1725f175c924ab1a7d544d389ec81b68bcf..77314fdbd99a5cc34e7a1df4692ba8a1685ef002 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -153,6 +153,87 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0181-Expose-the-internal-current-tick.patch b/patches/api/0181-Expose-the-internal-current-tick.patch index 4db7cb0ddf..7cd95c46f8 100644 --- a/patches/api/0181-Expose-the-internal-current-tick.patch +++ b/patches/api/0181-Expose-the-internal-current-tick.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 4716b9a9ebaf3deb0a262d4ea1da492547be4913..999f72af999a95642b5865144d1da9bd9f86aaee 100644 +index 395d7245aac45a1b805e15ee1fdb9949574f3f59..d1e1c49ecf6a1ede71548fbac6143e38ba6dfea1 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2475,6 +2475,10 @@ public final class Bukkit { +@@ -2498,6 +2498,10 @@ public final class Bukkit { public static com.destroystokyo.paper.profile.PlayerProfile createProfileExact(@Nullable UUID uuid, @Nullable String name) { return server.createProfileExact(uuid, name); } @@ -20,10 +20,10 @@ index 4716b9a9ebaf3deb0a262d4ea1da492547be4913..999f72af999a95642b5865144d1da9bd @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 1f98a99eea0fb9a7ebef5d650640e7dac392416e..8445a62af2ca5dd47b4905d75b31d9d6ea0623ea 100644 +index 2382322bc4f30ff3163b2941650692d9a13328ac..cf242e2e6d538d3d38b7b10321ab375e018b24b1 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2155,5 +2155,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2174,5 +2174,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull com.destroystokyo.paper.profile.PlayerProfile createProfileExact(@Nullable UUID uuid, @Nullable String name); diff --git a/patches/api/0185-Entity-Jump-API.patch b/patches/api/0185-Entity-Jump-API.patch index 8d8898f3c1..86c29fafdc 100644 --- a/patches/api/0185-Entity-Jump-API.patch +++ b/patches/api/0185-Entity-Jump-API.patch @@ -61,10 +61,10 @@ index 0000000000000000000000000000000000000000..a6306c957fcacdcbcc8037b4ee33a167 + } +} diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 2f9299f407692c51dca17ca38a6135dde259b895..1a7d802e8c3204408402ce58377108ffac2662b9 100644 +index a6bcdcbe47e17ebdd423bb0e1fb4e29eb9de01c4..90466c457657e15796b81ebe50ae873aa9f1774b 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1147,4 +1147,26 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1149,4 +1149,26 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource return this.getActiveItemHand(); } // Paper end - active item API diff --git a/patches/api/0187-Add-tick-times-API.patch b/patches/api/0187-Add-tick-times-API.patch index 350b7fda96..40cbc279eb 100644 --- a/patches/api/0187-Add-tick-times-API.patch +++ b/patches/api/0187-Add-tick-times-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add tick times API diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 999f72af999a95642b5865144d1da9bd9f86aaee..10aea8b80b49a6c47b04de4d3f33eb786f08651b 100644 +index d1e1c49ecf6a1ede71548fbac6143e38ba6dfea1..385be33869f3850f8b1d3e690c8e0fc43adcbdce 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2147,6 +2147,25 @@ public final class Bukkit { +@@ -2170,6 +2170,25 @@ public final class Bukkit { public static double[] getTPS() { return server.getTPS(); } @@ -35,10 +35,10 @@ index 999f72af999a95642b5865144d1da9bd9f86aaee..10aea8b80b49a6c47b04de4d3f33eb78 /** diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 8445a62af2ca5dd47b4905d75b31d9d6ea0623ea..4b3fadfc90299cc717d85cb9856662e2b3230872 100644 +index cf242e2e6d538d3d38b7b10321ab375e018b24b1..d6d83b22389aee98967adda2631fa65ecbf00781 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1817,6 +1817,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1836,6 +1836,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull public double[] getTPS(); diff --git a/patches/api/0188-Expose-MinecraftServer-isRunning.patch b/patches/api/0188-Expose-MinecraftServer-isRunning.patch index 7800f62ac6..0f50363b31 100644 --- a/patches/api/0188-Expose-MinecraftServer-isRunning.patch +++ b/patches/api/0188-Expose-MinecraftServer-isRunning.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 10aea8b80b49a6c47b04de4d3f33eb786f08651b..803ca460cf91f6760d7b16e1310a23d6b09725b3 100644 +index 385be33869f3850f8b1d3e690c8e0fc43adcbdce..f24d57a89dc4fdf73298bbb4cc187794c7bd6706 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2498,6 +2498,15 @@ public final class Bukkit { +@@ -2521,6 +2521,15 @@ public final class Bukkit { public static int getCurrentTick() { return server.getCurrentTick(); } @@ -26,10 +26,10 @@ index 10aea8b80b49a6c47b04de4d3f33eb786f08651b..803ca460cf91f6760d7b16e1310a23d6 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 4b3fadfc90299cc717d85cb9856662e2b3230872..1575218ee7eb563b17b542b578c10d125889a7be 100644 +index d6d83b22389aee98967adda2631fa65ecbf00781..015f1167bdc752fe6665807866caa0cda5ba0571 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2177,5 +2177,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2196,5 +2196,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return Current tick */ int getCurrentTick(); diff --git a/patches/api/0190-Add-Player-Client-Options-API.patch b/patches/api/0190-Add-Player-Client-Options-API.patch index 988d0832be..e4057fe25a 100644 --- a/patches/api/0190-Add-Player-Client-Options-API.patch +++ b/patches/api/0190-Add-Player-Client-Options-API.patch @@ -231,10 +231,10 @@ index 0000000000000000000000000000000000000000..1757055d821d9ec7c728aa6c1b52fa6a + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 8f2a6f8ac70a7d5c2b8f9c17199b6eb88750a703..962cfd7b81a38e8e0bf4371d7c3aca80f40636af 100644 +index 33547e9e3f8f7c906a5d91b75eb62327cc1f2a3a..7429666fd1af4f4a924cf93572df5b826782af05 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3238,6 +3238,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3282,6 +3282,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void resetCooldown(); // Paper end - attack cooldown API diff --git a/patches/api/0193-Add-item-slot-convenience-methods.patch b/patches/api/0192-Add-item-slot-convenience-methods.patch similarity index 100% rename from patches/api/0193-Add-item-slot-convenience-methods.patch rename to patches/api/0192-Add-item-slot-convenience-methods.patch diff --git a/patches/api/0192-Fix-Potion-toItemStack-swapping-the-extended-and-upg.patch b/patches/api/0192-Fix-Potion-toItemStack-swapping-the-extended-and-upg.patch deleted file mode 100644 index 2fa02a7788..0000000000 --- a/patches/api/0192-Fix-Potion-toItemStack-swapping-the-extended-and-upg.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Wesley Smith -Date: Fri, 24 Apr 2020 18:30:26 -0400 -Subject: [PATCH] Fix Potion#toItemStack swapping the extended and upgraded - constructor values. - -While the Potion class is deprecated, it is still used in some plugins for cross-version potion handling. This issue has existed for a long time, and has caused many heaches along the way. - -diff --git a/src/main/java/org/bukkit/potion/Potion.java b/src/main/java/org/bukkit/potion/Potion.java -index 266547c6da0e3270af5c9ca81268934294a7c48d..69e7ce61090e3e3a7a337a96b380c8ffe78ffb8d 100644 ---- a/src/main/java/org/bukkit/potion/Potion.java -+++ b/src/main/java/org/bukkit/potion/Potion.java -@@ -267,7 +267,7 @@ public class Potion { - } - ItemStack itemStack = new ItemStack(material, amount); - PotionMeta meta = (PotionMeta) itemStack.getItemMeta(); -- meta.setBasePotionData(new PotionData(type, level == 2, extended)); -+ meta.setBasePotionData(new PotionData(type, extended, level == 2)); // Paper - fix swapped values - itemStack.setItemMeta(meta); - return itemStack; - } diff --git a/patches/api/0194-Villager-Restocks-API.patch b/patches/api/0193-Villager-Restocks-API.patch similarity index 100% rename from patches/api/0194-Villager-Restocks-API.patch rename to patches/api/0193-Villager-Restocks-API.patch diff --git a/patches/api/0195-Expose-game-version.patch b/patches/api/0194-Expose-game-version.patch similarity index 83% rename from patches/api/0195-Expose-game-version.patch rename to patches/api/0194-Expose-game-version.patch index 698a089e9a..785d8563d2 100644 --- a/patches/api/0195-Expose-game-version.patch +++ b/patches/api/0194-Expose-game-version.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose game version diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 803ca460cf91f6760d7b16e1310a23d6b09725b3..377e9979c5bbc50398d521ff038956f80d7376b1 100644 +index f24d57a89dc4fdf73298bbb4cc187794c7bd6706..b608a6dc26bfc6d08f1e31107fed8ef1aaf90e1d 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -159,6 +159,18 @@ public final class Bukkit { +@@ -161,6 +161,18 @@ public final class Bukkit { return server.getBukkitVersion(); } @@ -28,10 +28,10 @@ index 803ca460cf91f6760d7b16e1310a23d6b09725b3..377e9979c5bbc50398d521ff038956f8 * Gets a view of all currently logged in players. This {@linkplain * Collections#unmodifiableCollection(Collection) view} is a reused diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 1575218ee7eb563b17b542b578c10d125889a7be..7ed98561c6320132501c89d70254870e6ec03e77 100644 +index 015f1167bdc752fe6665807866caa0cda5ba0571..987e01f48f7f8b19fd6292a11988b1aeb90a09f6 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -117,6 +117,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -119,6 +119,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public String getBukkitVersion(); diff --git a/patches/api/0196-Add-Mob-Goal-API.patch b/patches/api/0195-Add-Mob-Goal-API.patch similarity index 96% rename from patches/api/0196-Add-Mob-Goal-API.patch rename to patches/api/0195-Add-Mob-Goal-API.patch index 4b35a66541..102b780fac 100644 --- a/patches/api/0196-Add-Mob-Goal-API.patch +++ b/patches/api/0195-Add-Mob-Goal-API.patch @@ -226,10 +226,10 @@ index 0000000000000000000000000000000000000000..e21f7574763dd4f13794f91bbef192ef + Collection> getRunningGoalsWithout(@NotNull T mob, @NotNull GoalType type); +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 377e9979c5bbc50398d521ff038956f80d7376b1..9e14744feb0c5ad0b8df1bcbaf19d75327ad2148 100644 +index b608a6dc26bfc6d08f1e31107fed8ef1aaf90e1d..79db7b5c25a7c824b107a5c79f40c61983d2757c 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2519,6 +2519,16 @@ public final class Bukkit { +@@ -2542,6 +2542,16 @@ public final class Bukkit { public static boolean isStopping() { return server.isStopping(); } @@ -247,10 +247,10 @@ index 377e9979c5bbc50398d521ff038956f80d7376b1..9e14744feb0c5ad0b8df1bcbaf19d753 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 7ed98561c6320132501c89d70254870e6ec03e77..1fda10dcabdcfe0cd51c3532576bddeb4fa877b8 100644 +index 987e01f48f7f8b19fd6292a11988b1aeb90a09f6..8aba385b9d1a9b71c3304f1d802f18d4434f34d5 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2194,5 +2194,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2213,5 +2213,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return true if server is in the process of being shutdown */ boolean isStopping(); diff --git a/patches/api/0197-Add-villager-reputation-API.patch b/patches/api/0196-Add-villager-reputation-API.patch similarity index 100% rename from patches/api/0197-Add-villager-reputation-API.patch rename to patches/api/0196-Add-villager-reputation-API.patch diff --git a/patches/api/0198-Spawn-Reason-API.patch b/patches/api/0197-Spawn-Reason-API.patch similarity index 100% rename from patches/api/0198-Spawn-Reason-API.patch rename to patches/api/0197-Spawn-Reason-API.patch diff --git a/patches/api/0199-Potential-bed-API.patch b/patches/api/0198-Potential-bed-API.patch similarity index 100% rename from patches/api/0199-Potential-bed-API.patch rename to patches/api/0198-Potential-bed-API.patch diff --git a/patches/api/0200-Inventory-getHolder-method-without-block-snapshot.patch b/patches/api/0199-Inventory-getHolder-method-without-block-snapshot.patch similarity index 100% rename from patches/api/0200-Inventory-getHolder-method-without-block-snapshot.patch rename to patches/api/0199-Inventory-getHolder-method-without-block-snapshot.patch diff --git a/patches/api/0201-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/api/0200-Add-and-implement-PlayerRecipeBookClickEvent.patch similarity index 100% rename from patches/api/0201-Add-and-implement-PlayerRecipeBookClickEvent.patch rename to patches/api/0200-Add-and-implement-PlayerRecipeBookClickEvent.patch diff --git a/patches/api/0202-Support-components-in-ItemMeta.patch b/patches/api/0201-Support-components-in-ItemMeta.patch similarity index 87% rename from patches/api/0202-Support-components-in-ItemMeta.patch rename to patches/api/0201-Support-components-in-ItemMeta.patch index dc804cc5b2..e3707f1e60 100644 --- a/patches/api/0202-Support-components-in-ItemMeta.patch +++ b/patches/api/0201-Support-components-in-ItemMeta.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Support components in ItemMeta diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -index f23c0c942f200a68d2620f225ab90399a9057dfc..478b6d2acbc5788f72db81f387daa08df7837a5d 100644 +index 348ad8932fc55830f83ccc60d5cc4aaf8a29d164..b039fc170c0760f15fa0f9220da2032a23e5c455 100644 --- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java @@ -5,6 +5,7 @@ import java.util.Collection; @@ -16,7 +16,7 @@ index f23c0c942f200a68d2620f225ab90399a9057dfc..478b6d2acbc5788f72db81f387daa08d import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeModifier; import org.bukkit.configuration.serialization.ConfigurationSerializable; -@@ -63,6 +64,20 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste +@@ -65,6 +66,20 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste @NotNull String getDisplayName(); @@ -37,7 +37,7 @@ index f23c0c942f200a68d2620f225ab90399a9057dfc..478b6d2acbc5788f72db81f387daa08d /** * Sets the display name. * -@@ -72,6 +87,16 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste +@@ -74,6 +89,16 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste @Deprecated // Paper void setDisplayName(@Nullable String name); @@ -52,9 +52,9 @@ index f23c0c942f200a68d2620f225ab90399a9057dfc..478b6d2acbc5788f72db81f387daa08d + void setDisplayNameComponent(@Nullable net.md_5.bungee.api.chat.BaseComponent[] component); + // Paper end /** - * Checks for existence of a localized name. - * -@@ -141,6 +166,19 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste + * Checks for existence of an item name. + *
    +@@ -181,6 +206,19 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste @Nullable List getLore(); @@ -74,7 +74,7 @@ index f23c0c942f200a68d2620f225ab90399a9057dfc..478b6d2acbc5788f72db81f387daa08d /** * Sets the lore for this item. * Removes lore when given null. -@@ -151,6 +189,16 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste +@@ -191,6 +229,16 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste @Deprecated // Paper void setLore(@Nullable List lore); diff --git a/patches/api/0203-added-2-new-TargetReasons-for-1.16-mob-behavior.patch b/patches/api/0202-added-2-new-TargetReasons-for-1.16-mob-behavior.patch similarity index 100% rename from patches/api/0203-added-2-new-TargetReasons-for-1.16-mob-behavior.patch rename to patches/api/0202-added-2-new-TargetReasons-for-1.16-mob-behavior.patch diff --git a/patches/api/0204-Add-entity-liquid-API.patch b/patches/api/0203-Add-entity-liquid-API.patch similarity index 88% rename from patches/api/0204-Add-entity-liquid-API.patch rename to patches/api/0203-Add-entity-liquid-API.patch index f1e3bccd46..a1ac30dc85 100644 --- a/patches/api/0204-Add-entity-liquid-API.patch +++ b/patches/api/0203-Add-entity-liquid-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add entity liquid API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 11a77f977c6abc031cf5a4d58924bc7af5e7ea53..3deccdf110c2cb74444b5d715082fbbdaa8f20ce 100644 +index 66716da0b475524917d4153e481100b795ea11a9..6a9cd00110988a0d0bd89f0252cc0f21c36982c0 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -848,5 +848,40 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -859,5 +859,40 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason(); diff --git a/patches/api/0205-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch b/patches/api/0204-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch similarity index 100% rename from patches/api/0205-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch rename to patches/api/0204-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch diff --git a/patches/api/0206-Add-BellRingEvent.patch b/patches/api/0205-Add-BellRingEvent.patch similarity index 100% rename from patches/api/0206-Add-BellRingEvent.patch rename to patches/api/0205-Add-BellRingEvent.patch diff --git a/patches/api/0207-Brand-support.patch b/patches/api/0206-Brand-support.patch similarity index 85% rename from patches/api/0207-Brand-support.patch rename to patches/api/0206-Brand-support.patch index 9b1680d885..31a2278550 100644 --- a/patches/api/0207-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 962cfd7b81a38e8e0bf4371d7c3aca80f40636af..219a819731ec081fea4fe3ac75e617f8cd6afbbf 100644 +index 7429666fd1af4f4a924cf93572df5b826782af05..b0c0fd6687af5676d85094304ced25c1c444bc90 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3351,6 +3351,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3395,6 +3395,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM // Paper end } diff --git a/patches/api/0208-Add-moon-phase-API.patch b/patches/api/0207-Add-moon-phase-API.patch similarity index 100% rename from patches/api/0208-Add-moon-phase-API.patch rename to patches/api/0207-Add-moon-phase-API.patch diff --git a/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/api/0208-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 89% rename from patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/api/0208-Add-playPickupItemAnimation-to-LivingEntity.patch index e862e67086..19b048763f 100644 --- a/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch +++ b/patches/api/0208-Add-playPickupItemAnimation-to-LivingEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 1a7d802e8c3204408402ce58377108ffac2662b9..7dbb3737cd175365b89a5c8d0542b16e812b8629 100644 +index 90466c457657e15796b81ebe50ae873aa9f1774b..79ef7733ba6fd7d34f8bf87218779af5ba74d084 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1169,4 +1169,29 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1171,4 +1171,29 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void setJumping(boolean jumping); // Paper end - entity jump API diff --git a/patches/api/0210-Add-more-Evoker-API.patch b/patches/api/0209-Add-more-Evoker-API.patch similarity index 100% rename from patches/api/0210-Add-more-Evoker-API.patch rename to patches/api/0209-Add-more-Evoker-API.patch diff --git a/patches/api/0211-Add-methods-to-get-translation-keys.patch b/patches/api/0210-Add-methods-to-get-translation-keys.patch similarity index 94% rename from patches/api/0211-Add-methods-to-get-translation-keys.patch rename to patches/api/0210-Add-methods-to-get-translation-keys.patch index 4208d897a6..72c9ae1cbf 100644 --- a/patches/api/0211-Add-methods-to-get-translation-keys.patch +++ b/patches/api/0210-Add-methods-to-get-translation-keys.patch @@ -119,7 +119,7 @@ index 81e45984a88fc84acd0f76d825abf4ddaed0ac3b..fdc42a79c5af30fdade41ee99245e664 /** diff --git a/src/main/java/org/bukkit/GameRule.java b/src/main/java/org/bukkit/GameRule.java -index cca5267019052f77149f9913babd8b17abafe94f..be827e7fef0acb17bd41aeff9dc3dc4da3718e5e 100644 +index dc66bd69646ac949d1386ce8f6ff913e9475439d..4482e8f2c617c2f51b2b53762e775d118002363a 100644 --- a/src/main/java/org/bukkit/GameRule.java +++ b/src/main/java/org/bukkit/GameRule.java @@ -15,7 +15,7 @@ import org.jetbrains.annotations.Nullable; @@ -131,7 +131,7 @@ index cca5267019052f77149f9913babd8b17abafe94f..be827e7fef0acb17bd41aeff9dc3dc4d private static Map> gameRules = new HashMap<>(); // Boolean rules -@@ -350,4 +350,11 @@ public final class GameRule { +@@ -355,4 +355,11 @@ public final class GameRule { public static GameRule[] values() { return gameRules.values().toArray(new GameRule[gameRules.size()]); } @@ -144,10 +144,10 @@ index cca5267019052f77149f9913babd8b17abafe94f..be827e7fef0acb17bd41aeff9dc3dc4d + // Paper end } diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index c24fe19600fa8440c130eaea247d5874da3873ec..af1dca2385215e8fd19353aa6e9c024d4ad814e1 100644 +index 76c96e1a82366aafa0148a1260500a38cea12f37..6551bb9409f9714033532b5cfe9219ed84e438f2 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -122,7 +122,7 @@ import org.jetbrains.annotations.Nullable; +@@ -123,7 +123,7 @@ import org.jetbrains.annotations.Nullable; * An enum of all material IDs accepted by the official server and client */ @SuppressWarnings({"DeprecatedIsStillUsed", "deprecation"}) // Paper @@ -156,7 +156,7 @@ index c24fe19600fa8440c130eaea247d5874da3873ec..af1dca2385215e8fd19353aa6e9c024d // AIR(9648, 0), STONE(22948), -@@ -4699,6 +4699,15 @@ public enum Material implements Keyed, Translatable { +@@ -4737,6 +4737,15 @@ public enum Material implements Keyed, Translatable { } return false; } @@ -172,7 +172,7 @@ index c24fe19600fa8440c130eaea247d5874da3873ec..af1dca2385215e8fd19353aa6e9c024d // Paper end /** -@@ -11402,9 +11411,11 @@ public enum Material implements Keyed, Translatable { +@@ -11473,9 +11482,11 @@ public enum Material implements Keyed, Translatable { * material * @see #getBlockTranslationKey() * @see #getItemTranslationKey() @@ -185,7 +185,7 @@ index c24fe19600fa8440c130eaea247d5874da3873ec..af1dca2385215e8fd19353aa6e9c024d if (this.isItem()) { return Bukkit.getUnsafe().getItemTranslationKey(this); diff --git a/src/main/java/org/bukkit/MusicInstrument.java b/src/main/java/org/bukkit/MusicInstrument.java -index a7573ce8c6dff9862c97ce74650284b4a42e7989..ee5368372e136541eafe1d7ffb395de670fe4843 100644 +index eae90e72b1dff5ab3b1a4fdcfe57187e85fe4d49..62d2b3f950860dee0898d77b0a29635c3f9a7e23 100644 --- a/src/main/java/org/bukkit/MusicInstrument.java +++ b/src/main/java/org/bukkit/MusicInstrument.java @@ -7,7 +7,7 @@ import java.util.Collections; @@ -195,8 +195,8 @@ index a7573ce8c6dff9862c97ce74650284b4a42e7989..ee5368372e136541eafe1d7ffb395de6 -public abstract class MusicInstrument implements Keyed { +public abstract class MusicInstrument implements Keyed, net.kyori.adventure.translation.Translatable { // Paper - translation keys - public static final MusicInstrument PONDER = getInstrument("ponder_goat_horn"); - public static final MusicInstrument SING = getInstrument("sing_goat_horn"); + public static final MusicInstrument PONDER_GOAT_HORN = getInstrument("ponder_goat_horn"); + public static final MusicInstrument SING_GOAT_HORN = getInstrument("sing_goat_horn"); @@ -52,4 +52,11 @@ public abstract class MusicInstrument implements Keyed { return instrument; @@ -233,7 +233,7 @@ index e3faa2c675c85a9cbdbbb1debec0ff81c58a1bbd..fd1629c2d2028a88fb3d56b0aeb833d1 String getTranslationKey(); } diff --git a/src/main/java/org/bukkit/attribute/Attribute.java b/src/main/java/org/bukkit/attribute/Attribute.java -index 7d5e6961e7e836f57cb7114ae7cef9dbd95ad0a1..66027c2ea32d44a5d2df18d6414668d847f6fd9c 100644 +index 3a7f6fd862dc2dd72366089ce99a0e96d07c0fdc..063cb21e33d039933e9ef295564db595cfd9f8c9 100644 --- a/src/main/java/org/bukkit/attribute/Attribute.java +++ b/src/main/java/org/bukkit/attribute/Attribute.java @@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull; @@ -245,7 +245,7 @@ index 7d5e6961e7e836f57cb7114ae7cef9dbd95ad0a1..66027c2ea32d44a5d2df18d6414668d8 /** * Maximum health of an Entity. -@@ -85,4 +85,12 @@ public enum Attribute implements Keyed, Translatable { +@@ -117,4 +117,12 @@ public enum Attribute implements Keyed, Translatable { public String getTranslationKey() { return Bukkit.getUnsafe().getTranslationKey(this); } @@ -310,10 +310,10 @@ index bf29d9b733afc7c62725d259f4920c4f211cc6d0..1d3812db989a55b6f31bb30dffe70323 // Paper end } diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java -index 350d52f4dd97a7e6a6a9a967e1c6a8781feda22e..13f25ff4a4dd5a98f5f690c54e5cba6ef145c2d0 100644 +index dddd0e74962d5713c4bb6219fba48aae5763e9ea..5b831dc9666b68fd9f4497aa3b07beba13fb215f 100644 --- a/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/src/main/java/org/bukkit/enchantments/Enchantment.java -@@ -14,7 +14,7 @@ import org.jetbrains.annotations.Nullable; +@@ -15,7 +15,7 @@ import org.jetbrains.annotations.Nullable; /** * The various type of enchantments that may be added to armour or weapons */ @@ -338,7 +338,7 @@ index c4f86ba1037f3f0e5d697a0962d71d6f8c7c1fbe..ac0371285370594d4de1554871b19bbc // Paper end } diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java -index a4578c520aa1078a741aac4b12fe89bf82b3c465..550d66e0d41878717c6a92caade4a8413674f012 100644 +index c52e386ffa08abbbd38683792b281665cc98bd31..4ff2f0b70a89b3d1fb3f588d014e09b3cf8ed16f 100644 --- a/src/main/java/org/bukkit/entity/EntityType.java +++ b/src/main/java/org/bukkit/entity/EntityType.java @@ -24,7 +24,7 @@ import org.jetbrains.annotations.Contract; @@ -350,7 +350,7 @@ index a4578c520aa1078a741aac4b12fe89bf82b3c465..550d66e0d41878717c6a92caade4a841 // These strings MUST match the strings in nms.EntityTypes and are case sensitive. /** -@@ -443,10 +443,22 @@ public enum EntityType implements Keyed, Translatable { +@@ -438,10 +438,22 @@ public enum EntityType implements Keyed, Translatable { @Override @NotNull diff --git a/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/api/0211-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/api/0211-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch b/patches/api/0212-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/api/0212-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/api/0213-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 100% rename from patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/api/0213-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch diff --git a/patches/api/0215-Entity-isTicking.patch b/patches/api/0214-Entity-isTicking.patch similarity index 79% rename from patches/api/0215-Entity-isTicking.patch rename to patches/api/0214-Entity-isTicking.patch index 778cc4b6a6..37d0f8dce3 100644 --- a/patches/api/0215-Entity-isTicking.patch +++ b/patches/api/0214-Entity-isTicking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 3deccdf110c2cb74444b5d715082fbbdaa8f20ce..9711a8077238383f23fb7aa2c20b2c089776e3f8 100644 +index 6a9cd00110988a0d0bd89f0252cc0f21c36982c0..e9c3c5c4099f7bf7f83bde0b47fd193a3b401f0a 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -883,5 +883,10 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -894,5 +894,10 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * Check if entity is in lava */ boolean isInLava(); diff --git a/patches/api/0216-Villager-resetOffers.patch b/patches/api/0215-Villager-resetOffers.patch similarity index 100% rename from patches/api/0216-Villager-resetOffers.patch rename to patches/api/0215-Villager-resetOffers.patch diff --git a/patches/api/0217-Player-elytra-boost-API.patch b/patches/api/0216-Player-elytra-boost-API.patch similarity index 91% rename from patches/api/0217-Player-elytra-boost-API.patch rename to patches/api/0216-Player-elytra-boost-API.patch index 62287ccf59..29d5923494 100644 --- a/patches/api/0217-Player-elytra-boost-API.patch +++ b/patches/api/0216-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 219a819731ec081fea4fe3ac75e617f8cd6afbbf..f52f35902cc6a8af5ee60cf815caef7a43372158 100644 +index b0c0fd6687af5676d85094304ced25c1c444bc90..28a811be93b29f105dad1db91a8adccbdf9fcaf7 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3245,6 +3245,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3289,6 +3289,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @NotNull T getClientOption(com.destroystokyo.paper.@NotNull ClientOption option); // Paper end - client option API diff --git a/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch b/patches/api/0217-Add-getOfflinePlayerIfCached-String.patch similarity index 88% rename from patches/api/0218-Add-getOfflinePlayerIfCached-String.patch rename to patches/api/0217-Add-getOfflinePlayerIfCached-String.patch index 2e8d4ad4b3..402eff8c38 100644 --- a/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch +++ b/patches/api/0217-Add-getOfflinePlayerIfCached-String.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String) diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 9e14744feb0c5ad0b8df1bcbaf19d75327ad2148..e832c6a8a10bc29d9ab20cbdf394cf836eb2f6a5 100644 +index 79db7b5c25a7c824b107a5c79f40c61983d2757c..732ed3724e784ad659cb4411dbd73b42a8330a2c 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1361,6 +1361,27 @@ public final class Bukkit { +@@ -1373,6 +1373,27 @@ public final class Bukkit { return server.getOfflinePlayer(name); } @@ -37,10 +37,10 @@ index 9e14744feb0c5ad0b8df1bcbaf19d75327ad2148..e832c6a8a10bc29d9ab20cbdf394cf83 * Gets the player by the given UUID, regardless if they are offline or * online. diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 1fda10dcabdcfe0cd51c3532576bddeb4fa877b8..9477563308adc64fff065eb0a50654baa0d22b84 100644 +index 8aba385b9d1a9b71c3304f1d802f18d4434f34d5..395f7910f535bfd33a5676b011ab62a53e30e140 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1147,6 +1147,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1157,6 +1157,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public OfflinePlayer getOfflinePlayer(@NotNull String name); diff --git a/patches/api/0219-Add-ignore-discounts-API.patch b/patches/api/0218-Add-ignore-discounts-API.patch similarity index 100% rename from patches/api/0219-Add-ignore-discounts-API.patch rename to patches/api/0218-Add-ignore-discounts-API.patch diff --git a/patches/api/0220-Item-no-age-no-player-pickup.patch b/patches/api/0219-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/api/0220-Item-no-age-no-player-pickup.patch rename to patches/api/0219-Item-no-age-no-player-pickup.patch diff --git a/patches/api/0221-Beacon-API-custom-effect-ranges.patch b/patches/api/0220-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/api/0221-Beacon-API-custom-effect-ranges.patch rename to patches/api/0220-Beacon-API-custom-effect-ranges.patch diff --git a/patches/api/0222-Add-API-for-quit-reason.patch b/patches/api/0221-Add-API-for-quit-reason.patch similarity index 100% rename from patches/api/0222-Add-API-for-quit-reason.patch rename to patches/api/0221-Add-API-for-quit-reason.patch diff --git a/patches/api/0223-Add-Destroy-Speed-API.patch b/patches/api/0222-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/api/0223-Add-Destroy-Speed-API.patch rename to patches/api/0222-Add-Destroy-Speed-API.patch diff --git a/patches/api/0224-Add-LivingEntity-clearActiveItem.patch b/patches/api/0223-Add-LivingEntity-clearActiveItem.patch similarity index 82% rename from patches/api/0224-Add-LivingEntity-clearActiveItem.patch rename to patches/api/0223-Add-LivingEntity-clearActiveItem.patch index c90bd62fa6..ae2af3de67 100644 --- a/patches/api/0224-Add-LivingEntity-clearActiveItem.patch +++ b/patches/api/0223-Add-LivingEntity-clearActiveItem.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 7dbb3737cd175365b89a5c8d0542b16e812b8629..bd871bf479cb9f4b31832ac5cb363f314b32a047 100644 +index 79ef7733ba6fd7d34f8bf87218779af5ba74d084..739a8ef8b0d141dd01a15df8666f31fef4fd590e 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1059,6 +1059,11 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1061,6 +1061,11 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ org.bukkit.inventory.@NotNull ItemStack getActiveItem(); diff --git a/patches/api/0225-Add-PlayerItemCooldownEvent.patch b/patches/api/0224-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/api/0225-Add-PlayerItemCooldownEvent.patch rename to patches/api/0224-Add-PlayerItemCooldownEvent.patch diff --git a/patches/api/0226-More-lightning-API.patch b/patches/api/0225-More-lightning-API.patch similarity index 100% rename from patches/api/0226-More-lightning-API.patch rename to patches/api/0225-More-lightning-API.patch diff --git a/patches/api/0227-Add-PlayerShearBlockEvent.patch b/patches/api/0226-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/api/0227-Add-PlayerShearBlockEvent.patch rename to patches/api/0226-Add-PlayerShearBlockEvent.patch diff --git a/patches/api/0228-Player-Chunk-Load-Unload-Events.patch b/patches/api/0227-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/api/0228-Player-Chunk-Load-Unload-Events.patch rename to patches/api/0227-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/api/0229-Expose-LivingEntity-hurt-direction.patch b/patches/api/0228-Expose-LivingEntity-hurt-direction.patch similarity index 91% rename from patches/api/0229-Expose-LivingEntity-hurt-direction.patch rename to patches/api/0228-Expose-LivingEntity-hurt-direction.patch index 2bff91fc78..49b8ae1828 100644 --- a/patches/api/0229-Expose-LivingEntity-hurt-direction.patch +++ b/patches/api/0228-Expose-LivingEntity-hurt-direction.patch @@ -26,10 +26,10 @@ index 5ecfb98540c00da05b13bc5370debb89c52cc76f..083d5798ccc7f37c6df5e234c7ef2332 * Get the sleep ticks of the player. This value may be capped. * diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index bd871bf479cb9f4b31832ac5cb363f314b32a047..54cdbfdc5d2280069045317bac919ff4689872f5 100644 +index 739a8ef8b0d141dd01a15df8666f31fef4fd590e..ac0f03b6b3d451b4540dd2efee729b32f7f9e371 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1199,4 +1199,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1201,4 +1201,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void playPickupItemAnimation(@NotNull Item item, int quantity); // Paper end - pickup animation API diff --git a/patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/api/0229-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/api/0229-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/api/0231-Added-PlayerTradeEvent.patch b/patches/api/0230-Added-PlayerTradeEvent.patch similarity index 100% rename from patches/api/0231-Added-PlayerTradeEvent.patch rename to patches/api/0230-Added-PlayerTradeEvent.patch diff --git a/patches/api/0232-Add-TargetHitEvent-API.patch b/patches/api/0231-Add-TargetHitEvent-API.patch similarity index 100% rename from patches/api/0232-Add-TargetHitEvent-API.patch rename to patches/api/0231-Add-TargetHitEvent-API.patch diff --git a/patches/api/0233-Additional-Block-Material-API-s.patch b/patches/api/0232-Additional-Block-Material-API-s.patch similarity index 100% rename from patches/api/0233-Additional-Block-Material-API-s.patch rename to patches/api/0232-Additional-Block-Material-API-s.patch diff --git a/patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/api/0233-Add-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/api/0233-Add-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch b/patches/api/0234-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/api/0234-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/api/0236-Zombie-API-breaking-doors.patch b/patches/api/0235-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/api/0236-Zombie-API-breaking-doors.patch rename to patches/api/0235-Zombie-API-breaking-doors.patch diff --git a/patches/api/0237-Add-EntityLoadCrossbowEvent.patch b/patches/api/0236-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/api/0237-Add-EntityLoadCrossbowEvent.patch rename to patches/api/0236-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/api/0238-Added-WorldGameRuleChangeEvent.patch b/patches/api/0237-Added-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/api/0238-Added-WorldGameRuleChangeEvent.patch rename to patches/api/0237-Added-WorldGameRuleChangeEvent.patch diff --git a/patches/api/0239-Added-ServerResourcesReloadedEvent.patch b/patches/api/0238-Added-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/api/0239-Added-ServerResourcesReloadedEvent.patch rename to patches/api/0238-Added-ServerResourcesReloadedEvent.patch diff --git a/patches/api/0240-Add-BlockFailedDispenseEvent.patch b/patches/api/0239-Add-BlockFailedDispenseEvent.patch similarity index 100% rename from patches/api/0240-Add-BlockFailedDispenseEvent.patch rename to patches/api/0239-Add-BlockFailedDispenseEvent.patch diff --git a/patches/api/0241-Added-PlayerLecternPageChangeEvent.patch b/patches/api/0240-Added-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/api/0241-Added-PlayerLecternPageChangeEvent.patch rename to patches/api/0240-Added-PlayerLecternPageChangeEvent.patch diff --git a/patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch b/patches/api/0241-Added-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch rename to patches/api/0241-Added-PlayerLoomPatternSelectEvent.patch diff --git a/patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch b/patches/api/0242-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch similarity index 100% rename from patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch rename to patches/api/0242-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch diff --git a/patches/api/0244-Add-sendOpLevel-API.patch b/patches/api/0243-Add-sendOpLevel-API.patch similarity index 88% rename from patches/api/0244-Add-sendOpLevel-API.patch rename to patches/api/0243-Add-sendOpLevel-API.patch index 3ea062cd8c..c6d0eae4c3 100644 --- a/patches/api/0244-Add-sendOpLevel-API.patch +++ b/patches/api/0243-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 f52f35902cc6a8af5ee60cf815caef7a43372158..d735ed635022d170c6b1080ed87f3c2a799202f6 100644 +index 28a811be93b29f105dad1db91a8adccbdf9fcaf7..752b2bac47588c0f75a13a7e6ec2be3c2f5a149e 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3264,6 +3264,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3308,6 +3308,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM } // Paper end - elytra boost API diff --git a/patches/api/0245-Add-PaperRegistry.patch b/patches/api/0244-Add-PaperRegistry.patch similarity index 100% rename from patches/api/0245-Add-PaperRegistry.patch rename to patches/api/0244-Add-PaperRegistry.patch diff --git a/patches/api/0246-Add-StructuresLocateEvent.patch b/patches/api/0245-Add-StructuresLocateEvent.patch similarity index 99% rename from patches/api/0246-Add-StructuresLocateEvent.patch rename to patches/api/0245-Add-StructuresLocateEvent.patch index 746b674c5d..eacbdcf8ea 100644 --- a/patches/api/0246-Add-StructuresLocateEvent.patch +++ b/patches/api/0245-Add-StructuresLocateEvent.patch @@ -513,10 +513,10 @@ index 0000000000000000000000000000000000000000..1e7b53f9bc13dcd5a0a4a40004591e4f + } +} diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java -index b3f8a2611ceb57f5d0b5c300fa80d8bad121498d..4bc53793aade0887fa650a4bbf51d2e57678bd90 100644 +index 18be407d4fb401d89f3a46a9bce044bacd8a888f..af3dab66c904d1fc0bbbdb8898e9ff8b2631bca7 100644 --- a/src/main/java/org/bukkit/Registry.java +++ b/src/main/java/org/bukkit/Registry.java -@@ -268,6 +268,17 @@ public interface Registry extends Iterable { +@@ -283,6 +283,17 @@ public interface Registry extends Iterable { * @see GameEvent */ Registry GAME_EVENT = Objects.requireNonNull(Bukkit.getRegistry(GameEvent.class), "No registry present for GameEvent. This is a bug."); diff --git a/patches/api/0247-Add-BlockPreDispenseEvent.patch b/patches/api/0246-Add-BlockPreDispenseEvent.patch similarity index 100% rename from patches/api/0247-Add-BlockPreDispenseEvent.patch rename to patches/api/0246-Add-BlockPreDispenseEvent.patch diff --git a/patches/api/0248-Added-PlayerChangeBeaconEffectEvent.patch b/patches/api/0247-Added-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/api/0248-Added-PlayerChangeBeaconEffectEvent.patch rename to patches/api/0247-Added-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/api/0249-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/api/0248-Added-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/api/0249-Added-PlayerStonecutterRecipeSelectEvent.patch rename to patches/api/0248-Added-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/api/0250-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/api/0249-Add-dropLeash-variable-to-EntityUnleashEvent.patch similarity index 100% rename from patches/api/0250-Add-dropLeash-variable-to-EntityUnleashEvent.patch rename to patches/api/0249-Add-dropLeash-variable-to-EntityUnleashEvent.patch diff --git a/patches/api/0251-add-DragonEggFormEvent.patch b/patches/api/0250-add-DragonEggFormEvent.patch similarity index 100% rename from patches/api/0251-add-DragonEggFormEvent.patch rename to patches/api/0250-add-DragonEggFormEvent.patch diff --git a/patches/api/0252-EntityMoveEvent.patch b/patches/api/0251-EntityMoveEvent.patch similarity index 100% rename from patches/api/0252-EntityMoveEvent.patch rename to patches/api/0251-EntityMoveEvent.patch diff --git a/patches/api/0253-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/api/0252-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/api/0253-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/api/0252-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/api/0254-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/api/0253-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/api/0254-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/api/0253-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/api/0255-living-entity-allow-attribute-registration.patch b/patches/api/0254-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/api/0255-living-entity-allow-attribute-registration.patch rename to patches/api/0254-living-entity-allow-attribute-registration.patch diff --git a/patches/api/0256-Add-missing-effects.patch b/patches/api/0255-Add-missing-effects.patch similarity index 94% rename from patches/api/0256-Add-missing-effects.patch rename to patches/api/0255-Add-missing-effects.patch index 63c42ebfec..63710b51cc 100644 --- a/patches/api/0256-Add-missing-effects.patch +++ b/patches/api/0255-Add-missing-effects.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add missing effects Co-authored-by: Jake Potrebic diff --git a/src/main/java/org/bukkit/Effect.java b/src/main/java/org/bukkit/Effect.java -index 611b7df0e31de932f15c2f13bd8ed286e0b3b43f..b8ad6ec6795433770604a1cc93384ef639e810bd 100644 +index fd9cf25f2fdef5ee3b7143f27e5f43dfe3f21a38..2d50f5e3f95e280ae5741514d5eba6440d9966ce 100644 --- a/src/main/java/org/bukkit/Effect.java +++ b/src/main/java/org/bukkit/Effect.java -@@ -132,12 +132,12 @@ public enum Effect { +@@ -131,9 +131,9 @@ public enum Effect { /** * Sound of a block breaking. Needs block ID as additional info. */ @@ -20,12 +20,8 @@ index 611b7df0e31de932f15c2f13bd8ed286e0b3b43f..b8ad6ec6795433770604a1cc93384ef6 + * Visual effect of a splash potion breaking. Needs color data value as * additional info. */ -- POTION_BREAK(2002, Type.VISUAL, Potion.class), -+ POTION_BREAK(2002, Type.VISUAL, Color.class, Potion.class), // Paper - color is correct - /** - * Visual effect of an instant splash potion breaking. Needs color data - * value as additional info. -@@ -337,21 +337,146 @@ public enum Effect { + POTION_BREAK(2002, Type.VISUAL, Color.class), +@@ -336,21 +336,146 @@ public enum Effect { * block. */ OXIDISED_COPPER_SCRAPE(3005, Type.VISUAL), @@ -176,7 +172,7 @@ index 611b7df0e31de932f15c2f13bd8ed286e0b3b43f..b8ad6ec6795433770604a1cc93384ef6 } /** -@@ -367,8 +492,10 @@ public enum Effect { +@@ -366,8 +491,10 @@ public enum Effect { /** * @return The type of the effect. @@ -187,7 +183,7 @@ index 611b7df0e31de932f15c2f13bd8ed286e0b3b43f..b8ad6ec6795433770604a1cc93384ef6 public Type getType() { return this.type; } -@@ -379,8 +506,15 @@ public enum Effect { +@@ -378,8 +505,15 @@ public enum Effect { */ @Nullable public Class getData() { @@ -204,7 +200,7 @@ index 611b7df0e31de932f15c2f13bd8ed286e0b3b43f..b8ad6ec6795433770604a1cc93384ef6 /** * Gets the Effect associated with the given ID. -@@ -397,12 +531,26 @@ public enum Effect { +@@ -396,12 +530,26 @@ public enum Effect { static { for (Effect effect : values()) { diff --git a/patches/api/0257-Expose-Tracked-Players.patch b/patches/api/0256-Expose-Tracked-Players.patch similarity index 84% rename from patches/api/0257-Expose-Tracked-Players.patch rename to patches/api/0256-Expose-Tracked-Players.patch index 6c5f47bccd..368fb84d94 100644 --- a/patches/api/0257-Expose-Tracked-Players.patch +++ b/patches/api/0256-Expose-Tracked-Players.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose Tracked Players diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 9711a8077238383f23fb7aa2c20b2c089776e3f8..b32683b5e4431950d9dccec3ae11f6377c7b0da7 100644 +index e9c3c5c4099f7bf7f83bde0b47fd193a3b401f0a..c7d6a328def83619dca9b6122aeb5870e4585e70 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -888,5 +888,14 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -899,5 +899,14 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * Check if entity is inside a ticking chunk */ boolean isTicking(); diff --git a/patches/api/0258-Cache-the-result-of-Material-isBlock.patch b/patches/api/0257-Cache-the-result-of-Material-isBlock.patch similarity index 81% rename from patches/api/0258-Cache-the-result-of-Material-isBlock.patch rename to patches/api/0257-Cache-the-result-of-Material-isBlock.patch index ee04af53bb..6077bfb54d 100644 --- a/patches/api/0258-Cache-the-result-of-Material-isBlock.patch +++ b/patches/api/0257-Cache-the-result-of-Material-isBlock.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Cache the result of Material#isBlock diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index af1dca2385215e8fd19353aa6e9c024d4ad814e1..85604d2c364c41fed24257a9b02ceeb58712f6a2 100644 +index 6551bb9409f9714033532b5cfe9219ed84e438f2..852217efbb8dfab445e625a61f8e7f7ba51e5fd6 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -4643,6 +4643,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -4681,6 +4681,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla public final Class data; private final boolean legacy; private final NamespacedKey key; @@ -16,7 +16,7 @@ index af1dca2385215e8fd19353aa6e9c024d4ad814e1..85604d2c364c41fed24257a9b02ceeb5 private Material(final int id) { this(id, 64); -@@ -4841,6 +4842,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -4879,6 +4880,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla * @return true if this material is a block */ public boolean isBlock() { @@ -28,7 +28,7 @@ index af1dca2385215e8fd19353aa6e9c024d4ad814e1..85604d2c364c41fed24257a9b02ceeb5 switch (this) { // case ACACIA_BUTTON: -@@ -6082,6 +6088,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -6123,6 +6129,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla static { for (Material material : values()) { BY_NAME.put(material.name(), material); diff --git a/patches/api/0259-Add-worldborder-events.patch b/patches/api/0258-Add-worldborder-events.patch similarity index 100% rename from patches/api/0259-Add-worldborder-events.patch rename to patches/api/0258-Add-worldborder-events.patch diff --git a/patches/api/0260-added-PlayerNameEntityEvent.patch b/patches/api/0259-added-PlayerNameEntityEvent.patch similarity index 100% rename from patches/api/0260-added-PlayerNameEntityEvent.patch rename to patches/api/0259-added-PlayerNameEntityEvent.patch diff --git a/patches/api/0261-Add-recipe-to-cook-events.patch b/patches/api/0260-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/api/0261-Add-recipe-to-cook-events.patch rename to patches/api/0260-Add-recipe-to-cook-events.patch diff --git a/patches/api/0262-Add-Block-isValidTool.patch b/patches/api/0261-Add-Block-isValidTool.patch similarity index 100% rename from patches/api/0262-Add-Block-isValidTool.patch rename to patches/api/0261-Add-Block-isValidTool.patch diff --git a/patches/api/0263-Expand-world-key-API.patch b/patches/api/0262-Expand-world-key-API.patch similarity index 95% rename from patches/api/0263-Expand-world-key-API.patch rename to patches/api/0262-Expand-world-key-API.patch index a6e79339f4..0beb2158ec 100644 --- a/patches/api/0263-Expand-world-key-API.patch +++ b/patches/api/0262-Expand-world-key-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expand world key API diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index e832c6a8a10bc29d9ab20cbdf394cf836eb2f6a5..4b3c91575f2609ad1b1177384f6f21151a535054 100644 +index 732ed3724e784ad659cb4411dbd73b42a8330a2c..d078ea797cf4c6ab291aec3ad7fbd4740017286c 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -862,6 +862,18 @@ public final class Bukkit { +@@ -864,6 +864,18 @@ public final class Bukkit { public static World getWorld(@NotNull UUID uid) { return server.getWorld(uid); } @@ -56,10 +56,10 @@ index 27eff0826d5b5b48697fefd9571886e7bbce74b1..d8b1fa79dc24138dc71e32c14bda71c1 // Paper end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 9477563308adc64fff065eb0a50654baa0d22b84..5bb94245c33105e57131b3d0867ef707c4aed79c 100644 +index 395f7910f535bfd33a5676b011ab62a53e30e140..e6598c36cfc98282f30a57105986a295f1c94676 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -720,6 +720,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -722,6 +722,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @Nullable public World getWorld(@NotNull UUID uid); diff --git a/patches/api/0264-Item-Rarity-API.patch b/patches/api/0263-Item-Rarity-API.patch similarity index 95% rename from patches/api/0264-Item-Rarity-API.patch rename to patches/api/0263-Item-Rarity-API.patch index b074dce96b..88e0562beb 100644 --- a/patches/api/0264-Item-Rarity-API.patch +++ b/patches/api/0263-Item-Rarity-API.patch @@ -39,10 +39,10 @@ index 0000000000000000000000000000000000000000..74ef8395cc040ce488c2acaa416db202 + } +} diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 85604d2c364c41fed24257a9b02ceeb58712f6a2..8fd928cfe61ab6f06c52eb5e4561fd6860e1f8d9 100644 +index 852217efbb8dfab445e625a61f8e7f7ba51e5fd6..b58383b5e3077cbd5df65b8147693aa9543493ef 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -4709,6 +4709,17 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -4747,6 +4747,17 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla return Bukkit.getUnsafe().getBlockTranslationKey(this); } } diff --git a/patches/api/0265-Expose-protocol-version.patch b/patches/api/0264-Expose-protocol-version.patch similarity index 100% rename from patches/api/0265-Expose-protocol-version.patch rename to patches/api/0264-Expose-protocol-version.patch diff --git a/patches/api/0266-add-isDeeplySleeping-to-HumanEntity.patch b/patches/api/0265-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/api/0266-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/api/0265-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/api/0267-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/api/0266-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/api/0267-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/api/0266-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/api/0268-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/api/0267-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/api/0268-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/api/0267-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/api/0269-Added-PlayerDeepSleepEvent.patch b/patches/api/0268-Added-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/api/0269-Added-PlayerDeepSleepEvent.patch rename to patches/api/0268-Added-PlayerDeepSleepEvent.patch diff --git a/patches/api/0270-More-World-API.patch b/patches/api/0269-More-World-API.patch similarity index 96% rename from patches/api/0270-More-World-API.patch rename to patches/api/0269-More-World-API.patch index 139bb504c0..7340819de5 100644 --- a/patches/api/0270-More-World-API.patch +++ b/patches/api/0269-More-World-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] More World API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 0a7c97aa289687cfbf6ae1a222f5eb2850f8f43e..4f724c337da08da6bbc8b1452dbd64eefd54a879 100644 +index 77314fdbd99a5cc34e7a1df4692ba8a1685ef002..f4d31d9d0f4cbd2621adf97a20b65ae83e5fd064 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -3833,6 +3833,122 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -3849,6 +3849,122 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable StructureSearchResult locateNearestStructure(@NotNull Location origin, @NotNull Structure structure, int radius, boolean findUnexplored); diff --git a/patches/api/0271-Added-PlayerBedFailEnterEvent.patch b/patches/api/0270-Added-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/api/0271-Added-PlayerBedFailEnterEvent.patch rename to patches/api/0270-Added-PlayerBedFailEnterEvent.patch diff --git a/patches/api/0272-Introduce-beacon-activation-deactivation-events.patch b/patches/api/0271-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/api/0272-Introduce-beacon-activation-deactivation-events.patch rename to patches/api/0271-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/api/0273-PlayerMoveEvent-Improvements.patch b/patches/api/0272-PlayerMoveEvent-Improvements.patch similarity index 100% rename from patches/api/0273-PlayerMoveEvent-Improvements.patch rename to patches/api/0272-PlayerMoveEvent-Improvements.patch diff --git a/patches/api/0274-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/api/0273-add-RespawnFlags-to-PlayerRespawnEvent.patch similarity index 100% rename from patches/api/0274-add-RespawnFlags-to-PlayerRespawnEvent.patch rename to patches/api/0273-add-RespawnFlags-to-PlayerRespawnEvent.patch diff --git a/patches/api/0275-Add-more-WanderingTrader-API.patch b/patches/api/0274-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/api/0275-Add-more-WanderingTrader-API.patch rename to patches/api/0274-Add-more-WanderingTrader-API.patch diff --git a/patches/api/0276-Add-EntityBlockStorage-clearEntities.patch b/patches/api/0275-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/api/0276-Add-EntityBlockStorage-clearEntities.patch rename to patches/api/0275-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/api/0277-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/api/0276-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/api/0277-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/api/0276-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/api/0278-Inventory-close.patch b/patches/api/0277-Inventory-close.patch similarity index 100% rename from patches/api/0278-Inventory-close.patch rename to patches/api/0277-Inventory-close.patch diff --git a/patches/api/0279-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/api/0278-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/api/0279-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/api/0278-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/api/0280-Add-basic-Datapack-API.patch b/patches/api/0279-Add-basic-Datapack-API.patch similarity index 91% rename from patches/api/0280-Add-basic-Datapack-API.patch rename to patches/api/0279-Add-basic-Datapack-API.patch index 61600f3668..6d8473b377 100644 --- a/patches/api/0280-Add-basic-Datapack-API.patch +++ b/patches/api/0279-Add-basic-Datapack-API.patch @@ -70,10 +70,10 @@ index 0000000000000000000000000000000000000000..58f78d5e91beacaf710f62461cf869f7 + +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 4b3c91575f2609ad1b1177384f6f21151a535054..6ac4c0c6c2245e6bee9575ff4804994648112d78 100644 +index d078ea797cf4c6ab291aec3ad7fbd4740017286c..c3d3c7d05a03658157d49c6ff1ea1d7d085a6fd4 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -328,9 +328,11 @@ public final class Bukkit { +@@ -330,9 +330,11 @@ public final class Bukkit { /** * Get the DataPack Manager. * @@ -85,7 +85,7 @@ index 4b3c91575f2609ad1b1177384f6f21151a535054..6ac4c0c6c2245e6bee9575ff48049946 public static DataPackManager getDataPackManager() { return server.getDataPackManager(); } -@@ -2562,6 +2564,14 @@ public final class Bukkit { +@@ -2585,6 +2587,14 @@ public final class Bukkit { public static com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() { return server.getMobGoals(); } @@ -101,10 +101,10 @@ index 4b3c91575f2609ad1b1177384f6f21151a535054..6ac4c0c6c2245e6bee9575ff48049946 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 5bb94245c33105e57131b3d0867ef707c4aed79c..052d0e420f2631ff925bb5df4a41a1cecc2d7e16 100644 +index e6598c36cfc98282f30a57105986a295f1c94676..61ee087ec4a75ee8b10e204b4cdd1bab5f066819 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -264,9 +264,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -266,9 +266,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi /** * Get the DataPack Manager. * @@ -116,7 +116,7 @@ index 5bb94245c33105e57131b3d0867ef707c4aed79c..052d0e420f2631ff925bb5df4a41a1ce public DataPackManager getDataPackManager(); /** -@@ -2232,5 +2234,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2251,5 +2253,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull com.destroystokyo.paper.entity.ai.MobGoals getMobGoals(); diff --git a/patches/api/0281-additions-to-PlayerGameModeChangeEvent.patch b/patches/api/0280-additions-to-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/api/0281-additions-to-PlayerGameModeChangeEvent.patch rename to patches/api/0280-additions-to-PlayerGameModeChangeEvent.patch diff --git a/patches/api/0282-ItemStack-repair-check-API.patch b/patches/api/0281-ItemStack-repair-check-API.patch similarity index 100% rename from patches/api/0282-ItemStack-repair-check-API.patch rename to patches/api/0281-ItemStack-repair-check-API.patch diff --git a/patches/api/0283-More-Enchantment-API.patch b/patches/api/0282-More-Enchantment-API.patch similarity index 96% rename from patches/api/0283-More-Enchantment-API.patch rename to patches/api/0282-More-Enchantment-API.patch index e6ccd01964..8348605555 100644 --- a/patches/api/0283-More-Enchantment-API.patch +++ b/patches/api/0282-More-Enchantment-API.patch @@ -36,10 +36,10 @@ index 0000000000000000000000000000000000000000..e6a40c1fcea761bd66743b50e3da3d14 + } +} diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java -index 13f25ff4a4dd5a98f5f690c54e5cba6ef145c2d0..4264c6eb7e5794019859cfca592b57e574fcd833 100644 +index 5b831dc9666b68fd9f4497aa3b07beba13fb215f..9db31242d736a5be15b48f6cfada5a5121c212dd 100644 --- a/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/src/main/java/org/bukkit/enchantments/Enchantment.java -@@ -270,11 +270,7 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve +@@ -291,11 +291,7 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve * Cursed enchantments are found the same way treasure enchantments are * * @return true if the enchantment is cursed @@ -51,7 +51,7 @@ index 13f25ff4a4dd5a98f5f690c54e5cba6ef145c2d0..4264c6eb7e5794019859cfca592b57e5 public abstract boolean isCursed(); /** -@@ -308,6 +304,70 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve +@@ -329,6 +325,70 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve * @return the name of the enchantment with {@code level} applied */ public abstract net.kyori.adventure.text.@NotNull Component displayName(int level); diff --git a/patches/api/0284-Add-Mob-lookAt-API.patch b/patches/api/0283-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/api/0284-Add-Mob-lookAt-API.patch rename to patches/api/0283-Add-Mob-lookAt-API.patch diff --git a/patches/api/0285-ItemStack-editMeta.patch b/patches/api/0284-ItemStack-editMeta.patch similarity index 100% rename from patches/api/0285-ItemStack-editMeta.patch rename to patches/api/0284-ItemStack-editMeta.patch diff --git a/patches/api/0286-Add-EntityInsideBlockEvent.patch b/patches/api/0285-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/api/0286-Add-EntityInsideBlockEvent.patch rename to patches/api/0285-Add-EntityInsideBlockEvent.patch diff --git a/patches/api/0287-Attributes-API-for-item-defaults.patch b/patches/api/0286-Attributes-API-for-item-defaults.patch similarity index 93% rename from patches/api/0287-Attributes-API-for-item-defaults.patch rename to patches/api/0286-Attributes-API-for-item-defaults.patch index ce95405628..ca7f6859c0 100644 --- a/patches/api/0287-Attributes-API-for-item-defaults.patch +++ b/patches/api/0286-Attributes-API-for-item-defaults.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Attributes API for item defaults diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 8fd928cfe61ab6f06c52eb5e4561fd6860e1f8d9..64ca3c676703eed55b4ac8a2d4561d483c6935b1 100644 +index b58383b5e3077cbd5df65b8147693aa9543493ef..d5bdd25f6243d99b6b8c0acd6980db977f75c7e4 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -4720,6 +4720,21 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -4758,6 +4758,21 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla public io.papermc.paper.inventory.ItemRarity getItemRarity() { return Bukkit.getUnsafe().getItemRarity(this); } diff --git a/patches/api/0288-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/api/0287-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/api/0288-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/api/0287-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/api/0289-More-Lidded-Block-API.patch b/patches/api/0288-More-Lidded-Block-API.patch similarity index 100% rename from patches/api/0289-More-Lidded-Block-API.patch rename to patches/api/0288-More-Lidded-Block-API.patch diff --git a/patches/api/0290-Add-PlayerKickEvent-causes.patch b/patches/api/0289-Add-PlayerKickEvent-causes.patch similarity index 96% rename from patches/api/0290-Add-PlayerKickEvent-causes.patch rename to patches/api/0289-Add-PlayerKickEvent-causes.patch index b23128c57d..eea9e754d1 100644 --- a/patches/api/0290-Add-PlayerKickEvent-causes.patch +++ b/patches/api/0289-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 d735ed635022d170c6b1080ed87f3c2a799202f6..4906bec154d0f60420fbe2cffa8c7df0918ca61b 100644 +index 752b2bac47588c0f75a13a7e6ec2be3c2f5a149e..b177daa7a974125dc4ccf1bc6d119ad42dba3514 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -277,6 +277,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -321,6 +321,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/0291-Add-PufferFishStateChangeEvent.patch b/patches/api/0290-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/api/0291-Add-PufferFishStateChangeEvent.patch rename to patches/api/0290-Add-PufferFishStateChangeEvent.patch diff --git a/patches/api/0292-Add-BellRevealRaiderEvent.patch b/patches/api/0291-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/api/0292-Add-BellRevealRaiderEvent.patch rename to patches/api/0291-Add-BellRevealRaiderEvent.patch diff --git a/patches/api/0293-Add-ElderGuardianAppearanceEvent.patch b/patches/api/0292-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/api/0293-Add-ElderGuardianAppearanceEvent.patch rename to patches/api/0292-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/api/0294-Add-more-line-of-sight-methods.patch b/patches/api/0293-Add-more-line-of-sight-methods.patch similarity index 95% rename from patches/api/0294-Add-more-line-of-sight-methods.patch rename to patches/api/0293-Add-more-line-of-sight-methods.patch index cd8d86699e..01d7f5db31 100644 --- a/patches/api/0294-Add-more-line-of-sight-methods.patch +++ b/patches/api/0293-Add-more-line-of-sight-methods.patch @@ -23,7 +23,7 @@ index d8b1fa79dc24138dc71e32c14bda71c1d570ed88..b68367f123f029c3ff47eab6bfabd7a8 // Paper end } diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 54cdbfdc5d2280069045317bac919ff4689872f5..42ece8fd69f35fe38d9e49eed1d578d19229d721 100644 +index ac0f03b6b3d451b4540dd2efee729b32f7f9e371..19aecfc5d9387d9ae94890036f845b58a9327642 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -622,6 +622,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0295-Add-WaterBottleSplashEvent.patch b/patches/api/0294-Add-WaterBottleSplashEvent.patch similarity index 100% rename from patches/api/0295-Add-WaterBottleSplashEvent.patch rename to patches/api/0294-Add-WaterBottleSplashEvent.patch diff --git a/patches/api/0296-Add-more-LimitedRegion-API.patch b/patches/api/0295-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/api/0296-Add-more-LimitedRegion-API.patch rename to patches/api/0295-Add-more-LimitedRegion-API.patch diff --git a/patches/api/0297-Missing-Entity-API.patch b/patches/api/0296-Missing-Entity-API.patch similarity index 98% rename from patches/api/0297-Missing-Entity-API.patch rename to patches/api/0296-Missing-Entity-API.patch index 76a4b85361..ed30fe8df6 100644 --- a/patches/api/0297-Missing-Entity-API.patch +++ b/patches/api/0296-Missing-Entity-API.patch @@ -143,10 +143,10 @@ index 0d88dce9978243a1f995c5fb448c5d71b01136eb..8b1048c94dffd058eb9fd9144f7f59fc + // Paper end - Horse API } diff --git a/src/main/java/org/bukkit/entity/AreaEffectCloud.java b/src/main/java/org/bukkit/entity/AreaEffectCloud.java -index 8d6caae8ba11e1fe73cd5f88657eaac5f66c9d3d..fc59d6d4c2d43b09aef3a6f30b73d26280e831fa 100644 +index 3c65da551aca046986fc0302de3ccc149ee9526c..7f989f2025d16b368829c45f08b8cc8537c99e13 100644 --- a/src/main/java/org/bukkit/entity/AreaEffectCloud.java +++ b/src/main/java/org/bukkit/entity/AreaEffectCloud.java -@@ -259,4 +259,20 @@ public interface AreaEffectCloud extends Entity { +@@ -239,4 +239,20 @@ public interface AreaEffectCloud extends Entity { * @param source the {@link ProjectileSource} that threw the LingeringPotion */ public void setSource(@Nullable ProjectileSource source); @@ -417,7 +417,7 @@ index 9e7f42caab1204036f4203354c115fd40c6def92..138d2530de2410f4a9424dabd3e5ce0c + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index b32683b5e4431950d9dccec3ae11f6377c7b0da7..b2466aa08ebb26f3a5edd6a4b2c7e12f7a90ef0a 100644 +index c7d6a328def83619dca9b6122aeb5870e4585e70..795e799fec7cfd65a0e08bb3f941148d85ff4c3b 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -289,6 +289,40 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @@ -585,10 +585,10 @@ index 6b3c9bef9a8a34ddc6ff42cf358541a2665bf5e3..9c618a27d590f186f29c5d9094fc565e + // Paper end } diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 42ece8fd69f35fe38d9e49eed1d578d19229d721..5d62d7393dde2ccf56e9c09d44e17fdde79cf760 100644 +index 19aecfc5d9387d9ae94890036f845b58a9327642..0b789c2732e2d86f3201e65004543322a9a28b8b 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -992,6 +992,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -994,6 +994,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * * @param invisible If the entity is invisible */ @@ -596,7 +596,7 @@ index 42ece8fd69f35fe38d9e49eed1d578d19229d721..5d62d7393dde2ccf56e9c09d44e17fdd public void setInvisible(boolean invisible); /** -@@ -999,6 +1000,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1001,6 +1002,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * * @return Whether the entity is invisible */ @@ -604,7 +604,7 @@ index 42ece8fd69f35fe38d9e49eed1d578d19229d721..5d62d7393dde2ccf56e9c09d44e17fdd public boolean isInvisible(); // Paper start -@@ -1035,6 +1037,57 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1037,6 +1039,57 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource void setShieldBlockingDelay(int delay); // Paper end diff --git a/patches/api/0298-Adds-PlayerArmSwingEvent.patch b/patches/api/0297-Adds-PlayerArmSwingEvent.patch similarity index 100% rename from patches/api/0298-Adds-PlayerArmSwingEvent.patch rename to patches/api/0297-Adds-PlayerArmSwingEvent.patch diff --git a/patches/api/0299-Add-PlayerSignCommandPreprocessEvent.patch b/patches/api/0298-Add-PlayerSignCommandPreprocessEvent.patch similarity index 100% rename from patches/api/0299-Add-PlayerSignCommandPreprocessEvent.patch rename to patches/api/0298-Add-PlayerSignCommandPreprocessEvent.patch diff --git a/patches/api/0300-fix-empty-array-elements-in-command-arguments.patch b/patches/api/0299-fix-empty-array-elements-in-command-arguments.patch similarity index 100% rename from patches/api/0300-fix-empty-array-elements-in-command-arguments.patch rename to patches/api/0299-fix-empty-array-elements-in-command-arguments.patch diff --git a/patches/api/0301-Stinger-API.patch b/patches/api/0300-Stinger-API.patch similarity index 95% rename from patches/api/0301-Stinger-API.patch rename to patches/api/0300-Stinger-API.patch index bef937b254..14aff16ae5 100644 --- a/patches/api/0301-Stinger-API.patch +++ b/patches/api/0300-Stinger-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stinger API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 5d62d7393dde2ccf56e9c09d44e17fdde79cf760..be9fa1b6209a41712767283c6329046ca2795c09 100644 +index 0b789c2732e2d86f3201e65004543322a9a28b8b..b5551eed2e9090dcbbe97cae25a0c0545285c64f 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -451,6 +451,52 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0302-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/api/0301-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/api/0302-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/api/0301-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/api/0303-Add-PlayerSetSpawnEvent.patch b/patches/api/0302-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/api/0303-Add-PlayerSetSpawnEvent.patch rename to patches/api/0302-Add-PlayerSetSpawnEvent.patch diff --git a/patches/api/0304-Added-EntityDamageItemEvent.patch b/patches/api/0303-Added-EntityDamageItemEvent.patch similarity index 100% rename from patches/api/0304-Added-EntityDamageItemEvent.patch rename to patches/api/0303-Added-EntityDamageItemEvent.patch diff --git a/patches/api/0305-Make-EntityUnleashEvent-cancellable.patch b/patches/api/0304-Make-EntityUnleashEvent-cancellable.patch similarity index 100% rename from patches/api/0305-Make-EntityUnleashEvent-cancellable.patch rename to patches/api/0304-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/api/0306-Change-EnderEye-target-without-changing-other-things.patch b/patches/api/0305-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/api/0306-Change-EnderEye-target-without-changing-other-things.patch rename to patches/api/0305-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/api/0307-Add-BlockBreakBlockEvent.patch b/patches/api/0306-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/api/0307-Add-BlockBreakBlockEvent.patch rename to patches/api/0306-Add-BlockBreakBlockEvent.patch diff --git a/patches/api/0308-Add-helpers-for-left-right-click-to-Action.patch b/patches/api/0307-Add-helpers-for-left-right-click-to-Action.patch similarity index 100% rename from patches/api/0308-Add-helpers-for-left-right-click-to-Action.patch rename to patches/api/0307-Add-helpers-for-left-right-click-to-Action.patch diff --git a/patches/api/0309-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/api/0308-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/api/0309-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/api/0308-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/api/0310-More-CommandBlock-API.patch b/patches/api/0309-More-CommandBlock-API.patch similarity index 100% rename from patches/api/0310-More-CommandBlock-API.patch rename to patches/api/0309-More-CommandBlock-API.patch diff --git a/patches/api/0311-Add-missing-team-sidebar-display-slots.patch b/patches/api/0310-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/api/0311-Add-missing-team-sidebar-display-slots.patch rename to patches/api/0310-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/api/0312-add-back-EntityPortalExitEvent.patch b/patches/api/0311-add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/api/0312-add-back-EntityPortalExitEvent.patch rename to patches/api/0311-add-back-EntityPortalExitEvent.patch diff --git a/patches/api/0313-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/api/0312-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 95% rename from patches/api/0313-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/api/0312-Add-methods-to-find-targets-for-lightning-strikes.patch index 9c34b1a23f..ffa6fc8f05 100644 --- a/patches/api/0313-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/api/0312-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 4f724c337da08da6bbc8b1452dbd64eefd54a879..5c61b9964e9abe76b5604c73bdd211a9c1c9b619 100644 +index f4d31d9d0f4cbd2621adf97a20b65ae83e5fd064..6953851a5177e9df3746f7a743f27ef02845e522 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -746,6 +746,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0314-Get-entity-default-attributes.patch b/patches/api/0313-Get-entity-default-attributes.patch similarity index 94% rename from patches/api/0314-Get-entity-default-attributes.patch rename to patches/api/0313-Get-entity-default-attributes.patch index 281ddf96f2..4da56e835d 100644 --- a/patches/api/0314-Get-entity-default-attributes.patch +++ b/patches/api/0313-Get-entity-default-attributes.patch @@ -32,10 +32,10 @@ index db8ffa9b303b9128be175f383fdf838a4e0719e5..b205937d1cd627c1dd660277f69891b5 // Paper end } diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java -index 550d66e0d41878717c6a92caade4a8413674f012..4aaf268f58038cd5d4101ec3fbfdc20b544d6678 100644 +index 4ff2f0b70a89b3d1fb3f588d014e09b3cf8ed16f..3f8ca9c4c51b14818fe1bebf56a032e10f14c758 100644 --- a/src/main/java/org/bukkit/entity/EntityType.java +++ b/src/main/java/org/bukkit/entity/EntityType.java -@@ -457,6 +457,25 @@ public enum EntityType implements Keyed, Translatable, net.kyori.adventure.trans +@@ -452,6 +452,25 @@ public enum EntityType implements Keyed, Translatable, net.kyori.adventure.trans Preconditions.checkArgument(this != UNKNOWN, "UNKNOWN entities do not have translation keys"); return org.bukkit.Bukkit.getUnsafe().getTranslationKey(this); } diff --git a/patches/api/0315-Left-handed-API.patch b/patches/api/0314-Left-handed-API.patch similarity index 100% rename from patches/api/0315-Left-handed-API.patch rename to patches/api/0314-Left-handed-API.patch diff --git a/patches/api/0316-Add-critical-damage-API.patch b/patches/api/0315-Add-critical-damage-API.patch similarity index 100% rename from patches/api/0316-Add-critical-damage-API.patch rename to patches/api/0315-Add-critical-damage-API.patch diff --git a/patches/api/0317-Add-more-advancement-API.patch b/patches/api/0316-Add-more-advancement-API.patch similarity index 100% rename from patches/api/0317-Add-more-advancement-API.patch rename to patches/api/0316-Add-more-advancement-API.patch diff --git a/patches/api/0318-Fix-issues-with-mob-conversion.patch b/patches/api/0317-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/api/0318-Fix-issues-with-mob-conversion.patch rename to patches/api/0317-Fix-issues-with-mob-conversion.patch diff --git a/patches/api/0319-Add-isCollidable-methods-to-various-places.patch b/patches/api/0318-Add-isCollidable-methods-to-various-places.patch similarity index 90% rename from patches/api/0319-Add-isCollidable-methods-to-various-places.patch rename to patches/api/0318-Add-isCollidable-methods-to-various-places.patch index 65ecfe9e6c..d6f48e9138 100644 --- a/patches/api/0319-Add-isCollidable-methods-to-various-places.patch +++ b/patches/api/0318-Add-isCollidable-methods-to-various-places.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add isCollidable methods to various places diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 64ca3c676703eed55b4ac8a2d4561d483c6935b1..9f86ad25a57b3f6e6bda1ce657833837cb3b2292 100644 +index d5bdd25f6243d99b6b8c0acd6980db977f75c7e4..fab8dfb1bd80490f6891687914997cc8580542cd 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -4735,6 +4735,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -4773,6 +4773,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla public Multimap getItemAttributes(@NotNull EquipmentSlot equipmentSlot) { return Bukkit.getUnsafe().getItemAttributes(this, equipmentSlot); } @@ -63,10 +63,10 @@ index b5fe76a6353816a2d009dfa5921f8ada92984f34..42cc4f2ee960c0abf9c6688aeee41507 /** diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java -index a4f0a5270693e1c4af4fad827fa0a2ce753e07b5..c439cf0bb6c50db2b3304c60e50046f096392f9f 100644 +index fd4a9bdcfb6775dfbdb7492e6c9eb90722d2ecdc..e573e70d9e74e444783a7363e6cdac126124d86d 100644 --- a/src/main/java/org/bukkit/block/BlockState.java +++ b/src/main/java/org/bukkit/block/BlockState.java -@@ -235,4 +235,13 @@ public interface BlockState extends Metadatable { +@@ -245,4 +245,13 @@ public interface BlockState extends Metadatable { * or 'virtual' (e.g. on an itemstack) */ boolean isPlaced(); diff --git a/patches/api/0320-Goat-ram-API.patch b/patches/api/0319-Goat-ram-API.patch similarity index 100% rename from patches/api/0320-Goat-ram-API.patch rename to patches/api/0319-Goat-ram-API.patch diff --git a/patches/api/0321-Add-API-for-resetting-a-single-score.patch b/patches/api/0320-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/api/0321-Add-API-for-resetting-a-single-score.patch rename to patches/api/0320-Add-API-for-resetting-a-single-score.patch diff --git a/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0321-Add-Raw-Byte-Entity-Serialization.patch similarity index 94% rename from patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch rename to patches/api/0321-Add-Raw-Byte-Entity-Serialization.patch index 9e3ef08d86..d23f9d0469 100644 --- a/patches/api/0322-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/api/0321-Add-Raw-Byte-Entity-Serialization.patch @@ -24,10 +24,10 @@ index ca0b126bff245ed3fe69bc49c28499f7a7aa9556..6426d8585bba71b3e998b1eb078ac0fc * Creates and returns the next EntityId available. *

    diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index b2466aa08ebb26f3a5edd6a4b2c7e12f7a90ef0a..d4f84318265343242a9fca565e456c7a8c1d68f7 100644 +index 795e799fec7cfd65a0e08bb3f941148d85ff4c3b..461a48f8aa049e9b9e13acca3d54978212d9688c 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -931,5 +931,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -942,5 +942,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @Deprecated @NotNull Set getTrackedPlayers(); diff --git a/patches/api/0323-Add-PlayerItemFrameChangeEvent.patch b/patches/api/0322-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/api/0323-Add-PlayerItemFrameChangeEvent.patch rename to patches/api/0322-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/api/0324-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0323-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 92% rename from patches/api/0324-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/api/0323-Allow-delegation-to-vanilla-chunk-gen.patch index df4b25e905..664279d84f 100644 --- a/patches/api/0324-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/api/0323-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 6ac4c0c6c2245e6bee9575ff4804994648112d78..3d0e5045f0d6bf3bee4a94e552a57d2b7d481c02 100644 +index c3d3c7d05a03658157d49c6ff1ea1d7d085a6fd4..fa7a63ea108971790c28c4f32d280ee6f2a86c0b 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2082,6 +2082,24 @@ public final class Bukkit { +@@ -2105,6 +2105,24 @@ public final class Bukkit { return server.createChunkData(world); } @@ -34,10 +34,10 @@ index 6ac4c0c6c2245e6bee9575ff4804994648112d78..3d0e5045f0d6bf3bee4a94e552a57d2b * 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 052d0e420f2631ff925bb5df4a41a1cecc2d7e16..b4e520b82c026c62e5bd3840aa80cdc8d177b6f1 100644 +index 61ee087ec4a75ee8b10e204b4cdd1bab5f066819..90b1368303562e1b4af2e658e60ac564bd49ad5f 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1760,6 +1760,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1779,6 +1779,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public ChunkGenerator.ChunkData createChunkData(@NotNull World world); diff --git a/patches/api/0325-Add-more-Campfire-API.patch b/patches/api/0324-Add-more-Campfire-API.patch similarity index 100% rename from patches/api/0325-Add-more-Campfire-API.patch rename to patches/api/0324-Add-more-Campfire-API.patch diff --git a/patches/api/0326-Extend-VehicleCollisionEvent-move-HandlerList-up.patch b/patches/api/0325-Extend-VehicleCollisionEvent-move-HandlerList-up.patch similarity index 100% rename from patches/api/0326-Extend-VehicleCollisionEvent-move-HandlerList-up.patch rename to patches/api/0325-Extend-VehicleCollisionEvent-move-HandlerList-up.patch diff --git a/patches/api/0327-Improve-scoreboard-entries.patch b/patches/api/0326-Improve-scoreboard-entries.patch similarity index 100% rename from patches/api/0327-Improve-scoreboard-entries.patch rename to patches/api/0326-Improve-scoreboard-entries.patch diff --git a/patches/api/0328-Entity-powdered-snow-API.patch b/patches/api/0327-Entity-powdered-snow-API.patch similarity index 85% rename from patches/api/0328-Entity-powdered-snow-API.patch rename to patches/api/0327-Entity-powdered-snow-API.patch index 0eaf448d96..b00af3e946 100644 --- a/patches/api/0328-Entity-powdered-snow-API.patch +++ b/patches/api/0327-Entity-powdered-snow-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity powdered snow API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index d4f84318265343242a9fca565e456c7a8c1d68f7..6db147a2330e8046c1bfb5ec2acd8dd30827d475 100644 +index 461a48f8aa049e9b9e13acca3d54978212d9688c..1cfeb862f6a036cfd68b60cdc2364834f353f4b4 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -958,5 +958,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -969,5 +969,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return Whether the entity was successfully spawned. */ public boolean spawnAt(@NotNull Location location, @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason); @@ -22,7 +22,7 @@ index d4f84318265343242a9fca565e456c7a8c1d68f7..6db147a2330e8046c1bfb5ec2acd8dd3 // Paper end } diff --git a/src/main/java/org/bukkit/entity/Skeleton.java b/src/main/java/org/bukkit/entity/Skeleton.java -index 01d838a60d056bf4b4a8ef9d0ac18c6f91f412e6..c61eba5f400d146a8643542048904e353df94f4b 100644 +index e0ccc090a0be507ced4d5669491311e410f60a67..472a71ca8dad0d49f0723e5fdf58bf00a55190f2 100644 --- a/src/main/java/org/bukkit/entity/Skeleton.java +++ b/src/main/java/org/bukkit/entity/Skeleton.java @@ -41,6 +41,16 @@ public interface Skeleton extends AbstractSkeleton { diff --git a/patches/api/0329-Add-API-for-item-entity-health.patch b/patches/api/0328-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/api/0329-Add-API-for-item-entity-health.patch rename to patches/api/0328-Add-API-for-item-entity-health.patch diff --git a/patches/api/0330-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/api/0329-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/api/0330-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/api/0329-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/api/0331-Bucketable-API.patch b/patches/api/0330-Bucketable-API.patch similarity index 100% rename from patches/api/0331-Bucketable-API.patch rename to patches/api/0330-Bucketable-API.patch diff --git a/patches/api/0332-System-prop-for-default-config-comment-parsing.patch b/patches/api/0331-System-prop-for-default-config-comment-parsing.patch similarity index 100% rename from patches/api/0332-System-prop-for-default-config-comment-parsing.patch rename to patches/api/0331-System-prop-for-default-config-comment-parsing.patch diff --git a/patches/api/0333-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/api/0332-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/api/0333-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/api/0332-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/api/0334-Multiple-Entries-with-Scoreboards.patch b/patches/api/0333-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/api/0334-Multiple-Entries-with-Scoreboards.patch rename to patches/api/0333-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/api/0335-Warn-on-strange-EventHandler-return-types.patch b/patches/api/0334-Warn-on-strange-EventHandler-return-types.patch similarity index 100% rename from patches/api/0335-Warn-on-strange-EventHandler-return-types.patch rename to patches/api/0334-Warn-on-strange-EventHandler-return-types.patch diff --git a/patches/api/0336-Multi-Block-Change-API.patch b/patches/api/0335-Multi-Block-Change-API.patch similarity index 92% rename from patches/api/0336-Multi-Block-Change-API.patch rename to patches/api/0335-Multi-Block-Change-API.patch index 8aa5be5a5c..46d8adeb56 100644 --- a/patches/api/0336-Multi-Block-Change-API.patch +++ b/patches/api/0335-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 4906bec154d0f60420fbe2cffa8c7df0918ca61b..2501533048e4de25672d9cc0a52fa1150e6d8adb 100644 +index b177daa7a974125dc4ccf1bc6d119ad42dba3514..cd2d59a8a098227ec7725d121a63cc90e2a139fa 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -895,6 +895,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -939,6 +939,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendBlockDamage(@NotNull Location loc, float progress); diff --git a/patches/api/0337-Fix-NotePlayEvent.patch b/patches/api/0336-Fix-NotePlayEvent.patch similarity index 100% rename from patches/api/0337-Fix-NotePlayEvent.patch rename to patches/api/0336-Fix-NotePlayEvent.patch diff --git a/patches/api/0338-Freeze-Tick-Lock-API.patch b/patches/api/0337-Freeze-Tick-Lock-API.patch similarity index 92% rename from patches/api/0338-Freeze-Tick-Lock-API.patch rename to patches/api/0337-Freeze-Tick-Lock-API.patch index a6c48fa931..baaf0b2462 100644 --- a/patches/api/0338-Freeze-Tick-Lock-API.patch +++ b/patches/api/0337-Freeze-Tick-Lock-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 6db147a2330e8046c1bfb5ec2acd8dd30827d475..8827defeb26593cb2c2391e505b008f1190b01f3 100644 +index 1cfeb862f6a036cfd68b60cdc2364834f353f4b4..0cbf946c4f0f47ddfb59b23905968313f25294b1 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -323,6 +323,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/api/0339-Dolphin-API.patch b/patches/api/0338-Dolphin-API.patch similarity index 100% rename from patches/api/0339-Dolphin-API.patch rename to patches/api/0338-Dolphin-API.patch diff --git a/patches/api/0340-More-PotionEffectType-API.patch b/patches/api/0339-More-PotionEffectType-API.patch similarity index 92% rename from patches/api/0340-More-PotionEffectType-API.patch rename to patches/api/0339-More-PotionEffectType-API.patch index 68309b095d..bb5ee7ea75 100644 --- a/patches/api/0340-More-PotionEffectType-API.patch +++ b/patches/api/0339-More-PotionEffectType-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] More PotionEffectType API diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java -index 4bc53793aade0887fa650a4bbf51d2e57678bd90..18c672f3855a329bf8f87a9de81b677e8e360b41 100644 +index af3dab66c904d1fc0bbbdb8898e9ff8b2631bca7..ff870d18f3870d1432167516b166cece075d77bc 100644 --- a/src/main/java/org/bukkit/Registry.java +++ b/src/main/java/org/bukkit/Registry.java -@@ -277,6 +277,31 @@ public interface Registry extends Iterable { +@@ -292,6 +292,31 @@ public interface Registry extends Iterable { */ @Deprecated(forRemoval = true) Registry CONFIGURED_STRUCTURE = Bukkit.getRegistry(io.papermc.paper.world.structure.ConfiguredStructure.class); @@ -41,7 +41,7 @@ index 4bc53793aade0887fa650a4bbf51d2e57678bd90..18c672f3855a329bf8f87a9de81b677e /** diff --git a/src/main/java/org/bukkit/potion/PotionEffectType.java b/src/main/java/org/bukkit/potion/PotionEffectType.java -index f97dff2fd90cc8c35cbde04d1ace81320a8e4658..7d2f2fb6d4a786d15d61fde2ef03783b85d0c47b 100644 +index e045e6a74821f291938cc6af86e313c1f1c4626c..e77cf365cefafbeba09123187e70fd5274f10d53 100644 --- a/src/main/java/org/bukkit/potion/PotionEffectType.java +++ b/src/main/java/org/bukkit/potion/PotionEffectType.java @@ -16,7 +16,7 @@ import org.jetbrains.annotations.Nullable; @@ -53,10 +53,11 @@ index f97dff2fd90cc8c35cbde04d1ace81320a8e4658..7d2f2fb6d4a786d15d61fde2ef03783b private static final BiMap ID_MAP = HashBiMap.create(); /** -@@ -352,4 +352,56 @@ public abstract class PotionEffectType implements Keyed, Translatable { - - return from; +@@ -352,4 +352,57 @@ public abstract class PotionEffectType implements Keyed, Translatable { + public static PotionEffectType[] values() { + return Lists.newArrayList(Registry.EFFECT).toArray(new PotionEffectType[0]); } ++ + // Paper start + /** + * Gets the effect attributes in an immutable map. diff --git a/patches/api/0341-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/api/0340-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 87% rename from patches/api/0341-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/api/0340-API-for-creating-command-sender-which-forwards-feedb.patch index b73fdc4cb4..13d096a366 100644 --- a/patches/api/0341-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/api/0340-API-for-creating-command-sender-which-forwards-feedb.patch @@ -5,10 +5,10 @@ Subject: [PATCH] API for creating command sender which forwards feedback diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 3d0e5045f0d6bf3bee4a94e552a57d2b7d481c02..f941836afda889d8824b1f89bfe9a66cf71ed2a0 100644 +index fa7a63ea108971790c28c4f32d280ee6f2a86c0b..fb6a3b71cf3c304c5d0177747bc098e134b22d58 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1571,6 +1571,20 @@ public final class Bukkit { +@@ -1583,6 +1583,20 @@ public final class Bukkit { return server.getConsoleSender(); } @@ -30,10 +30,10 @@ index 3d0e5045f0d6bf3bee4a94e552a57d2b7d481c02..f941836afda889d8824b1f89bfe9a66c * 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 b4e520b82c026c62e5bd3840aa80cdc8d177b6f1..aee14b81d16c26c3c7e1c5849a829bfe012aa5fb 100644 +index 90b1368303562e1b4af2e658e60ac564bd49ad5f..43b049b68a8af548cd05c67dafc23dabd07bab27 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1324,6 +1324,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1334,6 +1334,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public ConsoleCommandSender getConsoleSender(); diff --git a/patches/api/0342-Implement-regenerateChunk.patch b/patches/api/0341-Implement-regenerateChunk.patch similarity index 91% rename from patches/api/0342-Implement-regenerateChunk.patch rename to patches/api/0341-Implement-regenerateChunk.patch index 923a9fbcd0..8f63e4dd7a 100644 --- a/patches/api/0342-Implement-regenerateChunk.patch +++ b/patches/api/0341-Implement-regenerateChunk.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement regenerateChunk diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 5c61b9964e9abe76b5604c73bdd211a9c1c9b619..7ff0ac9c78c3793791afbfa344a9ced3821d9638 100644 +index 6953851a5177e9df3746f7a743f27ef02845e522..d7f4a9c634b3a7b2668f296dce108cc6fc3046df 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -486,8 +486,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0343-Add-GameEvent-tags.patch b/patches/api/0342-Add-GameEvent-tags.patch similarity index 78% rename from patches/api/0343-Add-GameEvent-tags.patch rename to patches/api/0342-Add-GameEvent-tags.patch index 1bbdc9c696..73554bb169 100644 --- a/patches/api/0343-Add-GameEvent-tags.patch +++ b/patches/api/0342-Add-GameEvent-tags.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Add GameEvent tags diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java -index 894e72aa97cd272ae57a91165cca0737a6d5742d..dd509bd1f7e80a04a63d2ba6eca1ff845d12fb2d 100644 +index 298ae1294a122705bca6bd74ea540185839d1ed5..cb5890e0e7bccfee2ba32dd4776f1ae1fdd539e8 100644 --- a/src/main/java/org/bukkit/Tag.java +++ b/src/main/java/org/bukkit/Tag.java -@@ -983,6 +983,25 @@ public interface Tag extends Keyed { +@@ -1306,6 +1306,25 @@ public interface Tag extends Keyed { */ - Tag ENTITY_TYPES_CAN_TURN_IN_BOATS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_turn_in_boats"), EntityType.class); + Tag ENTITY_TYPES_REDIRECTABLE_PROJECTILE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("redirectable_projectile"), EntityType.class); + // Paper start + String REGISTRY_GAME_EVENTS = "game_events"; diff --git a/patches/api/0344-Furnace-RecipesUsed-API.patch b/patches/api/0343-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/api/0344-Furnace-RecipesUsed-API.patch rename to patches/api/0343-Furnace-RecipesUsed-API.patch diff --git a/patches/api/0345-Configurable-sculk-sensor-listener-range.patch b/patches/api/0344-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/api/0345-Configurable-sculk-sensor-listener-range.patch rename to patches/api/0344-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/api/0346-Add-missing-block-data-mins-and-maxes.patch b/patches/api/0345-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/api/0346-Add-missing-block-data-mins-and-maxes.patch rename to patches/api/0345-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/api/0347-Custom-Potion-Mixes.patch b/patches/api/0346-Custom-Potion-Mixes.patch similarity index 96% rename from patches/api/0347-Custom-Potion-Mixes.patch rename to patches/api/0346-Custom-Potion-Mixes.patch index e070ceabb2..1e3c724a0e 100644 --- a/patches/api/0347-Custom-Potion-Mixes.patch +++ b/patches/api/0346-Custom-Potion-Mixes.patch @@ -155,10 +155,10 @@ index 0000000000000000000000000000000000000000..3ede1e8f7bf0436fdc5bf395c0f9eaf1 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index f941836afda889d8824b1f89bfe9a66cf71ed2a0..22ec7dda6853db6539e98e8d39d8a13be8926f07 100644 +index fb6a3b71cf3c304c5d0177747bc098e134b22d58..eb6d59bad1e4f0b394290d683f5dfed6ba6dd75b 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2604,6 +2604,15 @@ public final class Bukkit { +@@ -2627,6 +2627,15 @@ public final class Bukkit { public static io.papermc.paper.datapack.DatapackManager getDatapackManager() { return server.getDatapackManager(); } @@ -175,10 +175,10 @@ index f941836afda889d8824b1f89bfe9a66cf71ed2a0..22ec7dda6853db6539e98e8d39d8a13b @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index aee14b81d16c26c3c7e1c5849a829bfe012aa5fb..96f9f3ac492eb6f4628d47f0be4239ab9bc7df54 100644 +index 43b049b68a8af548cd05c67dafc23dabd07bab27..6da6c20b684eba64b85d67db2482b4a968749070 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2268,5 +2268,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2287,5 +2287,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull io.papermc.paper.datapack.DatapackManager getDatapackManager(); diff --git a/patches/api/0348-Expose-furnace-minecart-push-values.patch b/patches/api/0347-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/api/0348-Expose-furnace-minecart-push-values.patch rename to patches/api/0347-Expose-furnace-minecart-push-values.patch diff --git a/patches/api/0349-More-Projectile-API.patch b/patches/api/0348-More-Projectile-API.patch similarity index 100% rename from patches/api/0349-More-Projectile-API.patch rename to patches/api/0348-More-Projectile-API.patch diff --git a/patches/api/0350-Add-getComputedBiome-API.patch b/patches/api/0349-Add-getComputedBiome-API.patch similarity index 100% rename from patches/api/0350-Add-getComputedBiome-API.patch rename to patches/api/0349-Add-getComputedBiome-API.patch diff --git a/patches/api/0351-Add-enchantWithLevels-API.patch b/patches/api/0350-Add-enchantWithLevels-API.patch similarity index 100% rename from patches/api/0351-Add-enchantWithLevels-API.patch rename to patches/api/0350-Add-enchantWithLevels-API.patch diff --git a/patches/api/0352-Add-TameableDeathMessageEvent.patch b/patches/api/0351-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/api/0352-Add-TameableDeathMessageEvent.patch rename to patches/api/0351-Add-TameableDeathMessageEvent.patch diff --git a/patches/api/0353-Allow-to-change-the-podium-of-the-EnderDragon.patch b/patches/api/0352-Allow-to-change-the-podium-of-the-EnderDragon.patch similarity index 100% rename from patches/api/0353-Allow-to-change-the-podium-of-the-EnderDragon.patch rename to patches/api/0352-Allow-to-change-the-podium-of-the-EnderDragon.patch diff --git a/patches/api/0354-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch b/patches/api/0353-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch similarity index 100% rename from patches/api/0354-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch rename to patches/api/0353-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch diff --git a/patches/api/0355-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/api/0354-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch similarity index 100% rename from patches/api/0355-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch rename to patches/api/0354-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch diff --git a/patches/api/0356-WorldCreator-keepSpawnLoaded.patch b/patches/api/0355-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/api/0356-WorldCreator-keepSpawnLoaded.patch rename to patches/api/0355-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/api/0357-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/0356-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 96% rename from patches/api/0357-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/api/0356-Add-EntityDyeEvent-and-CollarColorable-interface.patch index 9b70c2dc74..8fa20db188 100644 --- a/patches/api/0357-Add-EntityDyeEvent-and-CollarColorable-interface.patch +++ b/patches/api/0356-Add-EntityDyeEvent-and-CollarColorable-interface.patch @@ -152,10 +152,10 @@ index 0534fbc228f64cf3b361ab097d9b88212bdb0f36..d03adfaa4176617ef2ace2754fe02b63 /** diff --git a/src/main/java/org/bukkit/entity/Wolf.java b/src/main/java/org/bukkit/entity/Wolf.java -index 6d5597a8d48ee65a1b54422c7a39a0f5b461b711..84db38388bf7a58e66d6cd29620b4fe64b0a897e 100644 +index 59efc8d5e9bb2bec2e5cff3bf8eaaf01351954d9..0a308ea9bf631b45afa1b13d385e3c64119493ee 100644 --- a/src/main/java/org/bukkit/entity/Wolf.java +++ b/src/main/java/org/bukkit/entity/Wolf.java -@@ -6,7 +6,7 @@ import org.jetbrains.annotations.NotNull; +@@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull; /** * Represents a Wolf */ @@ -164,7 +164,7 @@ index 6d5597a8d48ee65a1b54422c7a39a0f5b461b711..84db38388bf7a58e66d6cd29620b4fe6 /** * Checks if this wolf is angry -@@ -31,6 +31,7 @@ public interface Wolf extends Tameable, Sittable { +@@ -34,6 +34,7 @@ public interface Wolf extends Tameable, Sittable { * @return the color of the collar */ @NotNull @@ -172,7 +172,7 @@ index 6d5597a8d48ee65a1b54422c7a39a0f5b461b711..84db38388bf7a58e66d6cd29620b4fe6 public DyeColor getCollarColor(); /** -@@ -38,6 +39,7 @@ public interface Wolf extends Tameable, Sittable { +@@ -41,6 +42,7 @@ public interface Wolf extends Tameable, Sittable { * * @param color the color to apply */ diff --git a/patches/api/0358-Add-PlayerStopUsingItemEvent.patch b/patches/api/0357-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/api/0358-Add-PlayerStopUsingItemEvent.patch rename to patches/api/0357-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/api/0359-Expand-FallingBlock-API.patch b/patches/api/0358-Expand-FallingBlock-API.patch similarity index 93% rename from patches/api/0359-Expand-FallingBlock-API.patch rename to patches/api/0358-Expand-FallingBlock-API.patch index 0f65eb8961..d98776cf63 100644 --- a/patches/api/0359-Expand-FallingBlock-API.patch +++ b/patches/api/0358-Expand-FallingBlock-API.patch @@ -10,10 +10,10 @@ Subject: [PATCH] Expand FallingBlock API Co-authored-by: Lukas Planz diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 7ff0ac9c78c3793791afbfa344a9ced3821d9638..fa81e440ad20ab8740cb073f515d1671dc6ea9a0 100644 +index d7f4a9c634b3a7b2668f296dce108cc6fc3046df..00fbc02a1751902edda327236e51a6991f5366f8 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2270,8 +2270,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2282,8 +2282,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @return The spawned {@link FallingBlock} instance * @throws IllegalArgumentException if {@link Location} or {@link * MaterialData} are null or {@link Material} of the {@link MaterialData} is not a block @@ -24,7 +24,7 @@ index 7ff0ac9c78c3793791afbfa344a9ced3821d9638..fa81e440ad20ab8740cb073f515d1671 public FallingBlock spawnFallingBlock(@NotNull Location location, @NotNull MaterialData data) throws IllegalArgumentException; /** -@@ -2284,8 +2286,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2296,8 +2298,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @return The spawned {@link FallingBlock} instance * @throws IllegalArgumentException if {@link Location} or {@link * BlockData} are null @@ -35,7 +35,7 @@ index 7ff0ac9c78c3793791afbfa344a9ced3821d9638..fa81e440ad20ab8740cb073f515d1671 public FallingBlock spawnFallingBlock(@NotNull Location location, @NotNull BlockData data) throws IllegalArgumentException; /** -@@ -2302,7 +2306,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2314,7 +2318,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @return The spawned {@link FallingBlock} instance * @throws IllegalArgumentException if {@link Location} or {@link * Material} are null or {@link Material} is not a block diff --git a/patches/api/0360-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0359-Add-method-isTickingWorlds-to-Bukkit.patch similarity index 91% rename from patches/api/0360-Add-method-isTickingWorlds-to-Bukkit.patch rename to patches/api/0359-Add-method-isTickingWorlds-to-Bukkit.patch index 40b7bec1d7..eb982e565a 100644 --- a/patches/api/0360-Add-method-isTickingWorlds-to-Bukkit.patch +++ b/patches/api/0359-Add-method-isTickingWorlds-to-Bukkit.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add method isTickingWorlds() to Bukkit. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 22ec7dda6853db6539e98e8d39d8a13be8926f07..a24de4474114af533e1e8b78c4fd0e8c5edd14b8 100644 +index eb6d59bad1e4f0b394290d683f5dfed6ba6dd75b..a2e5e917a7a0f6763f2ac13583dc28d9ea35ca64 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -806,12 +806,26 @@ public final class Bukkit { +@@ -808,12 +808,26 @@ public final class Bukkit { return server.getWorlds(); } @@ -35,7 +35,7 @@ index 22ec7dda6853db6539e98e8d39d8a13be8926f07..a24de4474114af533e1e8b78c4fd0e8c * * @param creator the options to use when creating the world * @return newly created or loaded world -@@ -823,6 +837,9 @@ public final class Bukkit { +@@ -825,6 +839,9 @@ public final class Bukkit { /** * Unloads a world with the given name. @@ -45,7 +45,7 @@ index 22ec7dda6853db6539e98e8d39d8a13be8926f07..a24de4474114af533e1e8b78c4fd0e8c * * @param name Name of the world to unload * @param save whether to save the chunks before unloading -@@ -834,6 +851,9 @@ public final class Bukkit { +@@ -836,6 +853,9 @@ public final class Bukkit { /** * Unloads the given world. @@ -56,10 +56,10 @@ index 22ec7dda6853db6539e98e8d39d8a13be8926f07..a24de4474114af533e1e8b78c4fd0e8c * @param world the world to unload * @param save whether to save the chunks before unloading diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 96f9f3ac492eb6f4628d47f0be4239ab9bc7df54..c8704bc90a4f7040e5fa1c0377d5533bd14a4249 100644 +index 6da6c20b684eba64b85d67db2482b4a968749070..708ea9556510b2e9de2f7f1c381572e3bde540d1 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -673,34 +673,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -675,34 +675,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public List getWorlds(); diff --git a/patches/api/0361-Add-WardenAngerChangeEvent.patch b/patches/api/0360-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/api/0361-Add-WardenAngerChangeEvent.patch rename to patches/api/0360-Add-WardenAngerChangeEvent.patch diff --git a/patches/api/0362-Nameable-Banner-API.patch b/patches/api/0361-Nameable-Banner-API.patch similarity index 100% rename from patches/api/0362-Nameable-Banner-API.patch rename to patches/api/0361-Nameable-Banner-API.patch diff --git a/patches/api/0363-Add-Player-getFishHook.patch b/patches/api/0362-Add-Player-getFishHook.patch similarity index 100% rename from patches/api/0363-Add-Player-getFishHook.patch rename to patches/api/0362-Add-Player-getFishHook.patch diff --git a/patches/api/0364-More-Teleport-API.patch b/patches/api/0363-More-Teleport-API.patch similarity index 97% rename from patches/api/0364-More-Teleport-API.patch rename to patches/api/0363-More-Teleport-API.patch index 7f4f75ceac..eb36f5ee5d 100644 --- a/patches/api/0364-More-Teleport-API.patch +++ b/patches/api/0363-More-Teleport-API.patch @@ -120,7 +120,7 @@ index 0000000000000000000000000000000000000000..c8b5b570d44da9524bfc59c7e11b2ae5 + +} diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 8827defeb26593cb2c2391e505b008f1190b01f3..bc1547381b08d1acbbef885d9c3ecd63f3550426 100644 +index 0cbf946c4f0f47ddfb59b23905968313f25294b1..a2223907c6e6780ca25dae255f321f9add11c912 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -126,10 +126,32 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @@ -158,10 +158,10 @@ index 8827defeb26593cb2c2391e505b008f1190b01f3..bc1547381b08d1acbbef885d9c3ecd63 * 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 2501533048e4de25672d9cc0a52fa1150e6d8adb..d598eb27f131a265c163ea96ab5fb56d4cf6ecb9 100644 +index cd2d59a8a098227ec7725d121a63cc90e2a139fa..25064aafd5871a7168e8a0ba3e87d6de89e2b083 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3424,6 +3424,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3468,6 +3468,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM String getClientBrandName(); // Paper end diff --git a/patches/api/0365-Add-EntityPortalReadyEvent.patch b/patches/api/0364-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/api/0365-Add-EntityPortalReadyEvent.patch rename to patches/api/0364-Add-EntityPortalReadyEvent.patch diff --git a/patches/api/0366-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0365-Custom-Chat-Completion-Suggestions-API.patch similarity index 91% rename from patches/api/0366-Custom-Chat-Completion-Suggestions-API.patch rename to patches/api/0365-Custom-Chat-Completion-Suggestions-API.patch index 90d9c68dee..e22c1feefa 100644 --- a/patches/api/0366-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/api/0365-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 d598eb27f131a265c163ea96ab5fb56d4cf6ecb9..f7c1b6380389d81ac94005408429ac5bd79f19a6 100644 +index 25064aafd5871a7168e8a0ba3e87d6de89e2b083..ac9227472443ecb819cc7480a217cd78a98a9b35 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3308,6 +3308,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3352,6 +3352,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void sendOpLevel(byte level); // Paper end - sendOpLevel API diff --git a/patches/api/0367-Collision-API.patch b/patches/api/0366-Collision-API.patch similarity index 93% rename from patches/api/0367-Collision-API.patch rename to patches/api/0366-Collision-API.patch index ced31795fc..f59dc05fbb 100644 --- a/patches/api/0367-Collision-API.patch +++ b/patches/api/0366-Collision-API.patch @@ -25,10 +25,10 @@ index 44ee56a5956cc17194c767a0c1071a2abffe818a..43dd6c59cceba12f27e6b265acc3ad97 // Paper end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index bc1547381b08d1acbbef885d9c3ecd63f3550426..8e2fa4dba0337a175acfee24fc59423ab4714977 100644 +index a2223907c6e6780ca25dae255f321f9add11c912..11885ef53ed97738d0a50e5f459a9f76c975c085 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1008,4 +1008,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1019,4 +1019,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean isInPowderedSnow(); // Paper end diff --git a/patches/api/0368-Block-Ticking-API.patch b/patches/api/0367-Block-Ticking-API.patch similarity index 100% rename from patches/api/0368-Block-Ticking-API.patch rename to patches/api/0367-Block-Ticking-API.patch diff --git a/patches/api/0369-Add-NamespacedKey-biome-methods.patch b/patches/api/0368-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/api/0369-Add-NamespacedKey-biome-methods.patch rename to patches/api/0368-Add-NamespacedKey-biome-methods.patch diff --git a/patches/api/0370-Also-load-resources-from-LibraryLoader.patch b/patches/api/0369-Also-load-resources-from-LibraryLoader.patch similarity index 100% rename from patches/api/0370-Also-load-resources-from-LibraryLoader.patch rename to patches/api/0369-Also-load-resources-from-LibraryLoader.patch diff --git a/patches/api/0371-Added-byte-array-serialization-deserialization-for-P.patch b/patches/api/0370-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/api/0371-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/api/0370-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/api/0372-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/api/0371-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/api/0372-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/api/0371-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/api/0373-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch b/patches/api/0372-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch similarity index 100% rename from patches/api/0373-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch rename to patches/api/0372-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch diff --git a/patches/api/0374-Add-getDrops-to-BlockState.patch b/patches/api/0373-Add-getDrops-to-BlockState.patch similarity index 93% rename from patches/api/0374-Add-getDrops-to-BlockState.patch rename to patches/api/0373-Add-getDrops-to-BlockState.patch index f25ab4169f..f9e8152229 100644 --- a/patches/api/0374-Add-getDrops-to-BlockState.patch +++ b/patches/api/0373-Add-getDrops-to-BlockState.patch @@ -7,10 +7,10 @@ Originally added isPreferredTool to BlockData but upstream added that. diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java -index c439cf0bb6c50db2b3304c60e50046f096392f9f..19837f0eae67854f48e777bc7d4a13b53fa4b436 100644 +index e573e70d9e74e444783a7363e6cdac126124d86d..80e5d39afe8a6cf882b29c0da78450b958812137 100644 --- a/src/main/java/org/bukkit/block/BlockState.java +++ b/src/main/java/org/bukkit/block/BlockState.java -@@ -243,5 +243,41 @@ public interface BlockState extends Metadatable { +@@ -253,5 +253,41 @@ public interface BlockState extends Metadatable { * @return true if collidable */ boolean isCollidable(); diff --git a/patches/api/0375-Add-PlayerInventorySlotChangeEvent.patch b/patches/api/0374-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/api/0375-Add-PlayerInventorySlotChangeEvent.patch rename to patches/api/0374-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/api/0376-Elder-Guardian-appearance-API.patch b/patches/api/0375-Elder-Guardian-appearance-API.patch similarity index 87% rename from patches/api/0376-Elder-Guardian-appearance-API.patch rename to patches/api/0375-Elder-Guardian-appearance-API.patch index ca5e23620f..3490b6d5db 100644 --- a/patches/api/0376-Elder-Guardian-appearance-API.patch +++ b/patches/api/0375-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 f7c1b6380389d81ac94005408429ac5bd79f19a6..deea445fe7b69d36de61e001f617a837c9a0eb2d 100644 +index ac9227472443ecb819cc7480a217cd78a98a9b35..ad61c664af66a15e214c5db14a5c9e172f5309ae 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3488,6 +3488,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3532,6 +3532,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/0377-Allow-changing-bed-s-occupied-property.patch b/patches/api/0376-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/api/0377-Allow-changing-bed-s-occupied-property.patch rename to patches/api/0376-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/api/0378-Add-EquipmentSlot-convenience-methods.patch b/patches/api/0377-Add-EquipmentSlot-convenience-methods.patch similarity index 77% rename from patches/api/0378-Add-EquipmentSlot-convenience-methods.patch rename to patches/api/0377-Add-EquipmentSlot-convenience-methods.patch index 0ef6b4c9b0..64857c2af9 100644 --- a/patches/api/0378-Add-EquipmentSlot-convenience-methods.patch +++ b/patches/api/0377-Add-EquipmentSlot-convenience-methods.patch @@ -5,15 +5,14 @@ Subject: [PATCH] Add EquipmentSlot convenience methods diff --git a/src/main/java/org/bukkit/inventory/EquipmentSlot.java b/src/main/java/org/bukkit/inventory/EquipmentSlot.java -index 1e7d77118a55ca9db99eabb94894e6ef3409946b..8f793982d0ceeb949422fe3f125fb08229d3266a 100644 +index d776a0c183737efcaf94f0911f3a8c1adc2c5ada..e19e708e9bda10e99c07763d162cb140d0189147 100644 --- a/src/main/java/org/bukkit/inventory/EquipmentSlot.java +++ b/src/main/java/org/bukkit/inventory/EquipmentSlot.java -@@ -8,4 +8,28 @@ public enum EquipmentSlot { - LEGS, - CHEST, - HEAD +@@ -32,4 +32,27 @@ public enum EquipmentSlot { + public EquipmentSlotGroup getGroup() { + return group; + } + // Paper start -+ ; + /** + * Checks whether this equipment slot is a hand: + * either {@link #HAND} or {@link #OFF_HAND} @@ -28,12 +27,12 @@ index 1e7d77118a55ca9db99eabb94894e6ef3409946b..8f793982d0ceeb949422fe3f125fb082 + * Checks whether this equipment slot + * is one of the armor slots: + * {@link #HEAD}, {@link #CHEST}, -+ * {@link #LEGS}, or {@link #FEET} ++ * {@link #LEGS}, {@link #FEET}, or {@link #BODY} + * + * @return whether this is an armor slot + */ + public boolean isArmor() { -+ return this == HEAD || this == CHEST || this == LEGS || this == FEET; ++ return this == HEAD || this == CHEST || this == LEGS || this == FEET || this == BODY; + } + // Paper end } diff --git a/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0378-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch similarity index 90% rename from patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch rename to patches/api/0378-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch index 05a81d55ae..e854d90687 100644 --- a/patches/api/0379-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch +++ b/patches/api/0378-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add LivingEntity#swingHand(EquipmentSlot) convenience method diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index be9fa1b6209a41712767283c6329046ca2795c09..35b0eb94e291dae7a4705fa85b10d23fcd38f49e 100644 +index b5551eed2e9090dcbbe97cae25a0c0545285c64f..1041af2b645e15d8a94fe388cb88f1a8adde16f0 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1329,4 +1329,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1331,4 +1331,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @Deprecated void setHurtDirection(float hurtDirection); // Paper end - hurt direction API diff --git a/patches/api/0380-Add-entity-knockback-API.patch b/patches/api/0379-Add-entity-knockback-API.patch similarity index 88% rename from patches/api/0380-Add-entity-knockback-API.patch rename to patches/api/0379-Add-entity-knockback-API.patch index 5d411c2968..1bd8f3077b 100644 --- a/patches/api/0380-Add-entity-knockback-API.patch +++ b/patches/api/0379-Add-entity-knockback-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 35b0eb94e291dae7a4705fa85b10d23fcd38f49e..41c5559058df9701e345f39d9d3c23e45b6d49c3 100644 +index 1041af2b645e15d8a94fe388cb88f1a8adde16f0..30e87d632d12326c70507b3ec9f464af1fb05650 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1349,4 +1349,18 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1351,4 +1351,18 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource } } // Paper end - swing hand API diff --git a/patches/api/0381-Added-EntityToggleSitEvent.patch b/patches/api/0380-Added-EntityToggleSitEvent.patch similarity index 100% rename from patches/api/0381-Added-EntityToggleSitEvent.patch rename to patches/api/0380-Added-EntityToggleSitEvent.patch diff --git a/patches/api/0382-Add-Moving-Piston-API.patch b/patches/api/0381-Add-Moving-Piston-API.patch similarity index 100% rename from patches/api/0382-Add-Moving-Piston-API.patch rename to patches/api/0381-Add-Moving-Piston-API.patch diff --git a/patches/api/0383-Add-PrePlayerAttackEntityEvent.patch b/patches/api/0382-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/api/0383-Add-PrePlayerAttackEntityEvent.patch rename to patches/api/0382-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/api/0384-Add-Player-Warden-Warning-API.patch b/patches/api/0383-Add-Player-Warden-Warning-API.patch similarity index 93% rename from patches/api/0384-Add-Player-Warden-Warning-API.patch rename to patches/api/0383-Add-Player-Warden-Warning-API.patch index fdc917934f..42426a3ae4 100644 --- a/patches/api/0384-Add-Player-Warden-Warning-API.patch +++ b/patches/api/0383-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 deea445fe7b69d36de61e001f617a837c9a0eb2d..e855cddf37c453ea3f8f0f4fc21dd2358258e28d 100644 +index ad61c664af66a15e214c5db14a5c9e172f5309ae..537ebbad48191741f666aa2a30c8584562dfcb83 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3504,6 +3504,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3548,6 +3548,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/0385-More-vanilla-friendly-methods-to-update-trades.patch b/patches/api/0384-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/api/0385-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/api/0384-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/api/0386-Add-paper-dumplisteners-command.patch b/patches/api/0385-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/api/0386-Add-paper-dumplisteners-command.patch rename to patches/api/0385-Add-paper-dumplisteners-command.patch diff --git a/patches/api/0387-ItemStack-damage-API.patch b/patches/api/0386-ItemStack-damage-API.patch similarity index 96% rename from patches/api/0387-ItemStack-damage-API.patch rename to patches/api/0386-ItemStack-damage-API.patch index b7b9d50930..99dcb21b8f 100644 --- a/patches/api/0387-ItemStack-damage-API.patch +++ b/patches/api/0386-ItemStack-damage-API.patch @@ -8,10 +8,10 @@ to simulate damage done to an itemstack and all the logic associated with damaging them diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 41c5559058df9701e345f39d9d3c23e45b6d49c3..812ae3368f828b388d6fd05a94cd88f2d5db9fac 100644 +index 30e87d632d12326c70507b3ec9f464af1fb05650..4f32d5866b06a78d46db15158598d1e2beb377c1 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1363,4 +1363,53 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1365,4 +1365,53 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void knockback(double strength, double directionX, double directionZ); // Paper end - knockback API diff --git a/patches/api/0388-Add-Tick-TemporalUnit.patch b/patches/api/0387-Add-Tick-TemporalUnit.patch similarity index 100% rename from patches/api/0388-Add-Tick-TemporalUnit.patch rename to patches/api/0387-Add-Tick-TemporalUnit.patch diff --git a/patches/api/0389-Friction-API.patch b/patches/api/0388-Friction-API.patch similarity index 96% rename from patches/api/0389-Friction-API.patch rename to patches/api/0388-Friction-API.patch index 4488bf7b41..fee1e8ce76 100644 --- a/patches/api/0389-Friction-API.patch +++ b/patches/api/0388-Friction-API.patch @@ -59,7 +59,7 @@ index ced419f8655bff72f0257b639d5f7d73afe3c2e2..bcc6ba95bd21c7972865838c636a03f5 /** * Gets the item stack associated with this item drop. diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 812ae3368f828b388d6fd05a94cd88f2d5db9fac..017a743c1445e2c859fef0ef962e656035af12bd 100644 +index 4f32d5866b06a78d46db15158598d1e2beb377c1..951d0960faff8357a42079e10367b2768de835f8 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable; diff --git a/patches/api/0390-Player-Entity-Tracking-Events.patch b/patches/api/0389-Player-Entity-Tracking-Events.patch similarity index 100% rename from patches/api/0390-Player-Entity-Tracking-Events.patch rename to patches/api/0389-Player-Entity-Tracking-Events.patch diff --git a/patches/api/0391-Add-missing-Fluid-type.patch b/patches/api/0390-Add-missing-Fluid-type.patch similarity index 100% rename from patches/api/0391-Add-missing-Fluid-type.patch rename to patches/api/0390-Add-missing-Fluid-type.patch diff --git a/patches/api/0392-fix-Instruments.patch b/patches/api/0391-fix-Instruments.patch similarity index 100% rename from patches/api/0392-fix-Instruments.patch rename to patches/api/0391-fix-Instruments.patch diff --git a/patches/api/0393-Add-BlockLockCheckEvent.patch b/patches/api/0392-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/api/0393-Add-BlockLockCheckEvent.patch rename to patches/api/0392-Add-BlockLockCheckEvent.patch diff --git a/patches/api/0394-Add-Sneaking-API-for-Entities.patch b/patches/api/0393-Add-Sneaking-API-for-Entities.patch similarity index 83% rename from patches/api/0394-Add-Sneaking-API-for-Entities.patch rename to patches/api/0393-Add-Sneaking-API-for-Entities.patch index 7c75bb16f2..3f8d4c724f 100644 --- a/patches/api/0394-Add-Sneaking-API-for-Entities.patch +++ b/patches/api/0393-Add-Sneaking-API-for-Entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Sneaking API for Entities diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 8e2fa4dba0337a175acfee24fc59423ab4714977..2d6f7b2bf4cb23ef43a4dcbab2ecd2a7c7c2809c 100644 +index 11885ef53ed97738d0a50e5f459a9f76c975c085..5a80cf6b16c8fb0457421b7b694a06f43e5e902b 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -819,6 +819,25 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @@ -35,10 +35,10 @@ index 8e2fa4dba0337a175acfee24fc59423ab4714977..2d6f7b2bf4cb23ef43a4dcbab2ecd2a7 * 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 e855cddf37c453ea3f8f0f4fc21dd2358258e28d..6afced1da637e4162972b0ff1f6c9cf42c256a02 100644 +index 537ebbad48191741f666aa2a30c8584562dfcb83..5e798ea4c66e1a7ce6239b972e6a13810850a438 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -417,6 +417,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -461,6 +461,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @return true if player is in sneak mode */ @@ -46,7 +46,7 @@ index e855cddf37c453ea3f8f0f4fc21dd2358258e28d..6afced1da637e4162972b0ff1f6c9cf4 public boolean isSneaking(); /** -@@ -424,6 +425,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -468,6 +469,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param sneak true if player should appear sneaking */ diff --git a/patches/api/0395-Improve-PortalEvents.patch b/patches/api/0394-Improve-PortalEvents.patch similarity index 100% rename from patches/api/0395-Improve-PortalEvents.patch rename to patches/api/0394-Improve-PortalEvents.patch diff --git a/patches/api/0396-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/api/0395-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/api/0396-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/api/0395-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/api/0397-Flying-Fall-Damage-API.patch b/patches/api/0396-Flying-Fall-Damage-API.patch similarity index 88% rename from patches/api/0397-Flying-Fall-Damage-API.patch rename to patches/api/0396-Flying-Fall-Damage-API.patch index 69dcbced37..b38eb93f1c 100644 --- a/patches/api/0397-Flying-Fall-Damage-API.patch +++ b/patches/api/0396-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 6afced1da637e4162972b0ff1f6c9cf42c256a02..6fc27c35f8533b37d82f0db5605d4d06e70af18b 100644 +index 5e798ea4c66e1a7ce6239b972e6a13810850a438..ce5530c27572fefd732301e07393fab0d9c99afb 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1859,6 +1859,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1903,6 +1903,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void setAllowFlight(boolean flight); diff --git a/patches/api/0398-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/0397-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch similarity index 100% rename from patches/api/0398-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch rename to patches/api/0397-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch diff --git a/patches/api/0399-Win-Screen-API.patch b/patches/api/0398-Win-Screen-API.patch similarity index 94% rename from patches/api/0399-Win-Screen-API.patch rename to patches/api/0398-Win-Screen-API.patch index 3741437041..05fbb589d3 100644 --- a/patches/api/0399-Win-Screen-API.patch +++ b/patches/api/0398-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 6fc27c35f8533b37d82f0db5605d4d06e70af18b..0966eb33f0a1cf74a2f2fc3cbb74c756848e2eeb 100644 +index ce5530c27572fefd732301e07393fab0d9c99afb..6dc9a93811d143ed266f0f6235358d58b1e00523 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1205,6 +1205,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1249,6 +1249,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendMap(@NotNull MapView map); diff --git a/patches/api/0400-Add-Entity-Body-Yaw-API.patch b/patches/api/0399-Add-Entity-Body-Yaw-API.patch similarity index 86% rename from patches/api/0400-Add-Entity-Body-Yaw-API.patch rename to patches/api/0399-Add-Entity-Body-Yaw-API.patch index a34499f0db..b8527349d9 100644 --- a/patches/api/0400-Add-Entity-Body-Yaw-API.patch +++ b/patches/api/0399-Add-Entity-Body-Yaw-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 2d6f7b2bf4cb23ef43a4dcbab2ecd2a7c7c2809c..0be4107270fb7fdba5c7d0e6f3964d33337f91f0 100644 +index 5a80cf6b16c8fb0457421b7b694a06f43e5e902b..9e7b6ed599759de451429c99bc6876b878c1cca2 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1026,6 +1026,43 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1037,6 +1037,43 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return true if in powdered snow. */ boolean isInPowderedSnow(); @@ -53,10 +53,10 @@ index 2d6f7b2bf4cb23ef43a4dcbab2ecd2a7c7c2809c..0be4107270fb7fdba5c7d0e6f3964d33 // Paper start - Collision API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 017a743c1445e2c859fef0ef962e656035af12bd..b8a9b56c3071d94371ab69b1a72c2e6c0692ab39 100644 +index 951d0960faff8357a42079e10367b2768de835f8..bc577baad70cdea52aeaaf71d2e110286f9f4265 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1412,4 +1412,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1414,4 +1414,22 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void damageItemStack(org.bukkit.inventory.@NotNull EquipmentSlot slot, int amount); // Paper end - ItemStack damage API diff --git a/patches/api/0401-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0400-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch similarity index 100% rename from patches/api/0401-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch rename to patches/api/0400-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch diff --git a/patches/api/0402-Add-EntityFertilizeEggEvent.patch b/patches/api/0401-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/api/0402-Add-EntityFertilizeEggEvent.patch rename to patches/api/0401-Add-EntityFertilizeEggEvent.patch diff --git a/patches/api/0403-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/api/0402-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/api/0403-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/api/0402-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/api/0404-Add-Shearable-API.patch b/patches/api/0403-Add-Shearable-API.patch similarity index 100% rename from patches/api/0404-Add-Shearable-API.patch rename to patches/api/0403-Add-Shearable-API.patch diff --git a/patches/api/0405-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/api/0404-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/api/0405-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/api/0404-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/api/0406-Add-Mob-Experience-reward-API.patch b/patches/api/0405-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/api/0406-Add-Mob-Experience-reward-API.patch rename to patches/api/0405-Add-Mob-Experience-reward-API.patch diff --git a/patches/api/0407-Expand-PlayerItemMendEvent.patch b/patches/api/0406-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/api/0407-Expand-PlayerItemMendEvent.patch rename to patches/api/0406-Expand-PlayerItemMendEvent.patch diff --git a/patches/api/0408-Add-transient-modifier-API.patch b/patches/api/0407-Add-transient-modifier-API.patch similarity index 100% rename from patches/api/0408-Add-transient-modifier-API.patch rename to patches/api/0407-Add-transient-modifier-API.patch diff --git a/patches/api/0409-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/api/0408-Properly-remove-the-experimental-smithing-inventory-.patch similarity index 100% rename from patches/api/0409-Properly-remove-the-experimental-smithing-inventory-.patch rename to patches/api/0408-Properly-remove-the-experimental-smithing-inventory-.patch diff --git a/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch b/patches/api/0409-Add-method-to-remove-all-active-potion-effects.patch similarity index 91% rename from patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch rename to patches/api/0409-Add-method-to-remove-all-active-potion-effects.patch index 47a9befa74..71e9937870 100644 --- a/patches/api/0410-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/api/0409-Add-method-to-remove-all-active-potion-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index b8a9b56c3071d94371ab69b1a72c2e6c0692ab39..80df95e93b9a919af8c2e98b09b75522ee60eae6 100644 +index bc577baad70cdea52aeaaf71d2e110286f9f4265..4c0c548af4d2eff6fb6b6d11ba94a64db08ccb64 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -657,6 +657,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0411-Folia-scheduler-and-owned-region-API.patch b/patches/api/0410-Folia-scheduler-and-owned-region-API.patch similarity index 98% rename from patches/api/0411-Folia-scheduler-and-owned-region-API.patch rename to patches/api/0410-Folia-scheduler-and-owned-region-API.patch index 2913858508..05f2626953 100644 --- a/patches/api/0411-Folia-scheduler-and-owned-region-API.patch +++ b/patches/api/0410-Folia-scheduler-and-owned-region-API.patch @@ -499,10 +499,10 @@ index 0000000000000000000000000000000000000000..a6b50c9d8af589cc4747e14d343d2045 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index a24de4474114af533e1e8b78c4fd0e8c5edd14b8..010d7e8a831b32060a471ef877ac43ce237a7258 100644 +index a2e5e917a7a0f6763f2ac13583dc28d9ea35ca64..e4f3f621c4c6d2653770c149db71587fc04e0991 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2635,6 +2635,141 @@ public final class Bukkit { +@@ -2658,6 +2658,141 @@ public final class Bukkit { } // Paper end @@ -645,10 +645,10 @@ index a24de4474114af533e1e8b78c4fd0e8c5edd14b8..010d7e8a831b32060a471ef877ac43ce public static Server.Spigot spigot() { return server.spigot(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index c8704bc90a4f7040e5fa1c0377d5533bd14a4249..627913905269739e91c5007e372856e321cb9312 100644 +index 708ea9556510b2e9de2f7f1c381572e3bde540d1..63cbc38217865be8f79890a0d8d6143461d344f3 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2297,4 +2297,119 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2316,4 +2316,119 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull org.bukkit.potion.PotionBrewer getPotionBrewer(); // Paper end @@ -769,10 +769,10 @@ index c8704bc90a4f7040e5fa1c0377d5533bd14a4249..627913905269739e91c5007e372856e3 + // Paper end - Folia region threading API } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 0be4107270fb7fdba5c7d0e6f3964d33337f91f0..c01c3f6576d4c0a8a173080ce01509d3eb678611 100644 +index 9e7b6ed599759de451429c99bc6876b878c1cca2..9a0022f9e77b7e532c0cad9f85620901064e436d 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1086,4 +1086,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1097,4 +1097,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean wouldCollideUsing(@NotNull BoundingBox boundingBox); // Paper end - Collision API diff --git a/patches/api/0412-Add-event-for-player-editing-sign.patch b/patches/api/0411-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/api/0412-Add-event-for-player-editing-sign.patch rename to patches/api/0411-Add-event-for-player-editing-sign.patch diff --git a/patches/api/0413-Add-Sign-getInteractableSideFor.patch b/patches/api/0412-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/api/0413-Add-Sign-getInteractableSideFor.patch rename to patches/api/0412-Add-Sign-getInteractableSideFor.patch diff --git a/patches/api/0414-Fix-BanList-API.patch b/patches/api/0413-Fix-BanList-API.patch similarity index 96% rename from patches/api/0414-Fix-BanList-API.patch rename to patches/api/0413-Fix-BanList-API.patch index 1fb6e9abf8..911f301327 100644 --- a/patches/api/0414-Fix-BanList-API.patch +++ b/patches/api/0413-Fix-BanList-API.patch @@ -130,10 +130,10 @@ index e805e629cede1c4c0674282c930cb67852718c3e..5248cf08ef83c7304dd76c42a2f646bb + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 0966eb33f0a1cf74a2f2fc3cbb74c756848e2eeb..cc84581276a793bb8c4851ab55591f8251b6403b 100644 +index 6dc9a93811d143ed266f0f6235358d58b1e00523..463521dc80254cab673c5203ee263948081219e9 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -301,7 +301,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -345,7 +345,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * (updated) previous ban */ @Nullable @@ -142,7 +142,7 @@ index 0966eb33f0a1cf74a2f2fc3cbb74c756848e2eeb..cc84581276a793bb8c4851ab55591f82 /** * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will -@@ -317,7 +317,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -361,7 +361,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * (updated) previous ban */ @Nullable @@ -151,7 +151,7 @@ index 0966eb33f0a1cf74a2f2fc3cbb74c756848e2eeb..cc84581276a793bb8c4851ab55591f82 /** * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will -@@ -333,7 +333,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -377,7 +377,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * (updated) previous ban */ @Nullable diff --git a/patches/api/0415-Add-whitelist-events.patch b/patches/api/0414-Add-whitelist-events.patch similarity index 100% rename from patches/api/0415-Add-whitelist-events.patch rename to patches/api/0414-Add-whitelist-events.patch diff --git a/patches/api/0416-API-for-updating-recipes-on-clients.patch b/patches/api/0415-API-for-updating-recipes-on-clients.patch similarity index 91% rename from patches/api/0416-API-for-updating-recipes-on-clients.patch rename to patches/api/0415-API-for-updating-recipes-on-clients.patch index 0ab07c3ae5..60f206a340 100644 --- a/patches/api/0416-API-for-updating-recipes-on-clients.patch +++ b/patches/api/0415-API-for-updating-recipes-on-clients.patch @@ -5,10 +5,10 @@ Subject: [PATCH] API for updating recipes on clients diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 010d7e8a831b32060a471ef877ac43ce237a7258..0865830a8d9f29dee47c34a192e26e4c1304a12c 100644 +index e4f3f621c4c6d2653770c149db71587fc04e0991..b5455d03761ced30c94719deeee6788d7c6a8fb7 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -990,6 +990,26 @@ public final class Bukkit { +@@ -992,6 +992,26 @@ public final class Bukkit { server.reloadData(); } @@ -35,7 +35,7 @@ index 010d7e8a831b32060a471ef877ac43ce237a7258..0865830a8d9f29dee47c34a192e26e4c /** * Returns the primary logger associated with this server instance. * -@@ -1050,6 +1070,20 @@ public final class Bukkit { +@@ -1052,6 +1072,20 @@ public final class Bukkit { return server.addRecipe(recipe); } @@ -56,7 +56,7 @@ index 010d7e8a831b32060a471ef877ac43ce237a7258..0865830a8d9f29dee47c34a192e26e4c /** * Get a list of all recipes for a given item. The stack size is ignored * in comparisons. If the durability is -1, it will match any data value. -@@ -1241,6 +1275,24 @@ public final class Bukkit { +@@ -1243,6 +1277,24 @@ public final class Bukkit { return server.removeRecipe(key); } @@ -82,10 +82,10 @@ index 010d7e8a831b32060a471ef877ac43ce237a7258..0865830a8d9f29dee47c34a192e26e4c * Gets a list of command aliases defined in the server properties. * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 627913905269739e91c5007e372856e321cb9312..bc55bf7361fb41a91766fcb2f1e4620e3db64781 100644 +index 63cbc38217865be8f79890a0d8d6143461d344f3..c0ebbca69775775af22cf2c31b1516e5bf18df4a 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -836,6 +836,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -838,6 +838,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ public void reloadData(); @@ -108,7 +108,7 @@ index 627913905269739e91c5007e372856e321cb9312..bc55bf7361fb41a91766fcb2f1e4620e /** * Returns the primary logger associated with this server instance. * -@@ -877,15 +893,34 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -879,15 +895,34 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi public boolean dispatchCommand(@NotNull CommandSender sender, @NotNull String commandLine) throws CommandException; /** @@ -144,7 +144,7 @@ index 627913905269739e91c5007e372856e321cb9312..bc55bf7361fb41a91766fcb2f1e4620e /** * Get a list of all recipes for a given item. The stack size is ignored * in comparisons. If the durability is -1, it will match any data value. -@@ -1054,6 +1089,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1056,6 +1091,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ public boolean removeRecipe(@NotNull NamespacedKey key); diff --git a/patches/api/0417-Add-PlayerFailMoveEvent.patch b/patches/api/0416-Add-PlayerFailMoveEvent.patch similarity index 100% rename from patches/api/0417-Add-PlayerFailMoveEvent.patch rename to patches/api/0416-Add-PlayerFailMoveEvent.patch diff --git a/patches/api/0418-Fix-custom-statistic-criteria-creation.patch b/patches/api/0417-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/api/0418-Fix-custom-statistic-criteria-creation.patch rename to patches/api/0417-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/api/0419-SculkCatalyst-bloom-API.patch b/patches/api/0418-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/api/0419-SculkCatalyst-bloom-API.patch rename to patches/api/0418-SculkCatalyst-bloom-API.patch diff --git a/patches/api/0420-API-for-an-entity-s-scoreboard-name.patch b/patches/api/0419-API-for-an-entity-s-scoreboard-name.patch similarity index 88% rename from patches/api/0420-API-for-an-entity-s-scoreboard-name.patch rename to patches/api/0419-API-for-an-entity-s-scoreboard-name.patch index efef8c0b08..9820a1a54f 100644 --- a/patches/api/0420-API-for-an-entity-s-scoreboard-name.patch +++ b/patches/api/0419-API-for-an-entity-s-scoreboard-name.patch @@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different methods depending on the implementation of Entity you were working with. diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index c01c3f6576d4c0a8a173080ce01509d3eb678611..2a30cda9efb24829f9c6a265e8be2dd848fa7c7c 100644 +index 9a0022f9e77b7e532c0cad9f85620901064e436d..8dcb9f17046ac5dc0301b5d4984b016514e19109 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1097,4 +1097,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1108,4 +1108,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @NotNull io.papermc.paper.threadedregions.scheduler.EntityScheduler getScheduler(); // Paper end - Folia schedulers diff --git a/patches/api/0421-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/api/0420-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 94% rename from patches/api/0421-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/api/0420-Deprecate-and-replace-methods-with-old-StructureType.patch index a32c35bff3..77b0ffe0a4 100644 --- a/patches/api/0421-Deprecate-and-replace-methods-with-old-StructureType.patch +++ b/patches/api/0420-Deprecate-and-replace-methods-with-old-StructureType.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Deprecate and replace methods with old StructureType diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 0865830a8d9f29dee47c34a192e26e4c1304a12c..8e2942664f73b0f92beb30c7a94b720610a43c15 100644 +index b5455d03761ced30c94719deeee6788d7c6a8fb7..c9fbbf0287cd663080fc09ac83b439780cbfae85 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -935,9 +935,6 @@ public final class Bukkit { +@@ -937,9 +937,6 @@ public final class Bukkit { /** * Create a new explorer map targeting the closest nearby structure of a * given {@link StructureType}. @@ -18,7 +18,7 @@ index 0865830a8d9f29dee47c34a192e26e4c1304a12c..8e2942664f73b0f92beb30c7a94b7206 * * @param world the world the map will belong to * @param location the origin location to find the nearest structure -@@ -946,7 +943,9 @@ public final class Bukkit { +@@ -948,7 +945,9 @@ public final class Bukkit { * * @see World#locateNearestStructure(org.bukkit.Location, * org.bukkit.StructureType, int, boolean) @@ -28,7 +28,7 @@ index 0865830a8d9f29dee47c34a192e26e4c1304a12c..8e2942664f73b0f92beb30c7a94b7206 @NotNull public static ItemStack createExplorerMap(@NotNull World world, @NotNull Location location, @NotNull StructureType structureType) { return server.createExplorerMap(world, location, structureType); -@@ -969,11 +968,54 @@ public final class Bukkit { +@@ -971,11 +970,54 @@ public final class Bukkit { * * @see World#locateNearestStructure(org.bukkit.Location, * org.bukkit.StructureType, int, boolean) @@ -84,10 +84,10 @@ index 0865830a8d9f29dee47c34a192e26e4c1304a12c..8e2942664f73b0f92beb30c7a94b7206 /** * Reloads the server, refreshing settings and plugin information. diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index bc55bf7361fb41a91766fcb2f1e4620e3db64781..78daaaa3b4f1ec1d05652287d9f9b08689bc2cbf 100644 +index c0ebbca69775775af22cf2c31b1516e5bf18df4a..c8395c8707e696f1e6fc8b0fd03f07203e01c157 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -800,16 +800,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -802,16 +802,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * * @see World#locateNearestStructure(org.bukkit.Location, * org.bukkit.StructureType, int, boolean) @@ -106,7 +106,7 @@ index bc55bf7361fb41a91766fcb2f1e4620e3db64781..78daaaa3b4f1ec1d05652287d9f9b086 * * @param world the world the map will belong to * @param location the origin location to find the nearest structure -@@ -821,9 +820,50 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -823,9 +822,50 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * * @see World#locateNearestStructure(org.bukkit.Location, * org.bukkit.StructureType, int, boolean) diff --git a/patches/api/0422-Add-Listing-API-for-Player.patch b/patches/api/0421-Add-Listing-API-for-Player.patch similarity index 89% rename from patches/api/0422-Add-Listing-API-for-Player.patch rename to patches/api/0421-Add-Listing-API-for-Player.patch index 66d1e974c0..94d5892bd0 100644 --- a/patches/api/0422-Add-Listing-API-for-Player.patch +++ b/patches/api/0421-Add-Listing-API-for-Player.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Listing API for Player diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index cc84581276a793bb8c4851ab55591f8251b6403b..0d6401cd26424c971b137c968467e29f47c03d8b 100644 +index 463521dc80254cab673c5203ee263948081219e9..5753d6d6ae791e2b086c861ddeb6522e46f2571c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1989,6 +1989,32 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2033,6 +2033,32 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public boolean canSee(@NotNull Entity entity); diff --git a/patches/api/0423-Expose-clicked-BlockFace-during-BlockDamageEvent.patch b/patches/api/0422-Expose-clicked-BlockFace-during-BlockDamageEvent.patch similarity index 100% rename from patches/api/0423-Expose-clicked-BlockFace-during-BlockDamageEvent.patch rename to patches/api/0422-Expose-clicked-BlockFace-during-BlockDamageEvent.patch diff --git a/patches/api/0424-Fix-NPE-on-Boat-getStatus.patch b/patches/api/0423-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/api/0424-Fix-NPE-on-Boat-getStatus.patch rename to patches/api/0423-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/api/0425-Expand-Pose-API.patch b/patches/api/0424-Expand-Pose-API.patch similarity index 95% rename from patches/api/0425-Expand-Pose-API.patch rename to patches/api/0424-Expand-Pose-API.patch index 42cbaf8eb9..b6d907acb4 100644 --- a/patches/api/0425-Expand-Pose-API.patch +++ b/patches/api/0424-Expand-Pose-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 2a30cda9efb24829f9c6a265e8be2dd848fa7c7c..23def071492ccd715693d534cc506936e18f0f46 100644 +index 8dcb9f17046ac5dc0301b5d4984b016514e19109..62e3793903905b94eb1a120345015149abb33713 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -836,6 +836,42 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/api/0426-MerchantRecipe-add-copy-constructor.patch b/patches/api/0425-MerchantRecipe-add-copy-constructor.patch similarity index 100% rename from patches/api/0426-MerchantRecipe-add-copy-constructor.patch rename to patches/api/0425-MerchantRecipe-add-copy-constructor.patch diff --git a/patches/api/0427-More-DragonBattle-API.patch b/patches/api/0426-More-DragonBattle-API.patch similarity index 100% rename from patches/api/0427-More-DragonBattle-API.patch rename to patches/api/0426-More-DragonBattle-API.patch diff --git a/patches/api/0428-Add-PlayerPickItemEvent.patch b/patches/api/0427-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/api/0428-Add-PlayerPickItemEvent.patch rename to patches/api/0427-Add-PlayerPickItemEvent.patch diff --git a/patches/api/0429-Allow-trident-custom-damage.patch b/patches/api/0428-Allow-trident-custom-damage.patch similarity index 100% rename from patches/api/0429-Allow-trident-custom-damage.patch rename to patches/api/0428-Allow-trident-custom-damage.patch diff --git a/patches/api/0430-Expose-hand-during-BlockCanBuildEvent.patch b/patches/api/0429-Expose-hand-during-BlockCanBuildEvent.patch similarity index 100% rename from patches/api/0430-Expose-hand-during-BlockCanBuildEvent.patch rename to patches/api/0429-Expose-hand-during-BlockCanBuildEvent.patch diff --git a/patches/api/0431-Limit-setBurnTime-to-valid-short-values.patch b/patches/api/0430-Limit-setBurnTime-to-valid-short-values.patch similarity index 100% rename from patches/api/0431-Limit-setBurnTime-to-valid-short-values.patch rename to patches/api/0430-Limit-setBurnTime-to-valid-short-values.patch diff --git a/patches/api/0432-Add-OfflinePlayer-isConnected.patch b/patches/api/0431-Add-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/api/0432-Add-OfflinePlayer-isConnected.patch rename to patches/api/0431-Add-OfflinePlayer-isConnected.patch diff --git a/patches/api/0433-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/api/0432-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 100% rename from patches/api/0433-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/api/0432-Add-titleOverride-to-InventoryOpenEvent.patch diff --git a/patches/api/0434-Allow-proper-checking-of-empty-item-stacks.patch b/patches/api/0433-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/api/0434-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/api/0433-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/api/0435-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch b/patches/api/0434-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch similarity index 100% rename from patches/api/0435-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch rename to patches/api/0434-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch diff --git a/patches/api/0436-Add-player-idle-duration-API.patch b/patches/api/0435-Add-player-idle-duration-API.patch similarity index 89% rename from patches/api/0436-Add-player-idle-duration-API.patch rename to patches/api/0435-Add-player-idle-duration-API.patch index d8f5d40c3c..41b55311ed 100644 --- a/patches/api/0436-Add-player-idle-duration-API.patch +++ b/patches/api/0435-Add-player-idle-duration-API.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 0d6401cd26424c971b137c968467e29f47c03d8b..0d585390066966f3afd6b88c6d80806292a3cd31 100644 +index 5753d6d6ae791e2b086c861ddeb6522e46f2571c..9261f06e332f8db94b2ef7bc01f5b0e61422bcb2 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3645,6 +3645,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3689,6 +3689,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void increaseWardenWarningLevel(); // Paper end diff --git a/patches/api/0437-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/api/0436-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/api/0437-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/api/0436-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/api/0438-Add-predicate-for-blocks-when-raytracing.patch b/patches/api/0437-Add-predicate-for-blocks-when-raytracing.patch similarity index 98% rename from patches/api/0438-Add-predicate-for-blocks-when-raytracing.patch rename to patches/api/0437-Add-predicate-for-blocks-when-raytracing.patch index e03c5e17fa..c212167a42 100644 --- a/patches/api/0438-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/api/0437-Add-predicate-for-blocks-when-raytracing.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add predicate for blocks when raytracing diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index fa81e440ad20ab8740cb073f515d1671dc6ea9a0..377d57b0e603898d309a9384aa8bb9fca97673e3 100644 +index 00fbc02a1751902edda327236e51a6991f5366f8..3abd62dc08e1edaeec6773819c8726671221074a 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1703,6 +1703,27 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0439-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/api/0438-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/api/0439-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/api/0438-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/api/0440-Add-UUID-attribute-modifier-API.patch b/patches/api/0439-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/api/0440-Add-UUID-attribute-modifier-API.patch rename to patches/api/0439-Add-UUID-attribute-modifier-API.patch diff --git a/patches/api/0441-Expand-LingeringPotion-API.patch b/patches/api/0440-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/api/0441-Expand-LingeringPotion-API.patch rename to patches/api/0440-Expand-LingeringPotion-API.patch diff --git a/patches/api/0442-Remove-unnecessary-durability-check-in-ItemStack-isS.patch b/patches/api/0441-Remove-unnecessary-durability-check-in-ItemStack-isS.patch similarity index 100% rename from patches/api/0442-Remove-unnecessary-durability-check-in-ItemStack-isS.patch rename to patches/api/0441-Remove-unnecessary-durability-check-in-ItemStack-isS.patch diff --git a/patches/api/0443-Add-Structure-check-API.patch b/patches/api/0442-Add-Structure-check-API.patch similarity index 94% rename from patches/api/0443-Add-Structure-check-API.patch rename to patches/api/0442-Add-Structure-check-API.patch index 00a6416368..4c0756c86e 100644 --- a/patches/api/0443-Add-Structure-check-API.patch +++ b/patches/api/0442-Add-Structure-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 377d57b0e603898d309a9384aa8bb9fca97673e3..35fb5047dd8a8521586a9ca9f8d70881355fb7f5 100644 +index 3abd62dc08e1edaeec6773819c8726671221074a..0e3c7de14be8dc01199fd68b6bf41783c5c43ec3 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -78,6 +78,30 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0444-add-missing-Experimental-annotations.patch b/patches/api/0443-add-missing-Experimental-annotations.patch similarity index 83% rename from patches/api/0444-add-missing-Experimental-annotations.patch rename to patches/api/0443-add-missing-Experimental-annotations.patch index 714fd8e1a3..fb55944d12 100644 --- a/patches/api/0444-add-missing-Experimental-annotations.patch +++ b/patches/api/0443-add-missing-Experimental-annotations.patch @@ -28,10 +28,10 @@ index 5269df59f0e8099a72c6b628ac1b8c84a0d1a5d5..775fda4b299e1d6dba9b293b2f98505e public static final FeatureFlag UPDATE_121 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_21")); } diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..ec117c47401ea1a04beb0e5ee9d4d394db7c5c4e 100644 +index fab8dfb1bd80490f6891687914997cc8580542cd..76ace93e930a80496504f1afc2897bc08bf2a6e5 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -144,54 +144,67 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -145,54 +145,67 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla * BlockData: {@link Slab} */ @MinecraftExperimental @@ -99,7 +99,7 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..ec117c47401ea1a04beb0e5ee9d4d394 CHISELED_TUFF_BRICKS(8601), DRIPSTONE_BLOCK(26227), /** -@@ -305,12 +318,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -311,12 +324,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla WEATHERED_COPPER(19699), OXIDIZED_COPPER(19490), @MinecraftExperimental @@ -116,7 +116,7 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..ec117c47401ea1a04beb0e5ee9d4d394 OXIDIZED_CHISELED_COPPER(27719), CUT_COPPER(32519), EXPOSED_CUT_COPPER(18000), -@@ -353,12 +370,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -359,12 +376,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla WAXED_WEATHERED_COPPER(5960), WAXED_OXIDIZED_COPPER(25626), @MinecraftExperimental @@ -133,7 +133,7 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..ec117c47401ea1a04beb0e5ee9d4d394 WAXED_OXIDIZED_CHISELED_COPPER(7735), WAXED_CUT_COPPER(11030), WAXED_EXPOSED_CUT_COPPER(30043), -@@ -2100,41 +2121,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -2106,41 +2127,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla * BlockData: {@link Door} */ @MinecraftExperimental @@ -183,7 +183,7 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..ec117c47401ea1a04beb0e5ee9d4d394 WAXED_OXIDIZED_COPPER_DOOR(23888, Door.class), /** * BlockData: {@link TrapDoor} -@@ -2188,41 +2217,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -2194,41 +2223,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla * BlockData: {@link TrapDoor} */ @MinecraftExperimental @@ -233,7 +233,7 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..ec117c47401ea1a04beb0e5ee9d4d394 WAXED_OXIDIZED_COPPER_TRAPDOOR(21450, TrapDoor.class), /** * BlockData: {@link Gate} -@@ -2522,6 +2559,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -2530,6 +2567,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla EGG(21603, 16), COMPASS(24139), RECOVERY_COMPASS(12710), @@ -242,7 +242,7 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..ec117c47401ea1a04beb0e5ee9d4d394 BUNDLE(16835, 1), FISHING_ROD(4167, 1, 64), CLOCK(14980), -@@ -2628,6 +2667,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -2636,6 +2675,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla * BlockData: {@link Crafter} */ @MinecraftExperimental @@ -250,15 +250,18 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..ec117c47401ea1a04beb0e5ee9d4d394 CRAFTER(25243, Crafter.class), FILLED_MAP(23504), SHEARS(27971, 1, 238), -@@ -2667,6 +2707,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -2676,8 +2716,10 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla BEE_SPAWN_EGG(22924), BLAZE_SPAWN_EGG(4759), @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + BOGGED_SPAWN_EGG(12042), + @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation BREEZE_SPAWN_EGG(7580), CAT_SPAWN_EGG(29583), CAMEL_SPAWN_EGG(14760), -@@ -3162,88 +3203,106 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -3189,88 +3231,106 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla * BlockData: {@link Waterlogged} */ @MinecraftExperimental @@ -363,13 +366,13 @@ index 9f86ad25a57b3f6e6bda1ce657833837cb3b2292..ec117c47401ea1a04beb0e5ee9d4d394 @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation TRIAL_KEY(12725), - /** - * BlockData: {@link Levelled} + @MinecraftExperimental + OMINOUS_TRIAL_KEY(4986), diff --git a/src/main/java/org/bukkit/Particle.java b/src/main/java/org/bukkit/Particle.java -index 0cb15350704955f4a1aeff184a8b60d9a9871ded..594de70f30e292748935f5b1e43a5a7d76bb8ca0 100644 +index 690cf2aedf558396a71b20ba2b8ce737c61dfe43..13fc04abacd36af8755ec0061f4b652f1719d3e5 100644 --- a/src/main/java/org/bukkit/Particle.java +++ b/src/main/java/org/bukkit/Particle.java -@@ -136,12 +136,16 @@ public enum Particle implements Keyed { +@@ -129,14 +129,19 @@ public enum Particle implements Keyed { DUST_PLUME("dust_plume"), WHITE_SMOKE("white_smoke"), @MinecraftExperimental @@ -377,20 +380,23 @@ index 0cb15350704955f4a1aeff184a8b60d9a9871ded..594de70f30e292748935f5b1e43a5a7d GUST("gust"), @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation - GUST_EMITTER("gust_emitter"), + SMALL_GUST("small_gust"), @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation - GUST_DUST("gust_dust"), + GUST_EMITTER_LARGE("gust_emitter_large"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + GUST_EMITTER_SMALL("gust_emitter_small"), @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation TRIAL_SPAWNER_DETECTION("trial_spawner_detection"), - /** - * Uses {@link BlockData} as DataType + @MinecraftExperimental + TRIAL_SPAWNER_DETECTION_OMINOUS("trial_spawner_detection_ominous"), diff --git a/src/main/java/org/bukkit/Sound.java b/src/main/java/org/bukkit/Sound.java -index 72ea6ddd00eed73459d700d657929f83ba1ca7ee..bb1b6bc9349af6dec369420035e860921da52589 100644 +index ddc4c5097214371108dc945371e1d28811352c38..5a4a1beee97f14d287787353fa2c942175093134 100644 --- a/src/main/java/org/bukkit/Sound.java +++ b/src/main/java/org/bukkit/Sound.java -@@ -215,40 +215,56 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa +@@ -220,40 +220,56 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa BLOCK_CONDUIT_DEACTIVATE("block.conduit.deactivate"), BLOCK_COPPER_BREAK("block.copper.break"), @MinecraftExperimental @@ -447,7 +453,7 @@ index 72ea6ddd00eed73459d700d657929f83ba1ca7ee..bb1b6bc9349af6dec369420035e86092 BLOCK_COPPER_TRAPDOOR_OPEN("block.copper_trapdoor.open"), BLOCK_CORAL_BLOCK_BREAK("block.coral_block.break"), BLOCK_CORAL_BLOCK_FALL("block.coral_block.fall"), -@@ -531,14 +547,19 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa +@@ -546,14 +562,19 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa BLOCK_POLISHED_DEEPSLATE_PLACE("block.polished_deepslate.place"), BLOCK_POLISHED_DEEPSLATE_STEP("block.polished_deepslate.step"), @MinecraftExperimental @@ -467,16 +473,21 @@ index 72ea6ddd00eed73459d700d657929f83ba1ca7ee..bb1b6bc9349af6dec369420035e86092 BLOCK_POLISHED_TUFF_STEP("block.polished_tuff.step"), BLOCK_PORTAL_AMBIENT("block.portal.ambient"), BLOCK_PORTAL_TRAVEL("block.portal.travel"), -@@ -684,26 +705,37 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - BLOCK_SWEET_BERRY_BUSH_PICK_BERRIES("block.sweet_berry_bush.pick_berries"), - BLOCK_SWEET_BERRY_BUSH_PLACE("block.sweet_berry_bush.place"), +@@ -701,34 +722,46 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_ABOUT_TO_SPAWN_ITEM("block.trial_spawner.about_to_spawn_item"), @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation BLOCK_TRIAL_SPAWNER_AMBIENT("block.trial_spawner.ambient"), @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_AMBIENT_CHARGED("block.trial_spawner.ambient_charged"), + @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation BLOCK_TRIAL_SPAWNER_BREAK("block.trial_spawner.break"), @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + BLOCK_TRIAL_SPAWNER_CHARGE_ACTIVATE("block.trial_spawner.charge_activate"), + @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation BLOCK_TRIAL_SPAWNER_CLOSE_SHUTTER("block.trial_spawner.close_shutter"), @MinecraftExperimental @@ -498,6 +509,10 @@ index 72ea6ddd00eed73459d700d657929f83ba1ca7ee..bb1b6bc9349af6dec369420035e86092 + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation BLOCK_TRIAL_SPAWNER_PLACE("block.trial_spawner.place"), @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_SPAWN_ITEM("block.trial_spawner.spawn_item"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_SPAWN_ITEM_BEGIN("block.trial_spawner.spawn_item_begin"), + @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation BLOCK_TRIAL_SPAWNER_SPAWN_MOB("block.trial_spawner.spawn_mob"), @MinecraftExperimental @@ -505,7 +520,7 @@ index 72ea6ddd00eed73459d700d657929f83ba1ca7ee..bb1b6bc9349af6dec369420035e86092 BLOCK_TRIAL_SPAWNER_STEP("block.trial_spawner.step"), BLOCK_TRIPWIRE_ATTACH("block.tripwire.attach"), BLOCK_TRIPWIRE_CLICK_OFF("block.tripwire.click_off"), -@@ -711,14 +743,19 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa +@@ -736,14 +769,19 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa BLOCK_TRIPWIRE_DETACH("block.tripwire.detach"), BLOCK_TUFF_BREAK("block.tuff.break"), @MinecraftExperimental @@ -525,13 +540,33 @@ index 72ea6ddd00eed73459d700d657929f83ba1ca7ee..bb1b6bc9349af6dec369420035e86092 BLOCK_TUFF_BRICKS_STEP("block.tuff_bricks.step"), BLOCK_TUFF_FALL("block.tuff.fall"), BLOCK_TUFF_HIT("block.tuff.hit"), -@@ -809,22 +846,31 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa +@@ -874,36 +912,51 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa ENTITY_BOAT_PADDLE_LAND("entity.boat.paddle_land"), ENTITY_BOAT_PADDLE_WATER("entity.boat.paddle_water"), @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + ENTITY_BOGGED_AMBIENT("entity.bogged.ambient"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + ENTITY_BOGGED_DEATH("entity.bogged.death"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + ENTITY_BOGGED_HURT("entity.bogged.hurt"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + ENTITY_BOGGED_SHEAR("entity.bogged.shear"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + ENTITY_BOGGED_STEP("entity.bogged.step"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + ENTITY_BREEZE_CHARGE("entity.breeze.charge"), + @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation ENTITY_BREEZE_DEATH("entity.breeze.death"), @MinecraftExperimental + ENTITY_BREEZE_DEFLECT("entity.breeze.deflect"), + @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation ENTITY_BREEZE_HURT("entity.breeze.hurt"), @MinecraftExperimental @@ -555,25 +590,17 @@ index 72ea6ddd00eed73459d700d657929f83ba1ca7ee..bb1b6bc9349af6dec369420035e86092 @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation ENTITY_BREEZE_SLIDE("entity.breeze.slide"), - ENTITY_CAMEL_AMBIENT("entity.camel.ambient"), - ENTITY_CAMEL_DASH("entity.camel.dash"), -@@ -971,6 +1017,7 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - ENTITY_GENERIC_SPLASH("entity.generic.splash"), - ENTITY_GENERIC_SWIM("entity.generic.swim"), @MinecraftExperimental -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation - ENTITY_GENERIC_WIND_BURST("entity.generic.wind_burst"), - ENTITY_GHAST_AMBIENT("entity.ghast.ambient"), - ENTITY_GHAST_DEATH("entity.ghast.death"), -@@ -1124,6 +1171,7 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - ENTITY_PARROT_HURT("entity.parrot.hurt"), - ENTITY_PARROT_IMITATE_BLAZE("entity.parrot.imitate.blaze"), + ENTITY_BREEZE_WHIRL("entity.breeze.whirl"), +@@ -1209,6 +1262,7 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa + @MinecraftExperimental + ENTITY_PARROT_IMITATE_BOGGED("entity.parrot.imitate.bogged"), @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation ENTITY_PARROT_IMITATE_BREEZE("entity.parrot.imitate.breeze"), ENTITY_PARROT_IMITATE_CREEPER("entity.parrot.imitate.creeper"), ENTITY_PARROT_IMITATE_DROWNED("entity.parrot.imitate.drowned"), -@@ -1494,10 +1542,13 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa +@@ -1591,10 +1645,13 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa ITEM_BUCKET_FILL_POWDER_SNOW("item.bucket.fill_powder_snow"), ITEM_BUCKET_FILL_TADPOLE("item.bucket.fill_tadpole"), @MinecraftExperimental @@ -588,27 +615,25 @@ index 72ea6ddd00eed73459d700d657929f83ba1ca7ee..bb1b6bc9349af6dec369420035e86092 ITEM_CHORUS_FRUIT_TELEPORT("item.chorus_fruit.teleport"), ITEM_CROP_PLANT("item.crop.plant"), diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java -index dd509bd1f7e80a04a63d2ba6eca1ff845d12fb2d..8ca9c7c8d0d6138c825d765c270c29bce11fe09e 100644 +index cb5890e0e7bccfee2ba32dd4776f1ae1fdd539e8..7f1dc4288c2d324281e11dc582b6f4ef54bde632 100644 --- a/src/main/java/org/bukkit/Tag.java +++ b/src/main/java/org/bukkit/Tag.java -@@ -973,14 +973,17 @@ public interface Tag extends Keyed { +@@ -1234,6 +1234,7 @@ public interface Tag extends Keyed { + /** + * Vanilla tag representing entities which deflect projectiles. + */ ++ @org.jetbrains.annotations.ApiStatus.Experimental @MinecraftExperimental // Paper - add missing annotation + Tag ENTITY_TYPES_DEFLECTS_PROJECTILES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_projectiles"), EntityType.class); /** * Vanilla tag representing entities which deflect arrows. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental @MinecraftExperimental // Paper - add missing annotation - Tag ENTITY_TYPES_DEFLECTS_ARROWS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_arrows"), EntityType.class); - /** - * Vanilla tag representing entities which deflect tridents. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental @MinecraftExperimental // Paper - add missing annotation - Tag ENTITY_TYPES_DEFLECTS_TRIDENTS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_tridents"), EntityType.class); +@@ -1244,6 +1245,7 @@ public interface Tag extends Keyed { /** * Vanilla tag representing entities which can turn in boats. */ + @org.jetbrains.annotations.ApiStatus.Experimental @MinecraftExperimental // Paper - add missing annotation Tag ENTITY_TYPES_CAN_TURN_IN_BOATS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_turn_in_boats"), EntityType.class); - - // Paper start + /** + * Vanilla tag representing all entities sensitive to illager enchantments. diff --git a/src/main/java/org/bukkit/generator/structure/Structure.java b/src/main/java/org/bukkit/generator/structure/Structure.java index 65d3d8fd5f00114dc388d65321a9affe1b32ce20..8e39f282c771ddafe5d890dcf065c56f0c633647 100644 --- a/src/main/java/org/bukkit/generator/structure/Structure.java @@ -622,16 +647,37 @@ index 65d3d8fd5f00114dc388d65321a9affe1b32ce20..8e39f282c771ddafe5d890dcf065c56f private static Structure getStructure(String name) { diff --git a/src/main/java/org/bukkit/loot/LootTables.java b/src/main/java/org/bukkit/loot/LootTables.java -index fe1af164da1e27f413a66acf2856d35bd2f72b6c..0cbdeb044beeef59285f5d6ed8782aa8b46e80d9 100644 +index 0a3bce3b9d27e6a978e0c40d9f16afb8b2e14e9b..a29b4e72de9d9d605a227c3cf66fc9f180750d27 100644 --- a/src/main/java/org/bukkit/loot/LootTables.java +++ b/src/main/java/org/bukkit/loot/LootTables.java -@@ -35,24 +35,34 @@ public enum LootTables implements Keyed { +@@ -35,38 +35,55 @@ public enum LootTables implements Keyed { ANCIENT_CITY_ICE_BOX("chests/ancient_city_ice_box"), RUINED_PORTAL("chests/ruined_portal"), @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation TRIAL_CHAMBERS_REWARD("chests/trial_chambers/reward"), @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + TRIAL_CHAMBERS_REWARD_COMMON("chests/trial_chambers/reward_common"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + TRIAL_CHAMBERS_REWARD_RARE("chests/trial_chambers/reward_rare"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + TRIAL_CHAMBERS_REWARD_UNIQUE("chests/trial_chambers/reward_unique"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + TRIAL_CHAMBERS_REWARD_OMINOUS("chests/trial_chambers/reward_ominous"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + TRIAL_CHAMBERS_REWARD_OMINOUS_COMMON("chests/trial_chambers/reward_ominous_common"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + TRIAL_CHAMBERS_REWARD_OMINOUS_RARE("chests/trial_chambers/reward_ominous_rare"), + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + TRIAL_CHAMBERS_REWARD_OMINOUS_UNIQUE("chests/trial_chambers/reward_ominous_unique"), + @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation TRIAL_CHAMBERS_SUPPLY("chests/trial_chambers/supply"), @MinecraftExperimental @@ -658,9 +704,9 @@ index fe1af164da1e27f413a66acf2856d35bd2f72b6c..0cbdeb044beeef59285f5d6ed8782aa8 @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation TRIAL_CHAMBERS_CORRIDOR_POT("pots/trial_chambers/corridor"), - SHIPWRECK_MAP("chests/shipwreck_map"), - SHIPWRECK_SUPPLY("chests/shipwreck_supply"), -@@ -180,8 +190,10 @@ public enum LootTables implements Keyed { + @MinecraftExperimental + EQUIPMENT_TRIAL_CHAMBER("equipment/trial_chamber"), +@@ -201,8 +218,10 @@ public enum LootTables implements Keyed { PIGLIN_BARTERING("gameplay/piglin_bartering"), // Spawners @MinecraftExperimental @@ -669,5 +715,5 @@ index fe1af164da1e27f413a66acf2856d35bd2f72b6c..0cbdeb044beeef59285f5d6ed8782aa8 @MinecraftExperimental + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation TRIAL_CHAMBER_CONSUMABLES("spawners/trial_chamber/consumables"), - // Archaeology - DESERT_WELL_ARCHAEOLOGY("archaeology/desert_well"), + @MinecraftExperimental + OMINOUS_TRIAL_CHAMBER_KEY("spawners/ominous/trial_chamber/key"), diff --git a/patches/api/0445-Add-more-scoreboard-API.patch b/patches/api/0444-Add-more-scoreboard-API.patch similarity index 100% rename from patches/api/0445-Add-more-scoreboard-API.patch rename to patches/api/0444-Add-more-scoreboard-API.patch diff --git a/patches/api/0446-Improve-Registry.patch b/patches/api/0445-Improve-Registry.patch similarity index 91% rename from patches/api/0446-Improve-Registry.patch rename to patches/api/0445-Improve-Registry.patch index 43e30a4477..bb36e1435d 100644 --- a/patches/api/0446-Improve-Registry.patch +++ b/patches/api/0445-Improve-Registry.patch @@ -10,7 +10,7 @@ getKey() methods on Keyed objects that have a registry are marked as Deprecated or Obsolete. diff --git a/src/main/java/org/bukkit/MusicInstrument.java b/src/main/java/org/bukkit/MusicInstrument.java -index ee5368372e136541eafe1d7ffb395de670fe4843..31a81ac909976492f0c6b93ad49008878a3bcae2 100644 +index 62d2b3f950860dee0898d77b0a29635c3f9a7e23..704dba92f9246ef398ed8d162ebee3cf305960e1 100644 --- a/src/main/java/org/bukkit/MusicInstrument.java +++ b/src/main/java/org/bukkit/MusicInstrument.java @@ -53,6 +53,16 @@ public abstract class MusicInstrument implements Keyed, net.kyori.adventure.tran @@ -31,10 +31,10 @@ index ee5368372e136541eafe1d7ffb395de670fe4843..31a81ac909976492f0c6b93ad4900887 @Override public @NotNull String translationKey() { diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java -index 18c672f3855a329bf8f87a9de81b677e8e360b41..e1fb4d8cca6a9c59047b1396f5c40bea957d777a 100644 +index ff870d18f3870d1432167516b166cece075d77bc..0b578ac7646db0a1afd7a04a77280c977a298826 100644 --- a/src/main/java/org/bukkit/Registry.java +++ b/src/main/java/org/bukkit/Registry.java -@@ -313,6 +313,49 @@ public interface Registry extends Iterable { +@@ -328,6 +328,49 @@ public interface Registry extends Iterable { @Nullable T get(@NotNull NamespacedKey key); @@ -84,7 +84,7 @@ index 18c672f3855a329bf8f87a9de81b677e8e360b41..e1fb4d8cca6a9c59047b1396f5c40bea /** * Returns a new stream, which contains all registry items, which are registered to the registry. * -@@ -379,5 +422,12 @@ public interface Registry extends Iterable { +@@ -394,5 +437,12 @@ public interface Registry extends Iterable { public Iterator iterator() { return map.values().iterator(); } @@ -98,10 +98,10 @@ index 18c672f3855a329bf8f87a9de81b677e8e360b41..e1fb4d8cca6a9c59047b1396f5c40bea } } diff --git a/src/main/java/org/bukkit/block/banner/PatternType.java b/src/main/java/org/bukkit/block/banner/PatternType.java -index 1c5c6303de815dd4ffa68f47dd2b6fa187fd4b70..7cdcc70d1bc33c88b217638725713e9cde450bdb 100644 +index 0d250d0c1381aadab031f102f537422a731b88e1..31751aa31ef31142c37ef522a17435f4eeb7231a 100644 --- a/src/main/java/org/bukkit/block/banner/PatternType.java +++ b/src/main/java/org/bukkit/block/banner/PatternType.java -@@ -67,6 +67,13 @@ public enum PatternType implements Keyed { +@@ -72,6 +72,13 @@ public enum PatternType implements Keyed { this.key = NamespacedKey.minecraft(key); } @@ -153,10 +153,10 @@ index 941fac4eee338870d8c30cb1f64cab572cf54548..74816d6da4d7c8d2fa8a7b93fdc4bf29 + // Paper end - Registry#getKey } diff --git a/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java b/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java -index 3fa087d09c7c2d864eea25659951a537359c9589..31554cfa01360b0f92336617a75f313e0175af7a 100644 +index f2242ddc4085f7e7cdd748d860857822e3d9b007..087e99ed281c0b282d91345067bfca80762faa0b 100644 --- a/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java +++ b/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java -@@ -92,4 +92,14 @@ public interface TrimPattern extends Keyed, Translatable { +@@ -100,4 +100,14 @@ public interface TrimPattern extends Keyed, Translatable { @Deprecated(forRemoval = true) @org.jetbrains.annotations.NotNull String getTranslationKey(); // Paper end - adventure diff --git a/patches/api/0447-Add-experience-points-API.patch b/patches/api/0446-Add-experience-points-API.patch similarity index 93% rename from patches/api/0447-Add-experience-points-API.patch rename to patches/api/0446-Add-experience-points-API.patch index 3dcd7df05d..a0add5e837 100644 --- a/patches/api/0447-Add-experience-points-API.patch +++ b/patches/api/0446-Add-experience-points-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 0d585390066966f3afd6b88c6d80806292a3cd31..c6cb4f17469a8f2e60dd3e28d41402851ce5fb21 100644 +index 9261f06e332f8db94b2ef7bc01f5b0e61422bcb2..f08b1a2ec8815efcaaf1371e20eb1461a5f2d359 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1858,6 +1858,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1902,6 +1902,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param exp New total experience points */ public void setTotalExperience(int exp); diff --git a/patches/api/0448-Add-missing-InventoryType.patch b/patches/api/0447-Add-missing-InventoryType.patch similarity index 100% rename from patches/api/0448-Add-missing-InventoryType.patch rename to patches/api/0447-Add-missing-InventoryType.patch diff --git a/patches/api/0449-Add-drops-to-shear-events.patch b/patches/api/0448-Add-drops-to-shear-events.patch similarity index 100% rename from patches/api/0449-Add-drops-to-shear-events.patch rename to patches/api/0448-Add-drops-to-shear-events.patch diff --git a/patches/api/0450-Add-HiddenPotionEffect-API.patch b/patches/api/0449-Add-HiddenPotionEffect-API.patch similarity index 98% rename from patches/api/0450-Add-HiddenPotionEffect-API.patch rename to patches/api/0449-Add-HiddenPotionEffect-API.patch index 53d4b040a2..39363e9c3f 100644 --- a/patches/api/0450-Add-HiddenPotionEffect-API.patch +++ b/patches/api/0449-Add-HiddenPotionEffect-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add HiddenPotionEffect API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 80df95e93b9a919af8c2e98b09b75522ee60eae6..65112eae8b92344796850b1e4c89e75443eab2fe 100644 +index 4c0c548af4d2eff6fb6b6d11ba94a64db08ccb64..9a5873120e263d77d84183d1909e672f2b303a74 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -591,6 +591,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0451-Add-PlayerShieldDisableEvent.patch b/patches/api/0450-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/api/0451-Add-PlayerShieldDisableEvent.patch rename to patches/api/0450-Add-PlayerShieldDisableEvent.patch diff --git a/patches/api/0452-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch b/patches/api/0451-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch similarity index 100% rename from patches/api/0452-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch rename to patches/api/0451-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch diff --git a/patches/api/0453-Add-BlockStateMeta-clearBlockState.patch b/patches/api/0452-Add-BlockStateMeta-clearBlockState.patch similarity index 100% rename from patches/api/0453-Add-BlockStateMeta-clearBlockState.patch rename to patches/api/0452-Add-BlockStateMeta-clearBlockState.patch diff --git a/patches/api/0454-Expose-LootTable-of-DecoratedPot.patch b/patches/api/0453-Expose-LootTable-of-DecoratedPot.patch similarity index 100% rename from patches/api/0454-Expose-LootTable-of-DecoratedPot.patch rename to patches/api/0453-Expose-LootTable-of-DecoratedPot.patch diff --git a/patches/api/0455-Add-ShulkerDuplicateEvent.patch b/patches/api/0454-Add-ShulkerDuplicateEvent.patch similarity index 100% rename from patches/api/0455-Add-ShulkerDuplicateEvent.patch rename to patches/api/0454-Add-ShulkerDuplicateEvent.patch diff --git a/patches/api/0456-Add-api-for-spawn-egg-texture-colors.patch b/patches/api/0455-Add-api-for-spawn-egg-texture-colors.patch similarity index 100% rename from patches/api/0456-Add-api-for-spawn-egg-texture-colors.patch rename to patches/api/0455-Add-api-for-spawn-egg-texture-colors.patch diff --git a/patches/api/0457-Add-Lifecycle-Event-system.patch b/patches/api/0456-Add-Lifecycle-Event-system.patch similarity index 100% rename from patches/api/0457-Add-Lifecycle-Event-system.patch rename to patches/api/0456-Add-Lifecycle-Event-system.patch diff --git a/patches/api/0459-ItemStack-Tooltip-API.patch b/patches/api/0457-ItemStack-Tooltip-API.patch similarity index 100% rename from patches/api/0459-ItemStack-Tooltip-API.patch rename to patches/api/0457-ItemStack-Tooltip-API.patch diff --git a/patches/api/0460-Add-getChunkSnapshot-includeLightData-parameter.patch b/patches/api/0458-Add-getChunkSnapshot-includeLightData-parameter.patch similarity index 100% rename from patches/api/0460-Add-getChunkSnapshot-includeLightData-parameter.patch rename to patches/api/0458-Add-getChunkSnapshot-includeLightData-parameter.patch diff --git a/patches/api/0458-Conduit-API.patch b/patches/api/0458-Conduit-API.patch deleted file mode 100644 index 57f43f96a3..0000000000 --- a/patches/api/0458-Conduit-API.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Tamion <70228790+notTamion@users.noreply.github.com> -Date: Sat, 27 Jan 2024 20:46:29 +0100 -Subject: [PATCH] Conduit API - - -diff --git a/src/main/java/org/bukkit/block/Conduit.java b/src/main/java/org/bukkit/block/Conduit.java -index 5543165536e84503c2d1476ee2001468cbb724f9..b3eec2eab586072598a40375a1c3e722ee3fa352 100644 ---- a/src/main/java/org/bukkit/block/Conduit.java -+++ b/src/main/java/org/bukkit/block/Conduit.java -@@ -3,4 +3,34 @@ package org.bukkit.block; - /** - * Represents a captured state of a conduit. - */ --public interface Conduit extends TileState { } -+public interface Conduit extends TileState { -+ -+ // Paper start - Conduit API -+ -+ /** -+ * Gets if the conduit is currently active. -+ *

    -+ * Requires the conduit to be placed in the world. -+ * -+ * @return if the conduit is active -+ */ -+ boolean isActive(); -+ -+ /** -+ * Gets the range in which the Conduit Power effect gets added to players. -+ *

    -+ * Requires the conduit to be placed in the world. -+ * -+ * @return the range -+ */ -+ int getRange(); -+ -+ /** -+ * Gets the current target of the conduit. -+ * -+ * @return the current target -+ */ -+ @org.jetbrains.annotations.Nullable -+ org.bukkit.entity.LivingEntity getTarget(); -+ // Paper end - Conduit API -+} diff --git a/patches/api/0461-Add-FluidState-API.patch b/patches/api/0459-Add-FluidState-API.patch similarity index 100% rename from patches/api/0461-Add-FluidState-API.patch rename to patches/api/0459-Add-FluidState-API.patch diff --git a/patches/api/0462-add-number-format-api.patch b/patches/api/0460-add-number-format-api.patch similarity index 100% rename from patches/api/0462-add-number-format-api.patch rename to patches/api/0460-add-number-format-api.patch diff --git a/patches/api/0463-improve-BanList-types.patch b/patches/api/0461-improve-BanList-types.patch similarity index 93% rename from patches/api/0463-improve-BanList-types.patch rename to patches/api/0461-improve-BanList-types.patch index f1738e1190..2236f8bf3e 100644 --- a/patches/api/0463-improve-BanList-types.patch +++ b/patches/api/0461-improve-BanList-types.patch @@ -68,10 +68,10 @@ index a77c0411a68a9bad33ddfb335b7a996a843e478c..0e0baadde9e34d28db56dc68e66aaf66 /** * Banned player names diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 8e2942664f73b0f92beb30c7a94b720610a43c15..9a428153f34291bdc026a71f7e60e285b7794b0c 100644 +index c9fbbf0287cd663080fc09ac83b439780cbfae85..687bd8f54c9bfb5f5ab1f7ad9d232daf2433cc76 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1639,11 +1639,27 @@ public final class Bukkit { +@@ -1651,11 +1651,27 @@ public final class Bukkit { * @param The ban target * * @return a ban list of the specified type @@ -100,10 +100,10 @@ index 8e2942664f73b0f92beb30c7a94b720610a43c15..9a428153f34291bdc026a71f7e60e285 /** * Gets a set containing all player operators. diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 78daaaa3b4f1ec1d05652287d9f9b08689bc2cbf..4ff1b38eb65f97344257204cf018f176f247ed36 100644 +index c8395c8707e696f1e6fc8b0fd03f07203e01c157..27084402cf0e46dcd171074629b7c4156e48aa44 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1400,10 +1400,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1410,10 +1410,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @param The ban target * * @return a ban list of the specified type diff --git a/patches/api/0464-Suspicious-Effect-Entry-API.patch b/patches/api/0462-Suspicious-Effect-Entry-API.patch similarity index 100% rename from patches/api/0464-Suspicious-Effect-Entry-API.patch rename to patches/api/0462-Suspicious-Effect-Entry-API.patch diff --git a/patches/api/0465-Fix-DamageSource-API.patch b/patches/api/0463-Fix-DamageSource-API.patch similarity index 100% rename from patches/api/0465-Fix-DamageSource-API.patch rename to patches/api/0463-Fix-DamageSource-API.patch diff --git a/patches/api/0466-Expanded-Hopper-API.patch b/patches/api/0464-Expanded-Hopper-API.patch similarity index 100% rename from patches/api/0466-Expanded-Hopper-API.patch rename to patches/api/0464-Expanded-Hopper-API.patch diff --git a/patches/api/0467-Clone-mutables-to-prevent-unexpected-issues.patch b/patches/api/0465-Clone-mutables-to-prevent-unexpected-issues.patch similarity index 100% rename from patches/api/0467-Clone-mutables-to-prevent-unexpected-issues.patch rename to patches/api/0465-Clone-mutables-to-prevent-unexpected-issues.patch diff --git a/patches/api/0468-Add-BlockBreakProgressUpdateEvent.patch b/patches/api/0466-Add-BlockBreakProgressUpdateEvent.patch similarity index 100% rename from patches/api/0468-Add-BlockBreakProgressUpdateEvent.patch rename to patches/api/0466-Add-BlockBreakProgressUpdateEvent.patch diff --git a/patches/api/0469-Deprecate-ItemStack-setType.patch b/patches/api/0467-Deprecate-ItemStack-setType.patch similarity index 100% rename from patches/api/0469-Deprecate-ItemStack-setType.patch rename to patches/api/0467-Deprecate-ItemStack-setType.patch diff --git a/patches/api/0470-Item-Mutation-Fixes.patch b/patches/api/0468-Item-Mutation-Fixes.patch similarity index 100% rename from patches/api/0470-Item-Mutation-Fixes.patch rename to patches/api/0468-Item-Mutation-Fixes.patch diff --git a/patches/api/0471-API-for-checking-sent-chunks.patch b/patches/api/0469-API-for-checking-sent-chunks.patch similarity index 93% rename from patches/api/0471-API-for-checking-sent-chunks.patch rename to patches/api/0469-API-for-checking-sent-chunks.patch index 30170f4dfe..8d97e181b0 100644 --- a/patches/api/0471-API-for-checking-sent-chunks.patch +++ b/patches/api/0469-API-for-checking-sent-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] API for checking sent chunks diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index c6cb4f17469a8f2e60dd3e28d41402851ce5fb21..d048ae07cc33fd77d128cc1ebf88b0804969fa3c 100644 +index f08b1a2ec8815efcaaf1371e20eb1461a5f2d359..8a1e39474af88188f2e1765731b57d349f0ee645 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3707,6 +3707,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3751,6 +3751,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void resetIdleDuration(); // Paper end diff --git a/patches/api/0472-Add-CartographyItemEvent.patch b/patches/api/0470-Add-CartographyItemEvent.patch similarity index 100% rename from patches/api/0472-Add-CartographyItemEvent.patch rename to patches/api/0470-Add-CartographyItemEvent.patch diff --git a/patches/api/0473-More-Raid-API.patch b/patches/api/0471-More-Raid-API.patch similarity index 91% rename from patches/api/0473-More-Raid-API.patch rename to patches/api/0471-More-Raid-API.patch index 6c0e5da000..921bc9c6fb 100644 --- a/patches/api/0473-More-Raid-API.patch +++ b/patches/api/0471-More-Raid-API.patch @@ -39,10 +39,10 @@ index 983a8c20a06d2b509602b27f49c090598b8ecc42..fa98599e3eee37bf68f0e9813497c718 + // Paper end } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 35fb5047dd8a8521586a9ca9f8d70881355fb7f5..e6f66d70d024cf4f0536a5bf8e51bf7b306335df 100644 +index 0e3c7de14be8dc01199fd68b6bf41783c5c43ec3..97f97ea5c6aa513c439f86a9c82821e0f7d9cd1e 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -4199,6 +4199,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4215,6 +4215,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable public Raid locateNearestRaid(@NotNull Location location, int radius); diff --git a/patches/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch index 62a6510820..a140c8cb77 100644 --- a/patches/server/0001-Setup-Gradle-project.patch +++ b/patches/server/0001-Setup-Gradle-project.patch @@ -28,7 +28,7 @@ index 37dab9e868dbfb019c271a547d975a48ad1cb571..3811c0d849a3eb028ed1a6b7a2d4747f +/.factorypath diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 -index 0000000000000000000000000000000000000000..4e0b810bd0a9991d10e13920f47f0b6d0a56f6aa +index 0000000000000000000000000000000000000000..8116ef8a1d098f0fe4fab661f913132ce3ec4ae9 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,141 @@ @@ -43,13 +43,13 @@ index 0000000000000000000000000000000000000000..4e0b810bd0a9991d10e13920f47f0b6d +dependencies { + implementation(project(":paper-api")) + implementation("jline:jline:2.12.1") -+ implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") { ++ implementation("org.apache.logging.log4j:log4j-iostreams:2.22.1") { + exclude(group = "org.apache.logging.log4j", module = "log4j-api") + } + implementation("org.ow2.asm:asm-commons:9.7") + implementation("commons-lang:commons-lang:2.6") -+ runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") -+ runtimeOnly("com.mysql:mysql-connector-j:8.2.0") ++ runtimeOnly("org.xerial:sqlite-jdbc:3.45.3.0") ++ runtimeOnly("com.mysql:mysql-connector-j:8.3.0") + + runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6") + runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") @@ -61,7 +61,7 @@ index 0000000000000000000000000000000000000000..4e0b810bd0a9991d10e13920f47f0b6d + testImplementation("org.ow2.asm:asm-tree:9.7") +} + -+val craftbukkitPackageVersion = "1_20_R3" // Paper ++val craftbukkitPackageVersion = "1_20_R4" // Paper +tasks.jar { + archiveClassifier.set("dev") + @@ -175,17 +175,17 @@ index 0000000000000000000000000000000000000000..4e0b810bd0a9991d10e13920f47f0b6d +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index 226b56846562846d1b89c54b67b4ccc235eaf3e9..0000000000000000000000000000000000000000 +index ca5ed64db9554831442170c57e288941454dcbca..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null -@@ -1,608 +0,0 @@ +@@ -1,613 +0,0 @@ - - 4.0.0 - org.spigotmc - spigot - jar -- 1.20.4-R0.1-SNAPSHOT +- 1.20.5-R0.1-SNAPSHOT - Spigot - https://www.spigotmc.org/ - @@ -201,9 +201,8 @@ index 226b56846562846d1b89c54b67b4ccc235eaf3e9..00000000000000000000000000000000 - UTF-8 - unknown - git -- 1_20_R3 -- 17 -- 17 +- 1_20_R4 +- 21 - - - @@ -236,7 +235,7 @@ index 226b56846562846d1b89c54b67b4ccc235eaf3e9..00000000000000000000000000000000 - - org.apache.logging.log4j - log4j-iostreams -- 2.19.0 +- 2.22.1 - compile - - @@ -249,13 +248,13 @@ index 226b56846562846d1b89c54b67b4ccc235eaf3e9..00000000000000000000000000000000 - - com.github.oshi - oshi-core -- 6.4.5 +- 6.4.10 - compile - - - com.mojang - authlib -- 5.0.51 +- 6.0.54 - compile - - @@ -267,19 +266,19 @@ index 226b56846562846d1b89c54b67b4ccc235eaf3e9..00000000000000000000000000000000 - - com.mojang - datafixerupper -- 6.0.8 +- 7.0.14 - compile - - - com.mojang - logging -- 1.1.1 +- 1.2.7 - compile - - - commons-io - commons-io -- 2.13.0 +- 2.15.1 - compile - - @@ -353,13 +352,13 @@ index 226b56846562846d1b89c54b67b4ccc235eaf3e9..00000000000000000000000000000000 - - net.java.dev.jna - jna -- 5.13.0 +- 5.14.0 - compile - - - net.java.dev.jna - jna-platform -- 5.13.0 +- 5.14.0 - compile - - @@ -371,25 +370,31 @@ index 226b56846562846d1b89c54b67b4ccc235eaf3e9..00000000000000000000000000000000 - - org.apache.commons - commons-lang3 -- 3.13.0 +- 3.14.0 - compile - - - org.apache.logging.log4j - log4j-core -- 2.19.0 +- 2.22.1 - compile - - - org.apache.logging.log4j - log4j-slf4j2-impl -- 2.19.0 +- 2.22.1 - compile - - - org.slf4j - slf4j-api -- 2.0.7 +- 2.0.9 +- compile +- +- +- org.lz4 +- lz4-java +- 1.8.0 - compile - - @@ -415,13 +420,13 @@ index 226b56846562846d1b89c54b67b4ccc235eaf3e9..00000000000000000000000000000000 - - org.xerial - sqlite-jdbc -- 3.42.0.1 +- 3.45.3.0 - runtime - - - com.mysql - mysql-connector-j -- 8.2.0 +- 8.3.0 - runtime - - @@ -673,7 +678,7 @@ index 226b56846562846d1b89c54b67b4ccc235eaf3e9..00000000000000000000000000000000 - - org.apache.maven.plugins - maven-compiler-plugin -- 3.11.0 +- 3.13.0 - - - eclipse @@ -684,7 +689,7 @@ index 226b56846562846d1b89c54b67b4ccc235eaf3e9..00000000000000000000000000000000 - - org.codehaus.plexus - plexus-compiler-eclipse -- 2.13.0 +- 2.15.0 - - - diff --git a/patches/server/0002-Remap-fixes.patch b/patches/server/0002-Remap-fixes.patch index 9a1f203f9a..1c0c07fc21 100644 --- a/patches/server/0002-Remap-fixes.patch +++ b/patches/server/0002-Remap-fixes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remap fixes diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 17a400bb1710afe0b2c88ba7b0a008d4dbcbfa0c..1a4cab0b9995b733aa84b89129009a99177eee9b 100644 +index f0a764d3e1a756537b8188e9f5361d0dbaca25a9..478d2114fbd5c499a8adbf8b6cefcc8335e830dc 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java -@@ -289,9 +289,11 @@ public class BlockPos extends Vec3i { +@@ -311,9 +311,11 @@ public class BlockPos extends Vec3i { public static Iterable withinManhattan(BlockPos center, int rangeX, int rangeY, int rangeZ) { int i = rangeX + rangeY + rangeZ; @@ -23,7 +23,7 @@ index 17a400bb1710afe0b2c88ba7b0a008d4dbcbfa0c..1a4cab0b9995b733aa84b89129009a99 return () -> new AbstractIterator() { private final BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos(); private int currentDepth; -@@ -305,7 +307,7 @@ public class BlockPos extends Vec3i { +@@ -327,7 +329,7 @@ public class BlockPos extends Vec3i { protected BlockPos computeNext() { if (this.zMirror) { this.zMirror = false; @@ -32,7 +32,7 @@ index 17a400bb1710afe0b2c88ba7b0a008d4dbcbfa0c..1a4cab0b9995b733aa84b89129009a99 return this.cursor; } else { BlockPos blockPos; -@@ -331,7 +333,7 @@ public class BlockPos extends Vec3i { +@@ -353,7 +355,7 @@ public class BlockPos extends Vec3i { int k = this.currentDepth - Math.abs(i) - Math.abs(j); if (k <= rangeZ) { this.zMirror = k != 0; @@ -42,10 +42,10 @@ index 17a400bb1710afe0b2c88ba7b0a008d4dbcbfa0c..1a4cab0b9995b733aa84b89129009a99 } diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java -index 1915b138ea89790ef8b7456b7fddcbd5d97e5444..ba9f6d288d8773f275e35a9513f7f59ad3f666c0 100644 +index 7344cff32fa6fe3dedb74ed98126072c55b0abd2..d98b28e9488a5a7736719cf656736bb026ec8c7e 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java -@@ -173,11 +173,11 @@ public class BehaviorUtils { +@@ -169,10 +169,10 @@ public class BehaviorUtils { return optional.map((uuid) -> { return ((ServerLevel) entity.level()).getEntity(uuid); @@ -53,31 +53,16 @@ index 1915b138ea89790ef8b7456b7fddcbd5d97e5444..ba9f6d288d8773f275e35a9513f7f59a + }).map((entity1) -> { // Paper - remap fix LivingEntity entityliving1; -- if (entity instanceof LivingEntity) { -- LivingEntity entityliving2 = (LivingEntity) entity; -+ if (entity1 instanceof LivingEntity) { // Paper - remap fix -+ LivingEntity entityliving2 = (LivingEntity) entity1; // Paper - remap fix - +- if (entity instanceof LivingEntity entityliving2) { ++ if (entity1 instanceof LivingEntity entityliving2) { // Paper - remap fix entityliving1 = entityliving2; } else { -diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java -index 17c42cfcec69385f0b65e2d42d735e8b8f6e7b04..04adc10f24f96804a5cb14e884224bb672360464 100644 ---- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java -+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java -@@ -193,7 +193,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener { - Builder> builder = ImmutableMap.builder(); - - recipes.forEach((recipeholder) -> { -- Map> map1 = (Map) map.computeIfAbsent(recipeholder.value().getType(), (recipes) -> { -+ Map> map1 = (Map) map.computeIfAbsent(recipeholder.value().getType(), (recipes_) -> { // Paper - remap fix - return new Object2ObjectLinkedOpenHashMap<>(); // CraftBukkit - }); - ResourceLocation minecraftkey = recipeholder.id(); + entityliving1 = null; diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java b/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java -index 95a5ce711150c4c999a9d17f28a497f034638610..214215d203892b8009595539f25ce26e8752debd 100644 +index 61592d57c26c359abda266f4ac8c58419e9beb02..83fce6746aaa3b378da6c5573ec9991d8438b071 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java -@@ -251,8 +251,8 @@ public class LootTable { +@@ -255,8 +255,8 @@ public class LootTable { public static class Builder implements FunctionUserBuilder { @@ -119,15 +104,15 @@ index b70450722da13bc4d358a70d3d1d2f30a2cca2b9..86d86c292bdeeb7f42685691287c3b4b } } diff --git a/src/test/java/org/bukkit/ParticleTest.java b/src/test/java/org/bukkit/ParticleTest.java -index 1edc58410316eaf45858db56897179587e8b22ee..cf6f34e506570e7bb9624c5899fbcdd762d8e0c4 100644 +index 9c9f5dd2351b3067b54d6cc5bdb572c46b12aaa8..307e8a3694c6f0b48d2df9792c3e5fdbaae1fd8e 100644 --- a/src/test/java/org/bukkit/ParticleTest.java +++ b/src/test/java/org/bukkit/ParticleTest.java -@@ -231,7 +231,7 @@ public class ParticleTest extends AbstractTestingBase { +@@ -250,7 +250,7 @@ public class ParticleTest extends AbstractTestingBase { Check in CraftParticle if the conversion is still correct. """, bukkit.getKey())); -- DataResult encoded = assertDoesNotThrow(() -> minecraft.codec().encodeStart(DynamicOpsNBT.INSTANCE, particleParam), -+ DataResult encoded = assertDoesNotThrow(() -> minecraft.codec().encodeStart(NbtOps.INSTANCE, particleParam), // Paper - remap fix +- DataResult encoded = assertDoesNotThrow(() -> minecraft.codec().codec().encodeStart(DynamicOpsNBT.INSTANCE, particleParam), ++ DataResult encoded = assertDoesNotThrow(() -> minecraft.codec().codec().encodeStart(NbtOps.INSTANCE, particleParam), // Paper - remap fix String.format(""" Could not encoded particle param for particle %s. This can indicated, that the wrong particle param is created in CraftParticle. @@ -187,7 +172,7 @@ index 5818bfa69a8573a2a8f350066f829d587cbc546b..8e421a1bee0c526e3024eab9ba4cc0b3 assertNotNull(bukkit, "Bukkit gene null for " + gene); diff --git a/src/test/java/org/bukkit/registry/RegistryConstantsTest.java b/src/test/java/org/bukkit/registry/RegistryConstantsTest.java -index 8abeb88d1514d22b5095153f9537317006f39df0..82a1efcb3aaaceaf12ad21559dec6b5112fcb361 100644 +index f3de891458ea190e1d608511b5984ca25b06b74c..1b1e55f70b3c9f922bd1cc63209816f50d7d29d1 100644 --- a/src/test/java/org/bukkit/registry/RegistryConstantsTest.java +++ b/src/test/java/org/bukkit/registry/RegistryConstantsTest.java @@ -28,17 +28,17 @@ public class RegistryConstantsTest extends AbstractTestingBase { @@ -212,10 +197,10 @@ index 8abeb88d1514d22b5095153f9537317006f39df0..82a1efcb3aaaceaf12ad21559dec6b51 for (Field field : clazz.getFields()) { diff --git a/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java b/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java -index b60b07f15fc61b9a92850b2008e2c928b94dbd04..da3eed6f130903bf27eed7e0bcae672a4f860c17 100644 +index 7d332ecf7905f71de106fe0e5fb4cc3e16bd6035..d7ef3a9a545d5278832b864bca683796b1fd0d42 100644 --- a/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java +++ b/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java -@@ -22,7 +22,7 @@ public class RegistryLoadOrderTest extends AbstractTestingBase { +@@ -24,7 +24,7 @@ public class RegistryLoadOrderTest extends AbstractTestingBase { private static boolean initInterface = false; private static boolean initAbstract = false; diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch index c935af1a00..51692ff801 100644 --- a/patches/server/0003-Build-system-changes.patch +++ b/patches/server/0003-Build-system-changes.patch @@ -9,20 +9,20 @@ public net.minecraft.server.packs.VanillaPackResourcesBuilder safeGetPath(Ljava/ Co-authored-by: Jake Potrebic diff --git a/build.gradle.kts b/build.gradle.kts -index 4e0b810bd0a9991d10e13920f47f0b6d0a56f6aa..50d9182a4845564cd62b026700a7d0517c25e74d 100644 +index 8116ef8a1d098f0fe4fab661f913132ce3ec4ae9..2905c7273ed4d62a7f1bc7eab9ae919ee6c012de 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,9 +9,7 @@ plugins { dependencies { implementation(project(":paper-api")) implementation("jline:jline:2.12.1") -- implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") { +- implementation("org.apache.logging.log4j:log4j-iostreams:2.22.1") { - exclude(group = "org.apache.logging.log4j", module = "log4j-api") - } -+ implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion ++ implementation("org.apache.logging.log4j:log4j-iostreams:2.22.1") // Paper - remove exclusion implementation("org.ow2.asm:asm-commons:9.7") implementation("commons-lang:commons-lang:2.6") - runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") + runtimeOnly("org.xerial:sqlite-jdbc:3.45.3.0") @@ -36,6 +34,7 @@ tasks.jar { val gitHash = git("rev-parse", "--short=7", "HEAD").getText().trim() val implementationVersion = System.getenv("BUILD_NUMBER") ?: "\"$gitHash\"" @@ -66,10 +66,10 @@ index 4e0b810bd0a9991d10e13920f47f0b6d0a56f6aa..50d9182a4845564cd62b026700a7d051 + jvmArgs("-DPaper.pushPaperAssetsRoot=true") } diff --git a/src/main/java/net/minecraft/resources/ResourceLocation.java b/src/main/java/net/minecraft/resources/ResourceLocation.java -index 0064a1112f392379ff095f95738f1368240ca4cf..aed74e471126a8a66046a181973158d7d288d3f0 100644 +index 0e93817621bad5d69cf0f9f839d033c47c861457..0ad6d9d417193248f6a9df67f1d1a66cef3ff122 100644 --- a/src/main/java/net/minecraft/resources/ResourceLocation.java +++ b/src/main/java/net/minecraft/resources/ResourceLocation.java -@@ -28,6 +28,7 @@ public class ResourceLocation implements Comparable { +@@ -32,6 +32,7 @@ public class ResourceLocation implements Comparable { public static final char NAMESPACE_SEPARATOR = ':'; public static final String DEFAULT_NAMESPACE = "minecraft"; public static final String REALMS_NAMESPACE = "realms"; @@ -78,7 +78,7 @@ index 0064a1112f392379ff095f95738f1368240ca4cf..aed74e471126a8a66046a181973158d7 private final String path; diff --git a/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java b/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java -index 6a11d33eb44e0fde731b54a9200eb44b20a73c43..29ab3aae87de2bf14b31268239d935e49cb0fa98 100644 +index 14fc03563daea531314c7ceba56dbb47884010ee..fcf95958ef659c7aa8e28026961fa1d6a5f8b28c 100644 --- a/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java +++ b/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java @@ -138,6 +138,15 @@ public class VanillaPackResourcesBuilder { @@ -98,10 +98,10 @@ index 6a11d33eb44e0fde731b54a9200eb44b20a73c43..29ab3aae87de2bf14b31268239d935e4 } diff --git a/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java b/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java -index dd5e32e7a64eaddab66905dba2595f2220706adb..439b9bc95ae8580fcde89f86565df39ba4040d59 100644 +index a5e8713bc0fefae455b666ebf13c9529e7ba94e6..407254c779c8291543873fe4e94c5f94981a81eb 100644 --- a/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java +++ b/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java -@@ -38,7 +38,7 @@ public class ServerPacksSource extends BuiltInPackSource { +@@ -48,7 +48,7 @@ public class ServerPacksSource extends BuiltInPackSource { public static VanillaPackResources createVanillaPackSource() { return new VanillaPackResourcesBuilder() .setMetadata(BUILT_IN_METADATA) @@ -109,12 +109,12 @@ index dd5e32e7a64eaddab66905dba2595f2220706adb..439b9bc95ae8580fcde89f86565df39b + .exposeNamespace("minecraft", ResourceLocation.PAPER_NAMESPACE) // Paper .applyDevelopmentConfig() .pushJarResources() - .build(); + .build(VANILLA_PACK_INFO); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 2930f37c663a1824a2d38df8e4b679aa6adbd870..67d347741db1c5a9a6568ee084388a59e35b16ea 100644 +index 5595eb892fa868508c45448942da65d7c11d49fd..4b8602b168f9dd386aa72b4e5d189c441c93542e 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 { +@@ -210,7 +210,7 @@ public class Main { } if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) { @@ -122,7 +122,7 @@ index 2930f37c663a1824a2d38df8e4b679aa6adbd870..67d347741db1c5a9a6568ee084388a59 + 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, -28); + deadline.add(Calendar.DAY_OF_YEAR, -3); 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 @@ -140,7 +140,7 @@ diff --git a/src/main/resources/data/.paperassetsroot b/src/main/resources/data/ new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java -index a1c2c702cc6b5d949df62b5ecf4cc62b8e4e8f77..0619361adf57fdc41c4ecb09d1d6a5c862a85f89 100644 +index 1bdf0b2b8f8e6dace403695fece80ebb3dc9e039..544307fe34cbcfa286a7d7b30900ebea127d189e 100644 --- a/src/test/java/org/bukkit/support/AbstractTestingBase.java +++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java @@ -43,6 +43,7 @@ public abstract class AbstractTestingBase { diff --git a/patches/server/0004-Test-changes.patch b/patches/unapplied/server/0004-Test-changes.patch similarity index 100% rename from patches/server/0004-Test-changes.patch rename to patches/unapplied/server/0004-Test-changes.patch diff --git a/patches/server/0005-Paper-config-files.patch b/patches/unapplied/server/0005-Paper-config-files.patch similarity index 100% rename from patches/server/0005-Paper-config-files.patch rename to patches/unapplied/server/0005-Paper-config-files.patch diff --git a/patches/server/0006-MC-Dev-fixes.patch b/patches/unapplied/server/0006-MC-Dev-fixes.patch similarity index 100% rename from patches/server/0006-MC-Dev-fixes.patch rename to patches/unapplied/server/0006-MC-Dev-fixes.patch diff --git a/patches/server/0007-ConcurrentUtil.patch b/patches/unapplied/server/0007-ConcurrentUtil.patch similarity index 100% rename from patches/server/0007-ConcurrentUtil.patch rename to patches/unapplied/server/0007-ConcurrentUtil.patch diff --git a/patches/server/0008-CB-fixes.patch b/patches/unapplied/server/0008-CB-fixes.patch similarity index 99% rename from patches/server/0008-CB-fixes.patch rename to patches/unapplied/server/0008-CB-fixes.patch index 98a115c15e..5557dcf6f3 100644 --- a/patches/server/0008-CB-fixes.patch +++ b/patches/unapplied/server/0008-CB-fixes.patch @@ -52,7 +52,7 @@ index b2f37e3caf305f7f2c19c59848717bf73bd2ef5d..87c8460324ff2d2a14e1404fcfa3adb2 @Override diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java -index 8fa222759b8ada1674a7d3ae1c0cdf91bfd7f915..da919ad85ce06572f8e7e4c121a2c222f975c7f5 100644 +index 3f5bedc49f249888cf435f5511f5ce1da921910b..a63eaec77251a7f6660d17d7210c639b71751c45 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java @@ -42,7 +42,7 @@ public class StructureCheck { diff --git a/patches/server/0009-MC-Utils.patch b/patches/unapplied/server/0009-MC-Utils.patch similarity index 100% rename from patches/server/0009-MC-Utils.patch rename to patches/unapplied/server/0009-MC-Utils.patch diff --git a/patches/server/0010-Adventure.patch b/patches/unapplied/server/0010-Adventure.patch similarity index 100% rename from patches/server/0010-Adventure.patch rename to patches/unapplied/server/0010-Adventure.patch diff --git a/patches/server/0011-Paper-command.patch b/patches/unapplied/server/0011-Paper-command.patch similarity index 100% rename from patches/server/0011-Paper-command.patch rename to patches/unapplied/server/0011-Paper-command.patch diff --git a/patches/server/0012-Paper-Metrics.patch b/patches/unapplied/server/0012-Paper-Metrics.patch similarity index 100% rename from patches/server/0012-Paper-Metrics.patch rename to patches/unapplied/server/0012-Paper-Metrics.patch diff --git a/patches/server/0013-Paper-Plugins.patch b/patches/unapplied/server/0013-Paper-Plugins.patch similarity index 99% rename from patches/server/0013-Paper-Plugins.patch rename to patches/unapplied/server/0013-Paper-Plugins.patch index 24c7946f56..3b9673ae92 100644 --- a/patches/server/0013-Paper-Plugins.patch +++ b/patches/unapplied/server/0013-Paper-Plugins.patch @@ -7117,7 +7117,7 @@ index f7114d5b8f2f93f62883e24da29afaf9f74ee1a6..8bf0630c0e06950cd99b7ae9898137f7 return foundFrame.orElse(null); diff --git a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java -index d14613f7d37198276c251e73703b060a971fac28..e741062f0c9c114db47124031c6fa6a6e145a5cd 100644 +index e8afaa3c1fab0435acb068426091bdf776263112..94da73ef6c77308a8bc21db4c0bca22a79376b58 100644 --- a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java +++ b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java @@ -312,7 +312,13 @@ public class BuiltInRegistries { diff --git a/patches/server/0014-Timings-v2.patch b/patches/unapplied/server/0014-Timings-v2.patch similarity index 100% rename from patches/server/0014-Timings-v2.patch rename to patches/unapplied/server/0014-Timings-v2.patch diff --git a/patches/server/0015-Add-TickThread.patch b/patches/unapplied/server/0015-Add-TickThread.patch similarity index 100% rename from patches/server/0015-Add-TickThread.patch rename to patches/unapplied/server/0015-Add-TickThread.patch diff --git a/patches/server/0016-Further-improve-server-tick-loop.patch b/patches/unapplied/server/0016-Further-improve-server-tick-loop.patch similarity index 99% rename from patches/server/0016-Further-improve-server-tick-loop.patch rename to patches/unapplied/server/0016-Further-improve-server-tick-loop.patch index 53f246d057..d4aa75ee92 100644 --- a/patches/server/0016-Further-improve-server-tick-loop.patch +++ b/patches/unapplied/server/0016-Further-improve-server-tick-loop.patch @@ -12,7 +12,7 @@ Previous implementation did not calculate TPS correctly. Switch to a realistic rolling average and factor in std deviation as an extra reporting variable diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3365d2ec8426888c16873a311226fa69840fa2f0..dd93d4957459556a102b9bf712dd80cb69810cb7 100644 +index 2be50609ccf90d3db6e572377ba63bcbad156382..c1f9acad1e97915dfad5fbc0ba2547853e3b37f1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -283,7 +283,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop & StringRepresentable> extends Prope @@ -51,7 +51,7 @@ index 3c590d400032d8266de63aae301fedbd83d37a1d..3a850321a4bcc68058483b5fd53e829c return true; } else { diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java -index ce06c1702e9ff2e966d94a0d622264e16ded493c..bad6c58b0adc1ca630d3e943a86a2bc66dd94c9f 100644 +index 7cbc5e6e75f389f47ef07045f9876cec192f14e4..9055f15af0cae55effa6942913a9d7edf3857e07 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java @@ -70,7 +70,7 @@ public abstract class Property> { diff --git a/patches/server/0103-Configurable-packet-in-spam-threshold.patch b/patches/unapplied/server/0103-Configurable-packet-in-spam-threshold.patch similarity index 94% rename from patches/server/0103-Configurable-packet-in-spam-threshold.patch rename to patches/unapplied/server/0103-Configurable-packet-in-spam-threshold.patch index 45836f3841..b14c58ef25 100644 --- a/patches/server/0103-Configurable-packet-in-spam-threshold.patch +++ b/patches/unapplied/server/0103-Configurable-packet-in-spam-threshold.patch @@ -5,7 +5,7 @@ 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 801e1727bd291f647c91e2c325810ead070f3752..b5471f86e4c9b5167ac96eb7a114cde0f6a35a9e 100644 +index 19ff229f90d07447947afa8b4794b683feceb574..6a0e6697331732555f9e4e63e95dce0a2bfc1a85 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1529,13 +1529,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0104-Configurable-flying-kick-messages.patch b/patches/unapplied/server/0104-Configurable-flying-kick-messages.patch similarity index 95% rename from patches/server/0104-Configurable-flying-kick-messages.patch rename to patches/unapplied/server/0104-Configurable-flying-kick-messages.patch index e0b03a6592..4bc41b33a5 100644 --- a/patches/server/0104-Configurable-flying-kick-messages.patch +++ b/patches/unapplied/server/0104-Configurable-flying-kick-messages.patch @@ -5,7 +5,7 @@ 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 b5471f86e4c9b5167ac96eb7a114cde0f6a35a9e..69e525776d57b2fe80d8bb9e94e981e553f329a3 100644 +index 6a0e6697331732555f9e4e63e95dce0a2bfc1a85..76d3ecbe62775b09aca1306b1adab56a5c730162 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -338,7 +338,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0105-Add-EntityZapEvent.patch b/patches/unapplied/server/0105-Add-EntityZapEvent.patch similarity index 100% rename from patches/server/0105-Add-EntityZapEvent.patch rename to patches/unapplied/server/0105-Add-EntityZapEvent.patch diff --git a/patches/server/0106-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch b/patches/unapplied/server/0106-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch similarity index 100% rename from patches/server/0106-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch rename to patches/unapplied/server/0106-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch diff --git a/patches/server/0107-Cache-user-authenticator-threads.patch b/patches/unapplied/server/0107-Cache-user-authenticator-threads.patch similarity index 100% rename from patches/server/0107-Cache-user-authenticator-threads.patch rename to patches/unapplied/server/0107-Cache-user-authenticator-threads.patch diff --git a/patches/server/0108-Allow-Reloading-of-Command-Aliases.patch b/patches/unapplied/server/0108-Allow-Reloading-of-Command-Aliases.patch similarity index 100% rename from patches/server/0108-Allow-Reloading-of-Command-Aliases.patch rename to patches/unapplied/server/0108-Allow-Reloading-of-Command-Aliases.patch diff --git a/patches/server/0109-Add-source-to-PlayerExpChangeEvent.patch b/patches/unapplied/server/0109-Add-source-to-PlayerExpChangeEvent.patch similarity index 100% rename from patches/server/0109-Add-source-to-PlayerExpChangeEvent.patch rename to patches/unapplied/server/0109-Add-source-to-PlayerExpChangeEvent.patch diff --git a/patches/server/0110-Add-ProjectileCollideEvent.patch b/patches/unapplied/server/0110-Add-ProjectileCollideEvent.patch similarity index 100% rename from patches/server/0110-Add-ProjectileCollideEvent.patch rename to patches/unapplied/server/0110-Add-ProjectileCollideEvent.patch diff --git a/patches/server/0111-Prevent-Pathfinding-out-of-World-Border.patch b/patches/unapplied/server/0111-Prevent-Pathfinding-out-of-World-Border.patch similarity index 100% rename from patches/server/0111-Prevent-Pathfinding-out-of-World-Border.patch rename to patches/unapplied/server/0111-Prevent-Pathfinding-out-of-World-Border.patch diff --git a/patches/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch b/patches/unapplied/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch similarity index 100% rename from patches/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch rename to patches/unapplied/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch diff --git a/patches/server/0113-Bound-Treasure-Maps-to-World-Border.patch b/patches/unapplied/server/0113-Bound-Treasure-Maps-to-World-Border.patch similarity index 100% rename from patches/server/0113-Bound-Treasure-Maps-to-World-Border.patch rename to patches/unapplied/server/0113-Bound-Treasure-Maps-to-World-Border.patch diff --git a/patches/server/0114-Configurable-Cartographer-Treasure-Maps.patch b/patches/unapplied/server/0114-Configurable-Cartographer-Treasure-Maps.patch similarity index 100% rename from patches/server/0114-Configurable-Cartographer-Treasure-Maps.patch rename to patches/unapplied/server/0114-Configurable-Cartographer-Treasure-Maps.patch diff --git a/patches/server/0115-Add-API-methods-to-control-if-armor-stands-can-move.patch b/patches/unapplied/server/0115-Add-API-methods-to-control-if-armor-stands-can-move.patch similarity index 100% rename from patches/server/0115-Add-API-methods-to-control-if-armor-stands-can-move.patch rename to patches/unapplied/server/0115-Add-API-methods-to-control-if-armor-stands-can-move.patch diff --git a/patches/server/0116-String-based-Action-Bar-API.patch b/patches/unapplied/server/0116-String-based-Action-Bar-API.patch similarity index 96% rename from patches/server/0116-String-based-Action-Bar-API.patch rename to patches/unapplied/server/0116-String-based-Action-Bar-API.patch index e26a398631..7a1dc79fbe 100644 --- a/patches/server/0116-String-based-Action-Bar-API.patch +++ b/patches/unapplied/server/0116-String-based-Action-Bar-API.patch @@ -26,7 +26,7 @@ index cb88a3a4e4c87a6d6c838183c1640b13d82c9344..0b391b0dc6262ef482c4a253a074b593 // 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 b79aea8ae49a4edbb45f0824535fd38d3686e67b..3d3927503dd7f157b59853c570ace002b7e07c25 100644 +index 02cabe9b5e413ce58b82061ea0347fc7a7ce6866..7acea9cd75fcb521ff3997f4fc4cd1d34c788192 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -307,6 +307,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0117-Properly-fix-item-duplication-bug.patch b/patches/unapplied/server/0117-Properly-fix-item-duplication-bug.patch similarity index 100% rename from patches/server/0117-Properly-fix-item-duplication-bug.patch rename to patches/unapplied/server/0117-Properly-fix-item-duplication-bug.patch diff --git a/patches/server/0118-Firework-API-s.patch b/patches/unapplied/server/0118-Firework-API-s.patch similarity index 100% rename from patches/server/0118-Firework-API-s.patch rename to patches/unapplied/server/0118-Firework-API-s.patch diff --git a/patches/server/0119-PlayerTeleportEndGatewayEvent.patch b/patches/unapplied/server/0119-PlayerTeleportEndGatewayEvent.patch similarity index 100% rename from patches/server/0119-PlayerTeleportEndGatewayEvent.patch rename to patches/unapplied/server/0119-PlayerTeleportEndGatewayEvent.patch diff --git a/patches/server/0120-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/unapplied/server/0120-Provide-E-TE-Chunk-count-stat-methods.patch similarity index 100% rename from patches/server/0120-Provide-E-TE-Chunk-count-stat-methods.patch rename to patches/unapplied/server/0120-Provide-E-TE-Chunk-count-stat-methods.patch diff --git a/patches/server/0121-Enforce-Sync-Player-Saves.patch b/patches/unapplied/server/0121-Enforce-Sync-Player-Saves.patch similarity index 100% rename from patches/server/0121-Enforce-Sync-Player-Saves.patch rename to patches/unapplied/server/0121-Enforce-Sync-Player-Saves.patch diff --git a/patches/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/unapplied/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch similarity index 100% rename from patches/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch rename to patches/unapplied/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch diff --git a/patches/server/0123-Cap-Entity-Collisions.patch b/patches/unapplied/server/0123-Cap-Entity-Collisions.patch similarity index 100% rename from patches/server/0123-Cap-Entity-Collisions.patch rename to patches/unapplied/server/0123-Cap-Entity-Collisions.patch diff --git a/patches/server/0124-Remove-CraftScheduler-Async-Task-Debugger.patch b/patches/unapplied/server/0124-Remove-CraftScheduler-Async-Task-Debugger.patch similarity index 100% rename from patches/server/0124-Remove-CraftScheduler-Async-Task-Debugger.patch rename to patches/unapplied/server/0124-Remove-CraftScheduler-Async-Task-Debugger.patch diff --git a/patches/server/0125-Properly-handle-async-calls-to-restart-the-server.patch b/patches/unapplied/server/0125-Properly-handle-async-calls-to-restart-the-server.patch similarity index 99% rename from patches/server/0125-Properly-handle-async-calls-to-restart-the-server.patch rename to patches/unapplied/server/0125-Properly-handle-async-calls-to-restart-the-server.patch index 09c60eff3e..a7eecd2511 100644 --- a/patches/server/0125-Properly-handle-async-calls-to-restart-the-server.patch +++ b/patches/unapplied/server/0125-Properly-handle-async-calls-to-restart-the-server.patch @@ -30,7 +30,7 @@ will have plugins and worlds saving to the disk has a high potential to result in corruption/dataloss. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b9c006bef0491c401ae3a447a3f67742a75cb74f..48513e585ce02c301983adbe1224e95ff7f9a345 100644 +index 04cc2b69336ceb463910c081119f3188d8c426d3..fa1a6c2f1c11506243cfc61b519bef578e5627fc 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -236,6 +236,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index fa8db93541dc62dc61bccc53c1aaeb3666d80ee1..5d4730b9ced378c1e77d7734f2f8aba6d09a19d0 100644 +index ff113cb3c11492ec09e0568f96fff40cbcd53716..8eec3d8b1693d9f9d7d882275e6f00cef4d3520f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -688,21 +688,58 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0162-PlayerPickupExperienceEvent.patch b/patches/unapplied/server/0162-PlayerPickupExperienceEvent.patch similarity index 100% rename from patches/server/0162-PlayerPickupExperienceEvent.patch rename to patches/unapplied/server/0162-PlayerPickupExperienceEvent.patch diff --git a/patches/server/0163-Ability-to-apply-mending-to-XP-API.patch b/patches/unapplied/server/0163-Ability-to-apply-mending-to-XP-API.patch similarity index 100% rename from patches/server/0163-Ability-to-apply-mending-to-XP-API.patch rename to patches/unapplied/server/0163-Ability-to-apply-mending-to-XP-API.patch diff --git a/patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch b/patches/unapplied/server/0164-PlayerNaturallySpawnCreaturesEvent.patch similarity index 100% rename from patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch rename to patches/unapplied/server/0164-PlayerNaturallySpawnCreaturesEvent.patch diff --git a/patches/server/0165-Add-setPlayerProfile-API-for-Skulls.patch b/patches/unapplied/server/0165-Add-setPlayerProfile-API-for-Skulls.patch similarity index 100% rename from patches/server/0165-Add-setPlayerProfile-API-for-Skulls.patch rename to patches/unapplied/server/0165-Add-setPlayerProfile-API-for-Skulls.patch diff --git a/patches/server/0166-PreCreatureSpawnEvent.patch b/patches/unapplied/server/0166-PreCreatureSpawnEvent.patch similarity index 100% rename from patches/server/0166-PreCreatureSpawnEvent.patch rename to patches/unapplied/server/0166-PreCreatureSpawnEvent.patch diff --git a/patches/server/0167-Fill-Profile-Property-Events.patch b/patches/unapplied/server/0167-Fill-Profile-Property-Events.patch similarity index 100% rename from patches/server/0167-Fill-Profile-Property-Events.patch rename to patches/unapplied/server/0167-Fill-Profile-Property-Events.patch diff --git a/patches/server/0168-Add-PlayerAdvancementCriterionGrantEvent.patch b/patches/unapplied/server/0168-Add-PlayerAdvancementCriterionGrantEvent.patch similarity index 100% rename from patches/server/0168-Add-PlayerAdvancementCriterionGrantEvent.patch rename to patches/unapplied/server/0168-Add-PlayerAdvancementCriterionGrantEvent.patch diff --git a/patches/server/0169-Add-ArmorStand-Item-Meta.patch b/patches/unapplied/server/0169-Add-ArmorStand-Item-Meta.patch similarity index 100% rename from patches/server/0169-Add-ArmorStand-Item-Meta.patch rename to patches/unapplied/server/0169-Add-ArmorStand-Item-Meta.patch diff --git a/patches/server/0170-Extend-Player-Interact-cancellation.patch b/patches/unapplied/server/0170-Extend-Player-Interact-cancellation.patch similarity index 100% rename from patches/server/0170-Extend-Player-Interact-cancellation.patch rename to patches/unapplied/server/0170-Extend-Player-Interact-cancellation.patch diff --git a/patches/server/0171-Tameable-getOwnerUniqueId-API.patch b/patches/unapplied/server/0171-Tameable-getOwnerUniqueId-API.patch similarity index 100% rename from patches/server/0171-Tameable-getOwnerUniqueId-API.patch rename to patches/unapplied/server/0171-Tameable-getOwnerUniqueId-API.patch diff --git a/patches/server/0172-Toggleable-player-crits.patch b/patches/unapplied/server/0172-Toggleable-player-crits.patch similarity index 100% rename from patches/server/0172-Toggleable-player-crits.patch rename to patches/unapplied/server/0172-Toggleable-player-crits.patch diff --git a/patches/server/0173-Disable-Explicit-Network-Manager-Flushing.patch b/patches/unapplied/server/0173-Disable-Explicit-Network-Manager-Flushing.patch similarity index 100% rename from patches/server/0173-Disable-Explicit-Network-Manager-Flushing.patch rename to patches/unapplied/server/0173-Disable-Explicit-Network-Manager-Flushing.patch diff --git a/patches/server/0174-Implement-extended-PaperServerListPingEvent.patch b/patches/unapplied/server/0174-Implement-extended-PaperServerListPingEvent.patch similarity index 99% rename from patches/server/0174-Implement-extended-PaperServerListPingEvent.patch rename to patches/unapplied/server/0174-Implement-extended-PaperServerListPingEvent.patch index 919b4393df..05b4df7406 100644 --- a/patches/server/0174-Implement-extended-PaperServerListPingEvent.patch +++ b/patches/unapplied/server/0174-Implement-extended-PaperServerListPingEvent.patch @@ -181,7 +181,7 @@ index 0000000000000000000000000000000000000000..6b0bdc266109cdfb874f08bf74323603 + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 22b9d4bebee30877225b08b46cec6084b12a9c5a..09bd8a6576647c612e9d7f807780b1e20478a534 100644 +index 7e4fd9fa173b24261b88fb5e898c905721e69dca..02df8d59ced48bfebfacbfab669e245539605ede 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,6 +3,9 @@ package net.minecraft.server; diff --git a/patches/server/0175-Add-more-fields-to-AsyncPreLoginEvent.patch b/patches/unapplied/server/0175-Add-more-fields-to-AsyncPreLoginEvent.patch similarity index 100% rename from patches/server/0175-Add-more-fields-to-AsyncPreLoginEvent.patch rename to patches/unapplied/server/0175-Add-more-fields-to-AsyncPreLoginEvent.patch diff --git a/patches/server/0176-Player.setPlayerProfile-API.patch b/patches/unapplied/server/0176-Player.setPlayerProfile-API.patch similarity index 100% rename from patches/server/0176-Player.setPlayerProfile-API.patch rename to patches/unapplied/server/0176-Player.setPlayerProfile-API.patch diff --git a/patches/server/0177-getPlayerUniqueId-API.patch b/patches/unapplied/server/0177-getPlayerUniqueId-API.patch similarity index 100% rename from patches/server/0177-getPlayerUniqueId-API.patch rename to patches/unapplied/server/0177-getPlayerUniqueId-API.patch diff --git a/patches/server/0178-Improved-Async-Task-Scheduler.patch b/patches/unapplied/server/0178-Improved-Async-Task-Scheduler.patch similarity index 100% rename from patches/server/0178-Improved-Async-Task-Scheduler.patch rename to patches/unapplied/server/0178-Improved-Async-Task-Scheduler.patch diff --git a/patches/server/0179-Make-legacy-ping-handler-more-reliable.patch b/patches/unapplied/server/0179-Make-legacy-ping-handler-more-reliable.patch similarity index 100% rename from patches/server/0179-Make-legacy-ping-handler-more-reliable.patch rename to patches/unapplied/server/0179-Make-legacy-ping-handler-more-reliable.patch diff --git a/patches/server/0180-Call-PaperServerListPingEvent-for-legacy-pings.patch b/patches/unapplied/server/0180-Call-PaperServerListPingEvent-for-legacy-pings.patch similarity index 100% rename from patches/server/0180-Call-PaperServerListPingEvent-for-legacy-pings.patch rename to patches/unapplied/server/0180-Call-PaperServerListPingEvent-for-legacy-pings.patch diff --git a/patches/server/0181-Flag-to-disable-the-channel-limit.patch b/patches/unapplied/server/0181-Flag-to-disable-the-channel-limit.patch similarity index 100% rename from patches/server/0181-Flag-to-disable-the-channel-limit.patch rename to patches/unapplied/server/0181-Flag-to-disable-the-channel-limit.patch diff --git a/patches/server/0182-Add-openSign-method-to-HumanEntity.patch b/patches/unapplied/server/0182-Add-openSign-method-to-HumanEntity.patch similarity index 100% rename from patches/server/0182-Add-openSign-method-to-HumanEntity.patch rename to patches/unapplied/server/0182-Add-openSign-method-to-HumanEntity.patch diff --git a/patches/server/0183-Configurable-sprint-interruption-on-attack.patch b/patches/unapplied/server/0183-Configurable-sprint-interruption-on-attack.patch similarity index 100% rename from patches/server/0183-Configurable-sprint-interruption-on-attack.patch rename to patches/unapplied/server/0183-Configurable-sprint-interruption-on-attack.patch diff --git a/patches/server/0184-EndermanEscapeEvent.patch b/patches/unapplied/server/0184-EndermanEscapeEvent.patch similarity index 100% rename from patches/server/0184-EndermanEscapeEvent.patch rename to patches/unapplied/server/0184-EndermanEscapeEvent.patch diff --git a/patches/server/0185-Enderman.teleportRandomly.patch b/patches/unapplied/server/0185-Enderman.teleportRandomly.patch similarity index 100% rename from patches/server/0185-Enderman.teleportRandomly.patch rename to patches/unapplied/server/0185-Enderman.teleportRandomly.patch diff --git a/patches/server/0186-Block-Enderpearl-Travel-Exploit.patch b/patches/unapplied/server/0186-Block-Enderpearl-Travel-Exploit.patch similarity index 100% rename from patches/server/0186-Block-Enderpearl-Travel-Exploit.patch rename to patches/unapplied/server/0186-Block-Enderpearl-Travel-Exploit.patch diff --git a/patches/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/unapplied/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch similarity index 100% rename from patches/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch rename to patches/unapplied/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch diff --git a/patches/server/0188-Fix-exploit-that-allowed-colored-signs-to-be-created.patch b/patches/unapplied/server/0188-Fix-exploit-that-allowed-colored-signs-to-be-created.patch similarity index 100% rename from patches/server/0188-Fix-exploit-that-allowed-colored-signs-to-be-created.patch rename to patches/unapplied/server/0188-Fix-exploit-that-allowed-colored-signs-to-be-created.patch diff --git a/patches/server/0189-EndermanAttackPlayerEvent.patch b/patches/unapplied/server/0189-EndermanAttackPlayerEvent.patch similarity index 100% rename from patches/server/0189-EndermanAttackPlayerEvent.patch rename to patches/unapplied/server/0189-EndermanAttackPlayerEvent.patch diff --git a/patches/server/0190-WitchConsumePotionEvent.patch b/patches/unapplied/server/0190-WitchConsumePotionEvent.patch similarity index 100% rename from patches/server/0190-WitchConsumePotionEvent.patch rename to patches/unapplied/server/0190-WitchConsumePotionEvent.patch diff --git a/patches/server/0191-WitchThrowPotionEvent.patch b/patches/unapplied/server/0191-WitchThrowPotionEvent.patch similarity index 100% rename from patches/server/0191-WitchThrowPotionEvent.patch rename to patches/unapplied/server/0191-WitchThrowPotionEvent.patch diff --git a/patches/server/0192-WitchReadyPotionEvent.patch b/patches/unapplied/server/0192-WitchReadyPotionEvent.patch similarity index 100% rename from patches/server/0192-WitchReadyPotionEvent.patch rename to patches/unapplied/server/0192-WitchReadyPotionEvent.patch diff --git a/patches/server/0193-ItemStack-getMaxItemUseDuration.patch b/patches/unapplied/server/0193-ItemStack-getMaxItemUseDuration.patch similarity index 100% rename from patches/server/0193-ItemStack-getMaxItemUseDuration.patch rename to patches/unapplied/server/0193-ItemStack-getMaxItemUseDuration.patch diff --git a/patches/server/0194-Add-EntityTeleportEndGatewayEvent.patch b/patches/unapplied/server/0194-Add-EntityTeleportEndGatewayEvent.patch similarity index 100% rename from patches/server/0194-Add-EntityTeleportEndGatewayEvent.patch rename to patches/unapplied/server/0194-Add-EntityTeleportEndGatewayEvent.patch diff --git a/patches/server/0195-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch b/patches/unapplied/server/0195-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch similarity index 100% rename from patches/server/0195-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch rename to patches/unapplied/server/0195-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch diff --git a/patches/server/0196-Fix-CraftEntity-hashCode.patch b/patches/unapplied/server/0196-Fix-CraftEntity-hashCode.patch similarity index 100% rename from patches/server/0196-Fix-CraftEntity-hashCode.patch rename to patches/unapplied/server/0196-Fix-CraftEntity-hashCode.patch diff --git a/patches/server/0197-Configurable-LootPool-luck-formula.patch b/patches/unapplied/server/0197-Configurable-LootPool-luck-formula.patch similarity index 100% rename from patches/server/0197-Configurable-LootPool-luck-formula.patch rename to patches/unapplied/server/0197-Configurable-LootPool-luck-formula.patch diff --git a/patches/server/0198-Print-Error-details-when-failing-to-save-player-data.patch b/patches/unapplied/server/0198-Print-Error-details-when-failing-to-save-player-data.patch similarity index 100% rename from patches/server/0198-Print-Error-details-when-failing-to-save-player-data.patch rename to patches/unapplied/server/0198-Print-Error-details-when-failing-to-save-player-data.patch diff --git a/patches/server/0199-Make-shield-blocking-delay-configurable.patch b/patches/unapplied/server/0199-Make-shield-blocking-delay-configurable.patch similarity index 100% rename from patches/server/0199-Make-shield-blocking-delay-configurable.patch rename to patches/unapplied/server/0199-Make-shield-blocking-delay-configurable.patch diff --git a/patches/server/0200-Improve-EntityShootBowEvent.patch b/patches/unapplied/server/0200-Improve-EntityShootBowEvent.patch similarity index 100% rename from patches/server/0200-Improve-EntityShootBowEvent.patch rename to patches/unapplied/server/0200-Improve-EntityShootBowEvent.patch diff --git a/patches/server/0201-PlayerReadyArrowEvent.patch b/patches/unapplied/server/0201-PlayerReadyArrowEvent.patch similarity index 100% rename from patches/server/0201-PlayerReadyArrowEvent.patch rename to patches/unapplied/server/0201-PlayerReadyArrowEvent.patch diff --git a/patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch b/patches/unapplied/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch similarity index 100% rename from patches/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch rename to patches/unapplied/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch diff --git a/patches/server/0203-Expand-Explosions-API.patch b/patches/unapplied/server/0203-Expand-Explosions-API.patch similarity index 100% rename from patches/server/0203-Expand-Explosions-API.patch rename to patches/unapplied/server/0203-Expand-Explosions-API.patch diff --git a/patches/server/0204-LivingEntity-Active-Item-API.patch b/patches/unapplied/server/0204-LivingEntity-Active-Item-API.patch similarity index 100% rename from patches/server/0204-LivingEntity-Active-Item-API.patch rename to patches/unapplied/server/0204-LivingEntity-Active-Item-API.patch diff --git a/patches/server/0205-RangedEntity-API.patch b/patches/unapplied/server/0205-RangedEntity-API.patch similarity index 100% rename from patches/server/0205-RangedEntity-API.patch rename to patches/unapplied/server/0205-RangedEntity-API.patch diff --git a/patches/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch b/patches/unapplied/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch similarity index 100% rename from patches/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch rename to patches/unapplied/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch diff --git a/patches/server/0207-Implement-World.getEntity-UUID-API.patch b/patches/unapplied/server/0207-Implement-World.getEntity-UUID-API.patch similarity index 100% rename from patches/server/0207-Implement-World.getEntity-UUID-API.patch rename to patches/unapplied/server/0207-Implement-World.getEntity-UUID-API.patch diff --git a/patches/server/0208-InventoryCloseEvent-Reason-API.patch b/patches/unapplied/server/0208-InventoryCloseEvent-Reason-API.patch similarity index 100% rename from patches/server/0208-InventoryCloseEvent-Reason-API.patch rename to patches/unapplied/server/0208-InventoryCloseEvent-Reason-API.patch diff --git a/patches/server/0209-Vex-get-setSummoner-API.patch b/patches/unapplied/server/0209-Vex-get-setSummoner-API.patch similarity index 100% rename from patches/server/0209-Vex-get-setSummoner-API.patch rename to patches/unapplied/server/0209-Vex-get-setSummoner-API.patch diff --git a/patches/server/0210-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/unapplied/server/0210-Refresh-player-inventory-when-cancelling-PlayerInter.patch similarity index 94% rename from patches/server/0210-Refresh-player-inventory-when-cancelling-PlayerInter.patch rename to patches/unapplied/server/0210-Refresh-player-inventory-when-cancelling-PlayerInter.patch index a28ff94015..f74a7d7572 100644 --- a/patches/server/0210-Refresh-player-inventory-when-cancelling-PlayerInter.patch +++ b/patches/unapplied/server/0210-Refresh-player-inventory-when-cancelling-PlayerInter.patch @@ -16,7 +16,7 @@ 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 29ffe034b3b7838e20be4d6a52a82cec004eb2a1..91cc18da4f0beca4cc4a9e13627b87931262efb6 100644 +index 0217a40d7c22d31fa5f5046df6f0c64d8bb44442..de6fff0e915c66123d0691840b180cf60dc8a95a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2421,6 +2421,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch b/patches/unapplied/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch similarity index 100% rename from patches/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch rename to patches/unapplied/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch diff --git a/patches/server/0212-add-more-information-to-Entity.toString.patch b/patches/unapplied/server/0212-add-more-information-to-Entity.toString.patch similarity index 100% rename from patches/server/0212-add-more-information-to-Entity.toString.patch rename to patches/unapplied/server/0212-add-more-information-to-Entity.toString.patch diff --git a/patches/server/0213-EnderDragon-Events.patch b/patches/unapplied/server/0213-EnderDragon-Events.patch similarity index 100% rename from patches/server/0213-EnderDragon-Events.patch rename to patches/unapplied/server/0213-EnderDragon-Events.patch diff --git a/patches/server/0214-PlayerElytraBoostEvent.patch b/patches/unapplied/server/0214-PlayerElytraBoostEvent.patch similarity index 96% rename from patches/server/0214-PlayerElytraBoostEvent.patch rename to patches/unapplied/server/0214-PlayerElytraBoostEvent.patch index 80552e3b6d..b614b1a177 100644 --- a/patches/server/0214-PlayerElytraBoostEvent.patch +++ b/patches/unapplied/server/0214-PlayerElytraBoostEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerElytraBoostEvent diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -index 7c627d27300247db9122ab2081049345ef306073..4565cf51ee2f973b368a984436c02220ed9f4a70 100644 +index 3749cfca8f007973d1a2206d8f2ba15283a550e1..a9f82e37c088c6f6ae2a049fcc7acea01b8802cd 100644 --- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java +++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java @@ -68,12 +68,19 @@ public class FireworkRocketItem extends Item { diff --git a/patches/server/0215-PlayerLaunchProjectileEvent.patch b/patches/unapplied/server/0215-PlayerLaunchProjectileEvent.patch similarity index 99% rename from patches/server/0215-PlayerLaunchProjectileEvent.patch rename to patches/unapplied/server/0215-PlayerLaunchProjectileEvent.patch index 6e2265c0d2..b5abc76909 100644 --- a/patches/server/0215-PlayerLaunchProjectileEvent.patch +++ b/patches/unapplied/server/0215-PlayerLaunchProjectileEvent.patch @@ -150,7 +150,7 @@ index fe03ef2e400b246f7f3a9333506f22b63ae28690..ad147f392e7ef151d971d462431ab67d return InteractionResultHolder.sidedSuccess(itemStack, world.isClientSide()); } diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -index eb655eb01e4841ca163666f21dae00f0632a11e5..8a82b8bec014b70d672cfaae84510ed84fd2ea97 100644 +index a9f82e37c088c6f6ae2a049fcc7acea01b8802cd..e1c8b24a92ea63a645406522a3c2fb5efd87f01a 100644 --- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java +++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java @@ -54,8 +54,12 @@ public class FireworkRocketItem extends Item { diff --git a/patches/server/0216-Improve-BlockPosition-inlining.patch b/patches/unapplied/server/0216-Improve-BlockPosition-inlining.patch similarity index 100% rename from patches/server/0216-Improve-BlockPosition-inlining.patch rename to patches/unapplied/server/0216-Improve-BlockPosition-inlining.patch diff --git a/patches/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/patches/unapplied/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch similarity index 100% rename from patches/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch rename to patches/unapplied/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch diff --git a/patches/server/0218-Vanished-players-don-t-have-rights.patch b/patches/unapplied/server/0218-Vanished-players-don-t-have-rights.patch similarity index 100% rename from patches/server/0218-Vanished-players-don-t-have-rights.patch rename to patches/unapplied/server/0218-Vanished-players-don-t-have-rights.patch diff --git a/patches/server/0219-Allow-disabling-armor-stand-ticking.patch b/patches/unapplied/server/0219-Allow-disabling-armor-stand-ticking.patch similarity index 100% rename from patches/server/0219-Allow-disabling-armor-stand-ticking.patch rename to patches/unapplied/server/0219-Allow-disabling-armor-stand-ticking.patch diff --git a/patches/server/0220-SkeletonHorse-Additions.patch b/patches/unapplied/server/0220-SkeletonHorse-Additions.patch similarity index 97% rename from patches/server/0220-SkeletonHorse-Additions.patch rename to patches/unapplied/server/0220-SkeletonHorse-Additions.patch index 201b108f16..bd079ca41a 100644 --- a/patches/server/0220-SkeletonHorse-Additions.patch +++ b/patches/unapplied/server/0220-SkeletonHorse-Additions.patch @@ -32,7 +32,7 @@ index 8f20239f3ef7ebe41fac8ee6e024c36dafec33c4..d00fb16ae3b94dfcb10fd1a7c1671595 this.horse.setTrap(false); diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index 72b3913d00d6f2ec01a716444debe065c48174f6..c35d5865b77203d0de6467d2793424837704e95a 100644 +index 77ae7882a08441d9a80b50492be5e48487a2fdab..d465fb01af4c8610f83ecb9c68b83127cf7e95ae 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java @@ -97,6 +97,28 @@ public interface EntityGetter { diff --git a/patches/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch b/patches/unapplied/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch similarity index 100% rename from patches/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch rename to patches/unapplied/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch diff --git a/patches/server/0222-Expand-ArmorStand-API.patch b/patches/unapplied/server/0222-Expand-ArmorStand-API.patch similarity index 100% rename from patches/server/0222-Expand-ArmorStand-API.patch rename to patches/unapplied/server/0222-Expand-ArmorStand-API.patch diff --git a/patches/server/0223-AnvilDamageEvent.patch b/patches/unapplied/server/0223-AnvilDamageEvent.patch similarity index 100% rename from patches/server/0223-AnvilDamageEvent.patch rename to patches/unapplied/server/0223-AnvilDamageEvent.patch diff --git a/patches/server/0224-Add-TNTPrimeEvent.patch b/patches/unapplied/server/0224-Add-TNTPrimeEvent.patch similarity index 100% rename from patches/server/0224-Add-TNTPrimeEvent.patch rename to patches/unapplied/server/0224-Add-TNTPrimeEvent.patch diff --git a/patches/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/unapplied/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch similarity index 97% rename from patches/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch rename to patches/unapplied/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch index eef3036873..99d88c7a3a 100644 --- a/patches/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch +++ b/patches/unapplied/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch @@ -22,7 +22,7 @@ to take the burden of this into their own hand without having to rely on plugins doing unsafe things. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 91cc18da4f0beca4cc4a9e13627b87931262efb6..a2eb93d47f659eb5b978358ee409bbf5f5d4d35a 100644 +index de6fff0e915c66123d0691840b180cf60dc8a95a..7663110df928ec88fc97e3b7d65671001db2d1bc 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -256,6 +256,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0226-Fix-NBT-type-issues.patch b/patches/unapplied/server/0226-Fix-NBT-type-issues.patch similarity index 100% rename from patches/server/0226-Fix-NBT-type-issues.patch rename to patches/unapplied/server/0226-Fix-NBT-type-issues.patch diff --git a/patches/server/0227-Remove-unnecessary-itemmeta-handling.patch b/patches/unapplied/server/0227-Remove-unnecessary-itemmeta-handling.patch similarity index 100% rename from patches/server/0227-Remove-unnecessary-itemmeta-handling.patch rename to patches/unapplied/server/0227-Remove-unnecessary-itemmeta-handling.patch diff --git a/patches/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/unapplied/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch similarity index 100% rename from patches/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch rename to patches/unapplied/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch diff --git a/patches/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/unapplied/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch similarity index 99% rename from patches/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch rename to patches/unapplied/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch index 76d44df2fe..2142ed4de7 100644 --- a/patches/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch +++ b/patches/unapplied/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch @@ -9,7 +9,7 @@ thread dumps at an interval until the point of crash. This will help diagnose what was going on in that time before the crash. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 09bd8a6576647c612e9d7f807780b1e20478a534..3e6008d27ed81453f6b4448f0334b8d343f66694 100644 +index 02df8d59ced48bfebfacbfab669e245539605ede..8196ecb2a7280a4f60a5fea18c484d6419953b48 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1092,6 +1092,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5190939658fce990e166b7c4f5998dd030a156e8..e5113e86836f9c21570705b1ad312d76e8162e5f 100644 +index f66c6167f24941b9cfdf4479d6cfbffcc29a7ba6..a16751a23eb6aab8c25520127d4dbea0c991c32c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1760,7 +1760,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0480-Zombie-API-breaking-doors.patch b/patches/unapplied/server/0480-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0480-Zombie-API-breaking-doors.patch rename to patches/unapplied/server/0480-Zombie-API-breaking-doors.patch diff --git a/patches/server/0481-Fix-nerfed-slime-when-splitting.patch b/patches/unapplied/server/0481-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/server/0481-Fix-nerfed-slime-when-splitting.patch rename to patches/unapplied/server/0481-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/server/0482-Add-EntityLoadCrossbowEvent.patch b/patches/unapplied/server/0482-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0482-Add-EntityLoadCrossbowEvent.patch rename to patches/unapplied/server/0482-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0483-Add-WorldGameRuleChangeEvent.patch b/patches/unapplied/server/0483-Add-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/server/0483-Add-WorldGameRuleChangeEvent.patch rename to patches/unapplied/server/0483-Add-WorldGameRuleChangeEvent.patch diff --git a/patches/server/0484-Add-ServerResourcesReloadedEvent.patch b/patches/unapplied/server/0484-Add-ServerResourcesReloadedEvent.patch similarity index 97% rename from patches/server/0484-Add-ServerResourcesReloadedEvent.patch rename to patches/unapplied/server/0484-Add-ServerResourcesReloadedEvent.patch index 9d87b0e24f..78e525f4d8 100644 --- a/patches/server/0484-Add-ServerResourcesReloadedEvent.patch +++ b/patches/unapplied/server/0484-Add-ServerResourcesReloadedEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ServerResourcesReloadedEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 99ae9628d96d6d3e42cd038eb4a0d01237cc6b1b..46cc2649ca482bd2bda37247717d8476dbb76a34 100644 +index 70ae9d44dd860014fd9a599e3a4e4a3fe80068ff..23d68feaa060514e6582a9d47a9ca7db9421c29c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2036,7 +2036,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 12b81d6dc04586d2491a382b6198f986b2b5bae1..e12740f601acbe2b344d8e1fffc4bee2c752face 100644 +index d0409856a3aee811714c9254f4436b7f6bb94bf0..872e59c5de3a98bbdf40cf6d2aeb0694f2b88689 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2632,7 +2632,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0546-Introduce-beacon-activation-deactivation-events.patch b/patches/unapplied/server/0546-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0546-Introduce-beacon-activation-deactivation-events.patch rename to patches/unapplied/server/0546-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0547-Add-Channel-initialization-listeners.patch b/patches/unapplied/server/0547-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/server/0547-Add-Channel-initialization-listeners.patch rename to patches/unapplied/server/0547-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0548-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/unapplied/server/0548-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0548-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/unapplied/server/0548-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0549-Add-more-WanderingTrader-API.patch b/patches/unapplied/server/0549-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0549-Add-more-WanderingTrader-API.patch rename to patches/unapplied/server/0549-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0550-Add-EntityBlockStorage-clearEntities.patch b/patches/unapplied/server/0550-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0550-Add-EntityBlockStorage-clearEntities.patch rename to patches/unapplied/server/0550-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/unapplied/server/0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/unapplied/server/0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0552-Add-HiddenPotionEffect-API.patch b/patches/unapplied/server/0552-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/0552-Add-HiddenPotionEffect-API.patch rename to patches/unapplied/server/0552-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/0553-Inventory-close.patch b/patches/unapplied/server/0553-Inventory-close.patch similarity index 100% rename from patches/server/0553-Inventory-close.patch rename to patches/unapplied/server/0553-Inventory-close.patch diff --git a/patches/server/0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/unapplied/server/0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/unapplied/server/0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0555-Add-basic-Datapack-API.patch b/patches/unapplied/server/0555-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0555-Add-basic-Datapack-API.patch rename to patches/unapplied/server/0555-Add-basic-Datapack-API.patch diff --git a/patches/server/0556-Add-environment-variable-to-disable-server-gui.patch b/patches/unapplied/server/0556-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0556-Add-environment-variable-to-disable-server-gui.patch rename to patches/unapplied/server/0556-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0557-Expand-PlayerGameModeChangeEvent.patch b/patches/unapplied/server/0557-Expand-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/server/0557-Expand-PlayerGameModeChangeEvent.patch rename to patches/unapplied/server/0557-Expand-PlayerGameModeChangeEvent.patch diff --git a/patches/server/0558-ItemStack-repair-check-API.patch b/patches/unapplied/server/0558-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0558-ItemStack-repair-check-API.patch rename to patches/unapplied/server/0558-ItemStack-repair-check-API.patch diff --git a/patches/server/0559-More-Enchantment-API.patch b/patches/unapplied/server/0559-More-Enchantment-API.patch similarity index 100% rename from patches/server/0559-More-Enchantment-API.patch rename to patches/unapplied/server/0559-More-Enchantment-API.patch diff --git a/patches/server/0560-Move-range-check-for-block-placing-up.patch b/patches/unapplied/server/0560-Move-range-check-for-block-placing-up.patch similarity index 92% rename from patches/server/0560-Move-range-check-for-block-placing-up.patch rename to patches/unapplied/server/0560-Move-range-check-for-block-placing-up.patch index 6ba529d1a6..96ef06f137 100644 --- a/patches/server/0560-Move-range-check-for-block-placing-up.patch +++ b/patches/unapplied/server/0560-Move-range-check-for-block-placing-up.patch @@ -5,7 +5,7 @@ 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 c9a8d04d1485a9493f6353beb7998801e286923e..ba7f0f4e2840b88d8f53c5720752cfeed2493c49 100644 +index 77560a31fc90387efb14ae0432b7a6aafb8cab61..ffbd1d99f7f896eb2b0af04e8f344f7fa0dc09d7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1738,6 +1738,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0561-Add-Mob-lookAt-API.patch b/patches/unapplied/server/0561-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0561-Add-Mob-lookAt-API.patch rename to patches/unapplied/server/0561-Add-Mob-lookAt-API.patch diff --git a/patches/server/0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/unapplied/server/0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/unapplied/server/0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/0563-Add-Unix-domain-socket-support.patch b/patches/unapplied/server/0563-Add-Unix-domain-socket-support.patch similarity index 98% rename from patches/server/0563-Add-Unix-domain-socket-support.patch rename to patches/unapplied/server/0563-Add-Unix-domain-socket-support.patch index 297b991d83..96e615aa5d 100644 --- a/patches/server/0563-Add-Unix-domain-socket-support.patch +++ b/patches/unapplied/server/0563-Add-Unix-domain-socket-support.patch @@ -87,7 +87,7 @@ index 25ddfe8e5da65e4ac70be2820ba139e7f3852c0c..87abd6274f9da9367094bad0c28acfa4 } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ba7f0f4e2840b88d8f53c5720752cfeed2493c49..a5dd14014fd214ec900e0c49064ee54b2f43ff8e 100644 +index ffbd1d99f7f896eb2b0af04e8f344f7fa0dc09d7..e2fc392afd6fa8fbb9d464262f12bb6a0c81f7f8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2475,6 +2475,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0564-Add-EntityInsideBlockEvent.patch b/patches/unapplied/server/0564-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0564-Add-EntityInsideBlockEvent.patch rename to patches/unapplied/server/0564-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0565-Attributes-API-for-item-defaults.patch b/patches/unapplied/server/0565-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0565-Attributes-API-for-item-defaults.patch rename to patches/unapplied/server/0565-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0566-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/unapplied/server/0566-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/server/0566-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/unapplied/server/0566-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/server/0567-More-Lidded-Block-API.patch b/patches/unapplied/server/0567-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0567-More-Lidded-Block-API.patch rename to patches/unapplied/server/0567-More-Lidded-Block-API.patch diff --git a/patches/server/0568-Limit-item-frame-cursors-on-maps.patch b/patches/unapplied/server/0568-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0568-Limit-item-frame-cursors-on-maps.patch rename to patches/unapplied/server/0568-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0569-Add-PlayerKickEvent-causes.patch b/patches/unapplied/server/0569-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/server/0569-Add-PlayerKickEvent-causes.patch rename to patches/unapplied/server/0569-Add-PlayerKickEvent-causes.patch diff --git a/patches/server/0570-Add-PufferFishStateChangeEvent.patch b/patches/unapplied/server/0570-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0570-Add-PufferFishStateChangeEvent.patch rename to patches/unapplied/server/0570-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/unapplied/server/0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/unapplied/server/0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/unapplied/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/unapplied/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/server/0573-Add-option-to-fix-items-merging-through-walls.patch b/patches/unapplied/server/0573-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0573-Add-option-to-fix-items-merging-through-walls.patch rename to patches/unapplied/server/0573-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0574-Add-BellRevealRaiderEvent.patch b/patches/unapplied/server/0574-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0574-Add-BellRevealRaiderEvent.patch rename to patches/unapplied/server/0574-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0575-Fix-invulnerable-end-crystals.patch b/patches/unapplied/server/0575-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0575-Fix-invulnerable-end-crystals.patch rename to patches/unapplied/server/0575-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0576-Add-ElderGuardianAppearanceEvent.patch b/patches/unapplied/server/0576-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0576-Add-ElderGuardianAppearanceEvent.patch rename to patches/unapplied/server/0576-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0577-Fix-dangerous-end-portal-logic.patch b/patches/unapplied/server/0577-Fix-dangerous-end-portal-logic.patch similarity index 100% rename from patches/server/0577-Fix-dangerous-end-portal-logic.patch rename to patches/unapplied/server/0577-Fix-dangerous-end-portal-logic.patch diff --git a/patches/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/unapplied/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/unapplied/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0579-Make-item-validations-configurable.patch b/patches/unapplied/server/0579-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0579-Make-item-validations-configurable.patch rename to patches/unapplied/server/0579-Make-item-validations-configurable.patch diff --git a/patches/server/0580-Line-Of-Sight-Changes.patch b/patches/unapplied/server/0580-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/server/0580-Line-Of-Sight-Changes.patch rename to patches/unapplied/server/0580-Line-Of-Sight-Changes.patch diff --git a/patches/server/0581-add-per-world-spawn-limits.patch b/patches/unapplied/server/0581-add-per-world-spawn-limits.patch similarity index 100% rename from patches/server/0581-add-per-world-spawn-limits.patch rename to patches/unapplied/server/0581-add-per-world-spawn-limits.patch diff --git a/patches/server/0582-Fix-potions-splash-events.patch b/patches/unapplied/server/0582-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0582-Fix-potions-splash-events.patch rename to patches/unapplied/server/0582-Fix-potions-splash-events.patch diff --git a/patches/server/0583-Add-more-LimitedRegion-API.patch b/patches/unapplied/server/0583-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0583-Add-more-LimitedRegion-API.patch rename to patches/unapplied/server/0583-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/unapplied/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 100% rename from patches/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/unapplied/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch diff --git a/patches/server/0585-Missing-Entity-API.patch b/patches/unapplied/server/0585-Missing-Entity-API.patch similarity index 99% rename from patches/server/0585-Missing-Entity-API.patch rename to patches/unapplied/server/0585-Missing-Entity-API.patch index 15b6b347f6..578eebacca 100644 --- a/patches/server/0585-Missing-Entity-API.patch +++ b/patches/unapplied/server/0585-Missing-Entity-API.patch @@ -113,7 +113,7 @@ index 0000000000000000000000000000000000000000..41bf71d116ffc5431586ce54abba7f8d + } +} diff --git a/src/main/java/net/minecraft/world/entity/animal/AbstractSchoolingFish.java b/src/main/java/net/minecraft/world/entity/animal/AbstractSchoolingFish.java -index eef7d260dcb9a9c8ea6efef3216d33c08e3ea287..79c79f825e4c9b748d54962d06356ef425359101 100644 +index 3982ddbd0fa133fa0ca0241c4fb68ce167ebcbed..59dbb4dd48f81cab5216d5d8edef6ccd6e7efd9e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/AbstractSchoolingFish.java +++ b/src/main/java/net/minecraft/world/entity/animal/AbstractSchoolingFish.java @@ -52,6 +52,7 @@ public abstract class AbstractSchoolingFish extends AbstractFish { diff --git a/patches/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/unapplied/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 92% rename from patches/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/unapplied/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch index 20f139446c..9c10362717 100644 --- a/patches/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/unapplied/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,7 +5,7 @@ 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 2e1a0b3d2dee21d6deba62ec710d92efdf33e1a6..75ff85e3710d5e70a32fe39e8469c1f169fd2d46 100644 +index 08f502452dc1c6ee83e04650b08a08e521c64144..37a801668c2fa4e7eaf4839b2f69a92f9f91907f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1096,7 +1096,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/unapplied/server/0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/unapplied/server/0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/unapplied/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 100% rename from patches/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/unapplied/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch diff --git a/patches/server/0589-Fix-commands-from-signs-not-firing-command-events.patch b/patches/unapplied/server/0589-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0589-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/unapplied/server/0589-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0590-Add-PlayerArmSwingEvent.patch b/patches/unapplied/server/0590-Add-PlayerArmSwingEvent.patch similarity index 92% rename from patches/server/0590-Add-PlayerArmSwingEvent.patch rename to patches/unapplied/server/0590-Add-PlayerArmSwingEvent.patch index d3f4757d38..0e5d1b0c09 100644 --- a/patches/server/0590-Add-PlayerArmSwingEvent.patch +++ b/patches/unapplied/server/0590-Add-PlayerArmSwingEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 75ff85e3710d5e70a32fe39e8469c1f169fd2d46..bce87f55ad85837a17f783b5341ef5b64ab0ede0 100644 +index 37a801668c2fa4e7eaf4839b2f69a92f9f91907f..de6b8af2f586469cd97ad796ee9a841a83f8f068 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2328,7 +2328,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0591-Fix-kick-event-leave-message-not-being-sent.patch b/patches/unapplied/server/0591-Fix-kick-event-leave-message-not-being-sent.patch similarity index 98% rename from patches/server/0591-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/unapplied/server/0591-Fix-kick-event-leave-message-not-being-sent.patch index c3d3547870..5b12bd148b 100644 --- a/patches/server/0591-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/unapplied/server/0591-Fix-kick-event-leave-message-not-being-sent.patch @@ -50,7 +50,7 @@ index a65a1466dab52fca75cda16a4b22fef03b6207a0..0306771b8f90dcdd77f151c19c6c2d75 MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bce87f55ad85837a17f783b5341ef5b64ab0ede0..42c24ed58fab0f7ff9f58b2a65818f45a5b7cc06 100644 +index de6b8af2f586469cd97ad796ee9a841a83f8f068..cb7d038b902c326d2ebec61f1dc40849c3cfbc63 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1882,6 +1882,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0592-Add-config-for-mobs-immune-to-default-effects.patch b/patches/unapplied/server/0592-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/0592-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/unapplied/server/0592-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0593-Don-t-apply-cramming-damage-to-players.patch b/patches/unapplied/server/0593-Don-t-apply-cramming-damage-to-players.patch similarity index 100% rename from patches/server/0593-Don-t-apply-cramming-damage-to-players.patch rename to patches/unapplied/server/0593-Don-t-apply-cramming-damage-to-players.patch diff --git a/patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/unapplied/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/unapplied/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0595-Add-missing-forceDrop-toggles.patch b/patches/unapplied/server/0595-Add-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0595-Add-missing-forceDrop-toggles.patch rename to patches/unapplied/server/0595-Add-missing-forceDrop-toggles.patch diff --git a/patches/server/0596-Stinger-API.patch b/patches/unapplied/server/0596-Stinger-API.patch similarity index 100% rename from patches/server/0596-Stinger-API.patch rename to patches/unapplied/server/0596-Stinger-API.patch diff --git a/patches/server/0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/unapplied/server/0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/unapplied/server/0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0598-Add-System.out-err-catcher.patch b/patches/unapplied/server/0598-Add-System.out-err-catcher.patch similarity index 100% rename from patches/server/0598-Add-System.out-err-catcher.patch rename to patches/unapplied/server/0598-Add-System.out-err-catcher.patch diff --git a/patches/server/0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/unapplied/server/0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/unapplied/server/0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/unapplied/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 93% rename from patches/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/unapplied/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch index 8ab33daef9..2ffc213d10 100644 --- a/patches/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/unapplied/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch @@ -5,7 +5,7 @@ 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 42c24ed58fab0f7ff9f58b2a65818f45a5b7cc06..2941445ea453e2fb88ea8de38c24bf755b93936a 100644 +index cb7d038b902c326d2ebec61f1dc40849c3cfbc63..574efd531199332a36fb26c70cc44bd5a05ff37d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -389,7 +389,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0601-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/unapplied/server/0601-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0601-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/unapplied/server/0601-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0602-Add-PlayerSetSpawnEvent.patch b/patches/unapplied/server/0602-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/server/0602-Add-PlayerSetSpawnEvent.patch rename to patches/unapplied/server/0602-Add-PlayerSetSpawnEvent.patch diff --git a/patches/server/0603-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/unapplied/server/0603-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0603-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/unapplied/server/0603-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0604-Optimize-entity-tracker-passenger-checks.patch b/patches/unapplied/server/0604-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0604-Optimize-entity-tracker-passenger-checks.patch rename to patches/unapplied/server/0604-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0605-Config-option-for-Piglins-guarding-chests.patch b/patches/unapplied/server/0605-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0605-Config-option-for-Piglins-guarding-chests.patch rename to patches/unapplied/server/0605-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0606-Add-EntityDamageItemEvent.patch b/patches/unapplied/server/0606-Add-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0606-Add-EntityDamageItemEvent.patch rename to patches/unapplied/server/0606-Add-EntityDamageItemEvent.patch diff --git a/patches/server/0607-Optimize-indirect-passenger-iteration.patch b/patches/unapplied/server/0607-Optimize-indirect-passenger-iteration.patch similarity index 100% rename from patches/server/0607-Optimize-indirect-passenger-iteration.patch rename to patches/unapplied/server/0607-Optimize-indirect-passenger-iteration.patch diff --git a/patches/server/0608-Configurable-item-frame-map-cursor-update-interval.patch b/patches/unapplied/server/0608-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0608-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/unapplied/server/0608-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0609-Clear-bucket-NBT-after-dispense.patch b/patches/unapplied/server/0609-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0609-Clear-bucket-NBT-after-dispense.patch rename to patches/unapplied/server/0609-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0610-Change-EnderEye-target-without-changing-other-things.patch b/patches/unapplied/server/0610-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0610-Change-EnderEye-target-without-changing-other-things.patch rename to patches/unapplied/server/0610-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0611-Add-BlockBreakBlockEvent.patch b/patches/unapplied/server/0611-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0611-Add-BlockBreakBlockEvent.patch rename to patches/unapplied/server/0611-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/unapplied/server/0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/unapplied/server/0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0613-More-CommandBlock-API.patch b/patches/unapplied/server/0613-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0613-More-CommandBlock-API.patch rename to patches/unapplied/server/0613-More-CommandBlock-API.patch diff --git a/patches/server/0614-Add-missing-team-sidebar-display-slots.patch b/patches/unapplied/server/0614-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0614-Add-missing-team-sidebar-display-slots.patch rename to patches/unapplied/server/0614-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0615-Add-back-EntityPortalExitEvent.patch b/patches/unapplied/server/0615-Add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/server/0615-Add-back-EntityPortalExitEvent.patch rename to patches/unapplied/server/0615-Add-back-EntityPortalExitEvent.patch diff --git a/patches/server/0616-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/unapplied/server/0616-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/server/0616-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/unapplied/server/0616-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/server/0617-Get-entity-default-attributes.patch b/patches/unapplied/server/0617-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0617-Get-entity-default-attributes.patch rename to patches/unapplied/server/0617-Get-entity-default-attributes.patch diff --git a/patches/server/0618-Left-handed-API.patch b/patches/unapplied/server/0618-Left-handed-API.patch similarity index 100% rename from patches/server/0618-Left-handed-API.patch rename to patches/unapplied/server/0618-Left-handed-API.patch diff --git a/patches/server/0619-Add-more-advancement-API.patch b/patches/unapplied/server/0619-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0619-Add-more-advancement-API.patch rename to patches/unapplied/server/0619-Add-more-advancement-API.patch diff --git a/patches/server/0620-Add-ItemFactory-getSpawnEgg-API.patch b/patches/unapplied/server/0620-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0620-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/unapplied/server/0620-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0621-Add-critical-damage-API.patch b/patches/unapplied/server/0621-Add-critical-damage-API.patch similarity index 100% rename from patches/server/0621-Add-critical-damage-API.patch rename to patches/unapplied/server/0621-Add-critical-damage-API.patch diff --git a/patches/server/0622-Fix-issues-with-mob-conversion.patch b/patches/unapplied/server/0622-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0622-Fix-issues-with-mob-conversion.patch rename to patches/unapplied/server/0622-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0623-Add-isCollidable-methods-to-various-places.patch b/patches/unapplied/server/0623-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0623-Add-isCollidable-methods-to-various-places.patch rename to patches/unapplied/server/0623-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0624-Goat-ram-API.patch b/patches/unapplied/server/0624-Goat-ram-API.patch similarity index 100% rename from patches/server/0624-Goat-ram-API.patch rename to patches/unapplied/server/0624-Goat-ram-API.patch diff --git a/patches/server/0625-Add-API-for-resetting-a-single-score.patch b/patches/unapplied/server/0625-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0625-Add-API-for-resetting-a-single-score.patch rename to patches/unapplied/server/0625-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch b/patches/unapplied/server/0626-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/server/0626-Add-Raw-Byte-Entity-Serialization.patch rename to patches/unapplied/server/0626-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/server/0627-Vanilla-command-permission-fixes.patch b/patches/unapplied/server/0627-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0627-Vanilla-command-permission-fixes.patch rename to patches/unapplied/server/0627-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/unapplied/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 100% rename from patches/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/unapplied/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch diff --git a/patches/server/0629-Fix-GameProfileCache-concurrency.patch b/patches/unapplied/server/0629-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0629-Fix-GameProfileCache-concurrency.patch rename to patches/unapplied/server/0629-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0630-Improve-and-expand-AsyncCatcher.patch b/patches/unapplied/server/0630-Improve-and-expand-AsyncCatcher.patch similarity index 99% rename from patches/server/0630-Improve-and-expand-AsyncCatcher.patch rename to patches/unapplied/server/0630-Improve-and-expand-AsyncCatcher.patch index b87817eeb4..a57e480c6c 100644 --- a/patches/server/0630-Improve-and-expand-AsyncCatcher.patch +++ b/patches/unapplied/server/0630-Improve-and-expand-AsyncCatcher.patch @@ -17,7 +17,7 @@ Async catch modifications to critical entity state Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2941445ea453e2fb88ea8de38c24bf755b93936a..666c6cb6f600973e1d84839aed715606279d4630 100644 +index 574efd531199332a36fb26c70cc44bd5a05ff37d..7efe0cc24590966075ae84d19c3899a43f9adc2a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1570,6 +1570,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/unapplied/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 100% rename from patches/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/unapplied/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/server/0632-Sanitize-ResourceLocation-error-logging.patch b/patches/unapplied/server/0632-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0632-Sanitize-ResourceLocation-error-logging.patch rename to patches/unapplied/server/0632-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0633-Manually-inline-methods-in-BlockPosition.patch b/patches/unapplied/server/0633-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0633-Manually-inline-methods-in-BlockPosition.patch rename to patches/unapplied/server/0633-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0634-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/unapplied/server/0634-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0634-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/unapplied/server/0634-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/unapplied/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 100% rename from patches/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/unapplied/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch diff --git a/patches/server/0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/unapplied/server/0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/unapplied/server/0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/unapplied/server/0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 100% rename from patches/server/0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/unapplied/server/0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch diff --git a/patches/server/0638-Time-scoreboard-search.patch b/patches/unapplied/server/0638-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0638-Time-scoreboard-search.patch rename to patches/unapplied/server/0638-Time-scoreboard-search.patch diff --git a/patches/server/0639-Oprimise-map-impl-for-tracked-players.patch b/patches/unapplied/server/0639-Oprimise-map-impl-for-tracked-players.patch similarity index 100% rename from patches/server/0639-Oprimise-map-impl-for-tracked-players.patch rename to patches/unapplied/server/0639-Oprimise-map-impl-for-tracked-players.patch diff --git a/patches/server/0640-Add-missing-InventoryType.patch b/patches/unapplied/server/0640-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/0640-Add-missing-InventoryType.patch rename to patches/unapplied/server/0640-Add-missing-InventoryType.patch diff --git a/patches/server/0641-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/unapplied/server/0641-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0641-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/unapplied/server/0641-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/unapplied/server/0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 100% rename from patches/server/0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/unapplied/server/0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch diff --git a/patches/server/0643-Check-requirement-before-suggesting-root-nodes.patch b/patches/unapplied/server/0643-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0643-Check-requirement-before-suggesting-root-nodes.patch rename to patches/unapplied/server/0643-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/unapplied/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 92% rename from patches/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/unapplied/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index d80840a79c..579dc34726 100644 --- a/patches/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/unapplied/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch @@ -6,7 +6,7 @@ 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 666c6cb6f600973e1d84839aed715606279d4630..ace2cab310aa7d89e1b76bf5fdc9fd64f56b6cc7 100644 +index 7efe0cc24590966075ae84d19c3899a43f9adc2a..8fcb241e8d161c9fb024a2a0488f8c29784a74f1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -725,6 +725,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0645-Add-packet-limiter-config.patch b/patches/unapplied/server/0645-Add-packet-limiter-config.patch similarity index 100% rename from patches/server/0645-Add-packet-limiter-config.patch rename to patches/unapplied/server/0645-Add-packet-limiter-config.patch diff --git a/patches/server/0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/unapplied/server/0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/unapplied/server/0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0647-Ensure-valid-vehicle-status.patch b/patches/unapplied/server/0647-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/server/0647-Ensure-valid-vehicle-status.patch rename to patches/unapplied/server/0647-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0648-Prevent-softlocked-end-exit-portal-generation.patch b/patches/unapplied/server/0648-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0648-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/unapplied/server/0648-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/unapplied/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/unapplied/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0650-Don-t-log-debug-logging-being-disabled.patch b/patches/unapplied/server/0650-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0650-Don-t-log-debug-logging-being-disabled.patch rename to patches/unapplied/server/0650-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0651-fix-various-menus-with-empty-level-accesses.patch b/patches/unapplied/server/0651-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0651-fix-various-menus-with-empty-level-accesses.patch rename to patches/unapplied/server/0651-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0652-Preserve-overstacked-loot.patch b/patches/unapplied/server/0652-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0652-Preserve-overstacked-loot.patch rename to patches/unapplied/server/0652-Preserve-overstacked-loot.patch diff --git a/patches/server/0653-Update-head-rotation-in-missing-places.patch b/patches/unapplied/server/0653-Update-head-rotation-in-missing-places.patch similarity index 100% rename from patches/server/0653-Update-head-rotation-in-missing-places.patch rename to patches/unapplied/server/0653-Update-head-rotation-in-missing-places.patch diff --git a/patches/server/0654-prevent-unintended-light-block-manipulation.patch b/patches/unapplied/server/0654-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0654-prevent-unintended-light-block-manipulation.patch rename to patches/unapplied/server/0654-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0655-Fix-CraftCriteria-defaults-map.patch b/patches/unapplied/server/0655-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0655-Fix-CraftCriteria-defaults-map.patch rename to patches/unapplied/server/0655-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0656-Fix-upstreams-block-state-factories.patch b/patches/unapplied/server/0656-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0656-Fix-upstreams-block-state-factories.patch rename to patches/unapplied/server/0656-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0657-Configurable-feature-seeds.patch b/patches/unapplied/server/0657-Configurable-feature-seeds.patch similarity index 96% rename from patches/server/0657-Configurable-feature-seeds.patch rename to patches/unapplied/server/0657-Configurable-feature-seeds.patch index 0cfc074f8f..bebeb4fc60 100644 --- a/patches/server/0657-Configurable-feature-seeds.patch +++ b/patches/unapplied/server/0657-Configurable-feature-seeds.patch @@ -19,7 +19,7 @@ index 49028463ba47e760281545c2f7597e3db8d6c453..7620c72a4c243cbeea245203ce03a97c } final Object val = config.get(key); diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index a6d5b3fa7e3437e0aec54eec4079e9f3267c64b8..567103d635087bf894a8c0473baf03bdb5ff052f 100644 +index edd968686292237e95afdf99a291f501386144ef..d09d5192f0a571e9758e95dd5e1392a9caa88bde 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -431,7 +431,14 @@ public abstract class ChunkGenerator { diff --git a/patches/server/0658-Add-root-admin-user-detection.patch b/patches/unapplied/server/0658-Add-root-admin-user-detection.patch similarity index 100% rename from patches/server/0658-Add-root-admin-user-detection.patch rename to patches/unapplied/server/0658-Add-root-admin-user-detection.patch diff --git a/patches/server/0659-Always-allow-item-changing-in-Fireball.patch b/patches/unapplied/server/0659-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0659-Always-allow-item-changing-in-Fireball.patch rename to patches/unapplied/server/0659-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0660-don-t-attempt-to-teleport-dead-entities.patch b/patches/unapplied/server/0660-don-t-attempt-to-teleport-dead-entities.patch similarity index 100% rename from patches/server/0660-don-t-attempt-to-teleport-dead-entities.patch rename to patches/unapplied/server/0660-don-t-attempt-to-teleport-dead-entities.patch diff --git a/patches/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/unapplied/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/unapplied/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/unapplied/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/unapplied/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0663-Fix-removing-recipes-from-RecipeIterator.patch b/patches/unapplied/server/0663-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0663-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/unapplied/server/0663-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/unapplied/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/unapplied/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0665-Hide-unnecessary-itemmeta-from-clients.patch b/patches/unapplied/server/0665-Hide-unnecessary-itemmeta-from-clients.patch similarity index 98% rename from patches/server/0665-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/unapplied/server/0665-Hide-unnecessary-itemmeta-from-clients.patch index 97005e3398..8f581ab2f3 100644 --- a/patches/server/0665-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/unapplied/server/0665-Hide-unnecessary-itemmeta-from-clients.patch @@ -18,7 +18,7 @@ index a51564e8dce3c125ed5f05cc23548a05c1e79a95..d2c2075fb0378fd7ec148281d37d886c } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ace2cab310aa7d89e1b76bf5fdc9fd64f56b6cc7..cf173a2315f3a97a89dc2aabe81be285abe73603 100644 +index 8fcb241e8d161c9fb024a2a0488f8c29784a74f1..7127c6f163cc00eb439eb37665df3e1a4bf27cc2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2565,8 +2565,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0666-Fix-Spigot-growth-modifiers.patch b/patches/unapplied/server/0666-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0666-Fix-Spigot-growth-modifiers.patch rename to patches/unapplied/server/0666-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/unapplied/server/0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/unapplied/server/0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0668-Add-PlayerItemFrameChangeEvent.patch b/patches/unapplied/server/0668-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0668-Add-PlayerItemFrameChangeEvent.patch rename to patches/unapplied/server/0668-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0669-Optimize-HashMapPalette.patch b/patches/unapplied/server/0669-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0669-Optimize-HashMapPalette.patch rename to patches/unapplied/server/0669-Optimize-HashMapPalette.patch diff --git a/patches/server/0670-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/unapplied/server/0670-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/server/0670-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/unapplied/server/0670-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/server/0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/unapplied/server/0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/unapplied/server/0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0672-Add-more-Campfire-API.patch b/patches/unapplied/server/0672-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0672-Add-more-Campfire-API.patch rename to patches/unapplied/server/0672-Add-more-Campfire-API.patch diff --git a/patches/server/0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/unapplied/server/0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/unapplied/server/0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0674-Forward-CraftEntity-in-teleport-command.patch b/patches/unapplied/server/0674-Forward-CraftEntity-in-teleport-command.patch similarity index 100% rename from patches/server/0674-Forward-CraftEntity-in-teleport-command.patch rename to patches/unapplied/server/0674-Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/server/0675-Improve-scoreboard-entries.patch b/patches/unapplied/server/0675-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0675-Improve-scoreboard-entries.patch rename to patches/unapplied/server/0675-Improve-scoreboard-entries.patch diff --git a/patches/server/0676-Entity-powdered-snow-API.patch b/patches/unapplied/server/0676-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0676-Entity-powdered-snow-API.patch rename to patches/unapplied/server/0676-Entity-powdered-snow-API.patch diff --git a/patches/server/0677-Add-API-for-item-entity-health.patch b/patches/unapplied/server/0677-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0677-Add-API-for-item-entity-health.patch rename to patches/unapplied/server/0677-Add-API-for-item-entity-health.patch diff --git a/patches/server/0678-Configurable-max-block-light-for-monster-spawning.patch b/patches/unapplied/server/0678-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0678-Configurable-max-block-light-for-monster-spawning.patch rename to patches/unapplied/server/0678-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/unapplied/server/0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/unapplied/server/0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/unapplied/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/unapplied/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/unapplied/server/0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/unapplied/server/0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0682-Fix-bees-aging-inside-hives.patch b/patches/unapplied/server/0682-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0682-Fix-bees-aging-inside-hives.patch rename to patches/unapplied/server/0682-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0683-Bucketable-API.patch b/patches/unapplied/server/0683-Bucketable-API.patch similarity index 100% rename from patches/server/0683-Bucketable-API.patch rename to patches/unapplied/server/0683-Bucketable-API.patch diff --git a/patches/server/0684-Validate-usernames.patch b/patches/unapplied/server/0684-Validate-usernames.patch similarity index 100% rename from patches/server/0684-Validate-usernames.patch rename to patches/unapplied/server/0684-Validate-usernames.patch diff --git a/patches/server/0685-Make-water-animal-spawn-height-configurable.patch b/patches/unapplied/server/0685-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0685-Make-water-animal-spawn-height-configurable.patch rename to patches/unapplied/server/0685-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/unapplied/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 98% rename from patches/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/unapplied/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index d2d9b68707..9a987c53c6 100644 --- a/patches/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/unapplied/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fdda28bd6aa3a2d3079a383157b82ff825cc992d..82ee16f8efb5d32bf648d416010de557e2b90865 100644 +index 86283e9b7c3ad18e4deb8fcd3de624be92908c55..e367711dc3ef96280fe672f02e2ce99e43a5cd3c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -597,7 +597,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 567103d635087bf894a8c0473baf03bdb5ff052f..f767c822a8e86ce689d40d12c4ef2db3829a97cc 100644 +index d09d5192f0a571e9758e95dd5e1392a9caa88bde..a7ac9a0c4966c2f9d2b325fa59e8792850d376e8 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -568,7 +568,7 @@ public abstract class ChunkGenerator { diff --git a/patches/server/0700-Implement-regenerateChunk.patch b/patches/unapplied/server/0700-Implement-regenerateChunk.patch similarity index 100% rename from patches/server/0700-Implement-regenerateChunk.patch rename to patches/unapplied/server/0700-Implement-regenerateChunk.patch diff --git a/patches/server/0701-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/unapplied/server/0701-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0701-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/unapplied/server/0701-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/unapplied/server/0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/server/0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/unapplied/server/0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0703-Add-GameEvent-tags.patch b/patches/unapplied/server/0703-Add-GameEvent-tags.patch similarity index 100% rename from patches/server/0703-Add-GameEvent-tags.patch rename to patches/unapplied/server/0703-Add-GameEvent-tags.patch diff --git a/patches/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/unapplied/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 94% rename from patches/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/unapplied/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index 24d1f7815d..e2539627c2 100644 --- a/patches/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/unapplied/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,7 +9,7 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 82ee16f8efb5d32bf648d416010de557e2b90865..186bbc60f6e283aeb00e339c98c034e2268f160d 100644 +index e367711dc3ef96280fe672f02e2ce99e43a5cd3c..f32bddb777082e7db307c4691b88e037926174b5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1296,6 +1296,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop serialized.gameMode = GameType.byId(buf.readVarInt()), (buf, entry) -> buf.writeVarInt(entry.gameMode().getId())), UPDATE_LISTED((serialized, buf) -> serialized.listed = buf.readBoolean(), (buf, entry) -> buf.writeBoolean(entry.listed())), diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c9dab47fe3db73b31b40e071d37f1be63401c19d..69118af2a873f23f6543676db39263bfeb81b4f1 100644 +index f2b6c74317dbedaa983bb5d821255dc40e1c81e4..1de8ee39347a6f4c56c2d3aa0e32887b57b80524 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -286,6 +286,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/unapplied/server/0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 100% rename from patches/server/0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/unapplied/server/0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch diff --git a/patches/server/0858-Use-array-for-gamerule-storage.patch b/patches/unapplied/server/0858-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0858-Use-array-for-gamerule-storage.patch rename to patches/unapplied/server/0858-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0859-Fix-a-couple-of-upstream-bed-issues.patch b/patches/unapplied/server/0859-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0859-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/unapplied/server/0859-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0860-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/unapplied/server/0860-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0860-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/unapplied/server/0860-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0861-Add-Mob-Experience-reward-API.patch b/patches/unapplied/server/0861-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0861-Add-Mob-Experience-reward-API.patch rename to patches/unapplied/server/0861-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0862-Break-redstone-on-top-of-trap-doors-early.patch b/patches/unapplied/server/0862-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0862-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/unapplied/server/0862-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/unapplied/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 95% rename from patches/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/unapplied/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch index 112f2214ae..ac37b3fe84 100644 --- a/patches/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch +++ b/patches/unapplied/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch @@ -7,7 +7,7 @@ This patch is meant to get rid of any instances of lazy initialization that Mine This has the possibility to create race condition issues, and generally don't make sense to be lazily done anyways. diff --git a/src/main/java/com/mojang/math/OctahedralGroup.java b/src/main/java/com/mojang/math/OctahedralGroup.java -index 8af12b383bb80d1c0a12e1151030ab6e21c27e79..d2efe5e4f767f8316bc3915573bd1efcbcf20968 100644 +index 05d28a08c1fdf75221f5d774fe49d905840ae472..207f424b2bf5e0c48f33e4553c7c6019ef2dd009 100644 --- a/src/main/java/com/mojang/math/OctahedralGroup.java +++ b/src/main/java/com/mojang/math/OctahedralGroup.java @@ -110,6 +110,7 @@ public enum OctahedralGroup implements StringRepresentable { diff --git a/patches/server/0864-More-accurate-isInOpenWater-impl.patch b/patches/unapplied/server/0864-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0864-More-accurate-isInOpenWater-impl.patch rename to patches/unapplied/server/0864-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/unapplied/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 94% rename from patches/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/unapplied/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch index 54ad4f456c..0731970718 100644 --- a/patches/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch +++ b/patches/unapplied/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch @@ -11,7 +11,7 @@ more than one Netty IO thread. Fixes https://github.com/PaperMC/Folia/issues/11 diff --git a/src/main/java/net/minecraft/resources/RegistryOps.java b/src/main/java/net/minecraft/resources/RegistryOps.java -index 3dc8333a5c17926679c79d5294a0e72199801c34..fafecd2f5aefd5e6fdc2b0c3674378f03f4dc4f2 100644 +index 0272fe45449785e8589b6e42fa454f2abfcc0476..dd8a6bd463e5c8fe69271663cb46b45b201ba59c 100644 --- a/src/main/java/net/minecraft/resources/RegistryOps.java +++ b/src/main/java/net/minecraft/resources/RegistryOps.java @@ -19,7 +19,10 @@ public class RegistryOps extends DelegatingOps { diff --git a/patches/server/0866-Expand-PlayerItemMendEvent.patch b/patches/unapplied/server/0866-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/server/0866-Expand-PlayerItemMendEvent.patch rename to patches/unapplied/server/0866-Expand-PlayerItemMendEvent.patch diff --git a/patches/server/0867-Refresh-ProjectileSource-for-projectiles.patch b/patches/unapplied/server/0867-Refresh-ProjectileSource-for-projectiles.patch similarity index 100% rename from patches/server/0867-Refresh-ProjectileSource-for-projectiles.patch rename to patches/unapplied/server/0867-Refresh-ProjectileSource-for-projectiles.patch diff --git a/patches/server/0868-Add-transient-modifier-API.patch b/patches/unapplied/server/0868-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0868-Add-transient-modifier-API.patch rename to patches/unapplied/server/0868-Add-transient-modifier-API.patch diff --git a/patches/server/0869-Fix-block-place-logic.patch b/patches/unapplied/server/0869-Fix-block-place-logic.patch similarity index 100% rename from patches/server/0869-Fix-block-place-logic.patch rename to patches/unapplied/server/0869-Fix-block-place-logic.patch diff --git a/patches/server/0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/unapplied/server/0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/unapplied/server/0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/unapplied/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/unapplied/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/unapplied/server/0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 100% rename from patches/server/0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/unapplied/server/0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch diff --git a/patches/server/0873-fix-MapLike-spam-for-missing-key-selector.patch b/patches/unapplied/server/0873-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0873-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/unapplied/server/0873-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0874-Fix-sniffer-removeExploredLocation.patch b/patches/unapplied/server/0874-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0874-Fix-sniffer-removeExploredLocation.patch rename to patches/unapplied/server/0874-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0875-Add-method-to-remove-all-active-potion-effects.patch b/patches/unapplied/server/0875-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0875-Add-method-to-remove-all-active-potion-effects.patch rename to patches/unapplied/server/0875-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/unapplied/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/unapplied/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0877-Add-event-for-player-editing-sign.patch b/patches/unapplied/server/0877-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0877-Add-event-for-player-editing-sign.patch rename to patches/unapplied/server/0877-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0878-Only-tick-item-frames-if-players-can-see-it.patch b/patches/unapplied/server/0878-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0878-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/unapplied/server/0878-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0879-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/unapplied/server/0879-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0879-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/unapplied/server/0879-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0880-Add-option-to-disable-block-updates.patch b/patches/unapplied/server/0880-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0880-Add-option-to-disable-block-updates.patch rename to patches/unapplied/server/0880-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0881-Call-missing-BlockDispenseEvent.patch b/patches/unapplied/server/0881-Call-missing-BlockDispenseEvent.patch similarity index 100% rename from patches/server/0881-Call-missing-BlockDispenseEvent.patch rename to patches/unapplied/server/0881-Call-missing-BlockDispenseEvent.patch diff --git a/patches/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/unapplied/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 100% rename from patches/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/unapplied/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch diff --git a/patches/server/0883-Optimize-player-lookups-for-beacons.patch b/patches/unapplied/server/0883-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0883-Optimize-player-lookups-for-beacons.patch rename to patches/unapplied/server/0883-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0884-Add-Sign-getInteractableSideFor.patch b/patches/unapplied/server/0884-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0884-Add-Sign-getInteractableSideFor.patch rename to patches/unapplied/server/0884-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0885-Array-backed-synched-entity-data.patch b/patches/unapplied/server/0885-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0885-Array-backed-synched-entity-data.patch rename to patches/unapplied/server/0885-Array-backed-synched-entity-data.patch diff --git a/patches/server/0886-fix-item-meta-for-tadpole-buckets.patch b/patches/unapplied/server/0886-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0886-fix-item-meta-for-tadpole-buckets.patch rename to patches/unapplied/server/0886-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0887-Fix-BanList-API.patch b/patches/unapplied/server/0887-Fix-BanList-API.patch similarity index 100% rename from patches/server/0887-Fix-BanList-API.patch rename to patches/unapplied/server/0887-Fix-BanList-API.patch diff --git a/patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/unapplied/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/unapplied/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0889-Fix-possible-NPE-on-painting-creation.patch b/patches/unapplied/server/0889-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0889-Fix-possible-NPE-on-painting-creation.patch rename to patches/unapplied/server/0889-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/unapplied/server/0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/unapplied/server/0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0891-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/unapplied/server/0891-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 100% rename from patches/server/0891-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/unapplied/server/0891-ExperienceOrb-should-call-EntitySpawnEvent.patch diff --git a/patches/server/0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/unapplied/server/0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/unapplied/server/0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0893-Add-whitelist-events.patch b/patches/unapplied/server/0893-Add-whitelist-events.patch similarity index 100% rename from patches/server/0893-Add-whitelist-events.patch rename to patches/unapplied/server/0893-Add-whitelist-events.patch diff --git a/patches/server/0894-Implement-PlayerFailMoveEvent.patch b/patches/unapplied/server/0894-Implement-PlayerFailMoveEvent.patch similarity index 98% rename from patches/server/0894-Implement-PlayerFailMoveEvent.patch rename to patches/unapplied/server/0894-Implement-PlayerFailMoveEvent.patch index 67cf55983c..3d263f8ee9 100644 --- a/patches/server/0894-Implement-PlayerFailMoveEvent.patch +++ b/patches/unapplied/server/0894-Implement-PlayerFailMoveEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerFailMoveEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 69118af2a873f23f6543676db39263bfeb81b4f1..93f5ec2c48bf4bdd4afc1e07ffcf1a34387ce6ac 100644 +index 1de8ee39347a6f4c56c2d3aa0e32887b57b80524..91e9e8a62ae25360ad82ab12ef07f8a51a2665ca 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1279,8 +1279,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0895-Folia-scheduler-and-owned-region-API.patch b/patches/unapplied/server/0895-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0895-Folia-scheduler-and-owned-region-API.patch rename to patches/unapplied/server/0895-Folia-scheduler-and-owned-region-API.patch index ab7ab5a341..e7344d7653 100644 --- a/patches/server/0895-Folia-scheduler-and-owned-region-API.patch +++ b/patches/unapplied/server/0895-Folia-scheduler-and-owned-region-API.patch @@ -1148,7 +1148,7 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index bfee202e1dc8ea875b9d2b4e8c3b0be3f6d94b26..28645a835a169029b734262a9f42751caa52c4c9 100644 +index a540c744ca88884207c4520794091c01c1c9f50e..882b6effa39b62172914b41af54e54c2890480fb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1497,6 +1497,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { diff --git a/patches/server/0979-Starlight.patch b/patches/unapplied/server/0979-Starlight.patch similarity index 100% rename from patches/server/0979-Starlight.patch rename to patches/unapplied/server/0979-Starlight.patch diff --git a/patches/server/0980-Rewrite-chunk-system.patch b/patches/unapplied/server/0980-Rewrite-chunk-system.patch similarity index 99% rename from patches/server/0980-Rewrite-chunk-system.patch rename to patches/unapplied/server/0980-Rewrite-chunk-system.patch index e013a3c5f4..541f2b8723 100644 --- a/patches/server/0980-Rewrite-chunk-system.patch +++ b/patches/unapplied/server/0980-Rewrite-chunk-system.patch @@ -19951,7 +19951,7 @@ index ced67cf88c91c5270a0060a7307f36739237cbb2..dab86988686cf7c926b7432b8a4afffd @Nullable default ChunkAccess getChunkIfLoadedImmediately(BlockPos pos) { return this.getChunkIfLoadedImmediately(pos.getX() >> 4, pos.getZ() >> 4);} diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index b26a4eb4951e87f891b59028d98b8ffba8e103a8..b8b78494449c0cd638f9706a803dc54e184d981f 100644 +index 84a2a5384a8a31eff5363e6391c9a5187212ff36..4c03297fb523ef59cd9d11edbed437398e562a00 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -114,7 +114,7 @@ public abstract class ChunkGenerator { diff --git a/patches/server/0981-incremental-chunk-and-player-saving.patch b/patches/unapplied/server/0981-incremental-chunk-and-player-saving.patch similarity index 98% rename from patches/server/0981-incremental-chunk-and-player-saving.patch rename to patches/unapplied/server/0981-incremental-chunk-and-player-saving.patch index ee962a9466..33d6eb0a5f 100644 --- a/patches/server/0981-incremental-chunk-and-player-saving.patch +++ b/patches/unapplied/server/0981-incremental-chunk-and-player-saving.patch @@ -5,7 +5,7 @@ Subject: [PATCH] incremental chunk and player saving diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 56d579e64b367dd21b2909eb0dbc1d7686d0c3d0..c8a2686f1e60a8c1fb56ce7b5d3e2ba62ec3a987 100644 +index 03d566c3e6d7541487ea79ed868aa7334793df3b..54d6e197bd6357bf2d31d8d5d1cb3707d22ef03e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -908,7 +908,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index 9c51c4d12bac588002f530f484ee89b094269349..761a8d4fb47f9bffdf9ca76fbae1003e8ae46a02 100644 +index 454bec4f8843e7e4e42cd8a8132b557ead292dcc..76bde683d193b37e563a67c1c7b9bdcf17d64524 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java @@ -24,6 +24,14 @@ public class ClientboundLevelChunkPacketData { diff --git a/patches/server/1030-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/unapplied/server/1030-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/1030-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/unapplied/server/1030-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/1031-Add-ShulkerDuplicateEvent.patch b/patches/unapplied/server/1031-Add-ShulkerDuplicateEvent.patch similarity index 100% rename from patches/server/1031-Add-ShulkerDuplicateEvent.patch rename to patches/unapplied/server/1031-Add-ShulkerDuplicateEvent.patch diff --git a/patches/server/1032-Add-api-for-spawn-egg-texture-colors.patch b/patches/unapplied/server/1032-Add-api-for-spawn-egg-texture-colors.patch similarity index 100% rename from patches/server/1032-Add-api-for-spawn-egg-texture-colors.patch rename to patches/unapplied/server/1032-Add-api-for-spawn-egg-texture-colors.patch diff --git a/patches/server/1033-Disable-memory-reserve-allocating.patch b/patches/unapplied/server/1033-Disable-memory-reserve-allocating.patch similarity index 100% rename from patches/server/1033-Disable-memory-reserve-allocating.patch rename to patches/unapplied/server/1033-Disable-memory-reserve-allocating.patch diff --git a/patches/server/1034-Improve-tag-parser-handling.patch b/patches/unapplied/server/1034-Improve-tag-parser-handling.patch similarity index 99% rename from patches/server/1034-Improve-tag-parser-handling.patch rename to patches/unapplied/server/1034-Improve-tag-parser-handling.patch index 30bd53f874..78cf8189d3 100644 --- a/patches/server/1034-Improve-tag-parser-handling.patch +++ b/patches/unapplied/server/1034-Improve-tag-parser-handling.patch @@ -169,7 +169,7 @@ index a5e438a834826161c52ca9db57d234d9ff80a591..4766994cce060564370b0d24836a7da8 @Override diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 98496bcc7ab9adde3fdc8b2cd9eaeceee99e28b4..860d33ac56680babd87358b1d7d2216dac3f7865 100644 +index b8db3c3a5870e9d7dbba38caf7c9e1c1f3849bde..2ad17823bf442ce0455227b64e5d3bb10d0ee2c1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -777,6 +777,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/1035-Add-Lifecycle-Event-system.patch b/patches/unapplied/server/1035-Add-Lifecycle-Event-system.patch similarity index 100% rename from patches/server/1035-Add-Lifecycle-Event-system.patch rename to patches/unapplied/server/1035-Add-Lifecycle-Event-system.patch diff --git a/patches/server/1036-Conduit-API.patch b/patches/unapplied/server/1036-Conduit-API.patch similarity index 100% rename from patches/server/1036-Conduit-API.patch rename to patches/unapplied/server/1036-Conduit-API.patch diff --git a/patches/server/1037-ItemStack-Tooltip-API.patch b/patches/unapplied/server/1037-ItemStack-Tooltip-API.patch similarity index 100% rename from patches/server/1037-ItemStack-Tooltip-API.patch rename to patches/unapplied/server/1037-ItemStack-Tooltip-API.patch diff --git a/patches/server/1038-Fix-possible-StackOverflowError-for-some-dispenses.patch b/patches/unapplied/server/1038-Fix-possible-StackOverflowError-for-some-dispenses.patch similarity index 100% rename from patches/server/1038-Fix-possible-StackOverflowError-for-some-dispenses.patch rename to patches/unapplied/server/1038-Fix-possible-StackOverflowError-for-some-dispenses.patch diff --git a/patches/server/1039-Properly-track-the-changed-item-from-dispense-events.patch b/patches/unapplied/server/1039-Properly-track-the-changed-item-from-dispense-events.patch similarity index 100% rename from patches/server/1039-Properly-track-the-changed-item-from-dispense-events.patch rename to patches/unapplied/server/1039-Properly-track-the-changed-item-from-dispense-events.patch diff --git a/patches/server/1040-Add-getChunkSnapshot-includeLightData-parameter.patch b/patches/unapplied/server/1040-Add-getChunkSnapshot-includeLightData-parameter.patch similarity index 100% rename from patches/server/1040-Add-getChunkSnapshot-includeLightData-parameter.patch rename to patches/unapplied/server/1040-Add-getChunkSnapshot-includeLightData-parameter.patch diff --git a/patches/server/1041-Add-FluidState-API.patch b/patches/unapplied/server/1041-Add-FluidState-API.patch similarity index 100% rename from patches/server/1041-Add-FluidState-API.patch rename to patches/unapplied/server/1041-Add-FluidState-API.patch diff --git a/patches/server/1042-add-number-format-api.patch b/patches/unapplied/server/1042-add-number-format-api.patch similarity index 100% rename from patches/server/1042-add-number-format-api.patch rename to patches/unapplied/server/1042-add-number-format-api.patch diff --git a/patches/server/1043-check-if-itemstack-is-stackable-first.patch b/patches/unapplied/server/1043-check-if-itemstack-is-stackable-first.patch similarity index 100% rename from patches/server/1043-check-if-itemstack-is-stackable-first.patch rename to patches/unapplied/server/1043-check-if-itemstack-is-stackable-first.patch diff --git a/patches/server/1044-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch b/patches/unapplied/server/1044-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch similarity index 100% rename from patches/server/1044-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch rename to patches/unapplied/server/1044-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch diff --git a/patches/server/1045-improve-BanList-types.patch b/patches/unapplied/server/1045-improve-BanList-types.patch similarity index 100% rename from patches/server/1045-improve-BanList-types.patch rename to patches/unapplied/server/1045-improve-BanList-types.patch diff --git a/patches/server/1046-Configurable-max-block-fluid-ticks.patch b/patches/unapplied/server/1046-Configurable-max-block-fluid-ticks.patch similarity index 100% rename from patches/server/1046-Configurable-max-block-fluid-ticks.patch rename to patches/unapplied/server/1046-Configurable-max-block-fluid-ticks.patch diff --git a/patches/server/1047-disable-forced-empty-world-ticks.patch b/patches/unapplied/server/1047-disable-forced-empty-world-ticks.patch similarity index 100% rename from patches/server/1047-disable-forced-empty-world-ticks.patch rename to patches/unapplied/server/1047-disable-forced-empty-world-ticks.patch diff --git a/patches/server/1048-Suspicious-Effect-Entry-API.patch b/patches/unapplied/server/1048-Suspicious-Effect-Entry-API.patch similarity index 100% rename from patches/server/1048-Suspicious-Effect-Entry-API.patch rename to patches/unapplied/server/1048-Suspicious-Effect-Entry-API.patch diff --git a/patches/server/1049-Per-world-ticks-per-spawn-settings.patch b/patches/unapplied/server/1049-Per-world-ticks-per-spawn-settings.patch similarity index 100% rename from patches/server/1049-Per-world-ticks-per-spawn-settings.patch rename to patches/unapplied/server/1049-Per-world-ticks-per-spawn-settings.patch diff --git a/patches/server/1050-Add-onboarding-message-for-initial-server-start.patch b/patches/unapplied/server/1050-Add-onboarding-message-for-initial-server-start.patch similarity index 96% rename from patches/server/1050-Add-onboarding-message-for-initial-server-start.patch rename to patches/unapplied/server/1050-Add-onboarding-message-for-initial-server-start.patch index 7769ecafe8..6210b12485 100644 --- a/patches/server/1050-Add-onboarding-message-for-initial-server-start.patch +++ b/patches/unapplied/server/1050-Add-onboarding-message-for-initial-server-start.patch @@ -17,7 +17,7 @@ index c01b4393439838976965823298f12e4762e72eff..218bf89fd7583d6db9f64754c4db8fcc node = loader.load(); this.verifyGlobalConfigVersion(node); diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index d00fc39b19c02895553f40bf5f62daa1dd50d59c..0cc2307636279915c1f8529e62174cc696e185ee 100644 +index 31f34ac1c70df3ef6eb6f6dfd0f870b1b275adfa..30fe1c0645a07d663b08c0f988a1ab3a750bf7c4 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -25,6 +25,7 @@ public class GlobalConfiguration extends ConfigurationPart { @@ -29,7 +29,7 @@ index d00fc39b19c02895553f40bf5f62daa1dd50d59c..0cc2307636279915c1f8529e62174cc6 return instance; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5934d8fc3d0a96f72f41193102ac58bd87f82b57..c8772c773f9933ed1d1debfe707af4373c458152 100644 +index f03f6922d15541c5491e5b37a3efa7ef0abef211..2dc07e5ef249636e85ad9c78e3729e9e066a8fe8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1155,6 +1155,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Date: Tue, 23 Apr 2024 11:03:16 -0700 Subject: [PATCH 064/215] do some work --- .../server/0004-Test-changes.patch | 8 +- .../server/0005-Paper-config-files.patch | 48 +-- .../server/0006-MC-Dev-fixes.patch | 55 +-- .../server/0007-ConcurrentUtil.patch | 0 .../server/0008-CB-fixes.patch | 46 +-- .../server/0009-MC-Utils.patch | 330 +++++++++--------- .../server/0010-Adventure.patch | 0 7 files changed, 223 insertions(+), 264 deletions(-) rename patches/{unapplied => }/server/0004-Test-changes.patch (98%) rename patches/{unapplied => }/server/0005-Paper-config-files.patch (99%) rename patches/{unapplied => }/server/0006-MC-Dev-fixes.patch (57%) rename patches/{unapplied => }/server/0007-ConcurrentUtil.patch (100%) rename patches/{unapplied => }/server/0008-CB-fixes.patch (83%) rename patches/{unapplied => }/server/0009-MC-Utils.patch (96%) rename patches/{unapplied => }/server/0010-Adventure.patch (100%) diff --git a/patches/unapplied/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch similarity index 98% rename from patches/unapplied/server/0004-Test-changes.patch rename to patches/server/0004-Test-changes.patch index 9bb625b711..766ccf2327 100644 --- a/patches/unapplied/server/0004-Test-changes.patch +++ b/patches/server/0004-Test-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Test changes diff --git a/build.gradle.kts b/build.gradle.kts -index 50d9182a4845564cd62b026700a7d0517c25e74d..69155f6badcd79b3479654363ca1f1d8a138a7ad 100644 +index 2905c7273ed4d62a7f1bc7eab9ae919ee6c012de..e5f1c91937af872109e478b99a6037332994e717 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,6 +23,7 @@ dependencies { @@ -15,7 +15,7 @@ index 50d9182a4845564cd62b026700a7d0517c25e74d..69155f6badcd79b3479654363ca1f1d8 + testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // Paper - CartesianTest } - val craftbukkitPackageVersion = "1_20_R3" // Paper + val craftbukkitPackageVersion = "1_20_R4" // Paper @@ -53,6 +54,12 @@ tasks.jar { } } @@ -338,10 +338,10 @@ index 0000000000000000000000000000000000000000..6cbf11c898439834cffb99ef84e5df14 + String[] value() default {}; +} diff --git a/src/test/java/org/bukkit/support/DummyServer.java b/src/test/java/org/bukkit/support/DummyServer.java -index b19d4f7d1fcb604b448a5084f6bfe56d47ab12b3..f3017525b0c2397fdc7ce0778add2e7b38e9e2ba 100644 +index ee0cff84379bc0539b2c611a4904aff9f5843814..02a8e6b45bf304b6e0f88043a25188aa16b3d6bf 100644 --- a/src/test/java/org/bukkit/support/DummyServer.java +++ b/src/test/java/org/bukkit/support/DummyServer.java -@@ -48,6 +48,15 @@ public final class DummyServer { +@@ -50,6 +50,15 @@ public final class DummyServer { return registers.computeIfAbsent(aClass, key -> CraftRegistry.createRegistry(aClass, AbstractTestingBase.REGISTRY_CUSTOM)); }); diff --git a/patches/unapplied/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch similarity index 99% rename from patches/unapplied/server/0005-Paper-config-files.patch rename to patches/server/0005-Paper-config-files.patch index ca3d0593c0..8db8a41683 100644 --- a/patches/unapplied/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -15,17 +15,17 @@ public net.minecraft.server.dedicated.DedicatedServerProperties reload(Lnet/mine public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES diff --git a/build.gradle.kts b/build.gradle.kts -index 69155f6badcd79b3479654363ca1f1d8a138a7ad..8332781de54d73cb5803828e98882a731daed81f 100644 +index e5f1c91937af872109e478b99a6037332994e717..2fb082175529e52604d7e2f4a272fc58d0ec2eb1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,6 +11,7 @@ dependencies { implementation("jline:jline:2.12.1") - implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion + implementation("org.apache.logging.log4j:log4j-iostreams:2.22.1") // Paper - remove exclusion implementation("org.ow2.asm:asm-commons:9.7") + implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files implementation("commons-lang:commons-lang:2.6") - runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") - runtimeOnly("com.mysql:mysql-connector-j:8.2.0") + runtimeOnly("org.xerial:sqlite-jdbc:3.45.3.0") + runtimeOnly("com.mysql:mysql-connector-j:8.3.0") diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..ef41cf3a7d1e6f2bfe81e0fb865d2f969bbc77c1 @@ -4824,11 +4824,11 @@ index 0000000000000000000000000000000000000000..614aba60bb07946a144650fd3aedb316 + protected abstract boolean belowZero(O value); +} diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 602964d92ddf9e4ec47ed3cb45787fdd061a881e..66550ce5cc83534af8dcac338db5cd4cfb1c46c4 100644 +index b334265d4015fec13d7fedbffba2b6c22f4c8bc8..5b4ac7b4fd0077e900e9f788963f1613bbc9a5d0 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -126,6 +126,10 @@ public class Main { - dedicatedserversettings.forceSave(); +@@ -129,6 +129,10 @@ public class Main { + RegionFileVersion.configure(dedicatedserversettings.getProperties().regionFileComression); Path path2 = Paths.get("eula.txt"); Eula eula = new Eula(path2); + // Paper start - load config files early for access below if needed @@ -4838,7 +4838,7 @@ index 602964d92ddf9e4ec47ed3cb45787fdd061a881e..66550ce5cc83534af8dcac338db5cd4c if (optionset.has("initSettings")) { // CraftBukkit // CraftBukkit start - SPIGOT-5761: Create bukkit.yml and commands.yml if not present -@@ -160,7 +164,7 @@ public class Main { +@@ -163,7 +167,7 @@ public class Main { } File file = (File) optionset.valueOf("universe"); // CraftBukkit @@ -4848,10 +4848,10 @@ index 602964d92ddf9e4ec47ed3cb45787fdd061a881e..66550ce5cc83534af8dcac338db5cd4c String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName); LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath()); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 42da710d18063aed6fd450fe31277d7daf0542c1..62e096c9cc05c387ca2413a490f44c6c66a5c41e 100644 +index c54979d2509ce30f2ba0d956b5c6d48342e1a0fc..254e362cd54359512285bab632dbae3cec0f03e0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -295,6 +295,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -388,6 +389,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { @@ -4935,10 +4935,10 @@ index 397c978c71f36c8abe1c52e545699fc7928a6917..fc45c2c4ecdf3906df6bceaf3e019c46 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 50b79de15571ef30f202bae5952a9f825902e11a..aac9513ff4d3d494860bd06607cf8af5e466fd5b 100644 +index d7c5e872136d0452311b316c5703050c45960230..cc5e1076bdf7b4794ee79934fb70234ba61efe15 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -236,7 +236,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -241,7 +241,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Holder holder = worlddimension.type(); // CraftBukkit - decompile error // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error @@ -4948,10 +4948,10 @@ index 50b79de15571ef30f202bae5952a9f825902e11a..aac9513ff4d3d494860bd06607cf8af5 this.convertable = convertable_conversionsession; this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile()); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index f7e8cabd6ef7d31b785b69db1d5b24d55563dbe4..bd9ea2bd012cdcf07ac322b3e0360c6c336ab1f9 100644 +index ecbb926986bbc0ad6fe108b782cdc17ee8a9f035..b06ffa8d5953c8f0a47daf056495cd424d9ac843 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -158,6 +158,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -155,6 +155,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); public boolean populating; public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot @@ -4964,7 +4964,7 @@ index f7e8cabd6ef7d31b785b69db1d5b24d55563dbe4..bd9ea2bd012cdcf07ac322b3e0360c6c public final SpigotTimings.WorldTimingsHandler timings; // Spigot public static BlockPos lastPhysicsProblem; // Spigot -@@ -175,8 +181,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -172,8 +178,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); @@ -4976,7 +4976,7 @@ index f7e8cabd6ef7d31b785b69db1d5b24d55563dbe4..bd9ea2bd012cdcf07ac322b3e0360c6c 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 680a308c466c0056d4213e61f69cf13ee3ff5c61..cd39509d383c47319b71797e5d1df41c2b8c7ab6 100644 +index 332d4e0771cf5a4eddd44b9a380df52fb8ab5d42..02ddd4e200a86d720297dbec508480fc0cd270d1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -927,6 +927,7 @@ public final class CraftServer implements Server { @@ -4988,10 +4988,10 @@ index 680a308c466c0056d4213e61f69cf13ee3ff5c61..cd39509d383c47319b71797e5d1df41c 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 67d347741db1c5a9a6568ee084388a59e35b16ea..cc6d96c5015b4e5614e8091dc9113e82e9babc25 100644 +index 4b8602b168f9dd386aa72b4e5d189c441c93542e..1e3ca7ca98abfd5be233a7eeb6dad201776d2d6a 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 { +@@ -142,6 +142,19 @@ public class Main { .defaultsTo(new File("spigot.yml")) .describedAs("Yml file"); // Spigot End @@ -5012,7 +5012,7 @@ index 67d347741db1c5a9a6568ee084388a59e35b16ea..cc6d96c5015b4e5614e8091dc9113e82 }; diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java -index 6b778bed6d61f941c839dec01b8733a9b1fbefec..df29015e3d5ca49297fe87090fd6446962e59adb 100644 +index 9658f2961d9b5632ad1abdba26a2443642624f69..38219af7d0ba2d871711102b6a29139a49678f6b 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java @@ -96,7 +96,7 @@ public class SpigotConfig @@ -5072,7 +5072,7 @@ index 0000000000000000000000000000000000000000..0396589795da1f83ddf62426236dde9a + } +} diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java -index 0619361adf57fdc41c4ecb09d1d6a5c862a85f89..b786ed8e620feb51baceae41dd2d1538dc298705 100644 +index 544307fe34cbcfa286a7d7b30900ebea127d189e..1b1d51a68c0abe7d8f0aa1172064192c71ae645e 100644 --- a/src/test/java/org/bukkit/support/AbstractTestingBase.java +++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java @@ -63,6 +63,7 @@ public abstract class AbstractTestingBase { diff --git a/patches/unapplied/server/0006-MC-Dev-fixes.patch b/patches/server/0006-MC-Dev-fixes.patch similarity index 57% rename from patches/unapplied/server/0006-MC-Dev-fixes.patch rename to patches/server/0006-MC-Dev-fixes.patch index 671908dd6b..feb444d777 100644 --- a/patches/unapplied/server/0006-MC-Dev-fixes.patch +++ b/patches/server/0006-MC-Dev-fixes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] MC Dev fixes diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 1a4cab0b9995b733aa84b89129009a99177eee9b..ead823fa2a143acb05b33152ee1e5ee4b4936a20 100644 +index 478d2114fbd5c499a8adbf8b6cefcc8335e830dc..2074d4327f0c356c220f3a6a9761439e76a15fc3 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java -@@ -405,12 +405,12 @@ public class BlockPos extends Vec3i { +@@ -427,12 +427,12 @@ public class BlockPos extends Vec3i { if (this.index == l) { return this.endOfData(); } else { @@ -27,23 +27,23 @@ index 1a4cab0b9995b733aa84b89129009a99177eee9b..ead823fa2a143acb05b33152ee1e5ee4 } }; diff --git a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java -index d14613f7d37198276c251e73703b060a971fac28..e8afaa3c1fab0435acb068426091bdf776263112 100644 +index 433b6673ea62d466c466c1ff3732041a8fcbb6b5..bc91370654f5da33cbfe7d42431568915c1159d6 100644 --- a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java +++ b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java -@@ -307,7 +307,7 @@ public class BuiltInRegistries { +@@ -299,7 +299,7 @@ public class BuiltInRegistries { Bootstrap.checkBootstrapCalled(() -> "registry " + key); ResourceLocation resourceLocation = key.location(); LOADERS.put(resourceLocation, () -> initializer.run(registry)); -- WRITABLE_REGISTRY.register((ResourceKey>)key, registry, lifecycle); -+ WRITABLE_REGISTRY.register((ResourceKey)key, registry, lifecycle); // Paper - decompile fix +- WRITABLE_REGISTRY.register((ResourceKey>)key, registry, RegistrationInfo.BUILT_IN); ++ WRITABLE_REGISTRY.register((ResourceKey)key, registry, RegistrationInfo.BUILT_IN); // Paper - decompile fix return registry; } diff --git a/src/main/java/net/minecraft/nbt/TagParser.java b/src/main/java/net/minecraft/nbt/TagParser.java -index 733303e860560f4c93372326ab4efdaf21e5ace7..ebe0efe488357ae895aaf752e9bc008b96db156f 100644 +index a614e960fcd5958ad17b679eee8a8e6926f58e62..da101bca71f4710812621b98f0a0d8cab180346a 100644 --- a/src/main/java/net/minecraft/nbt/TagParser.java +++ b/src/main/java/net/minecraft/nbt/TagParser.java -@@ -252,11 +252,11 @@ public class TagParser { +@@ -253,11 +253,11 @@ public class TagParser { } if (typeReader == ByteTag.TYPE) { @@ -58,33 +58,11 @@ index 733303e860560f4c93372326ab4efdaf21e5ace7..ebe0efe488357ae895aaf752e9bc008b } if (!this.hasElementSeparator()) { -diff --git a/src/main/java/net/minecraft/network/ConnectionProtocol.java b/src/main/java/net/minecraft/network/ConnectionProtocol.java -index 68ccf051f5a769abaa0bf9508add9303c56a1193..9d6dafb4855af9ccb7bc033ebf0fca5f75ceb9c6 100644 ---- a/src/main/java/net/minecraft/network/ConnectionProtocol.java -+++ b/src/main/java/net/minecraft/network/ConnectionProtocol.java -@@ -451,7 +451,7 @@ public enum ConnectionProtocol { - protocol() - .addFlow( - PacketFlow.CLIENTBOUND, -- new ConnectionProtocol.PacketSet() -+ new ConnectionProtocol.PacketSet() // Paper - decompile fix - .addPacket(ClientboundCustomPayloadPacket.class, ClientboundCustomPayloadPacket::new) - .addPacket(ClientboundDisconnectPacket.class, ClientboundDisconnectPacket::new) - .addPacket(ClientboundFinishConfigurationPacket.class, ClientboundFinishConfigurationPacket::new) -@@ -465,7 +465,7 @@ public enum ConnectionProtocol { - ) - .addFlow( - PacketFlow.SERVERBOUND, -- new ConnectionProtocol.PacketSet() -+ new ConnectionProtocol.PacketSet() // Paper - decompile fix - .addPacket(ServerboundClientInformationPacket.class, ServerboundClientInformationPacket::new) - .addPacket(ServerboundCustomPayloadPacket.class, ServerboundCustomPayloadPacket::new) - .addPacket(ServerboundFinishConfigurationPacket.class, ServerboundFinishConfigurationPacket::new) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 62e096c9cc05c387ca2413a490f44c6c66a5c41e..9c23ad38f935b2f31c0e0998e685978434202900 100644 +index 254e362cd54359512285bab632dbae3cec0f03e0..a3d44867e6243f30640df91a0285ed735a9f1f34 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1863,7 +1863,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop SortedArraySet create(Comparator comparator) { -diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java -index 04adc10f24f96804a5cb14e884224bb672360464..4259181bab2dc4f2d0409b56fdf81d966003376d 100644 ---- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java -+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java -@@ -81,7 +81,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener { - } - - this.recipes = (Map) map1.entrySet().stream().collect(ImmutableMap.toImmutableMap(Entry::getKey, (entry1) -> { -- return (entry1.getValue()); // CraftBukkit -+ return entry1.getValue(); // CraftBukkit // Paper - decompile fix - *shrugs internally* // todo: is this needed anymore? - })); - this.byName = Maps.newHashMap(builder.build()); // CraftBukkit - RecipeManager.LOGGER.info("Loaded {} recipes", map1.size()); diff --git a/patches/unapplied/server/0007-ConcurrentUtil.patch b/patches/server/0007-ConcurrentUtil.patch similarity index 100% rename from patches/unapplied/server/0007-ConcurrentUtil.patch rename to patches/server/0007-ConcurrentUtil.patch diff --git a/patches/unapplied/server/0008-CB-fixes.patch b/patches/server/0008-CB-fixes.patch similarity index 83% rename from patches/unapplied/server/0008-CB-fixes.patch rename to patches/server/0008-CB-fixes.patch index 5557dcf6f3..80c0e35a72 100644 --- a/patches/unapplied/server/0008-CB-fixes.patch +++ b/patches/server/0008-CB-fixes.patch @@ -17,10 +17,10 @@ Subject: [PATCH] CB fixes Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index aac9513ff4d3d494860bd06607cf8af5e466fd5b..30fc222c384938fb4fdd4c6715295aeea57094bc 100644 +index cc5e1076bdf7b4794ee79934fb70234ba61efe15..b3caf69f9627ba2114dc9d06551ccf182debfb04 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -296,7 +296,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -302,7 +302,7 @@ public class ServerLevel extends Level implements WorldGenLevel { long l = minecraftserver.getWorldData().worldGenOptions().seed(); @@ -30,21 +30,21 @@ index aac9513ff4d3d494860bd06607cf8af5e466fd5b..30fc222c384938fb4fdd4c6715295aee if ((this.dimension() == Level.END && this.dimensionTypeRegistration().is(BuiltinDimensionTypes.END)) || env == org.bukkit.World.Environment.THE_END) { // CraftBukkit - Allow to create EnderDragonBattle in default and custom END this.dragonFight = new EndDragonFight(this, this.serverLevelData.worldGenOptions().seed(), this.serverLevelData.endDragonFightData()); // CraftBukkit diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index b2f37e3caf305f7f2c19c59848717bf73bd2ef5d..87c8460324ff2d2a14e1404fcfa3adb2d336a089 100644 +index 85e0a68d85fe62df19ad9809b1869a3eee6d5465..09aa76ec6f89163c1221721008ccb541eaf420ca 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -@@ -462,15 +462,9 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl +@@ -451,15 +451,9 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl } @Override - // CraftBukkit start - void -> boolean -- protected boolean actuallyHurt(DamageSource damagesource, float f) { +- public boolean actuallyHurt(DamageSource damagesource, float f) { - boolean hurt = super.actuallyHurt(damagesource, f); - if (!hurt) { - return hurt; - } - // CraftBukkit end -+ protected boolean actuallyHurt(DamageSource damagesource, float f) { // Paper - change return type to boolean ++ public boolean actuallyHurt(DamageSource damagesource, float f) { // Paper - change return type to boolean this.standUpInstantly(); - return hurt; // CraftBukkit + return super.actuallyHurt(damagesource, f); // Paper - change return type to boolean @@ -52,19 +52,19 @@ index b2f37e3caf305f7f2c19c59848717bf73bd2ef5d..87c8460324ff2d2a14e1404fcfa3adb2 @Override diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java -index 3f5bedc49f249888cf435f5511f5ce1da921910b..a63eaec77251a7f6660d17d7210c639b71751c45 100644 +index 0dc7f88877020bddd5a84db51d349f52b673048e..aae73586265593ee7830fb8dd5c2e3d7560057f0 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java -@@ -42,7 +42,7 @@ public class StructureCheck { - private final Registry biomes; - private final Registry structureConfigs; +@@ -40,7 +40,7 @@ public class StructureCheck { + private final ChunkScanAccess storageAccess; + private final RegistryAccess registryAccess; private final StructureTemplateManager structureTemplateManager; - private final ResourceKey dimension; + private final ResourceKey dimension; // Paper - fix missing CB diff private final ChunkGenerator chunkGenerator; private final RandomState randomState; private final LevelHeightAccessor heightAccessor; -@@ -56,7 +56,7 @@ public class StructureCheck { +@@ -54,7 +54,7 @@ public class StructureCheck { ChunkScanAccess chunkIoWorker, RegistryAccess registryManager, StructureTemplateManager structureTemplateManager, @@ -74,10 +74,10 @@ index 3f5bedc49f249888cf435f5511f5ce1da921910b..a63eaec77251a7f6660d17d7210c639b RandomState noiseConfig, LevelHeightAccessor world, diff --git a/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java b/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java -index 809fdf2da78293391aa5c60c04f4ad652b152eec..955b0abd4019fc45df84719eee6bf413e59d941a 100644 +index 9b90649f71849b3830ca9b6a3c5a722c66b02f1f..209c6b64e79c29ea3bb84ddbe89a8bff66f81d0f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java -@@ -172,4 +172,11 @@ public class CraftLootTable implements org.bukkit.loot.LootTable { +@@ -197,4 +197,11 @@ public class CraftLootTable implements org.bukkit.loot.LootTable { org.bukkit.loot.LootTable table = (org.bukkit.loot.LootTable) obj; return table.getKey().equals(this.getKey()); } @@ -90,30 +90,32 @@ index 809fdf2da78293391aa5c60c04f4ad652b152eec..955b0abd4019fc45df84719eee6bf413 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index cd39509d383c47319b71797e5d1df41c2b8c7ab6..2cc1871c81056acd0582184bb684e672d14d3b6f 100644 +index 02ddd4e200a86d720297dbec508480fc0cd270d1..080c0cf84d959e1acdde088f367bd005ea9c3bbd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2466,7 +2466,11 @@ public final class CraftServer implements Server { +@@ -2482,7 +2482,13 @@ public final class CraftServer implements Server { Preconditions.checkArgument(key != null, "NamespacedKey key cannot be null"); - LootDataManager registry = this.getServer().getLootData(); -- return new CraftLootTable(key, registry.getLootTable(CraftNamespacedKey.toMinecraft(key))); + ReloadableServerRegistries.Holder registry = this.getServer().reloadableRegistries(); +- return new CraftLootTable(key, registry.getLootTable(CraftLootTable.bukkitKeyToMinecraft(key))); + // Paper start - honor method contract -+ final ResourceLocation lootTableKey = CraftNamespacedKey.toMinecraft(key); -+ final Optional table = registry.getElementOptional(net.minecraft.world.level.storage.loot.LootDataType.TABLE, lootTableKey); ++ final ResourceKey lootTableKey = CraftLootTable.bukkitKeyToMinecraft(key); ++ final Optional table = registry.get().lookup(Registries.LOOT_TABLE) ++ .flatMap(registryEntryLookup -> registryEntryLookup.get(lootTableKey)) ++ .map(net.minecraft.core.Holder::value); + return table.map(lootTable -> new CraftLootTable(key, lootTable)).orElse(null); + // Paper end } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index cc6d96c5015b4e5614e8091dc9113e82e9babc25..6f9196120177104c6e689ff1d39a06f91d04b0c8 100644 +index 1e3ca7ca98abfd5be233a7eeb6dad201776d2d6a..9ec50bbb262b25fea157ae48e8395f5cd38f8906 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -122,6 +122,7 @@ public class Main { - +@@ -123,6 +123,7 @@ public class Main { this.acceptsAll(Main.asList("forceUpgrade"), "Whether to force a world upgrade"); this.acceptsAll(Main.asList("eraseCache"), "Whether to force cache erase during world upgrade"); + this.acceptsAll(Main.asList("recreateRegionFiles"), "Whether to recreate region files during world upgrade"); + this.accepts("safeMode", "Loads level with vanilla datapack only"); // Paper this.acceptsAll(Main.asList("nogui"), "Disables the graphical console"); diff --git a/patches/unapplied/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch similarity index 96% rename from patches/unapplied/server/0009-MC-Utils.patch rename to patches/server/0009-MC-Utils.patch index 40721b09a9..844be3d58d 100644 --- a/patches/unapplied/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -5937,10 +5937,10 @@ index 0000000000000000000000000000000000000000..d603887f4d0464f4463172fd79bcd529 + } +} diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 3d4c889aa278f814f3af0af62fd38db4f1f05a45..bf17c2005aa71a627c93b3bbaa773a5902b897c1 100644 +index 2014fdb15c31b8d5ec520f9a39c973972ceb6060..9d91e7890d8cba72f0aa2ca9661f6de7ae8a0dcd 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -127,7 +127,7 @@ public class Util { +@@ -133,7 +133,7 @@ public class Util { } public static long getNanos() { @@ -5950,7 +5950,7 @@ index 3d4c889aa278f814f3af0af62fd38db4f1f05a45..bf17c2005aa71a627c93b3bbaa773a59 public static long getEpochMillis() { diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java -index 557702f85573da753d68fcba76dde7c74de9d12b..1e2f58f2f95c558ce28706c405050c4c5701dd40 100644 +index 6b588a4e639da11edeb933ec2bc4afde8f0b47f1..1cbc42c44911b71dfadebc2d60e0e5cb9b6cafe6 100644 --- a/src/main/java/net/minecraft/nbt/CompoundTag.java +++ b/src/main/java/net/minecraft/nbt/CompoundTag.java @@ -159,7 +159,7 @@ public class CompoundTag implements Tag { @@ -5974,10 +5974,10 @@ index 557702f85573da753d68fcba76dde7c74de9d12b..1e2f58f2f95c558ce28706c405050c4c return NbtUtils.loadUUID(this.get(key)); } diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index e7a124403f2b07c96caaaf97d1c9023f9ec2f9d9..5b267514504497de3faa7ffa490a179200d9415c 100644 +index 7de2bf05e9ab33ded7a6c49efe5e35a232153c2e..256a983c7345902600d52d7b7e3056162275f4c7 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -112,6 +112,18 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -121,6 +121,18 @@ public class Connection extends SimpleChannelInboundHandler> { BandwidthDebugMonitor bandwidthDebugMonitor; public String hostname = ""; // CraftBukkit - add field @@ -5997,23 +5997,23 @@ index e7a124403f2b07c96caaaf97d1c9023f9ec2f9d9..5b267514504497de3faa7ffa490a1792 this.receiving = side; } diff --git a/src/main/java/net/minecraft/network/PacketEncoder.java b/src/main/java/net/minecraft/network/PacketEncoder.java -index 522c62ff1114fa8bff41f7177f1192ab4472a6ed..d0e159f54da70bf0bd834738ced5d4b414a36142 100644 +index e82263b4b48c4544a5ade6613ea284f4de2b4c80..a58f67973b4ed986065860263c7a42214640520d 100644 --- a/src/main/java/net/minecraft/network/PacketEncoder.java +++ b/src/main/java/net/minecraft/network/PacketEncoder.java -@@ -46,7 +46,7 @@ public class PacketEncoder extends MessageToByteEncoder> { +@@ -31,7 +31,7 @@ public class PacketEncoder extends MessageToByteEncode - JvmProfiler.INSTANCE.onPacketSent(codecData.protocol(), i, channelHandlerContext.channel().remoteAddress(), k); - } catch (Throwable var13) { -- LOGGER.error("Error receiving packet {}", i, var13); -+ LOGGER.error("Packet encoding of packet ID {} threw (skippable? {})", i, packet.isSkippable(), var13); // Paper - Give proper error message - if (packet.isSkippable()) { - throw new SkipPacketException(var13); - } + JvmProfiler.INSTANCE.onPacketSent(this.protocolInfo.id(), packetType, channelHandlerContext.channel().remoteAddress(), i); + } catch (Throwable var9) { +- LOGGER.error("Error sending packet {}", packetType, var9); ++ LOGGER.error("Error sending packet {} (skippable? {})", packetType, packet.isSkippable(), var9); + if (packet.isSkippable()) { + throw new SkipPacketException(var9); + } diff --git a/src/main/java/net/minecraft/network/protocol/login/ClientboundCustomQueryPacket.java b/src/main/java/net/minecraft/network/protocol/login/ClientboundCustomQueryPacket.java -index 929d31aa624f035eb314dece08969b102f5781fc..e94f0361cbca873f05b5b768c68c0933a0ca4483 100644 +index e113cd9d93750cf59712b06db62591876b4efbac..1789c0c71d968b386060bd6dc2630e8a078c32e2 100644 --- a/src/main/java/net/minecraft/network/protocol/login/ClientboundCustomQueryPacket.java +++ b/src/main/java/net/minecraft/network/protocol/login/ClientboundCustomQueryPacket.java -@@ -38,4 +38,14 @@ public record ClientboundCustomQueryPacket(int transactionId, CustomQueryPayload +@@ -47,4 +47,14 @@ public record ClientboundCustomQueryPacket(int transactionId, CustomQueryPayload public void handle(ClientLoginPacketListener listener) { listener.handleCustomQuery(this); } @@ -6029,10 +6029,10 @@ index 929d31aa624f035eb314dece08969b102f5781fc..e94f0361cbca873f05b5b768c68c0933 + // Paper end - MC Utils - default query payloads } diff --git a/src/main/java/net/minecraft/network/protocol/login/ServerboundCustomQueryAnswerPacket.java b/src/main/java/net/minecraft/network/protocol/login/ServerboundCustomQueryAnswerPacket.java -index 3ad2f40a7a1a8878290c5efd3e032572daf0b558..bcc4cd142c22e8d6957a329719353d789b826a69 100644 +index 3e5a85a7ad6149b04622c254fbc2e174896a4128..3f662692ed4846e026a9d48595e7b3b22404a031 100644 --- a/src/main/java/net/minecraft/network/protocol/login/ServerboundCustomQueryAnswerPacket.java +++ b/src/main/java/net/minecraft/network/protocol/login/ServerboundCustomQueryAnswerPacket.java -@@ -15,7 +15,17 @@ public record ServerboundCustomQueryAnswerPacket(int transactionId, @Nullable Cu +@@ -20,7 +20,17 @@ public record ServerboundCustomQueryAnswerPacket(int transactionId, @Nullable Cu } private static CustomQueryAnswerPayload readPayload(int queryId, FriendlyByteBuf buf) { @@ -6051,7 +6051,7 @@ index 3ad2f40a7a1a8878290c5efd3e032572daf0b558..bcc4cd142c22e8d6957a329719353d78 } private static CustomQueryAnswerPayload readUnknownPayload(FriendlyByteBuf buf) { -@@ -38,4 +48,21 @@ public record ServerboundCustomQueryAnswerPacket(int transactionId, @Nullable Cu +@@ -47,4 +57,21 @@ public record ServerboundCustomQueryAnswerPacket(int transactionId, @Nullable Cu public void handle(ServerLoginPacketListener listener) { listener.handleCustomQueryPacket(this); } @@ -6074,10 +6074,10 @@ index 3ad2f40a7a1a8878290c5efd3e032572daf0b558..bcc4cd142c22e8d6957a329719353d78 + } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9c23ad38f935b2f31c0e0998e685978434202900..4035faedd9f5f72f262822a9f050178d99be06e4 100644 +index a3d44867e6243f30640df91a0285ed735a9f1f34..be9fde876cb22296afd01fb5d55be1f1e9f78407 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 S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -956,6 +957,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop CHUNK_STATUSES = ChunkStatus.getStatusList(); - private final AtomicReferenceArray>> futures; + private final AtomicReferenceArray>> futures; private final LevelHeightAccessor levelHeightAccessor; -- private volatile CompletableFuture> fullChunkFuture; -- private volatile CompletableFuture> tickingChunkFuture; -- private volatile CompletableFuture> entityTickingChunkFuture; -+ private volatile CompletableFuture> fullChunkFuture; private int fullChunkCreateCount; private volatile boolean isFullChunkReady; // Paper - cache chunk ticking stage -+ private volatile CompletableFuture> tickingChunkFuture; private volatile boolean isTickingReady; // Paper - cache chunk ticking stage -+ private volatile CompletableFuture> entityTickingChunkFuture; private volatile boolean isEntityTickingReady; // Paper - cache chunk ticking stage +- private volatile CompletableFuture> fullChunkFuture; +- private volatile CompletableFuture> tickingChunkFuture; +- private volatile CompletableFuture> entityTickingChunkFuture; ++ private volatile CompletableFuture> fullChunkFuture; private int fullChunkCreateCount; private volatile boolean isFullChunkReady; // Paper - cache chunk ticking stage ++ private volatile CompletableFuture> tickingChunkFuture; private volatile boolean isTickingReady; // Paper - cache chunk ticking stage ++ private volatile CompletableFuture> entityTickingChunkFuture; private volatile boolean isEntityTickingReady; // Paper - cache chunk ticking stage private CompletableFuture chunkToSave; @Nullable private final DebugBuffer chunkToSaveHistory; -@@ -71,6 +71,18 @@ public class ChunkHolder { +@@ -69,6 +69,18 @@ public class ChunkHolder { private CompletableFuture pendingFullStateConfirmation; private CompletableFuture sendSync; @@ -6160,7 +6160,7 @@ index 1641bdf8725df778ba91bf5cd22c1ebbb3745058..facfdbb87e89f4db33ce13233c2ba436 public ChunkHolder(ChunkPos pos, int level, LevelHeightAccessor world, LevelLightEngine lightingProvider, ChunkHolder.LevelChangeListener levelUpdateListener, ChunkHolder.PlayerProvider playersWatchingChunkProvider) { this.futures = new AtomicReferenceArray(ChunkHolder.CHUNK_STATUSES.size()); this.fullChunkFuture = ChunkHolder.UNLOADED_LEVEL_CHUNK_FUTURE; -@@ -92,8 +104,23 @@ public class ChunkHolder { +@@ -90,8 +102,23 @@ public class ChunkHolder { this.queueLevel = this.oldTicketLevel; this.setTicketLevel(level); this.changedBlocksPerSection = new ShortSet[world.getSectionsCount()]; @@ -6184,41 +6184,32 @@ index 1641bdf8725df778ba91bf5cd22c1ebbb3745058..facfdbb87e89f4db33ce13233c2ba436 // CraftBukkit start public LevelChunk getFullChunkNow() { // Note: We use the oldTicketLevel for isLoaded checks. -@@ -118,20 +145,20 @@ public class ChunkHolder { +@@ -116,20 +143,20 @@ public class ChunkHolder { return ChunkLevel.generationStatus(this.ticketLevel).isOrAfter(leastStatus) ? this.getFutureIfPresentUnchecked(leastStatus) : ChunkHolder.UNLOADED_CHUNK_FUTURE; } -- public CompletableFuture> getTickingChunkFuture() { -+ public final CompletableFuture> getTickingChunkFuture() { // Paper - final for inline +- public CompletableFuture> getTickingChunkFuture() { ++ public final CompletableFuture> getTickingChunkFuture() { // Paper - final for inline return this.tickingChunkFuture; } -- public CompletableFuture> getEntityTickingChunkFuture() { -+ public final CompletableFuture> getEntityTickingChunkFuture() { // Paper - final for inline +- public CompletableFuture> getEntityTickingChunkFuture() { ++ public final CompletableFuture> getEntityTickingChunkFuture() { // Paper - final for inline return this.entityTickingChunkFuture; } -- public CompletableFuture> getFullChunkFuture() { -+ public final CompletableFuture> getFullChunkFuture() { // Paper - final for inline +- public CompletableFuture> getFullChunkFuture() { ++ public final CompletableFuture> getFullChunkFuture() { // Paper - final for inline return this.fullChunkFuture; } @Nullable - public LevelChunk getTickingChunk() { + public final LevelChunk getTickingChunk() { // Paper - final for inline - CompletableFuture> completablefuture = this.getTickingChunkFuture(); - Either either = (Either) completablefuture.getNow(null); // CraftBukkit - decompile error - -@@ -148,7 +175,7 @@ public class ChunkHolder { + return (LevelChunk) ((ChunkResult) this.getTickingChunkFuture().getNow(ChunkHolder.UNLOADED_LEVEL_CHUNK)).orElse(null); // CraftBukkit - decompile error } - @Nullable -- public LevelChunk getFullChunk() { -+ public final LevelChunk getFullChunk() { // Paper - final for inline - CompletableFuture> completablefuture = this.getFullChunkFuture(); - Either either = (Either) completablefuture.getNow(null); // CraftBukkit - decompile error - -@@ -169,6 +196,21 @@ public class ChunkHolder { +@@ -156,6 +183,21 @@ public class ChunkHolder { return null; } @@ -6240,7 +6231,7 @@ index 1641bdf8725df778ba91bf5cd22c1ebbb3745058..facfdbb87e89f4db33ce13233c2ba436 @Nullable public ChunkAccess getLastAvailable() { for (int i = ChunkHolder.CHUNK_STATUSES.size() - 1; i >= 0; --i) { -@@ -187,7 +229,7 @@ public class ChunkHolder { +@@ -174,7 +216,7 @@ public class ChunkHolder { return null; } @@ -6249,7 +6240,7 @@ index 1641bdf8725df778ba91bf5cd22c1ebbb3745058..facfdbb87e89f4db33ce13233c2ba436 return this.chunkToSave; } -@@ -386,11 +428,11 @@ public class ChunkHolder { +@@ -366,11 +408,11 @@ public class ChunkHolder { return ChunkLevel.fullStatus(this.ticketLevel); } @@ -6263,7 +6254,7 @@ index 1641bdf8725df778ba91bf5cd22c1ebbb3745058..facfdbb87e89f4db33ce13233c2ba436 return this.ticketLevel; } -@@ -479,14 +521,31 @@ public class ChunkHolder { +@@ -457,14 +499,31 @@ public class ChunkHolder { this.wasAccessibleSinceLastSave |= flag3; if (!flag2 && flag3) { @@ -6295,7 +6286,7 @@ index 1641bdf8725df778ba91bf5cd22c1ebbb3745058..facfdbb87e89f4db33ce13233c2ba436 } boolean flag4 = fullchunkstatus.isOrAfter(FullChunkStatus.BLOCK_TICKING); -@@ -495,11 +554,25 @@ public class ChunkHolder { +@@ -473,11 +532,25 @@ public class ChunkHolder { if (!flag4 && flag5) { this.tickingChunkFuture = chunkStorage.prepareTickingChunk(this); this.scheduleFullChunkPromotion(chunkStorage, this.tickingChunkFuture, executor, FullChunkStatus.BLOCK_TICKING); @@ -6322,7 +6313,7 @@ index 1641bdf8725df778ba91bf5cd22c1ebbb3745058..facfdbb87e89f4db33ce13233c2ba436 this.tickingChunkFuture = ChunkHolder.UNLOADED_LEVEL_CHUNK_FUTURE; } -@@ -513,11 +586,24 @@ public class ChunkHolder { +@@ -491,11 +564,24 @@ public class ChunkHolder { this.entityTickingChunkFuture = chunkStorage.prepareEntityTickingChunk(this); this.scheduleFullChunkPromotion(chunkStorage, this.entityTickingChunkFuture, executor, FullChunkStatus.ENTITY_TICKING); @@ -6348,9 +6339,9 @@ index 1641bdf8725df778ba91bf5cd22c1ebbb3745058..facfdbb87e89f4db33ce13233c2ba436 this.entityTickingChunkFuture = ChunkHolder.UNLOADED_LEVEL_CHUNK_FUTURE; } -@@ -615,4 +701,18 @@ public class ChunkHolder { - } - }; +@@ -575,4 +661,18 @@ public class ChunkHolder { + private static record ChunkSaveDebug(Thread thread, CompletableFuture future, String source) { + } + + // Paper start @@ -6368,10 +6359,10 @@ index 1641bdf8725df778ba91bf5cd22c1ebbb3745058..facfdbb87e89f4db33ce13233c2ba436 + // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3cce4e480e 100644 +index 3c0bb7319858fedccee658ea48a25e0ea635dc3c..3eb7dfd79cdf2824b2155d02d1b4c91bab3c7b33 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -168,6 +168,62 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -171,6 +171,62 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }; // CraftBukkit end @@ -6432,12 +6423,12 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c + // Paper end + public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor executor, BlockableEventLoop mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier persistentStateManagerFactory, int viewDistance, boolean dsync) { - super(session.getDimensionPath(world.dimension()).resolve("region"), dataFixer, dsync); + super(new RegionStorageInfo(session.getLevelId(), world.dimension(), "chunk"), session.getDimensionPath(world.dimension()).resolve("region"), dataFixer, dsync); this.visibleChunkMap = this.updatingChunkMap.clone(); -@@ -221,7 +277,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - this.overworldDataStorage = persistentStateManagerFactory; - this.poiManager = new PoiManager(path.resolve("poi"), dataFixer, dsync, iregistrycustom, world); +@@ -222,7 +278,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + this.poiManager = new PoiManager(new RegionStorageInfo(session.getLevelId(), world.dimension(), "poi"), path.resolve("poi"), dataFixer, dsync, iregistrycustom, world); this.setServerViewDistance(viewDistance); + this.worldGenContext = new WorldGenContext(world, chunkGenerator, structureTemplateManager, this.lightEngine); + // Paper start + this.dataRegionManager = new io.papermc.paper.chunk.SingleThreadChunkRegionManager(this.level, 2, (1.0 / 3.0), 1, 6, "Data", DataRegionData::new, DataRegionSectionData::new); + this.regionManagers.add(this.dataRegionManager); @@ -6454,7 +6445,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c protected ChunkGenerator generator() { return this.generator; -@@ -246,6 +314,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -248,6 +316,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); } @@ -6465,7 +6456,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c private static double euclideanDistanceSquared(ChunkPos pos, Entity entity) { double d0 = (double) SectionPos.sectionToBlockCoord(pos.x, 8); double d1 = (double) SectionPos.sectionToBlockCoord(pos.z, 8); -@@ -418,9 +490,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -416,9 +488,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }; stringbuilder.append("Updating:").append(System.lineSeparator()); @@ -6477,7 +6468,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c CrashReport crashreport = CrashReport.forThrowable(exception, "Chunk loading"); CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Chunk loading"); -@@ -462,8 +534,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -460,8 +532,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider holder.setTicketLevel(level); } else { holder = new ChunkHolder(new ChunkPos(pos), level, this.level, this.lightEngine, this.queueSorter, this); @@ -6492,7 +6483,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c this.updatingChunkMap.put(pos, holder); this.modified = true; } -@@ -485,7 +563,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -483,7 +561,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider protected void saveAllChunks(boolean flush) { if (flush) { @@ -6501,7 +6492,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c MutableBoolean mutableboolean = new MutableBoolean(); do { -@@ -514,7 +592,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -512,7 +590,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); this.flushWorker(); } else { @@ -6510,7 +6501,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c } } -@@ -533,7 +611,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -531,7 +609,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public boolean hasWork() { @@ -6519,7 +6510,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c } private void processUnloads(BooleanSupplier shouldKeepTicking) { -@@ -544,6 +622,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -542,6 +620,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ChunkHolder playerchunk = (ChunkHolder) this.updatingChunkMap.remove(j); if (playerchunk != null) { @@ -6527,16 +6518,16 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c this.pendingUnloads.put(j, playerchunk); this.modified = true; ++i; -@@ -561,7 +640,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -559,7 +638,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } int l = 0; -- ObjectIterator objectiterator = this.visibleChunkMap.values().iterator(); -+ Iterator objectiterator = io.papermc.paper.chunk.system.ChunkSystem.getVisibleChunkHolders(this.level).iterator(); // Paper +- ObjectIterator objectiterator = this.visibleChunkMap.values().iterator(); ++ Iterator objectiterator = io.papermc.paper.chunk.system.ChunkSystem.getVisibleChunkHolders(this.level).iterator(); // Paper while (l < 20 && shouldKeepTicking.getAsBoolean() && objectiterator.hasNext()) { if (this.saveChunkIfNeeded((ChunkHolder) objectiterator.next())) { -@@ -579,7 +658,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -577,7 +656,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (completablefuture1 != completablefuture) { this.scheduleUnload(pos, holder); } else { @@ -6549,7 +6540,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c if (ichunkaccess instanceof LevelChunk) { ((LevelChunk) ichunkaccess).setLoaded(false); } -@@ -595,7 +678,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -593,7 +676,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.lightEngine.tryScheduleUpdate(); this.progressListener.onStatusChange(ichunkaccess.getPos(), (ChunkStatus) null); this.chunkSaveCooldowns.remove(ichunkaccess.getPos().toLong()); @@ -6560,7 +6551,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c } }; -@@ -992,7 +1077,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1015,7 +1100,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } } @@ -6569,7 +6560,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c int j = Mth.clamp(watchDistance, 2, 32); if (j != this.serverViewDistance) { -@@ -1009,7 +1094,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1032,7 +1117,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } @@ -6578,7 +6569,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c return Mth.clamp(player.requestedViewDistance(), 2, this.serverViewDistance); } -@@ -1038,7 +1123,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1061,7 +1146,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public int size() { @@ -6587,7 +6578,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c } public DistanceManager getDistanceManager() { -@@ -1046,19 +1131,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1069,19 +1154,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } protected Iterable getChunks() { @@ -6612,7 +6603,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c Optional optional = Optional.ofNullable(playerchunk.getLastAvailable()); Optional optional1 = optional.flatMap((ichunkaccess) -> { return ichunkaccess instanceof LevelChunk ? Optional.of((LevelChunk) ichunkaccess) : Optional.empty(); -@@ -1183,6 +1268,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1202,6 +1287,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider player.setChunkTrackingView(ChunkTrackingView.EMPTY); this.updateChunkTracking(player); @@ -6620,7 +6611,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c } else { SectionPos sectionposition = player.getLastSectionPos(); -@@ -1191,6 +1277,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1210,6 +1296,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.distanceManager.removePlayer(sectionposition, player); } @@ -6628,7 +6619,7 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c this.applyChunkTrackingView(player, ChunkTrackingView.EMPTY); } -@@ -1242,6 +1329,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1261,6 +1348,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.updateChunkTracking(player); } @@ -6636,24 +6627,24 @@ index 37527f5cb6e96410a5679b8b27f763727afc8657..8908511590adab6025ff02928591aa3c } private void updateChunkTracking(ServerPlayer player) { -@@ -1491,10 +1579,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1504,10 +1592,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); } - private class ChunkDistanceManager extends DistanceManager { + public class ChunkDistanceManager extends DistanceManager { // Paper - public - protected ChunkDistanceManager(Executor workerExecutor, Executor mainThreadExecutor) { + protected ChunkDistanceManager(final Executor workerExecutor, final Executor mainThreadExecutor) { - super(workerExecutor, mainThreadExecutor); -+ super(workerExecutor, mainThreadExecutor, ChunkMap.this); ++ super(workerExecutor, mainThreadExecutor, ChunkMap.this); // Paper } @Override diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java -index 2a805b9e67b7a05dda5f9caa4b63b28c940828d0..76005b3c48bfa323a77781c20c63708eeaa66b2b 100644 +index 7a604df2cec802f7da78935647990fe8b575307b..e8640bcbc1d4e2965049974385585f5060cb6a44 100644 --- a/src/main/java/net/minecraft/server/level/DistanceManager.java +++ b/src/main/java/net/minecraft/server/level/DistanceManager.java -@@ -56,8 +56,9 @@ public abstract class DistanceManager { +@@ -55,8 +55,9 @@ public abstract class DistanceManager { final Executor mainThreadExecutor; private long ticketTickCounter; public int simulationDistance = 10; @@ -6664,7 +6655,7 @@ index 2a805b9e67b7a05dda5f9caa4b63b28c940828d0..76005b3c48bfa323a77781c20c63708e Objects.requireNonNull(mainThreadExecutor); ProcessorHandle mailbox = ProcessorHandle.of("player ticket throttler", mainThreadExecutor::execute); ChunkTaskPriorityQueueSorter chunktaskqueuesorter = new ChunkTaskPriorityQueueSorter(ImmutableList.of(mailbox), workerExecutor, 4); -@@ -66,6 +67,7 @@ public abstract class DistanceManager { +@@ -65,6 +66,7 @@ public abstract class DistanceManager { this.ticketThrottlerInput = chunktaskqueuesorter.getProcessor(mailbox, true); this.ticketThrottlerReleaser = chunktaskqueuesorter.getReleaseProcessor(mailbox); this.mainThreadExecutor = mainThreadExecutor; @@ -6672,20 +6663,20 @@ index 2a805b9e67b7a05dda5f9caa4b63b28c940828d0..76005b3c48bfa323a77781c20c63708e } protected void purgeStaleTickets() { -@@ -378,7 +380,7 @@ public abstract class DistanceManager { +@@ -377,7 +379,7 @@ public abstract class DistanceManager { } public void removeTicketsOnClosing() { - ImmutableSet> immutableset = ImmutableSet.of(TicketType.UNKNOWN, TicketType.POST_TELEPORT, TicketType.LIGHT); + ImmutableSet> immutableset = ImmutableSet.of(TicketType.UNKNOWN, TicketType.POST_TELEPORT, TicketType.LIGHT, TicketType.FUTURE_AWAIT); // Paper - add additional tickets to preserve - ObjectIterator objectiterator = this.tickets.long2ObjectEntrySet().fastIterator(); + ObjectIterator>>> objectiterator = this.tickets.long2ObjectEntrySet().fastIterator(); while (objectiterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 1d12a7934308aa48d7ea7fa10c7b6b5ccb27e707..2c4727bf4571e1596bb0696b25104155f6302065 100644 +index 8661ed9962d07fb40390faf7f186b9cd8ce6bc62..23c39b78486b018e222af489c8edbf4e749abff6 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -49,6 +49,7 @@ import net.minecraft.world.level.storage.LevelStorageSource; +@@ -47,6 +47,7 @@ import net.minecraft.world.level.storage.LevelStorageSource; public class ServerChunkCache extends ChunkSource { @@ -6693,7 +6684,7 @@ index 1d12a7934308aa48d7ea7fa10c7b6b5ccb27e707..2c4727bf4571e1596bb0696b25104155 private static final List CHUNK_STATUSES = ChunkStatus.getStatusList(); private final DistanceManager distanceManager; final ServerLevel level; -@@ -67,6 +68,14 @@ public class ServerChunkCache extends ChunkSource { +@@ -65,6 +66,14 @@ public class ServerChunkCache extends ChunkSource { @Nullable @VisibleForDebug private NaturalSpawner.SpawnState lastSpawnState; @@ -6708,7 +6699,7 @@ index 1d12a7934308aa48d7ea7fa10c7b6b5ccb27e707..2c4727bf4571e1596bb0696b25104155 public ServerChunkCache(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor workerExecutor, ChunkGenerator chunkGenerator, int viewDistance, int simulationDistance, boolean dsync, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier persistentStateManagerFactory) { this.level = world; -@@ -92,6 +101,124 @@ public class ServerChunkCache extends ChunkSource { +@@ -90,6 +99,124 @@ public class ServerChunkCache extends ChunkSource { return chunk.getFullChunkNow() != null; } // CraftBukkit end @@ -6833,7 +6824,7 @@ index 1d12a7934308aa48d7ea7fa10c7b6b5ccb27e707..2c4727bf4571e1596bb0696b25104155 @Override public ThreadedLevelLightEngine getLightEngine() { -@@ -315,7 +442,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -310,7 +437,7 @@ public class ServerChunkCache extends ChunkSource { return this.mainThreadProcessor.pollTask(); } @@ -6842,7 +6833,7 @@ index 1d12a7934308aa48d7ea7fa10c7b6b5ccb27e707..2c4727bf4571e1596bb0696b25104155 boolean flag = this.distanceManager.runAllUpdates(this.chunkMap); boolean flag1 = this.chunkMap.promoteChunkMap(); -@@ -327,6 +454,12 @@ public class ServerChunkCache extends ChunkSource { +@@ -322,6 +449,12 @@ public class ServerChunkCache extends ChunkSource { } } @@ -6856,10 +6847,10 @@ index 1d12a7934308aa48d7ea7fa10c7b6b5ccb27e707..2c4727bf4571e1596bb0696b25104155 ChunkHolder playerchunk = this.getVisibleChunkIfPresent(pos); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 30fc222c384938fb4fdd4c6715295aeea57094bc..9ea829aafa7a874a784d02da889576c80de17d0c 100644 +index b3caf69f9627ba2114dc9d06551ccf182debfb04..2567f0d6060c29c75ba8d4331ec51ad0f3a51883 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -230,6 +230,98 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -235,6 +235,98 @@ public class ServerLevel extends Level implements WorldGenLevel { return this.convertable.dimensionType; } @@ -6959,10 +6950,10 @@ index 30fc222c384938fb4fdd4c6715295aeea57094bc..9ea829aafa7a874a784d02da889576c8 public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List 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 b758a86c3d4744674faf25a6aea53c15a62ce234..c57b91c2385d118590bc419e7e6ed586d5d87422 100644 +index bc263349531d70886d5eee37a196c78dd70c9b30..5631621f16fdda723cb3e1de7d3a6646d768a863 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -259,6 +259,8 @@ public class ServerPlayer extends Player { +@@ -275,6 +275,8 @@ public class ServerPlayer extends Player { public boolean sentListPacket = false; public String kickLeaveMessage = null; // SPIGOT-3034: Forward leave message to PlayerQuitEvent // CraftBukkit end @@ -6971,9 +6962,9 @@ index b758a86c3d4744674faf25a6aea53c15a62ce234..c57b91c2385d118590bc419e7e6ed586 public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); -@@ -327,6 +329,8 @@ public class ServerPlayer extends Player { - this.fudgeSpawnLocation(world); +@@ -343,6 +345,8 @@ public class ServerPlayer extends Player { this.updateOptions(clientOptions); + this.object = null; + this.cachedSingleHashSet = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper + @@ -6993,10 +6984,10 @@ index 3a4f026c73cdd22d30bdadabbcf24bef969b73e4..0d536d72ac918fbd403397ff369d1014 private final String name; private final Comparator comparator; diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 43040b678206092bcb06acde919b75ecb78564df..d11741d2618976bdb51f75d823f260f32d5bafc9 100644 +index 7cc559730325a18953d7cb75ed252aefa379c324..744efc6cdc99f653a1eb9d4f26af8a7c34627f5e 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -@@ -160,6 +160,26 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -168,6 +168,26 @@ public class WorldGenRegion implements WorldGenLevel { return chunkX >= this.firstPos.x && chunkX <= this.lastPos.x && chunkZ >= this.firstPos.z && chunkZ <= this.lastPos.z; } @@ -7024,22 +7015,22 @@ index 43040b678206092bcb06acde919b75ecb78564df..d11741d2618976bdb51f75d823f260f3 public BlockState getBlockState(BlockPos pos) { return this.getChunk(SectionPos.blockToSectionCoord(pos.getX()), SectionPos.blockToSectionCoord(pos.getZ())).getBlockState(pos); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 93e0de052ea54cc1dee1ebc017fefb634eb42f8d..2e8e786407869b53cb4d7e4ec8f91fe0a3ad8e1a 100644 +index aef7c373261bc150a19fa642bb9c5dc7ae1d7f53..54fee00a462c2f6fcc567d762b1afd24cf5c7d06 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -178,6 +178,7 @@ public abstract class PlayerList { +@@ -180,6 +180,7 @@ public abstract class PlayerList { } public void placeNewPlayer(Connection connection, ServerPlayer player, CommonListenerCookie clientData) { + player.isRealPlayer = true; // Paper GameProfile gameprofile = player.getGameProfile(); GameProfileCache usercache = this.server.getProfileCache(); - String s; + // Optional optional; // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java -index 9eba8e87e34abb23c0a32cb7ffbaaf272616418a..03e8707258e9b73cf12a4750270ab7573bb1c812 100644 +index aede9b65e799a1f123f71f9390fb05acddda676b..2510589400b3012b827efcab477c6483d9d55901 100644 --- a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java +++ b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java -@@ -77,6 +77,13 @@ public abstract class BlockableEventLoop implements Profiler +@@ -79,6 +79,13 @@ public abstract class BlockableEventLoop implements Profiler runnable.run(); } } @@ -7054,10 +7045,10 @@ index 9eba8e87e34abb23c0a32cb7ffbaaf272616418a..03e8707258e9b73cf12a4750270ab757 @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 cdefbfb7a578d5f90b24f24dbc9a0fe627b91474..17e489c4650ba421a993c863426f1a2084d44fb0 100644 +index 803f8e80d616ac7f9a51e4cdd6a7a3ce690b791e..9c54bc3897d1fa3c88a5a7d55224eb4cc97f4e79 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -331,6 +331,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -333,6 +333,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.level.hasChunk((int) Math.floor(this.getX()) >> 4, (int) Math.floor(this.getZ()) >> 4); } // CraftBukkit end @@ -7070,10 +7061,10 @@ index cdefbfb7a578d5f90b24f24dbc9a0fe627b91474..17e489c4650ba421a993c863426f1a20 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 36cedbf1b17a40cf15bc7207c263173d4571b466..cdac785c54e150c0886046b8d50657c0ca958438 100644 +index 09a3d06f1c613662283eb6688bf2c3eeb4778208..dcf53dbecc1873994b171cfd1eb313545d6cfdcd 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -259,6 +259,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -270,6 +270,7 @@ public abstract class LivingEntity extends Entity implements Attackable { public boolean collides = true; public Set collidableExemptions = new HashSet<>(); public boolean bukkitPickUpLoot; @@ -7082,22 +7073,23 @@ index 36cedbf1b17a40cf15bc7207c263173d4571b466..cdac785c54e150c0886046b8d50657c0 @Override public float getBukkitYaw() { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 13adb7f79073ff4b01906df61098c5436eb613e3..8892a6344b3a96a3d412528b80ce7bcf1ab30003 100644 +index ed88e2bbc848b003e2143cd4a372c58c890cfe5c..7d04a18f62411f00dc7be59564ac6c292834c08a 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -278,6 +278,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -287,6 +287,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti return this.target; } + public org.bukkit.craftbukkit.entity.CraftMob getBukkitMob() { return (org.bukkit.craftbukkit.entity.CraftMob) super.getBukkitEntity(); } // Paper - public void setTarget(@Nullable LivingEntity target) { - // CraftBukkit start - fire event - this.setTarget(target, EntityTargetEvent.TargetReason.UNKNOWN, true); ++ + @Nullable + protected final LivingEntity getTargetFromBrain() { + return (LivingEntity) this.getBrain().getMemory(MemoryModuleType.ATTACK_TARGET).orElse(null); // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -index 21fa43e0c3fabf74919f7e41d074ab1f7c061967..5e9cf929674888b3a143a0691dc6936b304467f1 100644 +index 566c28169c68a9699ddba3fdd37edfd1bae64fe4..5e2f10f5fd7219ebaefb1c5b5ac9bc7c71fae179 100644 --- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java +++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -@@ -20,6 +20,8 @@ public abstract class PathfinderMob extends Mob { +@@ -22,6 +22,8 @@ public abstract class PathfinderMob extends Mob { super(type, world); } @@ -7119,11 +7111,11 @@ index f73604d762efbac400d40f536ec1782fca584efa..4701bf9ee203f2f15b0b68e84bbfa2c4 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 a7cbd0b9e37717215c03809e025f877e9c0a40b8..6291265ae4691bf7dffe196d20571c1c30e8d906 100644 +index 74486f93527536d128e09ce03a99bdec4d99f2d9..2535cbf50087a4631c4d1027a61b173121d729bc 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -825,6 +825,25 @@ public final class ItemStack { - return this.tag != null ? this.tag.getList("Enchantments", 10) : new ListTag(); +@@ -957,6 +957,25 @@ public final class ItemStack implements DataComponentHolder { + } } + // Paper start - (this is just a good no conflict location) @@ -7145,10 +7137,10 @@ index a7cbd0b9e37717215c03809e025f877e9c0a40b8..6291265ae4691bf7dffe196d20571c1c + } + // Paper end + - public void setTag(@Nullable CompoundTag nbt) { - this.tag = nbt; - if (this.getItem().canBeDepleted()) { -@@ -1214,6 +1233,7 @@ public final class ItemStack { + public void applyComponents(DataComponentPatch changes) { + this.components.applyPatch(changes); + this.getItem().verifyComponentsAfterLoad(this); +@@ -1210,6 +1229,7 @@ public final class ItemStack implements DataComponentHolder { // CraftBukkit start @Deprecated public void setItem(Item item) { @@ -7249,18 +7241,18 @@ index 3c707d6674b2594b09503b959a31c1f4ad3981e6..db61b6b0158a9bcc0e1d735e34fe3671 public BlockState getBlockState(BlockPos pos) { return Blocks.AIR.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index bd9ea2bd012cdcf07ac322b3e0360c6c336ab1f9..bede1a64e4f04aa8e87ddb44f2cc4a1ab46a3b81 100644 +index b06ffa8d5953c8f0a47daf056495cd424d9ac843..68715d9fd69addad07384efa10eeb09bc78c1e28 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -93,6 +93,7 @@ import org.bukkit.craftbukkit.CraftServer; +@@ -94,6 +94,7 @@ import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.craftbukkit.SpigotTimings; // Spigot import org.bukkit.craftbukkit.block.CapturedBlockState; +import org.bukkit.craftbukkit.block.CraftBlockState; import org.bukkit.craftbukkit.block.data.CraftBlockData; import org.bukkit.craftbukkit.util.CraftSpawnCategory; - import org.bukkit.craftbukkit.util.CraftNamespacedKey; -@@ -279,6 +280,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + import org.bukkit.entity.SpawnCategory; +@@ -273,6 +274,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } @@ -7274,7 +7266,7 @@ index bd9ea2bd012cdcf07ac322b3e0360c6c336ab1f9..bede1a64e4f04aa8e87ddb44f2cc4a1a public boolean isInWorldBounds(BlockPos pos) { return !this.isOutsideBuildHeight(pos) && Level.isInWorldBoundsHorizontal(pos); } -@@ -295,18 +303,52 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -289,18 +297,52 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return y < -20000000 || y >= 20000000; } @@ -7331,7 +7323,7 @@ index bd9ea2bd012cdcf07ac322b3e0360c6c336ab1f9..bede1a64e4f04aa8e87ddb44f2cc4a1a ChunkAccess ichunkaccess = this.getChunkSource().getChunk(chunkX, chunkZ, leastStatus, create); if (ichunkaccess == null && create) { -@@ -317,7 +359,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -311,7 +353,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } @Override @@ -7340,7 +7332,7 @@ index bd9ea2bd012cdcf07ac322b3e0360c6c336ab1f9..bede1a64e4f04aa8e87ddb44f2cc4a1a return this.setBlock(pos, state, flags, 512); } -@@ -556,7 +598,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -550,7 +592,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (this.isOutsideBuildHeight(pos)) { return Blocks.VOID_AIR.defaultBlockState(); } else { @@ -7350,7 +7342,7 @@ index bd9ea2bd012cdcf07ac322b3e0360c6c336ab1f9..bede1a64e4f04aa8e87ddb44f2cc4a1a return chunk.getBlockState(pos); } diff --git a/src/main/java/net/minecraft/world/level/LevelReader.java b/src/main/java/net/minecraft/world/level/LevelReader.java -index daa1e9bf39666233dd80eeee0ffd76e168376889..ced67cf88c91c5270a0060a7307f36739237cbb2 100644 +index 749e4ea1be56b393877b5fdd72dc3669dbf5a3dd..a0ae26d6197e1069ca09982b4f8b706c55ae8491 100644 --- a/src/main/java/net/minecraft/world/level/LevelReader.java +++ b/src/main/java/net/minecraft/world/level/LevelReader.java @@ -26,6 +26,9 @@ public interface LevelReader extends BlockAndTintGetter, CollisionGetter, Signal @@ -7416,10 +7408,10 @@ index 497792978bdf0e6a53d772304770e8df3e7416ea..c5454b92ca2565461c799d7340160f9f public WorldBorder getWorldBorder() { return this.level.getWorldBorder(); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 171956fbe47032cfac8811ab7fbe94415560304b..b6d3f9f9520e410526cfeabcdeb9720dbe30e4bf 100644 +index 054921c9a58adf90e81448274972d43aaf5175bf..08eb369f8cb4c35be17cef816a0d33295a1ae3e0 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -896,12 +896,20 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -828,12 +828,20 @@ public abstract class BlockBehaviour implements FeatureElement { } } @@ -7440,7 +7432,7 @@ index 171956fbe47032cfac8811ab7fbe94415560304b..b6d3f9f9520e410526cfeabcdeb9720d this.legacySolid = this.calculateSolid(); } -@@ -948,8 +956,8 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -880,8 +888,8 @@ public abstract class BlockBehaviour implements FeatureElement { return this.getBlock().getOcclusionShape(this.asState(), world, pos); } @@ -7452,10 +7444,10 @@ index 171956fbe47032cfac8811ab7fbe94415560304b..b6d3f9f9520e410526cfeabcdeb9720d public boolean useShapeForLightOcclusion() { diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java -index 532a0cae6db0d830e720a72e9021aa7a8ed0f106..e5e562f75e7d4b6a750f192842940c5e3af81e7d 100644 +index 75cfa73a6a32d9e1f5c07af4af6e16e66c993968..f4e3bd2ae4f63e6d3d25463a3635b8f89fecc068 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java -@@ -62,7 +62,7 @@ public abstract class ChunkAccess implements BlockGetter, BiomeManager.NoiseBiom +@@ -65,7 +65,7 @@ public abstract class ChunkAccess implements BlockGetter, BiomeManager.NoiseBiom protected final ShortList[] postProcessing; protected volatile boolean unsaved; private volatile boolean isLightCorrect; @@ -7464,7 +7456,7 @@ index 532a0cae6db0d830e720a72e9021aa7a8ed0f106..e5e562f75e7d4b6a750f192842940c5e private long inhabitedTime; /** @deprecated */ @Nullable -@@ -88,7 +88,8 @@ public abstract class ChunkAccess implements BlockGetter, BiomeManager.NoiseBiom +@@ -91,7 +91,8 @@ public abstract class ChunkAccess implements BlockGetter, BiomeManager.NoiseBiom // CraftBukkit end public ChunkAccess(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor heightLimitView, Registry biomeRegistry, long inhabitedTime, @Nullable LevelChunkSection[] sectionArray, @Nullable BlendingData blendingData) { @@ -7492,10 +7484,10 @@ index ca0991b07def35b4697ba6d5569bf9a080e48a1c..2ee1658532cb00d7bcd1d11e03f19d21 @Nullable @Override diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 57805b84054e44a3d7c95cf269316a42205bb99c..409007f6e6940e5ea92e3cbaa74e55cdee50325b 100644 +index 3978407cf96c0eb527c16f161af570a2bf030631..bb0f16aef406bdc627e1263859dd4637bec90c63 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -114,6 +114,109 @@ public class LevelChunk extends ChunkAccess { +@@ -116,6 +116,109 @@ public class LevelChunk extends ChunkAccess { public boolean needsDecoration; // CraftBukkit end @@ -7700,7 +7692,7 @@ index 57805b84054e44a3d7c95cf269316a42205bb99c..409007f6e6940e5ea92e3cbaa74e55cd @Override diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index d59392c322936ce89b759ac9787c8f4f0b228af6..2d6daf76a56574c9727b404feb4f86347f04cbae 100644 +index ca4c8f74a1ab2a8b36e193a2c40c3bd76565d258..2c153af611399e884752f8256bee4fe32de5c572 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -19,7 +19,7 @@ public class LevelChunkSection { @@ -7713,10 +7705,10 @@ index d59392c322936ce89b759ac9787c8f4f0b228af6..2d6daf76a56574c9727b404feb4f8634 private short tickingFluidCount; public final PalettedContainer states; diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -index 47d1a5142bdddfa89b1d84002784c1328d8ac3b4..03e5e5c5ea003ba52b9f3ee405cd77e22ea387c8 100644 +index 0f2b1dcf536f6d5f2d65e0060418511944ff6ab8..bcc70883d23d38c408130ffe778205e371ff4e8a 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -@@ -81,6 +81,18 @@ public class ProtoChunk extends ChunkAccess { +@@ -83,6 +83,18 @@ public class ProtoChunk extends ChunkAccess { return new ChunkAccess.TicksToSave(this.blockTicks, this.fluidTicks); } @@ -7736,7 +7728,7 @@ index 47d1a5142bdddfa89b1d84002784c1328d8ac3b4..03e5e5c5ea003ba52b9f3ee405cd77e2 public BlockState getBlockState(BlockPos pos) { int i = pos.getY(); diff --git a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java -index e3709b2b40beb8f95e5b9bb7d20141e16b3192e3..8f23b45dce35617bb56b21fb4f7a09baf36d40c5 100644 +index 34933c5324126f9afdc5cba9dea997ace8f01806..219062cff8a05c765b092f1525043d9d9a1153ae 100644 --- a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java +++ b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java @@ -91,6 +91,18 @@ public class PersistentEntitySectionManager implements A @@ -7759,10 +7751,10 @@ index e3709b2b40beb8f95e5b9bb7d20141e16b3192e3..8f23b45dce35617bb56b21fb4f7a09ba return false; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2cc1871c81056acd0582184bb684e672d14d3b6f..5cf26c39b00ea1f7b1c5719f434af79fb20c6c60 100644 +index 080c0cf84d959e1acdde088f367bd005ea9c3bbd..9b299f74336ad0efecd05a4b771ac58549d5fb6a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2543,4 +2543,9 @@ public final class CraftServer implements Server { +@@ -2561,4 +2561,9 @@ public final class CraftServer implements Server { return this.spigot; } // Spigot end @@ -7773,7 +7765,7 @@ index 2cc1871c81056acd0582184bb684e672d14d3b6f..5cf26c39b00ea1f7b1c5719f434af79f + } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0630680d1ff7ffd2e9c323a800213b1137817642..f012ba9c55241afb159136e8b55e774047efa2c8 100644 +index 62ad3102e20415185b7dfa9effc305a5465252cc..a1b34778332472c09f3191bc72f9eb3df5e54ba4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -252,8 +252,8 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -7796,7 +7788,7 @@ index 0630680d1ff7ffd2e9c323a800213b1137817642..f012ba9c55241afb159136e8b55e7740 if (playerChunk == null) return false; playerChunk.getTickingChunkFuture().thenAccept(either -> { -@@ -2075,4 +2075,55 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2079,4 +2079,55 @@ public class CraftWorld extends CraftRegionAccessor implements World { return this.spigot; } // Spigot end @@ -7853,10 +7845,10 @@ index 0630680d1ff7ffd2e9c323a800213b1137817642..f012ba9c55241afb159136e8b55e7740 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ed501b794c222278dca98f8ece6096db1d8108a5..be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3 100644 +index 13d3a8fa36455c99b99599eac93bc2462e82fd7a..a7a82910e42d7040901b38e3a9409bef1ca7b2a9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2335,4 +2335,34 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2403,4 +2403,34 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.spigot; } // Spigot end @@ -7892,10 +7884,10 @@ index ed501b794c222278dca98f8ece6096db1d8108a5..be3a8e54d64b3cc145ab09b0bc7abb3f + } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index bf46aa3bd46ffabe92d58aa45ea0dfe6c98d94aa..0bb01e53f1c15071c8cd818cce79af8196fe790f 100644 +index 29286c0fdd9720e0842f945d03010ec61f1daa64..1f99a9b9a0510ab19a5913588d6d677d6cada5e5 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -23,6 +23,20 @@ import org.bukkit.material.MaterialData; +@@ -22,6 +22,20 @@ import org.bukkit.material.MaterialData; @DelegateDeserialization(ItemStack.class) public final class CraftItemStack extends ItemStack { @@ -8139,10 +8131,10 @@ index 0000000000000000000000000000000000000000..909b2c98e7a9117d2f737245e4661792 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 09b3bfa3ad0cf060b126cffd1de1032bc329cb44..30f0c671464e2d4557845f150d8d18bfcd645e14 100644 +index 2ee0f83f18477fe2c759dc1ccc5ee18dbe791527..38d72d95b1f3ab23710f3335177c59ea6a25270e 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -107,8 +107,17 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -105,8 +105,17 @@ public final class CraftMagicNumbers implements UnsafeValues { private static final Map ITEM_MATERIAL = new HashMap<>(); private static final Map MATERIAL_ITEM = new HashMap<>(); private static final Map MATERIAL_BLOCK = new HashMap<>(); @@ -8160,7 +8152,7 @@ index 09b3bfa3ad0cf060b126cffd1de1032bc329cb44..30f0c671464e2d4557845f150d8d18bf for (Block block : BuiltInRegistries.BLOCK) { BLOCK_MATERIAL.put(block, Material.getMaterial(BuiltInRegistries.BLOCK.getKey(block).getPath().toUpperCase(Locale.ROOT))); } -@@ -159,6 +168,14 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -157,6 +166,14 @@ public final class CraftMagicNumbers implements UnsafeValues { public static ResourceLocation key(Material mat) { return CraftNamespacedKey.toMinecraft(mat.getKey()); } @@ -8176,18 +8168,18 @@ index 09b3bfa3ad0cf060b126cffd1de1032bc329cb44..30f0c671464e2d4557845f150d8d18bf public static byte toLegacyData(BlockState data) { diff --git a/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java b/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java -index 1cce46ecfeb93b17b81f206054a6a2a67d2aefcb..e37c2d82ed606cbfe00c152b08c3ab99ac751f69 100644 +index 5fd6eb754c4edebed6798c65b06507a4e89ca48f..0794d92c42b0db6b367505ae28f09f1fd39fa312 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java +++ b/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java -@@ -59,6 +59,7 @@ import net.minecraft.world.ticks.LevelTickAccess; - import net.minecraft.world.ticks.ScheduledTick; +@@ -58,6 +58,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; + import net.minecraft.world.ticks.LevelTickAccess; import net.minecraft.world.ticks.TickPriority; import org.bukkit.event.entity.CreatureSpawnEvent; +import org.jetbrains.annotations.Nullable; public abstract class DelegatedGeneratorAccess implements WorldGenLevel { -@@ -818,4 +819,24 @@ public abstract class DelegatedGeneratorAccess implements WorldGenLevel { +@@ -807,4 +808,24 @@ public abstract class DelegatedGeneratorAccess implements WorldGenLevel { public int getMoonPhase() { return this.handle.getMoonPhase(); } @@ -8213,7 +8205,7 @@ index 1cce46ecfeb93b17b81f206054a6a2a67d2aefcb..e37c2d82ed606cbfe00c152b08c3ab99 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java -index fe3d8ad5de53387236d48ed3a6f2b677ed895bc3..440660dfa70d57e94ae4eef1dce783aee5034f7e 100644 +index e837d76e833d73d888bc1dad3515c2b82bc0e437..4705aed1dd98378c146bf9e346df1a17f719ad36 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java +++ b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java @@ -212,7 +212,23 @@ public class DummyGeneratorAccess implements WorldGenLevel { @@ -8292,7 +8284,7 @@ index 0c7c97f27853843ec714e47f5b570f9d09bbba14..ff422d4d4f2b764370f0ee2af1303485 ANIMAL, RAIDER, diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java -index df29015e3d5ca49297fe87090fd6446962e59adb..e6e070db9a6ee78e65dbff6f18cb5c8784202b9f 100644 +index 38219af7d0ba2d871711102b6a29139a49678f6b..60e354fe1d32cd315ed42cea4484c83c4b5e7e25 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java @@ -118,7 +118,11 @@ public class SpigotConfig diff --git a/patches/unapplied/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch similarity index 100% rename from patches/unapplied/server/0010-Adventure.patch rename to patches/server/0010-Adventure.patch From 00c14f2e7b35cf8666b51f0a4bc9431f06f5ad7c Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Tue, 23 Apr 2024 11:21:16 -0700 Subject: [PATCH 065/215] Move logging patches after adventure --- main.py | 36 +++++++++++++++++++ ...leAppender-for-console-improvements.patch} | 0 ...-prefixes-using-Log4J-configuration.patch} | 0 ...-Log4J-Configuration-Plugin-Loggers.patch} | 0 ...-to-keep-logging-IO-off-main-thread.patch} | 0 ...traces-in-log-messages-crash-report.patch} | 0 ...-to-contain-the-source-jars-in-stac.patch} | 0 ...command.patch => 0017-Paper-command.patch} | 0 ...Metrics.patch => 0018-Paper-Metrics.patch} | 0 ...Plugins.patch => 0019-Paper-Plugins.patch} | 0 ...Timings-v2.patch => 0024-Timings-v2.patch} | 0 ...Thread.patch => 0025-Add-TickThread.patch} | 0 ...26-Further-improve-server-tick-loop.patch} | 0 ...option-to-load-extra-plugin-jars-no.patch} | 0 ...0028-Support-components-in-ItemMeta.patch} | 0 ...actus-bamboo-and-reed-growth-height.patch} | 0 ...igurable-baby-zombie-movement-speed.patch} | 0 ...31-Configurable-fishing-time-ranges.patch} | 0 ...h => 0032-Allow-nerfed-mobs-to-jump.patch} | 0 ...nfigurable-entity-despawn-distances.patch} | 0 ...-Allow-for-toggling-of-spawn-chunks.patch} | 0 ...k-and-tnt-entities-at-the-specified.patch} | 0 ...ent-crashes-server-lists-and-Mojang.patch} | 0 ...0037-Implement-Paper-VersionChecker.patch} | 0 ...-version-history-to-version-command.patch} | 0 ...=> 0039-Player-affects-spawning-API.patch} | 0 ...40-Only-refresh-abilities-if-needed.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...API.patch => 0042-Entity-Origin-API.patch} | 0 ...ent-block-entity-and-entity-crashes.patch} | 0 ...figurable-top-of-nether-void-damage.patch} | 0 ...-before-converting-and-renaming-pla.patch} | 0 ...ies-to-activation-range-ignore-list.patch} | 0 ...ch => 0047-Configurable-end-credits.patch} | 0 ...explosions-processing-dead-entities.patch} | 0 ...s.patch => 0049-Optimize-explosions.patch} | 0 ...=> 0050-Disable-explosion-knockback.patch} | 0 ...under.patch => 0051-Disable-thunder.patch} | 0 ....patch => 0052-Disable-ice-and-snow.patch} | 0 ...-Configurable-mob-spawner-tick-rate.patch} | 0 ...4-Implement-PlayerLocaleChangeEvent.patch} | 0 ...patch => 0055-Add-BeaconEffectEvent.patch} | 0 ...igurable-container-update-tick-rate.patch} | 0 ...0057-Use-UserCache-for-player-heads.patch} | 0 ...> 0058-Disable-spigot-tick-limiters.patch} | 0 ...=> 0059-Add-PlayerInitialSpawnEvent.patch} | 0 ...rable-Disabling-Cat-Chest-Detection.patch} | 0 ...61-Improve-Player-chat-API-handling.patch} | 0 ...hunks-are-slime-spawn-chunks-toggle.patch} | 0 ...ch => 0063-Expose-server-CommandMap.patch} | 0 ...-informative-in-maxHealth-exception.patch} | 0 ...0065-Player-Tab-List-and-Title-APIs.patch} | 0 ...d-configurable-portal-search-radius.patch} | 0 ...patch => 0067-Add-velocity-warnings.patch} | 0 ...le-inter-world-teleportation-safety.patch} | 0 ... 0069-Add-exception-reporting-event.patch} | 0 ...reboards-for-non-players-by-default.patch} | 0 ...orking-with-arrows-stuck-in-living-.patch} | 0 ....patch => 0072-Chunk-Save-Reattempt.patch} | 0 ... => 0073-Complete-resource-pack-API.patch} | 0 ...ding-permissions.yml-before-plugins.patch} | 0 ...low-Reloading-of-Custom-Permissions.patch} | 0 ...h => 0076-Remove-Metadata-on-reload.patch} | 0 ...77-Handle-Item-Meta-Inconsistencies.patch} | 0 ...rable-Non-Player-Arrow-Despawn-Rate.patch} | 0 ...atch => 0079-Add-World-Util-Methods.patch} | 0 ...-Custom-replacement-for-eaten-items.patch} | 0 ...h-absorb-values-and-repair-bad-data.patch} | 0 ...82-Use-a-Shared-Random-for-Entities.patch} | 0 ...e-spawn-chances-for-skeleton-horses.patch} | 0 ...kPhysicsEvent-if-a-plugin-has-a-lis.patch} | 0 ...ntity-AddTo-RemoveFrom-World-Events.patch} | 0 ...6-Configurable-Chunk-Inhabited-Time.patch} | 0 ...t.patch => 0087-EntityPathfindEvent.patch} | 0 ...gionFileCache-and-make-configurable.patch} | 0 ...-Do-not-load-chunks-for-Pathfinding.patch} | 0 ...090-Add-PlayerUseUnknownEntityEvent.patch} | 0 ...urable-random-tick-rates-for-blocks.patch} | 0 ...-BlockPlaceEvent-triggering-physics.patch} | 0 ...its.patch => 0093-Optimize-DataBits.patch} | 0 ...illa-per-world-scoreboard-coloring-.patch} | 0 ... 0095-Configurable-Player-Collision.patch} | 0 ...nt-to-allow-plugins-to-handle-clien.patch} | 0 ...> 0097-Configurable-RCON-IP-address.patch} | 0 ...tyRegainHealthEvent-isFastRegen-API.patch} | 0 ...to-configure-frosted_ice-properties.patch} | 0 ...possibility-for-getServer-singleton.patch} | 0 ...-scoreboard-teams-to-scoreboard.dat.patch} | 0 ...ble-API-and-replenishable-lootables.patch} | 0 ...em-property-for-disabling-watchdoge.patch} | 0 ... 0104-Async-GameProfileCache-saving.patch} | 0 ...-Optional-TNT-doesn-t-move-in-water.patch} | 0 ...-redstone-torch-rapid-clock-removal.patch} | 0 ...h => 0107-Add-server-name-parameter.patch} | 0 ...h => 0108-Fix-global-sound-handling.patch} | 0 ...locking-on-Network-Manager-creation.patch} | 0 ...-profiles-that-have-no-UUID-and-no-.patch} | 0 ...etting-for-proxy-online-mode-status.patch} | 0 ...timise-BlockState-s-hashCode-equals.patch} | 0 ...nfigurable-packet-in-spam-threshold.patch} | 0 ...4-Configurable-flying-kick-messages.patch} | 0 ...nt.patch => 0115-Add-EntityZapEvent.patch} | 0 ...entity-nbt-data-from-falling-blocks.patch} | 0 ...17-Cache-user-authenticator-threads.patch} | 0 ...-Allow-Reloading-of-Command-Aliases.patch} | 0 ...-Add-source-to-PlayerExpChangeEvent.patch} | 0 ... => 0120-Add-ProjectileCollideEvent.patch} | 0 ...ent-Pathfinding-out-of-World-Border.patch} | 0 ...ze-Level.hasChunkAt-BlockPosition-Z.patch} | 0 ...Bound-Treasure-Maps-to-World-Border.patch} | 0 ...igurable-Cartographer-Treasure-Maps.patch} | 0 ...to-control-if-armor-stands-can-move.patch} | 0 ...=> 0126-String-based-Action-Bar-API.patch} | 0 ...7-Properly-fix-item-duplication-bug.patch} | 0 ...-API-s.patch => 0128-Firework-API-s.patch} | 0 ... 0129-PlayerTeleportEndGatewayEvent.patch} | 0 ...ovide-E-TE-Chunk-count-stat-methods.patch} | 0 ...h => 0131-Enforce-Sync-Player-Saves.patch} | 0 ...I-for-Reason-Source-Triggering-play.patch} | 0 ...patch => 0133-Cap-Entity-Collisions.patch} | 0 ...-CraftScheduler-Async-Task-Debugger.patch} | 0 ...e-async-calls-to-restart-the-server.patch} | 0 ...e-parrots-stay-on-shoulders-despite.patch} | 0 ...-option-to-prevent-player-names-fro.patch} | 0 ...rable-option-to-disable-creeper-lin.patch} | 0 ....patch => 0140-Item-canEntityPickup.patch} | 0 ...layerPickupItemEvent-setFlyAtPlayer.patch} | 0 ...> 0142-PlayerAttemptPickupItemEvent.patch} | 0 ...profile-lookups-to-worldgen-threads.patch} | 0 ...tch => 0144-Basic-PlayerProfile-API.patch} | 0 ...tch => 0145-Add-UnknownCommandEvent.patch} | 0 ... 0146-Shoulder-Entities-Release-API.patch} | 0 ...patch => 0147-Profile-Lookup-Events.patch} | 0 ...layer-logins-during-server-shutdown.patch} | 0 ...patch => 0149-Entity-fromMobSpawner.patch} | 0 ...0-Improve-the-Saddle-API-for-Horses.patch} | 0 ...=> 0151-ensureServerConversions-API.patch} | 0 ...> 0152-Implement-getI18NDisplayName.patch} | 0 ...=> 0153-ProfileWhitelistVerifyEvent.patch} | 0 ...ch => 0154-Fix-this-stupid-bullshit.patch} | 0 ...atch => 0155-LivingEntity-setKiller.patch} | 0 ...wns-should-honor-nametags-and-leash.patch} | 0 ...mer-when-spawner-event-is-cancelled.patch} | 0 ...a-custom-authentication-servers-dow.patch} | 0 ...t.patch => 0161-Add-PlayerJumpEvent.patch} | 0 ...le-ServerboundKeepAlivePacket-async.patch} | 0 ...t-protocol-version-and-virtual-host.patch} | 0 ...t-serverside-behavior-of-keepalives.patch} | 0 ...Effects-only-to-players-who-can-see.patch} | 0 ... => 0166-Add-PlayerArmorChangeEvent.patch} | 0 ...om-being-processed-when-the-player-.patch} | 0 ...17075-Block-entity-unload-lag-spike.patch} | 0 ...-implementations-for-captured-block.patch} | 0 ...get-a-BlockState-without-a-snapshot.patch} | 0 ...patch => 0171-AsyncTabCompleteEvent.patch} | 0 ...=> 0172-PlayerPickupExperienceEvent.patch} | 0 ...-Ability-to-apply-mending-to-XP-API.patch} | 0 ...-PlayerNaturallySpawnCreaturesEvent.patch} | 0 ...Add-setPlayerProfile-API-for-Skulls.patch} | 0 ...patch => 0176-PreCreatureSpawnEvent.patch} | 0 ...> 0177-Fill-Profile-Property-Events.patch} | 0 ...layerAdvancementCriterionGrantEvent.patch} | 0 ...ch => 0179-Add-ArmorStand-Item-Meta.patch} | 0 ...Extend-Player-Interact-cancellation.patch} | 0 ... 0181-Tameable-getOwnerUniqueId-API.patch} | 0 ...tch => 0182-Toggleable-player-crits.patch} | 0 ...e-Explicit-Network-Manager-Flushing.patch} | 0 ...t-extended-PaperServerListPingEvent.patch} | 0 ...d-more-fields-to-AsyncPreLoginEvent.patch} | 0 ...=> 0186-Player.setPlayerProfile-API.patch} | 0 ...patch => 0187-getPlayerUniqueId-API.patch} | 0 ... 0188-Improved-Async-Task-Scheduler.patch} | 0 ...e-legacy-ping-handler-more-reliable.patch} | 0 ...erverListPingEvent-for-legacy-pings.patch} | 0 ...1-Flag-to-disable-the-channel-limit.patch} | 0 ...-Add-openSign-method-to-HumanEntity.patch} | 0 ...rable-sprint-interruption-on-attack.patch} | 0 ...t.patch => 0194-EndermanEscapeEvent.patch} | 0 ...h => 0195-Enderman.teleportRandomly.patch} | 0 ...196-Block-Enderpearl-Travel-Exploit.patch} | 0 ...d.spawnParticle-API-and-add-Builder.patch} | 0 ...allowed-colored-signs-to-be-created.patch} | 0 ...h => 0199-EndermanAttackPlayerEvent.patch} | 0 ...tch => 0200-WitchConsumePotionEvent.patch} | 0 ...patch => 0201-WitchThrowPotionEvent.patch} | 0 ...patch => 0202-WitchReadyPotionEvent.patch} | 0 ...203-ItemStack-getMaxItemUseDuration.patch} | 0 ...4-Add-EntityTeleportEndGatewayEvent.patch} | 0 ...d-flag-on-cancel-of-Explosion-Event.patch} | 0 ...ch => 0206-Fix-CraftEntity-hashCode.patch} | 0 ...-Configurable-LootPool-luck-formula.patch} | 0 ...ls-when-failing-to-save-player-data.patch} | 0 ...-shield-blocking-delay-configurable.patch} | 0 ...=> 0210-Improve-EntityShootBowEvent.patch} | 0 ...patch => 0211-PlayerReadyArrowEvent.patch} | 0 ...ckByEntityEvent-and-EntityPushedByE.patch} | 0 ...patch => 0213-Expand-Explosions-API.patch} | 0 ...> 0214-LivingEntity-Active-Item-API.patch} | 0 ...-API.patch => 0215-RangedEntity-API.patch} | 0 ...o-disable-ender-dragon-legacy-check.patch} | 0 ...-Implement-World.getEntity-UUID-API.patch} | 0 ...0218-InventoryCloseEvent-Reason-API.patch} | 0 ...tch => 0219-Vex-get-setSummoner-API.patch} | 0 ...ventory-when-cancelling-PlayerInter.patch} | 0 ...more-information-to-Entity.toString.patch} | 0 ...ts.patch => 0223-EnderDragon-Events.patch} | 0 ...atch => 0224-PlayerElytraBoostEvent.patch} | 0 ...=> 0225-PlayerLaunchProjectileEvent.patch} | 0 ...0226-Improve-BlockPosition-inlining.patch} | 0 ...-armor-stands-from-doing-entity-loo.patch} | 0 ...-Vanished-players-don-t-have-rights.patch} | 0 ...Allow-disabling-armor-stand-ticking.patch} | 0 ...tch => 0230-SkeletonHorse-Additions.patch} | 0 ...n-t-call-getItemMeta-on-hasItemMeta.patch} | 0 ...patch => 0232-Expand-ArmorStand-API.patch} | 0 ...vent.patch => 0233-AnvilDamageEvent.patch} | 0 ...ent.patch => 0234-Add-TNTPrimeEvent.patch} | 0 ...d-make-tab-spam-limits-configurable.patch} | 0 ...s.patch => 0236-Fix-NBT-type-issues.patch} | 0 ...emove-unnecessary-itemmeta-handling.patch} | 0 ...es-option-to-debug-dupe-uuid-issues.patch} | 0 ...d-Early-Warning-Feature-to-WatchDog.patch} | 0 ...0-Use-ConcurrentHashMap-in-JsonList.patch} | 0 ...1-Use-a-Queue-for-Queueing-Commands.patch} | 0 ...ock-entities-from-a-chunk-without-s.patch} | 0 ...timize-BlockPosition-helper-methods.patch} | 0 ...efault-mob-spawn-range-and-water-an.patch} | 0 ...tch => 0245-Slime-Pathfinder-Events.patch} | 0 ...e-speed-for-water-flowing-over-lava.patch} | 0 ...47-Optimize-CraftBlockData-Creation.patch} | 0 ...tch => 0248-Optimize-MappedRegistry.patch} | 0 ...ch => 0249-Add-PhantomPreSpawnEvent.patch} | 0 ....patch => 0250-Add-More-Creeper-API.patch} | 0 ...=> 0251-Inventory-removeItemAnySlot.patch} | 0 ...oadChunk-int-int-false-load-unconve.patch} | 0 ...ray-tracing-methods-to-LivingEntity.patch} | 0 ...-attack-cooldown-methods-for-Player.patch} | 0 ....patch => 0255-Improve-death-events.patch} | 0 ...w-chests-to-be-placed-with-NBT-data.patch} | 0 ...I.patch => 0257-Mob-Pathfinding-API.patch} | 0 ...anPlaceOn-and-CanDestroy-NBT-values.patch} | 0 ...nteractions-from-causing-chunk-load.patch} | 0 ...ning-from-loading-generating-chunks.patch} | 0 ...t-furnace-cook-speed-multiplier-API.patch} | 0 ...=> 0262-Honor-EntityAgeable.ageLock.patch} | 0 ...le-connection-throttle-kick-message.patch} | 0 ...nt-chunk-loading-from-Fluid-Flowing.patch} | 0 ...> 0265-Hook-into-CB-plugin-rewrites.patch} | 0 ....patch => 0266-PreSpawnerSpawnEvent.patch} | 0 ...67-Add-LivingEntity-getTargetEntity.patch} | 0 ...I.patch => 0268-Add-sun-related-API.patch} | 0 ...ception-in-entity-and-block-entity-.patch} | 0 ...Turtle-API.patch => 0270-Turtle-API.patch} | 0 ...ator-target-events-and-improve-impl.patch} | 0 ...PI.patch => 0272-Add-more-Witch-API.patch} | 0 ...wned-for-Villager-Aggression-Config.patch} | 0 ...vent-players-from-moving-into-unloa.patch} | 0 ...5-Reset-players-airTicks-on-respawn.patch} | 0 ...after-profile-lookups-if-not-needed.patch} | 0 ...r-Thread-Pool-and-Thread-Priorities.patch} | 0 ...=> 0278-Optimize-World-Time-Updates.patch} | 0 ...tore-custom-InventoryHolder-support.patch} | 0 ...0280-Fix-SpongeAbsortEvent-handling.patch} | 0 ...-allow-digging-into-unloaded-chunks.patch} | 0 ...ult-permission-message-configurable.patch} | 0 ...-Large-Packets-disconnecting-client.patch} | 0 ...ntity-dismount-during-teleportation.patch} | 0 ...I.patch => 0285-Add-more-Zombie-API.patch} | 0 ...mits.patch => 0286-Book-Size-Limits.patch} | 0 ...0287-Add-PlayerConnectionCloseEvent.patch} | 0 ...Replace-OfflinePlayer-getLastPlayed.patch} | 0 ...ehicle-tracking-issue-on-disconnect.patch} | 0 ...-remove-if-the-handle-is-a-custom-p.patch} | 0 ...ent.patch => 0291-BlockDestroyEvent.patch} | 0 ... => 0292-Async-command-map-building.patch} | 0 ....patch => 0293-Brigadier-Mojang-API.patch} | 0 ...ove-exact-choice-recipe-ingredients.patch} | 0 ... 0295-Limit-Client-Sign-length-more.patch} | 0 ...ggleEvent-when-whitelist-is-toggled.patch} | 0 ...=> 0297-Entity-getEntitySpawnReason.patch} | 0 ...tch => 0298-Fire-event-on-GS4-query.patch} | 0 ... => 0299-Add-PlayerPostRespawnEvent.patch} | 0 ...for-pickupDelay-breaks-picking-up-i.patch} | 0 ...ts.patch => 0301-Server-Tick-Events.patch} | 0 ...302-PlayerDeathEvent-getItemsToKeep.patch} | 0 ...ptimize-Captured-BlockEntity-Lookup.patch} | 0 ...API.patch => 0304-Add-Heightmap-API.patch} | 0 ...> 0305-Mob-Spawner-API-Enhancements.patch} | 0 ...-to-changed-postToMainThread-method.patch} | 0 ...-item-frames-are-modified-MC-123450.patch} | 0 ...0308-Implement-CraftBlockSoundGroup.patch} | 0 ...e-Keep-Spawn-Loaded-range-per-world.patch} | 0 ...10-Expose-the-internal-current-tick.patch} | 0 ...te-location-if-we-failed-to-read-it.patch} | 0 ...l-Spawned-mobs-towards-natural-spaw.patch} | 0 ...urable-projectile-relative-velocity.patch} | 0 ...h => 0314-offset-item-frame-ticking.patch} | 0 ...event-consuming-the-wrong-itemstack.patch} | 0 ...6-Dont-send-unnecessary-sign-update.patch} | 0 ...-option-to-disable-pillager-patrols.patch} | 0 ...k-loads-when-villagers-try-to-find-.patch} | 0 ...656-Fix-Follow-Range-Initial-Target.patch} | 0 ... 0320-Duplicate-UUID-Resolve-Option.patch} | 0 ...ayerDeathEvent-shouldDropExperience.patch} | 0 ...ading-chunks-checking-hive-position.patch} | 0 ...hunks-from-Hoppers-and-other-things.patch} | 0 ...timise-EntityGetter-getPlayerByUUID.patch} | 0 ...325-Fix-items-not-falling-correctly.patch} | 0 ...ize-call-to-getFluid-for-explosions.patch} | 0 ...-in-stack-not-having-effects-when-d.patch} | 0 ...ializing-mismatching-chunk-coordina.patch} | 0 ... 0329-Alternative-item-despawn-rate.patch} | 0 ...=> 0330-Tracking-Range-Improvements.patch} | 0 ...-items-vanishing-through-end-portal.patch} | 0 ...et-gravity-in-void.-Fixes-MC-167279.patch} | 0 ...33-Improve-Block-breakNaturally-API.patch} | 0 ...-getChunkAt-calls-for-loaded-chunks.patch} | 0 ...0335-Add-debug-for-sync-chunk-loads.patch} | 0 ... => 0336-Improve-java-version-check.patch} | 0 ...tch => 0337-Add-ThrownEggHatchEvent.patch} | 0 ...p-API.patch => 0338-Entity-Jump-API.patch} | 0 ...-to-nerf-pigmen-from-nether-portals.patch} | 0 ... => 0340-Make-the-GUI-graph-fancier.patch} | 0 ...41-add-hand-to-BlockMultiPlaceEvent.patch} | 0 ...ipwire-hook-placement-before-update.patch} | 0 ...o-allow-iron-golems-to-spawn-in-air.patch} | 0 ...chance-of-villager-zombie-infection.patch} | 0 ...tch => 0345-Optimise-Chunk-getFluid.patch} | 0 ...rbose-world-setting-to-false-by-def.patch} | 0 ...Add-tick-times-API-and-mspt-command.patch} | 0 ...48-Expose-MinecraftServer-isRunning.patch} | 0 ...dd-Raw-Byte-ItemStack-Serialization.patch} | 0 ...pawn-settings-and-per-player-option.patch} | 0 ...nections-shouldn-t-hold-up-shutdown.patch} | 0 ...ow-bees-to-load-chunks-for-beehives.patch} | 0 ...PlayerChunkMap-adds-crashing-server.patch} | 0 ...tch => 0354-Don-t-tick-dead-players.patch} | 0 ...-Player-s-shouldn-t-be-able-to-move.patch} | 0 ...ove-existing-players-to-world-spawn.patch} | 0 ....patch => 0357-Optimize-Pathfinding.patch} | 0 ...8-Reduce-Either-Optional-allocation.patch} | 0 ...uce-memory-footprint-of-CompoundTag.patch} | 0 ...ent-opening-inventories-when-frozen.patch} | 0 ...entity-collision-code-if-not-needed.patch} | 0 ...Implement-Player-Client-Options-API.patch} | 0 ...ayer-is-attempted-to-be-removed-fro.patch} | 0 ...Event-when-Player-is-actually-ready.patch} | 0 ...awn-point-if-spawn-in-unloaded-worl.patch} | 0 ...layerAttackEntityCooldownResetEvent.patch} | 0 ...-fire-BlockFade-on-worldgen-threads.patch} | 0 ...tom-creative-and-insomniac-controls.patch} | 0 ...tem-duplication-and-teleport-issues.patch} | 0 ...patch => 0370-Villager-Restocks-API.patch} | 0 ...ickItem-Packet-and-kick-for-invalid.patch} | 0 ...n.patch => 0372-Expose-game-version.patch} | 0 ...per-thread-native-byte-buffer-cache.patch} | 0 ....patch => 0374-misc-debugging-dumps.patch} | 0 ...5-Prevent-teleporting-dead-entities.patch} | 0 ...atch => 0377-Implement-Mob-Goal-API.patch} | 0 ...=> 0378-Add-villager-reputation-API.patch} | 0 ...maximum-exp-value-when-merging-orbs.patch} | 0 ...tch => 0380-ExperienceOrbMergeEvent.patch} | 0 ...-Fix-PotionEffect-ignores-icon-flag.patch} | 0 ...API.patch => 0382-Potential-bed-API.patch} | 0 ...ait-for-Async-Tasks-during-shutdown.patch} | 0 ...er-respects-game-and-entity-rules-f.patch} | 0 ...> 0385-Ensure-safe-gateway-teleport.patch} | 0 ...-for-console-having-all-permissions.patch} | 0 ...x-villager-trading-demand-MC-163962.patch} | 0 ... => 0388-Maps-shouldn-t-load-chunks.patch} | 0 ...okup-for-Treasure-Maps-Fixes-lag-fr.patch} | 0 ...r-runTaskTimerAsynchronously-Plugin.patch} | 0 ...ton-physics-inconsistency-MC-188840.patch} | 0 ...sing-chunks-due-to-integer-overflow.patch} | 0 ...-position-desync-causing-tp-exploit.patch} | 0 ...older-method-without-block-snapshot.patch} | 0 ...0395-Add-PlayerRecipeBookClickEvent.patch} | 0 ...-Hide-sync-chunk-writes-behind-flag.patch} | 0 ...7-Add-permission-for-command-blocks.patch} | 0 ...position-and-AABB-are-never-invalid.patch} | 0 ...d-Difficulty-Remembering-Difficulty.patch} | 0 ...atch => 0400-Paper-dumpitem-command.patch} | 0 ...Legacy-Component-serialization-size.patch} | 0 ...Plugin-Tickets-to-API-Chunk-Methods.patch} | 0 ...-Add-BlockStateMeta-clearBlockState.patch} | 0 ...404-Support-old-UUID-format-for-NBT.patch} | 0 ...vert-legacy-attributes-in-Item-Meta.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 0 ...e-fix-EntityTargetLivingEntityEvent.patch} | 0 ...patch => 0408-Add-entity-liquid-API.patch} | 0 ...date-itemstack-legacy-name-and-lore.patch} | 0 ...atch => 0410-Add-PrepareResultEvent.patch} | 0 ...-for-portal-on-world-gen-entity-add.patch} | 0 ...x-arrows-never-despawning-MC-125757.patch} | 0 ...Vanilla-Command-permission-checking.patch} | 0 ...-5989.patch => 0414-Fix-SPIGOT-5989.patch} | 0 ...-Bukkit-world-container-is-not-used.patch} | 0 ...5885-Unable-to-disable-advancements.patch} | 0 ...taPlayer-leak-due-from-quitting-ear.patch} | 0 ...e-NetworkManager-Exception-Handling.patch} | 0 ...ix-some-rails-connecting-improperly.patch} | 0 ...stake-in-CB-NBT-int-deserialization.patch} | 0 ...support.patch => 0421-Brand-support.patch} | 0 ...PickupItemAnimation-to-LivingEntity.patch} | 0 ...h => 0423-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 0 ...PI.patch => 0425-Add-moon-phase-API.patch} | 0 ...rver-load-chunks-from-newer-version.patch} | 0 ...headless-pistons-from-being-created.patch} | 0 ...ent.patch => 0428-Add-BellRingEvent.patch} | 0 ...dd-zombie-targets-turtle-egg-config.patch} | 0 ...patch => 0430-Buffer-joins-to-world.patch} | 0 ...s-not-working-in-some-kick-messages.patch} | 0 ...reateEvent-needs-to-know-its-entity.patch} | 0 ...I.patch => 0433-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0436-Cache-block-data-strings.patch} | 0 ...rtation-and-cancel-velocity-if-tele.patch} | 0 ...l-open-container-api-to-HumanEntity.patch} | 0 ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 0 ...-Counter-to-allow-plugins-to-use-va.patch} | 0 ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0443-Entity-isTicking.patch} | 0 ...non-whitelisted-player-when-white-l.patch} | 0 ...-Concurrency-issue-in-ShufflingList.patch} | 0 ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 0 ...-large-move-vectors-crashing-server.patch} | 0 ...atch => 0448-Optimise-getType-calls.patch} | 0 ....patch => 0449-Villager-resetOffers.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 0 ...lockpos-allocation-from-pathfinding.patch} | 0 ...em-locations-dropped-from-campfires.patch} | 0 ...3-Fix-bell-block-entity-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 0 ...ch => 0456-Add-ignore-discounts-API.patch} | 0 ...Toggle-for-removing-existing-dragon.patch} | 0 ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0459-Item-no-age-no-player-pickup.patch} | 0 ...460-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0461-Add-API-for-quit-reason.patch} | 0 ...ng-Trader-spawn-rate-config-options.patch} | 0 ...ch => 0463-Expose-world-spawn-angle.patch} | 0 ...patch => 0464-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 0 ...66-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0467-Add-PlayerItemCooldownEvent.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...PI.patch => 0469-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 0 ...-missing-default-perms-for-commands.patch} | 0 ...h => 0472-Add-PlayerShearBlockEvent.patch} | 0 ....patch => 0473-Limit-recipe-packets.patch} | 0 ...-CraftSound-backwards-compatibility.patch} | 0 ...475-Player-Chunk-Load-Unload-Events.patch} | 0 ...6-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 0 ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 0 ...valid-ingredient-lists-in-VillagerA.patch} | 0 ...nt.patch => 0480-Add-TargetHitEvent.patch} | 0 ... 0481-MC-4-Fix-item-position-desync.patch} | 0 ... 0482-Additional-Block-Material-API.patch} | 0 ...tch => 0483-Fix-harming-potion-dupe.patch} | 0 ...t-Material-from-Boats-and-Minecarts.patch} | 0 ....patch => 0485-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 0 ...-Add-PlayerFlowerPotManipulateEvent.patch} | 0 ...ct-event-not-being-called-sometimes.patch} | 0 ...h => 0490-Zombie-API-breaking-doors.patch} | 0 ...491-Fix-nerfed-slime-when-splitting.patch} | 0 ...=> 0492-Add-EntityLoadCrossbowEvent.patch} | 0 ...> 0493-Add-WorldGameRuleChangeEvent.patch} | 0 ...94-Add-ServerResourcesReloadedEvent.patch} | 0 ...d-settings-for-mobs-picking-up-loot.patch} | 0 ...> 0496-Add-BlockFailedDispenseEvent.patch} | 0 ...97-Add-PlayerLecternPageChangeEvent.patch} | 0 ...98-Add-PlayerLoomPatternSelectEvent.patch} | 0 ...nfigurable-door-breaking-difficulty.patch} | 0 ...ty-commands-shall-not-be-dispatched.patch} | 0 ...OIs.patch => 0501-Remove-stale-POIs.patch} | 0 ...h => 0502-Fix-villager-boat-exploit.patch} | 0 ...I.patch => 0503-Add-sendOpLevel-API.patch} | 0 ...0504-TODO-Registry-Modification-API.patch} | 0 ...h => 0505-Add-StructuresLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 0 ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 0 ...509-Make-schedule-command-per-world.patch} | 0 ...510-Configurable-max-leash-distance.patch} | 0 ...h => 0511-Add-BlockPreDispenseEvent.patch} | 0 ...2-Add-PlayerChangeBeaconEffectEvent.patch} | 0 ...e-for-always-placing-the-dragon-egg.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...h => 0515-Expand-EntityUnleashEvent.patch} | 0 ...shield-blocking-on-dimension-change.patch} | 0 ...atch => 0517-Add-DragonEggFormEvent.patch} | 0 ...t.patch => 0518-Add-EntityMoveEvent.patch} | 0 ...isable-pathfinding-updates-on-block.patch} | 0 ... 0520-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 0 ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ...atch => 0526-Expose-Tracked-Players.patch} | 0 ...GUI.patch => 0527-Improve-ServerGUI.patch} | 0 ...528-fix-converting-txt-to-json-file.patch} | 0 ...atch => 0529-Add-worldborder-events.patch} | 0 ...h => 0530-Add-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 0 ...h => 0532-Add-recipe-to-cook-events.patch} | 0 ...patch => 0533-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 0 ....patch => 0535-Expand-world-key-API.patch} | 0 ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0537-Item-Rarity-API.patch} | 0 ...d-item-when-player-has-disconnected.patch} | 0 ...elist-use-configurable-kick-message.patch} | 0 ...gnore-result-of-PlayerEditBookEvent.patch} | 0 ...tch => 0541-Expose-protocol-version.patch} | 0 ...ab-completions-for-brigadier-comman.patch} | 0 ...temConsumeEvent-cancelling-properly.patch} | 0 ...patch => 0544-Add-bypass-host-check.patch} | 0 ...0545-Set-area-affect-cloud-rotation.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 0 ...ch => 0551-Add-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0552-More-World-API.patch} | 0 ...=> 0553-Add-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 0 ...awnEvent-fix-passed-parameter-issue.patch} | 0 ...acon-activation-deactivation-events.patch} | 0 ...dd-Channel-initialization-listeners.patch} | 0 ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0559-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ... => 0562-Add-HiddenPotionEffect-API.patch} | 0 ...close.patch => 0563-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0565-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 0 ...67-Expand-PlayerGameModeChangeEvent.patch} | 0 ... => 0568-ItemStack-repair-check-API.patch} | 0 ....patch => 0569-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 0 ...PI.patch => 0571-Add-Mob-lookAt-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...0573-Add-Unix-domain-socket-support.patch} | 0 ... => 0574-Add-EntityInsideBlockEvent.patch} | 0 ...75-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0577-More-Lidded-Block-API.patch} | 0 ...78-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0579-Add-PlayerKickEvent-causes.patch} | 0 ...0580-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0584-Add-BellRevealRaiderEvent.patch} | 0 ... 0585-Fix-invulnerable-end-crystals.patch} | 0 ...86-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0587-Fix-dangerous-end-portal-logic.patch} | 0 ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...patch => 0590-Line-Of-Sight-Changes.patch} | 0 ... => 0591-add-per-world-spawn-limits.patch} | 0 ...h => 0592-Fix-potions-splash-events.patch} | 0 ... => 0593-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 0 ...PI.patch => 0595-Missing-Entity-API.patch} | 0 ...ect-for-book-edit-is-called-on-main.patch} | 0 ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 0 ...rom-signs-not-firing-command-events.patch} | 0 ...tch => 0600-Add-PlayerArmSwingEvent.patch} | 0 ...-event-leave-message-not-being-sent.patch} | 0 ...-for-mobs-immune-to-default-effects.patch} | 0 ...-t-apply-cramming-damage-to-players.patch} | 0 ...d-timings-for-sensors-and-behaviors.patch} | 0 ... 0605-Add-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0606-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0608-Add-System.out-err-catcher.patch} | 0 ...AFK-kick-while-watching-end-credits.patch} | 0 ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0612-Add-PlayerSetSpawnEvent.patch} | 0 ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...h => 0616-Add-EntityDamageItemEvent.patch} | 0 ...timize-indirect-passenger-iteration.patch} | 0 ...em-frame-map-cursor-update-interval.patch} | 0 ...619-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0621-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0623-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0625-Add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 0 ... 0627-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0628-Left-handed-API.patch} | 0 ...ch => 0629-Add-more-advancement-API.patch} | 0 ...630-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0631-Add-critical-damage-API.patch} | 0 ...0632-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0634-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...6-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...37-Vanilla-command-permission-fixes.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 0 ...39-Fix-GameProfileCache-concurrency.patch} | 0 ...640-Improve-and-expand-AsyncCatcher.patch} | 0 ...per-mobcaps-and-paper-playermobcaps.patch} | 0 ...tize-ResourceLocation-error-logging.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 0 ...our-chunk-data-off-disk-when-conver.patch} | 0 ...d-state-when-raytracing-skip-air-bl.patch} | 0 ...atch => 0648-Time-scoreboard-search.patch} | 0 ...rimise-map-impl-for-tracked-players.patch} | 0 ...h => 0650-Add-missing-InventoryType.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 0 ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 0 ...h => 0655-Add-packet-limiter-config.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0657-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0662-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 0 ...unintended-light-block-manipulation.patch} | 0 ...0665-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0667-Configurable-feature-seeds.patch} | 0 ... 0668-Add-root-admin-user-detection.patch} | 0 ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 0 ...ive-velocity-through-repeated-crits.patch} | 0 ...e-code-using-deprecated-for-removal.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 0 ...e-unnecessary-itemmeta-from-clients.patch} | 0 ...=> 0676-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0678-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0679-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0682-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 0 ... => 0685-Improve-scoreboard-entries.patch} | 0 ...ch => 0686-Entity-powdered-snow-API.patch} | 0 ...0687-Add-API-for-item-entity-health.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0692-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0693-Bucketable-API.patch} | 0 ...es.patch => 0694-Validate-usernames.patch} | 0 ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...9-Multiple-Entries-with-Scoreboards.patch} | 0 ...700-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0702-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0704-Fix-NotePlayEvent.patch} | 0 ....patch => 0705-Freeze-Tick-Lock-API.patch} | 0 ...h => 0706-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0710-Implement-regenerateChunk.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 0 ...gs.patch => 0713-Add-GameEvent-tags.patch} | 0 ...ks-fairly-for-worlds-while-waiting-.patch} | 0 ...tch => 0715-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 0 ...-worldlist-before-initing-the-world.patch} | 0 ... => 0720-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0721-Custom-Potion-Mixes.patch} | 0 ...22-Force-close-world-loading-screen.patch} | 0 ...723-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0726-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0729-Implement-getComputedBiome-API.patch} | 0 ...> 0730-Make-some-itemstacks-nonnull.patch} | 0 ...731-Implement-enchantWithLevels-API.patch} | 0 ...h => 0732-Fix-saving-in-unloadWorld.patch} | 0 ...h => 0733-Buffer-OOB-setBlock-calls.patch} | 0 ... 0734-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 0 ...s.patch => 0738-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 0 ...> 0743-Expand-PlayerItemDamageEvent.patch} | 0 ...> 0744-WorldCreator-keepSpawnLoaded.patch} | 0 ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0750-Add-PlayerStopUsingItemEvent.patch} | 0 ...rs.patch => 0751-Don-t-tick-markers.patch} | 0 ...tch => 0752-Expand-FallingBlock-API.patch} | 0 ...0753-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ...-read-and-store-sus-effect-duration.patch} | 0 ... 0757-Sanitize-sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 0 ...-on-world-create-while-being-ticked.patch} | 0 ...61-Dont-resent-entity-on-art-update.patch} | 0 ... => 0762-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0765-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 0 ...pty-items-from-being-added-to-world.patch} | 0 ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0769-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 0 ...PE.patch => 0772-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 0 ...API.patch => 0774-More-Teleport-API.patch} | 0 ... => 0775-Add-EntityPortalReadyEvent.patch} | 0 ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 0 ...on-plugins-accessing-faraway-chunks.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0781-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0783-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 0 ...785-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 0 ...ok-changes-from-crashing-the-server.patch} | 0 ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0789-Missing-eating-regain-reason.patch} | 0 ....patch => 0790-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...3-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0794-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0796-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0798-Add-getDrops-to-BlockState.patch} | 0 ...=> 0799-Fix-a-bunch-of-vanilla-bugs.patch} | 0 ...y-onTrackingStart-during-navigation.patch} | 0 ... 0801-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0802-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0805-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0807-Add-entity-knockback-API.patch} | 0 ....patch => 0808-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...ch => 0810-Add-EntityToggleSitEvent.patch} | 0 ... => 0811-Add-fire-tick-delay-option.patch} | 0 ...patch => 0812-Add-Moving-Piston-API.patch} | 0 ...> 0813-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 0 ...0817-Add-PrePlayerAttackEntityEvent.patch} | 0 ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 0 ... 0820-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...822-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 0 ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0825-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0826-Friction-API.patch} | 0 ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...-premature-player-kicks-on-shutdown.patch} | 0 ... => 0829-Sync-offhand-slot-in-menus.patch} | 0 ... 0830-Player-Entity-Tracking-Events.patch} | 0 ...tch => 0831-Limit-pet-look-distance.patch} | 0 ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0833-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 0 ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0836-Add-BlockLockCheckEvent.patch} | 0 ... 0837-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0838-Improve-logging-and-errors.patch} | 0 ....patch => 0839-Improve-PortalEvents.patch} | 0 ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 0 ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0843-Flying-Fall-Damage.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...ion-moving-velocity-to-VehicleBlock.patch} | 0 ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 0 ...k-items-during-EntityResurrectEvent.patch} | 0 ...en-API.patch => 0849-Win-Screen-API.patch} | 0 ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0852-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...=> 0854-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 0 ...859-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0861-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 0 ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 0 ...0868-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0871-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...74-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ... => 0876-Expand-PlayerItemMendEvent.patch} | 0 ...sh-ProjectileSource-for-projectiles.patch} | 0 ... => 0878-Add-transient-modifier-API.patch} | 0 ...patch => 0879-Fix-block-place-logic.patch} | 0 ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 0 ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...7-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 0 ...891-Call-missing-BlockDispenseEvent.patch} | 0 ...-chunks-for-supporting-block-checks.patch} | 0 ...Optimize-player-lookups-for-beacons.patch} | 0 ...894-Add-Sign-getInteractableSideFor.patch} | 0 ...95-Array-backed-synched-entity-data.patch} | 0 ...6-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0897-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 0 ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0903-Add-whitelist-events.patch} | 0 ... 0904-Implement-PlayerFailMoveEvent.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 0 ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 0 ...tion-when-spawning-display-entities.patch} | 0 ...909-Only-capture-actual-tree-growth.patch} | 0 ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 0 ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0914-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0916-Bandaid-fix-for-Effect.patch} | 0 ...tch => 0917-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...lace-methods-with-old-StructureType.patch} | 0 ...e-namespaced-commands-if-send-names.patch} | 0 ...-handle-BlockBreakEvent-isDropItems.patch} | 0 ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 0 ... => 0924-Add-Listing-API-for-Player.patch} | 0 ...figurable-Region-Compression-Format.patch} | 0 ...6-Add-BlockFace-to-BlockDamageEvent.patch} | 0 ...h => 0927-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0928-Expand-Pose-API.patch} | 0 ...patch => 0929-More-DragonBattle-API.patch} | 0 ... 0930-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0931-Add-PlayerPickItemEvent.patch} | 0 ...=> 0932-Allow-trident-custom-damage.patch} | 0 ...3-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 0 ....patch => 0936-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...38-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 0 ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0945-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 0 ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...55-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 0956-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 0 ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 0960-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...em-packets-with-collector-as-source.patch} | 0 ... => 0964-Expand-LingeringPotion-API.patch} | 0 ....patch => 0965-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...969-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 0 ...tch => 0973-Add-Structure-check-API.patch} | 0 ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 0 ...-Dont-resend-blocks-on-interactions.patch} | 0 ...tch => 0977-add-more-scoreboard-API.patch} | 0 ...stry.patch => 0978-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 0 ...h => 0980-Add-experience-points-API.patch} | 0 ...h => 0981-Add-drops-to-shear-events.patch} | 0 ...> 0982-Add-PlayerShieldDisableEvent.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 0 ...-experience-dropping-on-block-break.patch} | 0 ...> 0985-Fixup-NamespacedKey-handling.patch} | 0 ...86-Expose-LootTable-of-DecoratedPot.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 0 ...> 0988-Rewrite-dataconverter-system.patch} | 0 ...9-Starlight.patch => 0989-Starlight.patch} | 0 ....patch => 0990-Rewrite-chunk-system.patch} | 0 ...incremental-chunk-and-player-saving.patch} | 0 ...dBounds-and-getBlockState-for-inlin.patch} | 0 ...tem-frames-performance-and-bug-fixe.patch} | 0 ...ing-for-EntityLiving-hasLineOfSight.patch} | 0 ...Manager-and-add-advanced-packet-sup.patch} | 0 ...96-Allow-Saving-of-Oversized-Chunks.patch} | 0 ...97-Fix-World-isChunkGenerated-calls.patch} | 0 ...998-Flat-bedrock-generator-settings.patch} | 0 ...=> 0999-Entity-Activation-Range-2.0.patch} | 0 ...1000-Optional-per-player-mob-spawns.patch} | 0 ...1-Anti-Xray.patch => 1001-Anti-Xray.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 0 ...timize-Collision-to-not-load-chunks.patch} | 0 ...alSelector-Goal.Flag-Set-operations.patch} | 0 ...05-Entity-load-save-limit-per-chunk.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 0 ...h => 1007-Improved-Watchdog-Support.patch} | 0 ...> 1008-Optimize-Voxel-Shape-Merging.patch} | 0 ...ch => 1009-Write-SavedData-IO-async.patch} | 0 ...nd-End-Portal-Frames-from-being-des.patch} | 0 ...ance-map-to-optimise-entity-tracker.patch} | 0 ...Optimize-Bit-Operations-by-inlining.patch} | 0 ...> 1013-Remove-streams-from-hot-code.patch} | 0 ...-Eigencraft-redstone-implementation.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 0 ...-Improve-boat-collision-performance.patch} | 0 ...=> 1018-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...> 1020-Execute-chunk-tasks-mid-tick.patch} | 0 ... 1021-Optimise-random-block-ticking.patch} | 0 ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 0 ...tch => 1025-Collision-optimisations.patch} | 0 ...n-checking-in-player-move-packet-ha.patch} | 0 ...e-disarming-not-working-as-intended.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ate-Current-redstone-implementation.patch} | 0 ...30-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 1031-Properly-resend-entities.patch} | 0 ...pers.patch => 1032-Optimize-Hoppers.patch} | 0 ...-Improve-performance-of-mass-crafts.patch} | 0 ...> 1034-Actually-optimise-explosions.patch} | 0 ... 1035-Optimise-chunk-tick-iteration.patch} | 0 ...atch => 1036-Lag-compensation-ticks.patch} | 0 ...37-Optimise-nearby-player-retrieval.patch} | 0 ... 1038-Distance-manager-tick-timings.patch} | 0 ...-Oversized-block-entities-in-chunks.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...h => 1041-Add-ShulkerDuplicateEvent.patch} | 0 ...dd-api-for-spawn-egg-texture-colors.patch} | 0 ...3-Disable-memory-reserve-allocating.patch} | 0 ...=> 1044-Improve-tag-parser-handling.patch} | 0 ... => 1045-Add-Lifecycle-Event-system.patch} | 0 ...nduit-API.patch => 1046-Conduit-API.patch} | 0 ...patch => 1047-ItemStack-Tooltip-API.patch} | 0 ...ackOverflowError-for-some-dispenses.patch} | 0 ...e-changed-item-from-dispense-events.patch} | 0 ...Snapshot-includeLightData-parameter.patch} | 0 ...PI.patch => 1051-Add-FluidState-API.patch} | 0 ...patch => 1052-add-number-format-api.patch} | 0 ...eck-if-itemstack-is-stackable-first.patch} | 0 ...ByEntityEvent-for-unowned-wither-sk.patch} | 0 ...patch => 1055-improve-BanList-types.patch} | 0 ...-Configurable-max-block-fluid-ticks.patch} | 0 ...57-disable-forced-empty-world-ticks.patch} | 0 ...=> 1058-Suspicious-Effect-Entry-API.patch} | 0 ...-Per-world-ticks-per-spawn-settings.patch} | 0 ...ng-message-for-initial-server-start.patch} | 0 ....patch => 1061-Fix-DamageSource-API.patch} | 0 ...I.patch => 1062-Expanded-Hopper-API.patch} | 0 ...nvalid-block-entity-during-world-ge.patch} | 0 ...4-Add-BlockBreakProgressUpdateEvent.patch} | 0 ...=> 1065-Deprecate-ItemStack-setType.patch} | 0 ...s.patch => 1066-Item-Mutation-Fixes.patch} | 0 ...> 1067-API-for-checking-sent-chunks.patch} | 0 ...ch => 1068-Add-CartographyItemEvent.patch} | 0 ...aid-API.patch => 1069-More-Raid-API.patch} | 0 1050 files changed, 36 insertions(+) create mode 100644 main.py rename patches/unapplied/server/{0128-Use-TerminalConsoleAppender-for-console-improvements.patch => 0011-Use-TerminalConsoleAppender-for-console-improvements.patch} (100%) rename patches/unapplied/server/{0149-Handle-plugin-prefixes-using-Log4J-configuration.patch => 0012-Handle-plugin-prefixes-using-Log4J-configuration.patch} (100%) rename patches/unapplied/server/{0150-Improve-Log4J-Configuration-Plugin-Loggers.patch => 0013-Improve-Log4J-Configuration-Plugin-Loggers.patch} (100%) rename patches/unapplied/server/{0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch => 0014-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch} (100%) rename patches/unapplied/server/{0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch => 0015-Deobfuscate-stacktraces-in-log-messages-crash-report.patch} (100%) rename patches/unapplied/server/{0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0016-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/unapplied/server/{0011-Paper-command.patch => 0017-Paper-command.patch} (100%) rename patches/unapplied/server/{0012-Paper-Metrics.patch => 0018-Paper-Metrics.patch} (100%) rename patches/unapplied/server/{0013-Paper-Plugins.patch => 0019-Paper-Plugins.patch} (100%) rename patches/unapplied/server/{0014-Timings-v2.patch => 0024-Timings-v2.patch} (100%) rename patches/unapplied/server/{0015-Add-TickThread.patch => 0025-Add-TickThread.patch} (100%) rename patches/unapplied/server/{0016-Further-improve-server-tick-loop.patch => 0026-Further-improve-server-tick-loop.patch} (100%) rename patches/unapplied/server/{0017-Add-command-line-option-to-load-extra-plugin-jars-no.patch => 0027-Add-command-line-option-to-load-extra-plugin-jars-no.patch} (100%) rename patches/unapplied/server/{0018-Support-components-in-ItemMeta.patch => 0028-Support-components-in-ItemMeta.patch} (100%) rename patches/unapplied/server/{0019-Configurable-cactus-bamboo-and-reed-growth-height.patch => 0029-Configurable-cactus-bamboo-and-reed-growth-height.patch} (100%) rename patches/unapplied/server/{0020-Configurable-baby-zombie-movement-speed.patch => 0030-Configurable-baby-zombie-movement-speed.patch} (100%) rename patches/unapplied/server/{0021-Configurable-fishing-time-ranges.patch => 0031-Configurable-fishing-time-ranges.patch} (100%) rename patches/unapplied/server/{0022-Allow-nerfed-mobs-to-jump.patch => 0032-Allow-nerfed-mobs-to-jump.patch} (100%) rename patches/unapplied/server/{0023-Add-configurable-entity-despawn-distances.patch => 0033-Add-configurable-entity-despawn-distances.patch} (100%) rename patches/unapplied/server/{0024-Allow-for-toggling-of-spawn-chunks.patch => 0034-Allow-for-toggling-of-spawn-chunks.patch} (100%) rename patches/unapplied/server/{0025-Drop-falling-block-and-tnt-entities-at-the-specified.patch => 0035-Drop-falling-block-and-tnt-entities-at-the-specified.patch} (100%) rename patches/unapplied/server/{0026-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch => 0036-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch} (100%) rename patches/unapplied/server/{0027-Implement-Paper-VersionChecker.patch => 0037-Implement-Paper-VersionChecker.patch} (100%) rename patches/unapplied/server/{0028-Add-version-history-to-version-command.patch => 0038-Add-version-history-to-version-command.patch} (100%) rename patches/unapplied/server/{0029-Player-affects-spawning-API.patch => 0039-Player-affects-spawning-API.patch} (100%) rename patches/unapplied/server/{0030-Only-refresh-abilities-if-needed.patch => 0040-Only-refresh-abilities-if-needed.patch} (100%) rename patches/unapplied/server/{0031-fix-ItemMeta-removing-CustomModelData.patch => 0041-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/unapplied/server/{0032-Entity-Origin-API.patch => 0042-Entity-Origin-API.patch} (100%) rename patches/unapplied/server/{0033-Prevent-block-entity-and-entity-crashes.patch => 0043-Prevent-block-entity-and-entity-crashes.patch} (100%) rename patches/unapplied/server/{0034-Configurable-top-of-nether-void-damage.patch => 0044-Configurable-top-of-nether-void-damage.patch} (100%) rename patches/unapplied/server/{0035-Check-online-mode-before-converting-and-renaming-pla.patch => 0045-Check-online-mode-before-converting-and-renaming-pla.patch} (100%) rename patches/unapplied/server/{0036-Add-more-entities-to-activation-range-ignore-list.patch => 0046-Add-more-entities-to-activation-range-ignore-list.patch} (100%) rename patches/unapplied/server/{0037-Configurable-end-credits.patch => 0047-Configurable-end-credits.patch} (100%) rename patches/unapplied/server/{0038-Fix-lag-from-explosions-processing-dead-entities.patch => 0048-Fix-lag-from-explosions-processing-dead-entities.patch} (100%) rename patches/unapplied/server/{0039-Optimize-explosions.patch => 0049-Optimize-explosions.patch} (100%) rename patches/unapplied/server/{0040-Disable-explosion-knockback.patch => 0050-Disable-explosion-knockback.patch} (100%) rename patches/unapplied/server/{0041-Disable-thunder.patch => 0051-Disable-thunder.patch} (100%) rename patches/unapplied/server/{0042-Disable-ice-and-snow.patch => 0052-Disable-ice-and-snow.patch} (100%) rename patches/unapplied/server/{0043-Configurable-mob-spawner-tick-rate.patch => 0053-Configurable-mob-spawner-tick-rate.patch} (100%) rename patches/unapplied/server/{0044-Implement-PlayerLocaleChangeEvent.patch => 0054-Implement-PlayerLocaleChangeEvent.patch} (100%) rename patches/unapplied/server/{0045-Add-BeaconEffectEvent.patch => 0055-Add-BeaconEffectEvent.patch} (100%) rename patches/unapplied/server/{0046-Configurable-container-update-tick-rate.patch => 0056-Configurable-container-update-tick-rate.patch} (100%) rename patches/unapplied/server/{0047-Use-UserCache-for-player-heads.patch => 0057-Use-UserCache-for-player-heads.patch} (100%) rename patches/unapplied/server/{0048-Disable-spigot-tick-limiters.patch => 0058-Disable-spigot-tick-limiters.patch} (100%) rename patches/unapplied/server/{0049-Add-PlayerInitialSpawnEvent.patch => 0059-Add-PlayerInitialSpawnEvent.patch} (100%) rename patches/unapplied/server/{0050-Configurable-Disabling-Cat-Chest-Detection.patch => 0060-Configurable-Disabling-Cat-Chest-Detection.patch} (100%) rename patches/unapplied/server/{0051-Improve-Player-chat-API-handling.patch => 0061-Improve-Player-chat-API-handling.patch} (100%) rename patches/unapplied/server/{0052-All-chunks-are-slime-spawn-chunks-toggle.patch => 0062-All-chunks-are-slime-spawn-chunks-toggle.patch} (100%) rename patches/unapplied/server/{0053-Expose-server-CommandMap.patch => 0063-Expose-server-CommandMap.patch} (100%) rename patches/unapplied/server/{0054-Be-a-bit-more-informative-in-maxHealth-exception.patch => 0064-Be-a-bit-more-informative-in-maxHealth-exception.patch} (100%) rename patches/unapplied/server/{0055-Player-Tab-List-and-Title-APIs.patch => 0065-Player-Tab-List-and-Title-APIs.patch} (100%) rename patches/unapplied/server/{0056-Add-configurable-portal-search-radius.patch => 0066-Add-configurable-portal-search-radius.patch} (100%) rename patches/unapplied/server/{0057-Add-velocity-warnings.patch => 0067-Add-velocity-warnings.patch} (100%) rename patches/unapplied/server/{0058-Configurable-inter-world-teleportation-safety.patch => 0068-Configurable-inter-world-teleportation-safety.patch} (100%) rename patches/unapplied/server/{0059-Add-exception-reporting-event.patch => 0069-Add-exception-reporting-event.patch} (100%) rename patches/unapplied/server/{0060-Disable-Scoreboards-for-non-players-by-default.patch => 0070-Disable-Scoreboards-for-non-players-by-default.patch} (100%) rename patches/unapplied/server/{0061-Add-methods-for-working-with-arrows-stuck-in-living-.patch => 0071-Add-methods-for-working-with-arrows-stuck-in-living-.patch} (100%) rename patches/unapplied/server/{0062-Chunk-Save-Reattempt.patch => 0072-Chunk-Save-Reattempt.patch} (100%) rename patches/unapplied/server/{0063-Complete-resource-pack-API.patch => 0073-Complete-resource-pack-API.patch} (100%) rename patches/unapplied/server/{0064-Default-loading-permissions.yml-before-plugins.patch => 0074-Default-loading-permissions.yml-before-plugins.patch} (100%) rename patches/unapplied/server/{0065-Allow-Reloading-of-Custom-Permissions.patch => 0075-Allow-Reloading-of-Custom-Permissions.patch} (100%) rename patches/unapplied/server/{0066-Remove-Metadata-on-reload.patch => 0076-Remove-Metadata-on-reload.patch} (100%) rename patches/unapplied/server/{0067-Handle-Item-Meta-Inconsistencies.patch => 0077-Handle-Item-Meta-Inconsistencies.patch} (100%) rename patches/unapplied/server/{0068-Configurable-Non-Player-Arrow-Despawn-Rate.patch => 0078-Configurable-Non-Player-Arrow-Despawn-Rate.patch} (100%) rename patches/unapplied/server/{0069-Add-World-Util-Methods.patch => 0079-Add-World-Util-Methods.patch} (100%) rename patches/unapplied/server/{0070-Custom-replacement-for-eaten-items.patch => 0080-Custom-replacement-for-eaten-items.patch} (100%) rename patches/unapplied/server/{0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch => 0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch} (100%) rename patches/unapplied/server/{0072-Use-a-Shared-Random-for-Entities.patch => 0082-Use-a-Shared-Random-for-Entities.patch} (100%) rename patches/unapplied/server/{0073-Configurable-spawn-chances-for-skeleton-horses.patch => 0083-Configurable-spawn-chances-for-skeleton-horses.patch} (100%) rename patches/unapplied/server/{0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch => 0084-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch} (100%) rename patches/unapplied/server/{0075-Entity-AddTo-RemoveFrom-World-Events.patch => 0085-Entity-AddTo-RemoveFrom-World-Events.patch} (100%) rename patches/unapplied/server/{0076-Configurable-Chunk-Inhabited-Time.patch => 0086-Configurable-Chunk-Inhabited-Time.patch} (100%) rename patches/unapplied/server/{0077-EntityPathfindEvent.patch => 0087-EntityPathfindEvent.patch} (100%) rename patches/unapplied/server/{0078-Sanitise-RegionFileCache-and-make-configurable.patch => 0088-Sanitise-RegionFileCache-and-make-configurable.patch} (100%) rename patches/unapplied/server/{0079-Do-not-load-chunks-for-Pathfinding.patch => 0089-Do-not-load-chunks-for-Pathfinding.patch} (100%) rename patches/unapplied/server/{0080-Add-PlayerUseUnknownEntityEvent.patch => 0090-Add-PlayerUseUnknownEntityEvent.patch} (100%) rename patches/unapplied/server/{0081-Configurable-random-tick-rates-for-blocks.patch => 0091-Configurable-random-tick-rates-for-blocks.patch} (100%) rename patches/unapplied/server/{0082-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch => 0092-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch} (100%) rename patches/unapplied/server/{0083-Optimize-DataBits.patch => 0093-Optimize-DataBits.patch} (100%) rename patches/unapplied/server/{0084-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch => 0094-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch} (100%) rename patches/unapplied/server/{0085-Configurable-Player-Collision.patch => 0095-Configurable-Player-Collision.patch} (100%) rename patches/unapplied/server/{0086-Add-handshake-event-to-allow-plugins-to-handle-clien.patch => 0096-Add-handshake-event-to-allow-plugins-to-handle-clien.patch} (100%) rename patches/unapplied/server/{0087-Configurable-RCON-IP-address.patch => 0097-Configurable-RCON-IP-address.patch} (100%) rename patches/unapplied/server/{0088-EntityRegainHealthEvent-isFastRegen-API.patch => 0098-EntityRegainHealthEvent-isFastRegen-API.patch} (100%) rename patches/unapplied/server/{0089-Add-ability-to-configure-frosted_ice-properties.patch => 0099-Add-ability-to-configure-frosted_ice-properties.patch} (100%) rename patches/unapplied/server/{0090-remove-null-possibility-for-getServer-singleton.patch => 0100-remove-null-possibility-for-getServer-singleton.patch} (100%) rename patches/unapplied/server/{0091-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch => 0101-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch} (100%) rename patches/unapplied/server/{0092-LootTable-API-and-replenishable-lootables.patch => 0102-LootTable-API-and-replenishable-lootables.patch} (100%) rename patches/unapplied/server/{0093-System-property-for-disabling-watchdoge.patch => 0103-System-property-for-disabling-watchdoge.patch} (100%) rename patches/unapplied/server/{0094-Async-GameProfileCache-saving.patch => 0104-Async-GameProfileCache-saving.patch} (100%) rename patches/unapplied/server/{0095-Optional-TNT-doesn-t-move-in-water.patch => 0105-Optional-TNT-doesn-t-move-in-water.patch} (100%) rename patches/unapplied/server/{0096-Faster-redstone-torch-rapid-clock-removal.patch => 0106-Faster-redstone-torch-rapid-clock-removal.patch} (100%) rename patches/unapplied/server/{0097-Add-server-name-parameter.patch => 0107-Add-server-name-parameter.patch} (100%) rename patches/unapplied/server/{0098-Fix-global-sound-handling.patch => 0108-Fix-global-sound-handling.patch} (100%) rename patches/unapplied/server/{0099-Avoid-blocking-on-Network-Manager-creation.patch => 0109-Avoid-blocking-on-Network-Manager-creation.patch} (100%) rename patches/unapplied/server/{0100-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch => 0110-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch} (100%) rename patches/unapplied/server/{0101-Add-setting-for-proxy-online-mode-status.patch => 0111-Add-setting-for-proxy-online-mode-status.patch} (100%) rename patches/unapplied/server/{0102-Optimise-BlockState-s-hashCode-equals.patch => 0112-Optimise-BlockState-s-hashCode-equals.patch} (100%) rename patches/unapplied/server/{0103-Configurable-packet-in-spam-threshold.patch => 0113-Configurable-packet-in-spam-threshold.patch} (100%) rename patches/unapplied/server/{0104-Configurable-flying-kick-messages.patch => 0114-Configurable-flying-kick-messages.patch} (100%) rename patches/unapplied/server/{0105-Add-EntityZapEvent.patch => 0115-Add-EntityZapEvent.patch} (100%) rename patches/unapplied/server/{0106-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch => 0116-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch} (100%) rename patches/unapplied/server/{0107-Cache-user-authenticator-threads.patch => 0117-Cache-user-authenticator-threads.patch} (100%) rename patches/unapplied/server/{0108-Allow-Reloading-of-Command-Aliases.patch => 0118-Allow-Reloading-of-Command-Aliases.patch} (100%) rename patches/unapplied/server/{0109-Add-source-to-PlayerExpChangeEvent.patch => 0119-Add-source-to-PlayerExpChangeEvent.patch} (100%) rename patches/unapplied/server/{0110-Add-ProjectileCollideEvent.patch => 0120-Add-ProjectileCollideEvent.patch} (100%) rename patches/unapplied/server/{0111-Prevent-Pathfinding-out-of-World-Border.patch => 0121-Prevent-Pathfinding-out-of-World-Border.patch} (100%) rename patches/unapplied/server/{0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch => 0122-Optimize-Level.hasChunkAt-BlockPosition-Z.patch} (100%) rename patches/unapplied/server/{0113-Bound-Treasure-Maps-to-World-Border.patch => 0123-Bound-Treasure-Maps-to-World-Border.patch} (100%) rename patches/unapplied/server/{0114-Configurable-Cartographer-Treasure-Maps.patch => 0124-Configurable-Cartographer-Treasure-Maps.patch} (100%) rename patches/unapplied/server/{0115-Add-API-methods-to-control-if-armor-stands-can-move.patch => 0125-Add-API-methods-to-control-if-armor-stands-can-move.patch} (100%) rename patches/unapplied/server/{0116-String-based-Action-Bar-API.patch => 0126-String-based-Action-Bar-API.patch} (100%) rename patches/unapplied/server/{0117-Properly-fix-item-duplication-bug.patch => 0127-Properly-fix-item-duplication-bug.patch} (100%) rename patches/unapplied/server/{0118-Firework-API-s.patch => 0128-Firework-API-s.patch} (100%) rename patches/unapplied/server/{0119-PlayerTeleportEndGatewayEvent.patch => 0129-PlayerTeleportEndGatewayEvent.patch} (100%) rename patches/unapplied/server/{0120-Provide-E-TE-Chunk-count-stat-methods.patch => 0130-Provide-E-TE-Chunk-count-stat-methods.patch} (100%) rename patches/unapplied/server/{0121-Enforce-Sync-Player-Saves.patch => 0131-Enforce-Sync-Player-Saves.patch} (100%) rename patches/unapplied/server/{0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch => 0132-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch} (100%) rename patches/unapplied/server/{0123-Cap-Entity-Collisions.patch => 0133-Cap-Entity-Collisions.patch} (100%) rename patches/unapplied/server/{0124-Remove-CraftScheduler-Async-Task-Debugger.patch => 0134-Remove-CraftScheduler-Async-Task-Debugger.patch} (100%) rename patches/unapplied/server/{0125-Properly-handle-async-calls-to-restart-the-server.patch => 0135-Properly-handle-async-calls-to-restart-the-server.patch} (100%) rename patches/unapplied/server/{0126-Add-option-to-make-parrots-stay-on-shoulders-despite.patch => 0136-Add-option-to-make-parrots-stay-on-shoulders-despite.patch} (100%) rename patches/unapplied/server/{0127-Add-configuration-option-to-prevent-player-names-fro.patch => 0137-Add-configuration-option-to-prevent-player-names-fro.patch} (100%) rename patches/unapplied/server/{0129-provide-a-configurable-option-to-disable-creeper-lin.patch => 0139-provide-a-configurable-option-to-disable-creeper-lin.patch} (100%) rename patches/unapplied/server/{0130-Item-canEntityPickup.patch => 0140-Item-canEntityPickup.patch} (100%) rename patches/unapplied/server/{0131-PlayerPickupItemEvent-setFlyAtPlayer.patch => 0141-PlayerPickupItemEvent-setFlyAtPlayer.patch} (100%) rename patches/unapplied/server/{0132-PlayerAttemptPickupItemEvent.patch => 0142-PlayerAttemptPickupItemEvent.patch} (100%) rename patches/unapplied/server/{0133-Do-not-submit-profile-lookups-to-worldgen-threads.patch => 0143-Do-not-submit-profile-lookups-to-worldgen-threads.patch} (100%) rename patches/unapplied/server/{0134-Basic-PlayerProfile-API.patch => 0144-Basic-PlayerProfile-API.patch} (100%) rename patches/unapplied/server/{0135-Add-UnknownCommandEvent.patch => 0145-Add-UnknownCommandEvent.patch} (100%) rename patches/unapplied/server/{0136-Shoulder-Entities-Release-API.patch => 0146-Shoulder-Entities-Release-API.patch} (100%) rename patches/unapplied/server/{0137-Profile-Lookup-Events.patch => 0147-Profile-Lookup-Events.patch} (100%) rename patches/unapplied/server/{0138-Block-player-logins-during-server-shutdown.patch => 0148-Block-player-logins-during-server-shutdown.patch} (100%) rename patches/unapplied/server/{0139-Entity-fromMobSpawner.patch => 0149-Entity-fromMobSpawner.patch} (100%) rename patches/unapplied/server/{0140-Improve-the-Saddle-API-for-Horses.patch => 0150-Improve-the-Saddle-API-for-Horses.patch} (100%) rename patches/unapplied/server/{0141-ensureServerConversions-API.patch => 0151-ensureServerConversions-API.patch} (100%) rename patches/unapplied/server/{0142-Implement-getI18NDisplayName.patch => 0152-Implement-getI18NDisplayName.patch} (100%) rename patches/unapplied/server/{0143-ProfileWhitelistVerifyEvent.patch => 0153-ProfileWhitelistVerifyEvent.patch} (100%) rename patches/unapplied/server/{0144-Fix-this-stupid-bullshit.patch => 0154-Fix-this-stupid-bullshit.patch} (100%) rename patches/unapplied/server/{0145-LivingEntity-setKiller.patch => 0155-LivingEntity-setKiller.patch} (100%) rename patches/unapplied/server/{0146-Ocelot-despawns-should-honor-nametags-and-leash.patch => 0156-Ocelot-despawns-should-honor-nametags-and-leash.patch} (100%) rename patches/unapplied/server/{0147-Reset-spawner-timer-when-spawner-event-is-cancelled.patch => 0157-Reset-spawner-timer-when-spawner-event-is-cancelled.patch} (100%) rename patches/unapplied/server/{0148-Allow-specifying-a-custom-authentication-servers-dow.patch => 0158-Allow-specifying-a-custom-authentication-servers-dow.patch} (100%) rename patches/unapplied/server/{0151-Add-PlayerJumpEvent.patch => 0161-Add-PlayerJumpEvent.patch} (100%) rename patches/unapplied/server/{0152-handle-ServerboundKeepAlivePacket-async.patch => 0162-handle-ServerboundKeepAlivePacket-async.patch} (100%) rename patches/unapplied/server/{0153-Expose-client-protocol-version-and-virtual-host.patch => 0163-Expose-client-protocol-version-and-virtual-host.patch} (100%) rename patches/unapplied/server/{0154-revert-serverside-behavior-of-keepalives.patch => 0164-revert-serverside-behavior-of-keepalives.patch} (100%) rename patches/unapplied/server/{0155-Send-attack-SoundEffects-only-to-players-who-can-see.patch => 0165-Send-attack-SoundEffects-only-to-players-who-can-see.patch} (100%) rename patches/unapplied/server/{0156-Add-PlayerArmorChangeEvent.patch => 0166-Add-PlayerArmorChangeEvent.patch} (100%) rename patches/unapplied/server/{0157-Prevent-logins-from-being-processed-when-the-player-.patch => 0167-Prevent-logins-from-being-processed-when-the-player-.patch} (100%) rename patches/unapplied/server/{0158-Fix-MC-117075-Block-entity-unload-lag-spike.patch => 0168-Fix-MC-117075-Block-entity-unload-lag-spike.patch} (100%) rename patches/unapplied/server/{0159-use-CB-BlockState-implementations-for-captured-block.patch => 0169-use-CB-BlockState-implementations-for-captured-block.patch} (100%) rename patches/unapplied/server/{0160-API-to-get-a-BlockState-without-a-snapshot.patch => 0170-API-to-get-a-BlockState-without-a-snapshot.patch} (100%) rename patches/unapplied/server/{0161-AsyncTabCompleteEvent.patch => 0171-AsyncTabCompleteEvent.patch} (100%) rename patches/unapplied/server/{0162-PlayerPickupExperienceEvent.patch => 0172-PlayerPickupExperienceEvent.patch} (100%) rename patches/unapplied/server/{0163-Ability-to-apply-mending-to-XP-API.patch => 0173-Ability-to-apply-mending-to-XP-API.patch} (100%) rename patches/unapplied/server/{0164-PlayerNaturallySpawnCreaturesEvent.patch => 0174-PlayerNaturallySpawnCreaturesEvent.patch} (100%) rename patches/unapplied/server/{0165-Add-setPlayerProfile-API-for-Skulls.patch => 0175-Add-setPlayerProfile-API-for-Skulls.patch} (100%) rename patches/unapplied/server/{0166-PreCreatureSpawnEvent.patch => 0176-PreCreatureSpawnEvent.patch} (100%) rename patches/unapplied/server/{0167-Fill-Profile-Property-Events.patch => 0177-Fill-Profile-Property-Events.patch} (100%) rename patches/unapplied/server/{0168-Add-PlayerAdvancementCriterionGrantEvent.patch => 0178-Add-PlayerAdvancementCriterionGrantEvent.patch} (100%) rename patches/unapplied/server/{0169-Add-ArmorStand-Item-Meta.patch => 0179-Add-ArmorStand-Item-Meta.patch} (100%) rename patches/unapplied/server/{0170-Extend-Player-Interact-cancellation.patch => 0180-Extend-Player-Interact-cancellation.patch} (100%) rename patches/unapplied/server/{0171-Tameable-getOwnerUniqueId-API.patch => 0181-Tameable-getOwnerUniqueId-API.patch} (100%) rename patches/unapplied/server/{0172-Toggleable-player-crits.patch => 0182-Toggleable-player-crits.patch} (100%) rename patches/unapplied/server/{0173-Disable-Explicit-Network-Manager-Flushing.patch => 0183-Disable-Explicit-Network-Manager-Flushing.patch} (100%) rename patches/unapplied/server/{0174-Implement-extended-PaperServerListPingEvent.patch => 0184-Implement-extended-PaperServerListPingEvent.patch} (100%) rename patches/unapplied/server/{0175-Add-more-fields-to-AsyncPreLoginEvent.patch => 0185-Add-more-fields-to-AsyncPreLoginEvent.patch} (100%) rename patches/unapplied/server/{0176-Player.setPlayerProfile-API.patch => 0186-Player.setPlayerProfile-API.patch} (100%) rename patches/unapplied/server/{0177-getPlayerUniqueId-API.patch => 0187-getPlayerUniqueId-API.patch} (100%) rename patches/unapplied/server/{0178-Improved-Async-Task-Scheduler.patch => 0188-Improved-Async-Task-Scheduler.patch} (100%) rename patches/unapplied/server/{0179-Make-legacy-ping-handler-more-reliable.patch => 0189-Make-legacy-ping-handler-more-reliable.patch} (100%) rename patches/unapplied/server/{0180-Call-PaperServerListPingEvent-for-legacy-pings.patch => 0190-Call-PaperServerListPingEvent-for-legacy-pings.patch} (100%) rename patches/unapplied/server/{0181-Flag-to-disable-the-channel-limit.patch => 0191-Flag-to-disable-the-channel-limit.patch} (100%) rename patches/unapplied/server/{0182-Add-openSign-method-to-HumanEntity.patch => 0192-Add-openSign-method-to-HumanEntity.patch} (100%) rename patches/unapplied/server/{0183-Configurable-sprint-interruption-on-attack.patch => 0193-Configurable-sprint-interruption-on-attack.patch} (100%) rename patches/unapplied/server/{0184-EndermanEscapeEvent.patch => 0194-EndermanEscapeEvent.patch} (100%) rename patches/unapplied/server/{0185-Enderman.teleportRandomly.patch => 0195-Enderman.teleportRandomly.patch} (100%) rename patches/unapplied/server/{0186-Block-Enderpearl-Travel-Exploit.patch => 0196-Block-Enderpearl-Travel-Exploit.patch} (100%) rename patches/unapplied/server/{0187-Expand-World.spawnParticle-API-and-add-Builder.patch => 0197-Expand-World.spawnParticle-API-and-add-Builder.patch} (100%) rename patches/unapplied/server/{0188-Fix-exploit-that-allowed-colored-signs-to-be-created.patch => 0198-Fix-exploit-that-allowed-colored-signs-to-be-created.patch} (100%) rename patches/unapplied/server/{0189-EndermanAttackPlayerEvent.patch => 0199-EndermanAttackPlayerEvent.patch} (100%) rename patches/unapplied/server/{0190-WitchConsumePotionEvent.patch => 0200-WitchConsumePotionEvent.patch} (100%) rename patches/unapplied/server/{0191-WitchThrowPotionEvent.patch => 0201-WitchThrowPotionEvent.patch} (100%) rename patches/unapplied/server/{0192-WitchReadyPotionEvent.patch => 0202-WitchReadyPotionEvent.patch} (100%) rename patches/unapplied/server/{0193-ItemStack-getMaxItemUseDuration.patch => 0203-ItemStack-getMaxItemUseDuration.patch} (100%) rename patches/unapplied/server/{0194-Add-EntityTeleportEndGatewayEvent.patch => 0204-Add-EntityTeleportEndGatewayEvent.patch} (100%) rename patches/unapplied/server/{0195-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch => 0205-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch} (100%) rename patches/unapplied/server/{0196-Fix-CraftEntity-hashCode.patch => 0206-Fix-CraftEntity-hashCode.patch} (100%) rename patches/unapplied/server/{0197-Configurable-LootPool-luck-formula.patch => 0207-Configurable-LootPool-luck-formula.patch} (100%) rename patches/unapplied/server/{0198-Print-Error-details-when-failing-to-save-player-data.patch => 0208-Print-Error-details-when-failing-to-save-player-data.patch} (100%) rename patches/unapplied/server/{0199-Make-shield-blocking-delay-configurable.patch => 0209-Make-shield-blocking-delay-configurable.patch} (100%) rename patches/unapplied/server/{0200-Improve-EntityShootBowEvent.patch => 0210-Improve-EntityShootBowEvent.patch} (100%) rename patches/unapplied/server/{0201-PlayerReadyArrowEvent.patch => 0211-PlayerReadyArrowEvent.patch} (100%) rename patches/unapplied/server/{0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch => 0212-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch} (100%) rename patches/unapplied/server/{0203-Expand-Explosions-API.patch => 0213-Expand-Explosions-API.patch} (100%) rename patches/unapplied/server/{0204-LivingEntity-Active-Item-API.patch => 0214-LivingEntity-Active-Item-API.patch} (100%) rename patches/unapplied/server/{0205-RangedEntity-API.patch => 0215-RangedEntity-API.patch} (100%) rename patches/unapplied/server/{0206-Add-config-to-disable-ender-dragon-legacy-check.patch => 0216-Add-config-to-disable-ender-dragon-legacy-check.patch} (100%) rename patches/unapplied/server/{0207-Implement-World.getEntity-UUID-API.patch => 0217-Implement-World.getEntity-UUID-API.patch} (100%) rename patches/unapplied/server/{0208-InventoryCloseEvent-Reason-API.patch => 0218-InventoryCloseEvent-Reason-API.patch} (100%) rename patches/unapplied/server/{0209-Vex-get-setSummoner-API.patch => 0219-Vex-get-setSummoner-API.patch} (100%) rename patches/unapplied/server/{0210-Refresh-player-inventory-when-cancelling-PlayerInter.patch => 0220-Refresh-player-inventory-when-cancelling-PlayerInter.patch} (100%) rename patches/unapplied/server/{0212-add-more-information-to-Entity.toString.patch => 0222-add-more-information-to-Entity.toString.patch} (100%) rename patches/unapplied/server/{0213-EnderDragon-Events.patch => 0223-EnderDragon-Events.patch} (100%) rename patches/unapplied/server/{0214-PlayerElytraBoostEvent.patch => 0224-PlayerElytraBoostEvent.patch} (100%) rename patches/unapplied/server/{0215-PlayerLaunchProjectileEvent.patch => 0225-PlayerLaunchProjectileEvent.patch} (100%) rename patches/unapplied/server/{0216-Improve-BlockPosition-inlining.patch => 0226-Improve-BlockPosition-inlining.patch} (100%) rename patches/unapplied/server/{0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch => 0227-Option-to-prevent-armor-stands-from-doing-entity-loo.patch} (100%) rename patches/unapplied/server/{0218-Vanished-players-don-t-have-rights.patch => 0228-Vanished-players-don-t-have-rights.patch} (100%) rename patches/unapplied/server/{0219-Allow-disabling-armor-stand-ticking.patch => 0229-Allow-disabling-armor-stand-ticking.patch} (100%) rename patches/unapplied/server/{0220-SkeletonHorse-Additions.patch => 0230-SkeletonHorse-Additions.patch} (100%) rename patches/unapplied/server/{0221-Don-t-call-getItemMeta-on-hasItemMeta.patch => 0231-Don-t-call-getItemMeta-on-hasItemMeta.patch} (100%) rename patches/unapplied/server/{0222-Expand-ArmorStand-API.patch => 0232-Expand-ArmorStand-API.patch} (100%) rename patches/unapplied/server/{0223-AnvilDamageEvent.patch => 0233-AnvilDamageEvent.patch} (100%) rename patches/unapplied/server/{0224-Add-TNTPrimeEvent.patch => 0234-Add-TNTPrimeEvent.patch} (100%) rename patches/unapplied/server/{0225-Break-up-and-make-tab-spam-limits-configurable.patch => 0235-Break-up-and-make-tab-spam-limits-configurable.patch} (100%) rename patches/unapplied/server/{0226-Fix-NBT-type-issues.patch => 0236-Fix-NBT-type-issues.patch} (100%) rename patches/unapplied/server/{0227-Remove-unnecessary-itemmeta-handling.patch => 0237-Remove-unnecessary-itemmeta-handling.patch} (100%) rename patches/unapplied/server/{0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch => 0238-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch} (100%) rename patches/unapplied/server/{0229-Add-Early-Warning-Feature-to-WatchDog.patch => 0239-Add-Early-Warning-Feature-to-WatchDog.patch} (100%) rename patches/unapplied/server/{0230-Use-ConcurrentHashMap-in-JsonList.patch => 0240-Use-ConcurrentHashMap-in-JsonList.patch} (100%) rename patches/unapplied/server/{0231-Use-a-Queue-for-Queueing-Commands.patch => 0241-Use-a-Queue-for-Queueing-Commands.patch} (100%) rename patches/unapplied/server/{0232-Ability-to-get-block-entities-from-a-chunk-without-s.patch => 0242-Ability-to-get-block-entities-from-a-chunk-without-s.patch} (100%) rename patches/unapplied/server/{0233-Optimize-BlockPosition-helper-methods.patch => 0243-Optimize-BlockPosition-helper-methods.patch} (100%) rename patches/unapplied/server/{0234-Restore-vanilla-default-mob-spawn-range-and-water-an.patch => 0244-Restore-vanilla-default-mob-spawn-range-and-water-an.patch} (100%) rename patches/unapplied/server/{0235-Slime-Pathfinder-Events.patch => 0245-Slime-Pathfinder-Events.patch} (100%) rename patches/unapplied/server/{0236-Configurable-speed-for-water-flowing-over-lava.patch => 0246-Configurable-speed-for-water-flowing-over-lava.patch} (100%) rename patches/unapplied/server/{0237-Optimize-CraftBlockData-Creation.patch => 0247-Optimize-CraftBlockData-Creation.patch} (100%) rename patches/unapplied/server/{0238-Optimize-MappedRegistry.patch => 0248-Optimize-MappedRegistry.patch} (100%) rename patches/unapplied/server/{0239-Add-PhantomPreSpawnEvent.patch => 0249-Add-PhantomPreSpawnEvent.patch} (100%) rename patches/unapplied/server/{0240-Add-More-Creeper-API.patch => 0250-Add-More-Creeper-API.patch} (100%) rename patches/unapplied/server/{0241-Inventory-removeItemAnySlot.patch => 0251-Inventory-removeItemAnySlot.patch} (100%) rename patches/unapplied/server/{0242-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch => 0252-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch} (100%) rename patches/unapplied/server/{0243-Add-ray-tracing-methods-to-LivingEntity.patch => 0253-Add-ray-tracing-methods-to-LivingEntity.patch} (100%) rename patches/unapplied/server/{0244-Expose-attack-cooldown-methods-for-Player.patch => 0254-Expose-attack-cooldown-methods-for-Player.patch} (100%) rename patches/unapplied/server/{0245-Improve-death-events.patch => 0255-Improve-death-events.patch} (100%) rename patches/unapplied/server/{0246-Allow-chests-to-be-placed-with-NBT-data.patch => 0256-Allow-chests-to-be-placed-with-NBT-data.patch} (100%) rename patches/unapplied/server/{0247-Mob-Pathfinding-API.patch => 0257-Mob-Pathfinding-API.patch} (100%) rename patches/unapplied/server/{0248-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch => 0258-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch} (100%) rename patches/unapplied/server/{0249-Prevent-various-interactions-from-causing-chunk-load.patch => 0259-Prevent-various-interactions-from-causing-chunk-load.patch} (100%) rename patches/unapplied/server/{0250-Prevent-mob-spawning-from-loading-generating-chunks.patch => 0260-Prevent-mob-spawning-from-loading-generating-chunks.patch} (100%) rename patches/unapplied/server/{0251-Implement-furnace-cook-speed-multiplier-API.patch => 0261-Implement-furnace-cook-speed-multiplier-API.patch} (100%) rename patches/unapplied/server/{0252-Honor-EntityAgeable.ageLock.patch => 0262-Honor-EntityAgeable.ageLock.patch} (100%) rename patches/unapplied/server/{0253-Configurable-connection-throttle-kick-message.patch => 0263-Configurable-connection-throttle-kick-message.patch} (100%) rename patches/unapplied/server/{0254-Prevent-chunk-loading-from-Fluid-Flowing.patch => 0264-Prevent-chunk-loading-from-Fluid-Flowing.patch} (100%) rename patches/unapplied/server/{0255-Hook-into-CB-plugin-rewrites.patch => 0265-Hook-into-CB-plugin-rewrites.patch} (100%) rename patches/unapplied/server/{0256-PreSpawnerSpawnEvent.patch => 0266-PreSpawnerSpawnEvent.patch} (100%) rename patches/unapplied/server/{0257-Add-LivingEntity-getTargetEntity.patch => 0267-Add-LivingEntity-getTargetEntity.patch} (100%) rename patches/unapplied/server/{0258-Add-sun-related-API.patch => 0268-Add-sun-related-API.patch} (100%) rename patches/unapplied/server/{0259-Catch-JsonParseException-in-entity-and-block-entity-.patch => 0269-Catch-JsonParseException-in-entity-and-block-entity-.patch} (100%) rename patches/unapplied/server/{0260-Turtle-API.patch => 0270-Turtle-API.patch} (100%) rename patches/unapplied/server/{0261-Call-player-spectator-target-events-and-improve-impl.patch => 0271-Call-player-spectator-target-events-and-improve-impl.patch} (100%) rename patches/unapplied/server/{0262-Add-more-Witch-API.patch => 0272-Add-more-Witch-API.patch} (100%) rename patches/unapplied/server/{0263-Check-Drowned-for-Villager-Aggression-Config.patch => 0273-Check-Drowned-for-Villager-Aggression-Config.patch} (100%) rename patches/unapplied/server/{0264-Add-option-to-prevent-players-from-moving-into-unloa.patch => 0274-Add-option-to-prevent-players-from-moving-into-unloa.patch} (100%) rename patches/unapplied/server/{0265-Reset-players-airTicks-on-respawn.patch => 0275-Reset-players-airTicks-on-respawn.patch} (100%) rename patches/unapplied/server/{0266-Don-t-sleep-after-profile-lookups-if-not-needed.patch => 0276-Don-t-sleep-after-profile-lookups-if-not-needed.patch} (100%) rename patches/unapplied/server/{0267-Improve-Server-Thread-Pool-and-Thread-Priorities.patch => 0277-Improve-Server-Thread-Pool-and-Thread-Priorities.patch} (100%) rename patches/unapplied/server/{0268-Optimize-World-Time-Updates.patch => 0278-Optimize-World-Time-Updates.patch} (100%) rename patches/unapplied/server/{0269-Restore-custom-InventoryHolder-support.patch => 0279-Restore-custom-InventoryHolder-support.patch} (100%) rename patches/unapplied/server/{0270-Fix-SpongeAbsortEvent-handling.patch => 0280-Fix-SpongeAbsortEvent-handling.patch} (100%) rename patches/unapplied/server/{0271-Don-t-allow-digging-into-unloaded-chunks.patch => 0281-Don-t-allow-digging-into-unloaded-chunks.patch} (100%) rename patches/unapplied/server/{0272-Make-the-default-permission-message-configurable.patch => 0282-Make-the-default-permission-message-configurable.patch} (100%) rename patches/unapplied/server/{0273-Handle-Large-Packets-disconnecting-client.patch => 0283-Handle-Large-Packets-disconnecting-client.patch} (100%) rename patches/unapplied/server/{0274-force-entity-dismount-during-teleportation.patch => 0284-force-entity-dismount-during-teleportation.patch} (100%) rename patches/unapplied/server/{0275-Add-more-Zombie-API.patch => 0285-Add-more-Zombie-API.patch} (100%) rename patches/unapplied/server/{0276-Book-Size-Limits.patch => 0286-Book-Size-Limits.patch} (100%) rename patches/unapplied/server/{0277-Add-PlayerConnectionCloseEvent.patch => 0287-Add-PlayerConnectionCloseEvent.patch} (100%) rename patches/unapplied/server/{0278-Replace-OfflinePlayer-getLastPlayed.patch => 0288-Replace-OfflinePlayer-getLastPlayed.patch} (100%) rename patches/unapplied/server/{0279-Workaround-for-vehicle-tracking-issue-on-disconnect.patch => 0289-Workaround-for-vehicle-tracking-issue-on-disconnect.patch} (100%) rename patches/unapplied/server/{0280-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch => 0290-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch} (100%) rename patches/unapplied/server/{0281-BlockDestroyEvent.patch => 0291-BlockDestroyEvent.patch} (100%) rename patches/unapplied/server/{0282-Async-command-map-building.patch => 0292-Async-command-map-building.patch} (100%) rename patches/unapplied/server/{0283-Brigadier-Mojang-API.patch => 0293-Brigadier-Mojang-API.patch} (100%) rename patches/unapplied/server/{0284-Improve-exact-choice-recipe-ingredients.patch => 0294-Improve-exact-choice-recipe-ingredients.patch} (100%) rename patches/unapplied/server/{0285-Limit-Client-Sign-length-more.patch => 0295-Limit-Client-Sign-length-more.patch} (100%) rename patches/unapplied/server/{0286-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch => 0296-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch} (100%) rename patches/unapplied/server/{0287-Entity-getEntitySpawnReason.patch => 0297-Entity-getEntitySpawnReason.patch} (100%) rename patches/unapplied/server/{0288-Fire-event-on-GS4-query.patch => 0298-Fire-event-on-GS4-query.patch} (100%) rename patches/unapplied/server/{0289-Add-PlayerPostRespawnEvent.patch => 0299-Add-PlayerPostRespawnEvent.patch} (100%) rename patches/unapplied/server/{0290-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch => 0300-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch} (100%) rename patches/unapplied/server/{0291-Server-Tick-Events.patch => 0301-Server-Tick-Events.patch} (100%) rename patches/unapplied/server/{0292-PlayerDeathEvent-getItemsToKeep.patch => 0302-PlayerDeathEvent-getItemsToKeep.patch} (100%) rename patches/unapplied/server/{0293-Optimize-Captured-BlockEntity-Lookup.patch => 0303-Optimize-Captured-BlockEntity-Lookup.patch} (100%) rename patches/unapplied/server/{0294-Add-Heightmap-API.patch => 0304-Add-Heightmap-API.patch} (100%) rename patches/unapplied/server/{0295-Mob-Spawner-API-Enhancements.patch => 0305-Mob-Spawner-API-Enhancements.patch} (100%) rename patches/unapplied/server/{0296-Fix-CB-call-to-changed-postToMainThread-method.patch => 0306-Fix-CB-call-to-changed-postToMainThread-method.patch} (100%) rename patches/unapplied/server/{0297-Fix-sounds-when-item-frames-are-modified-MC-123450.patch => 0307-Fix-sounds-when-item-frames-are-modified-MC-123450.patch} (100%) rename patches/unapplied/server/{0298-Implement-CraftBlockSoundGroup.patch => 0308-Implement-CraftBlockSoundGroup.patch} (100%) rename patches/unapplied/server/{0299-Configurable-Keep-Spawn-Loaded-range-per-world.patch => 0309-Configurable-Keep-Spawn-Loaded-range-per-world.patch} (100%) rename patches/unapplied/server/{0300-Expose-the-internal-current-tick.patch => 0310-Expose-the-internal-current-tick.patch} (100%) rename patches/unapplied/server/{0301-Show-blockstate-location-if-we-failed-to-read-it.patch => 0311-Show-blockstate-location-if-we-failed-to-read-it.patch} (100%) rename patches/unapplied/server/{0302-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch => 0312-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch} (100%) rename patches/unapplied/server/{0303-Configurable-projectile-relative-velocity.patch => 0313-Configurable-projectile-relative-velocity.patch} (100%) rename patches/unapplied/server/{0304-offset-item-frame-ticking.patch => 0314-offset-item-frame-ticking.patch} (100%) rename patches/unapplied/server/{0305-Prevent-consuming-the-wrong-itemstack.patch => 0315-Prevent-consuming-the-wrong-itemstack.patch} (100%) rename patches/unapplied/server/{0306-Dont-send-unnecessary-sign-update.patch => 0316-Dont-send-unnecessary-sign-update.patch} (100%) rename patches/unapplied/server/{0307-Add-option-to-disable-pillager-patrols.patch => 0317-Add-option-to-disable-pillager-patrols.patch} (100%) rename patches/unapplied/server/{0308-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch => 0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch} (100%) rename patches/unapplied/server/{0309-MC-145656-Fix-Follow-Range-Initial-Target.patch => 0319-MC-145656-Fix-Follow-Range-Initial-Target.patch} (100%) rename patches/unapplied/server/{0310-Duplicate-UUID-Resolve-Option.patch => 0320-Duplicate-UUID-Resolve-Option.patch} (100%) rename patches/unapplied/server/{0311-PlayerDeathEvent-shouldDropExperience.patch => 0321-PlayerDeathEvent-shouldDropExperience.patch} (100%) rename patches/unapplied/server/{0312-Prevent-bees-loading-chunks-checking-hive-position.patch => 0322-Prevent-bees-loading-chunks-checking-hive-position.patch} (100%) rename patches/unapplied/server/{0313-Don-t-load-Chunks-from-Hoppers-and-other-things.patch => 0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch} (100%) rename patches/unapplied/server/{0314-Optimise-EntityGetter-getPlayerByUUID.patch => 0324-Optimise-EntityGetter-getPlayerByUUID.patch} (100%) rename patches/unapplied/server/{0315-Fix-items-not-falling-correctly.patch => 0325-Fix-items-not-falling-correctly.patch} (100%) rename patches/unapplied/server/{0316-Optimize-call-to-getFluid-for-explosions.patch => 0326-Optimize-call-to-getFluid-for-explosions.patch} (100%) rename patches/unapplied/server/{0317-Fix-last-firework-in-stack-not-having-effects-when-d.patch => 0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch} (100%) rename patches/unapplied/server/{0318-Guard-against-serializing-mismatching-chunk-coordina.patch => 0328-Guard-against-serializing-mismatching-chunk-coordina.patch} (100%) rename patches/unapplied/server/{0319-Alternative-item-despawn-rate.patch => 0329-Alternative-item-despawn-rate.patch} (100%) rename patches/unapplied/server/{0320-Tracking-Range-Improvements.patch => 0330-Tracking-Range-Improvements.patch} (100%) rename patches/unapplied/server/{0321-Fix-items-vanishing-through-end-portal.patch => 0331-Fix-items-vanishing-through-end-portal.patch} (100%) rename patches/unapplied/server/{0322-Bees-get-gravity-in-void.-Fixes-MC-167279.patch => 0332-Bees-get-gravity-in-void.-Fixes-MC-167279.patch} (100%) rename patches/unapplied/server/{0323-Improve-Block-breakNaturally-API.patch => 0333-Improve-Block-breakNaturally-API.patch} (100%) rename patches/unapplied/server/{0324-Optimise-getChunkAt-calls-for-loaded-chunks.patch => 0334-Optimise-getChunkAt-calls-for-loaded-chunks.patch} (100%) rename patches/unapplied/server/{0325-Add-debug-for-sync-chunk-loads.patch => 0335-Add-debug-for-sync-chunk-loads.patch} (100%) rename patches/unapplied/server/{0326-Improve-java-version-check.patch => 0336-Improve-java-version-check.patch} (100%) rename patches/unapplied/server/{0327-Add-ThrownEggHatchEvent.patch => 0337-Add-ThrownEggHatchEvent.patch} (100%) rename patches/unapplied/server/{0328-Entity-Jump-API.patch => 0338-Entity-Jump-API.patch} (100%) rename patches/unapplied/server/{0329-Add-option-to-nerf-pigmen-from-nether-portals.patch => 0339-Add-option-to-nerf-pigmen-from-nether-portals.patch} (100%) rename patches/unapplied/server/{0330-Make-the-GUI-graph-fancier.patch => 0340-Make-the-GUI-graph-fancier.patch} (100%) rename patches/unapplied/server/{0331-add-hand-to-BlockMultiPlaceEvent.patch => 0341-add-hand-to-BlockMultiPlaceEvent.patch} (100%) rename patches/unapplied/server/{0332-Validate-tripwire-hook-placement-before-update.patch => 0342-Validate-tripwire-hook-placement-before-update.patch} (100%) rename patches/unapplied/server/{0333-Add-option-to-allow-iron-golems-to-spawn-in-air.patch => 0343-Add-option-to-allow-iron-golems-to-spawn-in-air.patch} (100%) rename patches/unapplied/server/{0334-Configurable-chance-of-villager-zombie-infection.patch => 0344-Configurable-chance-of-villager-zombie-infection.patch} (100%) rename patches/unapplied/server/{0335-Optimise-Chunk-getFluid.patch => 0345-Optimise-Chunk-getFluid.patch} (100%) rename patches/unapplied/server/{0336-Set-spigots-verbose-world-setting-to-false-by-def.patch => 0346-Set-spigots-verbose-world-setting-to-false-by-def.patch} (100%) rename patches/unapplied/server/{0337-Add-tick-times-API-and-mspt-command.patch => 0347-Add-tick-times-API-and-mspt-command.patch} (100%) rename patches/unapplied/server/{0338-Expose-MinecraftServer-isRunning.patch => 0348-Expose-MinecraftServer-isRunning.patch} (100%) rename patches/unapplied/server/{0339-Add-Raw-Byte-ItemStack-Serialization.patch => 0349-Add-Raw-Byte-ItemStack-Serialization.patch} (100%) rename patches/unapplied/server/{0340-Pillager-patrol-spawn-settings-and-per-player-option.patch => 0350-Pillager-patrol-spawn-settings-and-per-player-option.patch} (100%) rename patches/unapplied/server/{0341-Remote-Connections-shouldn-t-hold-up-shutdown.patch => 0351-Remote-Connections-shouldn-t-hold-up-shutdown.patch} (100%) rename patches/unapplied/server/{0342-Do-not-allow-bees-to-load-chunks-for-beehives.patch => 0352-Do-not-allow-bees-to-load-chunks-for-beehives.patch} (100%) rename patches/unapplied/server/{0343-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch => 0353-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch} (100%) rename patches/unapplied/server/{0344-Don-t-tick-dead-players.patch => 0354-Don-t-tick-dead-players.patch} (100%) rename patches/unapplied/server/{0345-Dead-Player-s-shouldn-t-be-able-to-move.patch => 0355-Dead-Player-s-shouldn-t-be-able-to-move.patch} (100%) rename patches/unapplied/server/{0346-Don-t-move-existing-players-to-world-spawn.patch => 0356-Don-t-move-existing-players-to-world-spawn.patch} (100%) rename patches/unapplied/server/{0347-Optimize-Pathfinding.patch => 0357-Optimize-Pathfinding.patch} (100%) rename patches/unapplied/server/{0348-Reduce-Either-Optional-allocation.patch => 0358-Reduce-Either-Optional-allocation.patch} (100%) rename patches/unapplied/server/{0349-Reduce-memory-footprint-of-CompoundTag.patch => 0359-Reduce-memory-footprint-of-CompoundTag.patch} (100%) rename patches/unapplied/server/{0350-Prevent-opening-inventories-when-frozen.patch => 0360-Prevent-opening-inventories-when-frozen.patch} (100%) rename patches/unapplied/server/{0351-Don-t-run-entity-collision-code-if-not-needed.patch => 0361-Don-t-run-entity-collision-code-if-not-needed.patch} (100%) rename patches/unapplied/server/{0352-Implement-Player-Client-Options-API.patch => 0362-Implement-Player-Client-Options-API.patch} (100%) rename patches/unapplied/server/{0353-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch => 0363-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch} (100%) rename patches/unapplied/server/{0354-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch => 0364-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch} (100%) rename patches/unapplied/server/{0355-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch => 0365-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch} (100%) rename patches/unapplied/server/{0356-Add-PlayerAttackEntityCooldownResetEvent.patch => 0366-Add-PlayerAttackEntityCooldownResetEvent.patch} (100%) rename patches/unapplied/server/{0357-Don-t-fire-BlockFade-on-worldgen-threads.patch => 0367-Don-t-fire-BlockFade-on-worldgen-threads.patch} (100%) rename patches/unapplied/server/{0358-Add-phantom-creative-and-insomniac-controls.patch => 0368-Add-phantom-creative-and-insomniac-controls.patch} (100%) rename patches/unapplied/server/{0359-Fix-item-duplication-and-teleport-issues.patch => 0369-Fix-item-duplication-and-teleport-issues.patch} (100%) rename patches/unapplied/server/{0360-Villager-Restocks-API.patch => 0370-Villager-Restocks-API.patch} (100%) rename patches/unapplied/server/{0361-Validate-PickItem-Packet-and-kick-for-invalid.patch => 0371-Validate-PickItem-Packet-and-kick-for-invalid.patch} (100%) rename patches/unapplied/server/{0362-Expose-game-version.patch => 0372-Expose-game-version.patch} (100%) rename patches/unapplied/server/{0363-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch => 0373-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch} (100%) rename patches/unapplied/server/{0364-misc-debugging-dumps.patch => 0374-misc-debugging-dumps.patch} (100%) rename patches/unapplied/server/{0365-Prevent-teleporting-dead-entities.patch => 0375-Prevent-teleporting-dead-entities.patch} (100%) rename patches/unapplied/server/{0367-Implement-Mob-Goal-API.patch => 0377-Implement-Mob-Goal-API.patch} (100%) rename patches/unapplied/server/{0368-Add-villager-reputation-API.patch => 0378-Add-villager-reputation-API.patch} (100%) rename patches/unapplied/server/{0369-Option-for-maximum-exp-value-when-merging-orbs.patch => 0379-Option-for-maximum-exp-value-when-merging-orbs.patch} (100%) rename patches/unapplied/server/{0370-ExperienceOrbMergeEvent.patch => 0380-ExperienceOrbMergeEvent.patch} (100%) rename patches/unapplied/server/{0371-Fix-PotionEffect-ignores-icon-flag.patch => 0381-Fix-PotionEffect-ignores-icon-flag.patch} (100%) rename patches/unapplied/server/{0372-Potential-bed-API.patch => 0382-Potential-bed-API.patch} (100%) rename patches/unapplied/server/{0373-Wait-for-Async-Tasks-during-shutdown.patch => 0383-Wait-for-Async-Tasks-during-shutdown.patch} (100%) rename patches/unapplied/server/{0374-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch => 0384-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch} (100%) rename patches/unapplied/server/{0375-Ensure-safe-gateway-teleport.patch => 0385-Ensure-safe-gateway-teleport.patch} (100%) rename patches/unapplied/server/{0376-Add-option-for-console-having-all-permissions.patch => 0386-Add-option-for-console-having-all-permissions.patch} (100%) rename patches/unapplied/server/{0377-Fix-villager-trading-demand-MC-163962.patch => 0387-Fix-villager-trading-demand-MC-163962.patch} (100%) rename patches/unapplied/server/{0378-Maps-shouldn-t-load-chunks.patch => 0388-Maps-shouldn-t-load-chunks.patch} (100%) rename patches/unapplied/server/{0379-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch => 0389-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch} (100%) rename patches/unapplied/server/{0380-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch => 0390-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch} (100%) rename patches/unapplied/server/{0381-Fix-piston-physics-inconsistency-MC-188840.patch => 0391-Fix-piston-physics-inconsistency-MC-188840.patch} (100%) rename patches/unapplied/server/{0382-Fix-missing-chunks-due-to-integer-overflow.patch => 0392-Fix-missing-chunks-due-to-integer-overflow.patch} (100%) rename patches/unapplied/server/{0383-Prevent-position-desync-causing-tp-exploit.patch => 0393-Prevent-position-desync-causing-tp-exploit.patch} (100%) rename patches/unapplied/server/{0384-Inventory-getHolder-method-without-block-snapshot.patch => 0394-Inventory-getHolder-method-without-block-snapshot.patch} (100%) rename patches/unapplied/server/{0385-Add-PlayerRecipeBookClickEvent.patch => 0395-Add-PlayerRecipeBookClickEvent.patch} (100%) rename patches/unapplied/server/{0386-Hide-sync-chunk-writes-behind-flag.patch => 0396-Hide-sync-chunk-writes-behind-flag.patch} (100%) rename patches/unapplied/server/{0387-Add-permission-for-command-blocks.patch => 0397-Add-permission-for-command-blocks.patch} (100%) rename patches/unapplied/server/{0388-Ensure-Entity-position-and-AABB-are-never-invalid.patch => 0398-Ensure-Entity-position-and-AABB-are-never-invalid.patch} (100%) rename patches/unapplied/server/{0389-Fix-Per-World-Difficulty-Remembering-Difficulty.patch => 0399-Fix-Per-World-Difficulty-Remembering-Difficulty.patch} (100%) rename patches/unapplied/server/{0390-Paper-dumpitem-command.patch => 0400-Paper-dumpitem-command.patch} (100%) rename patches/unapplied/server/{0391-Improve-Legacy-Component-serialization-size.patch => 0401-Improve-Legacy-Component-serialization-size.patch} (100%) rename patches/unapplied/server/{0392-Add-Plugin-Tickets-to-API-Chunk-Methods.patch => 0402-Add-Plugin-Tickets-to-API-Chunk-Methods.patch} (100%) rename patches/unapplied/server/{0393-Add-BlockStateMeta-clearBlockState.patch => 0403-Add-BlockStateMeta-clearBlockState.patch} (100%) rename patches/unapplied/server/{0394-Support-old-UUID-format-for-NBT.patch => 0404-Support-old-UUID-format-for-NBT.patch} (100%) rename patches/unapplied/server/{0395-Convert-legacy-attributes-in-Item-Meta.patch => 0405-Convert-legacy-attributes-in-Item-Meta.patch} (100%) rename patches/unapplied/server/{0396-Do-not-accept-invalid-client-settings.patch => 0406-Do-not-accept-invalid-client-settings.patch} (100%) rename patches/unapplied/server/{0397-Improve-fix-EntityTargetLivingEntityEvent.patch => 0407-Improve-fix-EntityTargetLivingEntityEvent.patch} (100%) rename patches/unapplied/server/{0398-Add-entity-liquid-API.patch => 0408-Add-entity-liquid-API.patch} (100%) rename patches/unapplied/server/{0399-Update-itemstack-legacy-name-and-lore.patch => 0409-Update-itemstack-legacy-name-and-lore.patch} (100%) rename patches/unapplied/server/{0400-Add-PrepareResultEvent.patch => 0410-Add-PrepareResultEvent.patch} (100%) rename patches/unapplied/server/{0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch => 0411-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch} (100%) rename patches/unapplied/server/{0402-Fix-arrows-never-despawning-MC-125757.patch => 0412-Fix-arrows-never-despawning-MC-125757.patch} (100%) rename patches/unapplied/server/{0403-Thread-Safe-Vanilla-Command-permission-checking.patch => 0413-Thread-Safe-Vanilla-Command-permission-checking.patch} (100%) rename patches/unapplied/server/{0404-Fix-SPIGOT-5989.patch => 0414-Fix-SPIGOT-5989.patch} (100%) rename patches/unapplied/server/{0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0415-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (100%) rename patches/unapplied/server/{0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0416-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (100%) rename patches/unapplied/server/{0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0417-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (100%) rename patches/unapplied/server/{0408-Optimize-NetworkManager-Exception-Handling.patch => 0418-Optimize-NetworkManager-Exception-Handling.patch} (100%) rename patches/unapplied/server/{0409-Fix-some-rails-connecting-improperly.patch => 0419-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/unapplied/server/{0410-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0420-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/unapplied/server/{0411-Brand-support.patch => 0421-Brand-support.patch} (100%) rename patches/unapplied/server/{0412-Add-playPickupItemAnimation-to-LivingEntity.patch => 0422-Add-playPickupItemAnimation-to-LivingEntity.patch} (100%) rename patches/unapplied/server/{0413-Don-t-require-FACING-data.patch => 0423-Don-t-require-FACING-data.patch} (100%) rename patches/unapplied/server/{0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0424-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (100%) rename patches/unapplied/server/{0415-Add-moon-phase-API.patch => 0425-Add-moon-phase-API.patch} (100%) rename patches/unapplied/server/{0416-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0426-Do-not-let-the-server-load-chunks-from-newer-version.patch} (100%) rename patches/unapplied/server/{0417-Prevent-headless-pistons-from-being-created.patch => 0427-Prevent-headless-pistons-from-being-created.patch} (100%) rename patches/unapplied/server/{0418-Add-BellRingEvent.patch => 0428-Add-BellRingEvent.patch} (100%) rename patches/unapplied/server/{0419-Add-zombie-targets-turtle-egg-config.patch => 0429-Add-zombie-targets-turtle-egg-config.patch} (100%) rename patches/unapplied/server/{0420-Buffer-joins-to-world.patch => 0430-Buffer-joins-to-world.patch} (100%) rename patches/unapplied/server/{0421-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0431-Fix-hex-colors-not-working-in-some-kick-messages.patch} (100%) rename patches/unapplied/server/{0422-PortalCreateEvent-needs-to-know-its-entity.patch => 0432-PortalCreateEvent-needs-to-know-its-entity.patch} (100%) rename patches/unapplied/server/{0423-Add-more-Evoker-API.patch => 0433-Add-more-Evoker-API.patch} (100%) rename patches/unapplied/server/{0424-Add-methods-to-get-translation-keys.patch => 0434-Add-methods-to-get-translation-keys.patch} (100%) rename patches/unapplied/server/{0425-Create-HoverEvent-from-ItemStack-Entity.patch => 0435-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/unapplied/server/{0426-Cache-block-data-strings.patch => 0436-Cache-block-data-strings.patch} (100%) rename patches/unapplied/server/{0427-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0437-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (100%) rename patches/unapplied/server/{0428-Add-additional-open-container-api-to-HumanEntity.patch => 0438-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/unapplied/server/{0429-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0439-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/unapplied/server/{0430-Extend-block-drop-capture-to-capture-all-items-added.patch => 0440-Extend-block-drop-capture-to-capture-all-items-added.patch} (100%) rename patches/unapplied/server/{0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0441-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (100%) rename patches/unapplied/server/{0432-Lazily-track-plugin-scoreboards-by-default.patch => 0442-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/unapplied/server/{0433-Entity-isTicking.patch => 0443-Entity-isTicking.patch} (100%) rename patches/unapplied/server/{0434-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0444-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (100%) rename patches/unapplied/server/{0435-Fix-Concurrency-issue-in-ShufflingList.patch => 0445-Fix-Concurrency-issue-in-ShufflingList.patch} (100%) rename patches/unapplied/server/{0436-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0446-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (100%) rename patches/unapplied/server/{0437-Fix-for-large-move-vectors-crashing-server.patch => 0447-Fix-for-large-move-vectors-crashing-server.patch} (100%) rename patches/unapplied/server/{0438-Optimise-getType-calls.patch => 0448-Optimise-getType-calls.patch} (100%) rename patches/unapplied/server/{0439-Villager-resetOffers.patch => 0449-Villager-resetOffers.patch} (100%) rename patches/unapplied/server/{0440-Retain-block-place-order-when-capturing-blockstates.patch => 0450-Retain-block-place-order-when-capturing-blockstates.patch} (100%) rename patches/unapplied/server/{0441-Reduce-blockpos-allocation-from-pathfinding.patch => 0451-Reduce-blockpos-allocation-from-pathfinding.patch} (100%) rename patches/unapplied/server/{0442-Fix-item-locations-dropped-from-campfires.patch => 0452-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/unapplied/server/{0443-Fix-bell-block-entity-memory-leak.patch => 0453-Fix-bell-block-entity-memory-leak.patch} (100%) rename patches/unapplied/server/{0444-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0454-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/unapplied/server/{0445-Add-getOfflinePlayerIfCached-String.patch => 0455-Add-getOfflinePlayerIfCached-String.patch} (100%) rename patches/unapplied/server/{0446-Add-ignore-discounts-API.patch => 0456-Add-ignore-discounts-API.patch} (100%) rename patches/unapplied/server/{0447-Toggle-for-removing-existing-dragon.patch => 0457-Toggle-for-removing-existing-dragon.patch} (100%) rename patches/unapplied/server/{0448-Fix-client-lag-on-advancement-loading.patch => 0458-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/unapplied/server/{0449-Item-no-age-no-player-pickup.patch => 0459-Item-no-age-no-player-pickup.patch} (100%) rename patches/unapplied/server/{0450-Beacon-API-custom-effect-ranges.patch => 0460-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/unapplied/server/{0451-Add-API-for-quit-reason.patch => 0461-Add-API-for-quit-reason.patch} (100%) rename patches/unapplied/server/{0452-Add-Wandering-Trader-spawn-rate-config-options.patch => 0462-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/unapplied/server/{0453-Expose-world-spawn-angle.patch => 0463-Expose-world-spawn-angle.patch} (100%) rename patches/unapplied/server/{0454-Add-Destroy-Speed-API.patch => 0464-Add-Destroy-Speed-API.patch} (100%) rename patches/unapplied/server/{0455-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0465-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (100%) rename patches/unapplied/server/{0456-Add-LivingEntity-clearActiveItem.patch => 0466-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/unapplied/server/{0457-Add-PlayerItemCooldownEvent.patch => 0467-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/unapplied/server/{0458-Significantly-improve-performance-of-the-end-generat.patch => 0468-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/unapplied/server/{0459-More-lightning-API.patch => 0469-More-lightning-API.patch} (100%) rename patches/unapplied/server/{0460-Climbing-should-not-bypass-cramming-gamerule.patch => 0470-Climbing-should-not-bypass-cramming-gamerule.patch} (100%) rename patches/unapplied/server/{0461-Add-missing-default-perms-for-commands.patch => 0471-Add-missing-default-perms-for-commands.patch} (100%) rename patches/unapplied/server/{0462-Add-PlayerShearBlockEvent.patch => 0472-Add-PlayerShearBlockEvent.patch} (100%) rename patches/unapplied/server/{0463-Limit-recipe-packets.patch => 0473-Limit-recipe-packets.patch} (100%) rename patches/unapplied/server/{0464-Fix-CraftSound-backwards-compatibility.patch => 0474-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/unapplied/server/{0465-Player-Chunk-Load-Unload-Events.patch => 0475-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/unapplied/server/{0466-Optimize-Dynamic-get-Missing-Keys.patch => 0476-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/unapplied/server/{0467-Expose-LivingEntity-hurt-direction.patch => 0477-Expose-LivingEntity-hurt-direction.patch} (100%) rename patches/unapplied/server/{0468-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0478-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (100%) rename patches/unapplied/server/{0469-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch => 0479-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch} (100%) rename patches/unapplied/server/{0470-Add-TargetHitEvent.patch => 0480-Add-TargetHitEvent.patch} (100%) rename patches/unapplied/server/{0471-MC-4-Fix-item-position-desync.patch => 0481-MC-4-Fix-item-position-desync.patch} (100%) rename patches/unapplied/server/{0472-Additional-Block-Material-API.patch => 0482-Additional-Block-Material-API.patch} (100%) rename patches/unapplied/server/{0473-Fix-harming-potion-dupe.patch => 0483-Fix-harming-potion-dupe.patch} (100%) rename patches/unapplied/server/{0474-API-to-get-Material-from-Boats-and-Minecarts.patch => 0484-API-to-get-Material-from-Boats-and-Minecarts.patch} (100%) rename patches/unapplied/server/{0475-Cache-burn-durations.patch => 0485-Cache-burn-durations.patch} (100%) rename patches/unapplied/server/{0476-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0486-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/unapplied/server/{0477-Fix-Not-a-string-Map-Conversion-spam.patch => 0487-Fix-Not-a-string-Map-Conversion-spam.patch} (100%) rename patches/unapplied/server/{0478-Add-PlayerFlowerPotManipulateEvent.patch => 0488-Add-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/unapplied/server/{0479-Fix-interact-event-not-being-called-sometimes.patch => 0489-Fix-interact-event-not-being-called-sometimes.patch} (100%) rename patches/unapplied/server/{0480-Zombie-API-breaking-doors.patch => 0490-Zombie-API-breaking-doors.patch} (100%) rename patches/unapplied/server/{0481-Fix-nerfed-slime-when-splitting.patch => 0491-Fix-nerfed-slime-when-splitting.patch} (100%) rename patches/unapplied/server/{0482-Add-EntityLoadCrossbowEvent.patch => 0492-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/unapplied/server/{0483-Add-WorldGameRuleChangeEvent.patch => 0493-Add-WorldGameRuleChangeEvent.patch} (100%) rename patches/unapplied/server/{0484-Add-ServerResourcesReloadedEvent.patch => 0494-Add-ServerResourcesReloadedEvent.patch} (100%) rename patches/unapplied/server/{0485-Add-world-settings-for-mobs-picking-up-loot.patch => 0495-Add-world-settings-for-mobs-picking-up-loot.patch} (100%) rename patches/unapplied/server/{0486-Add-BlockFailedDispenseEvent.patch => 0496-Add-BlockFailedDispenseEvent.patch} (100%) rename patches/unapplied/server/{0487-Add-PlayerLecternPageChangeEvent.patch => 0497-Add-PlayerLecternPageChangeEvent.patch} (100%) rename patches/unapplied/server/{0488-Add-PlayerLoomPatternSelectEvent.patch => 0498-Add-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/unapplied/server/{0489-Configurable-door-breaking-difficulty.patch => 0499-Configurable-door-breaking-difficulty.patch} (100%) rename patches/unapplied/server/{0490-Empty-commands-shall-not-be-dispatched.patch => 0500-Empty-commands-shall-not-be-dispatched.patch} (100%) rename patches/unapplied/server/{0491-Remove-stale-POIs.patch => 0501-Remove-stale-POIs.patch} (100%) rename patches/unapplied/server/{0492-Fix-villager-boat-exploit.patch => 0502-Fix-villager-boat-exploit.patch} (100%) rename patches/unapplied/server/{0493-Add-sendOpLevel-API.patch => 0503-Add-sendOpLevel-API.patch} (100%) rename patches/unapplied/server/{0494-TODO-Registry-Modification-API.patch => 0504-TODO-Registry-Modification-API.patch} (100%) rename patches/unapplied/server/{0495-Add-StructuresLocateEvent.patch => 0505-Add-StructuresLocateEvent.patch} (100%) rename patches/unapplied/server/{0496-Collision-option-for-requiring-a-player-participant.patch => 0506-Collision-option-for-requiring-a-player-participant.patch} (100%) rename patches/unapplied/server/{0497-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0507-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/unapplied/server/{0498-Return-chat-component-with-empty-text-instead-of-thr.patch => 0508-Return-chat-component-with-empty-text-instead-of-thr.patch} (100%) rename patches/unapplied/server/{0499-Make-schedule-command-per-world.patch => 0509-Make-schedule-command-per-world.patch} (100%) rename patches/unapplied/server/{0500-Configurable-max-leash-distance.patch => 0510-Configurable-max-leash-distance.patch} (100%) rename patches/unapplied/server/{0501-Add-BlockPreDispenseEvent.patch => 0511-Add-BlockPreDispenseEvent.patch} (100%) rename patches/unapplied/server/{0502-Add-PlayerChangeBeaconEffectEvent.patch => 0512-Add-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/unapplied/server/{0503-Add-toggle-for-always-placing-the-dragon-egg.patch => 0513-Add-toggle-for-always-placing-the-dragon-egg.patch} (100%) rename patches/unapplied/server/{0504-Add-PlayerStonecutterRecipeSelectEvent.patch => 0514-Add-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/unapplied/server/{0505-Expand-EntityUnleashEvent.patch => 0515-Expand-EntityUnleashEvent.patch} (100%) rename patches/unapplied/server/{0506-Reset-shield-blocking-on-dimension-change.patch => 0516-Reset-shield-blocking-on-dimension-change.patch} (100%) rename patches/unapplied/server/{0507-Add-DragonEggFormEvent.patch => 0517-Add-DragonEggFormEvent.patch} (100%) rename patches/unapplied/server/{0508-Add-EntityMoveEvent.patch => 0518-Add-EntityMoveEvent.patch} (100%) rename patches/unapplied/server/{0509-added-option-to-disable-pathfinding-updates-on-block.patch => 0519-added-option-to-disable-pathfinding-updates-on-block.patch} (100%) rename patches/unapplied/server/{0510-Inline-shift-direction-fields.patch => 0520-Inline-shift-direction-fields.patch} (100%) rename patches/unapplied/server/{0511-Allow-adding-items-to-BlockDropItemEvent.patch => 0521-Allow-adding-items-to-BlockDropItemEvent.patch} (100%) rename patches/unapplied/server/{0512-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0522-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/unapplied/server/{0513-living-entity-allow-attribute-registration.patch => 0523-living-entity-allow-attribute-registration.patch} (100%) rename patches/unapplied/server/{0514-fix-dead-slime-setSize-invincibility.patch => 0524-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/unapplied/server/{0515-Merchant-getRecipes-should-return-an-immutable-list.patch => 0525-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/unapplied/server/{0516-Expose-Tracked-Players.patch => 0526-Expose-Tracked-Players.patch} (100%) rename patches/unapplied/server/{0517-Improve-ServerGUI.patch => 0527-Improve-ServerGUI.patch} (100%) rename patches/unapplied/server/{0518-fix-converting-txt-to-json-file.patch => 0528-fix-converting-txt-to-json-file.patch} (100%) rename patches/unapplied/server/{0519-Add-worldborder-events.patch => 0529-Add-worldborder-events.patch} (100%) rename patches/unapplied/server/{0520-Add-PlayerNameEntityEvent.patch => 0530-Add-PlayerNameEntityEvent.patch} (100%) rename patches/unapplied/server/{0521-Prevent-grindstones-from-overstacking-items.patch => 0531-Prevent-grindstones-from-overstacking-items.patch} (100%) rename patches/unapplied/server/{0522-Add-recipe-to-cook-events.patch => 0532-Add-recipe-to-cook-events.patch} (100%) rename patches/unapplied/server/{0523-Add-Block-isValidTool.patch => 0533-Add-Block-isValidTool.patch} (100%) rename patches/unapplied/server/{0524-Allow-using-signs-inside-spawn-protection.patch => 0534-Allow-using-signs-inside-spawn-protection.patch} (100%) rename patches/unapplied/server/{0525-Expand-world-key-API.patch => 0535-Expand-world-key-API.patch} (100%) rename patches/unapplied/server/{0526-Add-fast-alternative-constructor-for-Rotations.patch => 0536-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/unapplied/server/{0527-Item-Rarity-API.patch => 0537-Item-Rarity-API.patch} (100%) rename patches/unapplied/server/{0528-Drop-carried-item-when-player-has-disconnected.patch => 0538-Drop-carried-item-when-player-has-disconnected.patch} (100%) rename patches/unapplied/server/{0529-forced-whitelist-use-configurable-kick-message.patch => 0539-forced-whitelist-use-configurable-kick-message.patch} (100%) rename patches/unapplied/server/{0530-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0540-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (100%) rename patches/unapplied/server/{0531-Expose-protocol-version.patch => 0541-Expose-protocol-version.patch} (100%) rename patches/unapplied/server/{0532-Enhance-console-tab-completions-for-brigadier-comman.patch => 0542-Enhance-console-tab-completions-for-brigadier-comman.patch} (100%) rename patches/unapplied/server/{0533-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0543-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (100%) rename patches/unapplied/server/{0534-Add-bypass-host-check.patch => 0544-Add-bypass-host-check.patch} (100%) rename patches/unapplied/server/{0535-Set-area-affect-cloud-rotation.patch => 0545-Set-area-affect-cloud-rotation.patch} (100%) rename patches/unapplied/server/{0536-add-isDeeplySleeping-to-HumanEntity.patch => 0546-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/unapplied/server/{0537-add-consumeFuel-to-FurnaceBurnEvent.patch => 0547-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/unapplied/server/{0538-add-get-set-drop-chance-to-EntityEquipment.patch => 0548-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/unapplied/server/{0539-fix-PigZombieAngerEvent-cancellation.patch => 0549-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/unapplied/server/{0540-fix-PlayerItemHeldEvent-firing-twice.patch => 0550-fix-PlayerItemHeldEvent-firing-twice.patch} (100%) rename patches/unapplied/server/{0541-Add-PlayerDeepSleepEvent.patch => 0551-Add-PlayerDeepSleepEvent.patch} (100%) rename patches/unapplied/server/{0542-More-World-API.patch => 0552-More-World-API.patch} (100%) rename patches/unapplied/server/{0543-Add-PlayerBedFailEnterEvent.patch => 0553-Add-PlayerBedFailEnterEvent.patch} (100%) rename patches/unapplied/server/{0544-Implement-methods-to-convert-between-Component-and-B.patch => 0554-Implement-methods-to-convert-between-Component-and-B.patch} (100%) rename patches/unapplied/server/{0545-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch => 0555-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch} (100%) rename patches/unapplied/server/{0546-Introduce-beacon-activation-deactivation-events.patch => 0556-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/unapplied/server/{0547-Add-Channel-initialization-listeners.patch => 0557-Add-Channel-initialization-listeners.patch} (100%) rename patches/unapplied/server/{0548-Send-empty-commands-if-tab-completion-is-disabled.patch => 0558-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/unapplied/server/{0549-Add-more-WanderingTrader-API.patch => 0559-Add-more-WanderingTrader-API.patch} (100%) rename patches/unapplied/server/{0550-Add-EntityBlockStorage-clearEntities.patch => 0560-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/unapplied/server/{0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0561-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/unapplied/server/{0552-Add-HiddenPotionEffect-API.patch => 0562-Add-HiddenPotionEffect-API.patch} (100%) rename patches/unapplied/server/{0553-Inventory-close.patch => 0563-Inventory-close.patch} (100%) rename patches/unapplied/server/{0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0564-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/unapplied/server/{0555-Add-basic-Datapack-API.patch => 0565-Add-basic-Datapack-API.patch} (100%) rename patches/unapplied/server/{0556-Add-environment-variable-to-disable-server-gui.patch => 0566-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/unapplied/server/{0557-Expand-PlayerGameModeChangeEvent.patch => 0567-Expand-PlayerGameModeChangeEvent.patch} (100%) rename patches/unapplied/server/{0558-ItemStack-repair-check-API.patch => 0568-ItemStack-repair-check-API.patch} (100%) rename patches/unapplied/server/{0559-More-Enchantment-API.patch => 0569-More-Enchantment-API.patch} (100%) rename patches/unapplied/server/{0560-Move-range-check-for-block-placing-up.patch => 0570-Move-range-check-for-block-placing-up.patch} (100%) rename patches/unapplied/server/{0561-Add-Mob-lookAt-API.patch => 0571-Add-Mob-lookAt-API.patch} (100%) rename patches/unapplied/server/{0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 0572-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/unapplied/server/{0563-Add-Unix-domain-socket-support.patch => 0573-Add-Unix-domain-socket-support.patch} (100%) rename patches/unapplied/server/{0564-Add-EntityInsideBlockEvent.patch => 0574-Add-EntityInsideBlockEvent.patch} (100%) rename patches/unapplied/server/{0565-Attributes-API-for-item-defaults.patch => 0575-Attributes-API-for-item-defaults.patch} (100%) rename patches/unapplied/server/{0566-Add-cause-to-Weather-ThunderChangeEvents.patch => 0576-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/unapplied/server/{0567-More-Lidded-Block-API.patch => 0577-More-Lidded-Block-API.patch} (100%) rename patches/unapplied/server/{0568-Limit-item-frame-cursors-on-maps.patch => 0578-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/unapplied/server/{0569-Add-PlayerKickEvent-causes.patch => 0579-Add-PlayerKickEvent-causes.patch} (100%) rename patches/unapplied/server/{0570-Add-PufferFishStateChangeEvent.patch => 0580-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/unapplied/server/{0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0581-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/unapplied/server/{0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0582-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/unapplied/server/{0573-Add-option-to-fix-items-merging-through-walls.patch => 0583-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/unapplied/server/{0574-Add-BellRevealRaiderEvent.patch => 0584-Add-BellRevealRaiderEvent.patch} (100%) rename patches/unapplied/server/{0575-Fix-invulnerable-end-crystals.patch => 0585-Fix-invulnerable-end-crystals.patch} (100%) rename patches/unapplied/server/{0576-Add-ElderGuardianAppearanceEvent.patch => 0586-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/unapplied/server/{0577-Fix-dangerous-end-portal-logic.patch => 0587-Fix-dangerous-end-portal-logic.patch} (100%) rename patches/unapplied/server/{0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0588-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/unapplied/server/{0579-Make-item-validations-configurable.patch => 0589-Make-item-validations-configurable.patch} (100%) rename patches/unapplied/server/{0580-Line-Of-Sight-Changes.patch => 0590-Line-Of-Sight-Changes.patch} (100%) rename patches/unapplied/server/{0581-add-per-world-spawn-limits.patch => 0591-add-per-world-spawn-limits.patch} (100%) rename patches/unapplied/server/{0582-Fix-potions-splash-events.patch => 0592-Fix-potions-splash-events.patch} (100%) rename patches/unapplied/server/{0583-Add-more-LimitedRegion-API.patch => 0593-Add-more-LimitedRegion-API.patch} (100%) rename patches/unapplied/server/{0584-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0594-Fix-PlayerDropItemEvent-using-wrong-item.patch} (100%) rename patches/unapplied/server/{0585-Missing-Entity-API.patch => 0595-Missing-Entity-API.patch} (100%) rename patches/unapplied/server/{0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0596-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (100%) rename patches/unapplied/server/{0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0597-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/unapplied/server/{0588-Use-getChunkIfLoadedImmediately-in-places.patch => 0598-Use-getChunkIfLoadedImmediately-in-places.patch} (100%) rename patches/unapplied/server/{0589-Fix-commands-from-signs-not-firing-command-events.patch => 0599-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/unapplied/server/{0590-Add-PlayerArmSwingEvent.patch => 0600-Add-PlayerArmSwingEvent.patch} (100%) rename patches/unapplied/server/{0591-Fix-kick-event-leave-message-not-being-sent.patch => 0601-Fix-kick-event-leave-message-not-being-sent.patch} (100%) rename patches/unapplied/server/{0592-Add-config-for-mobs-immune-to-default-effects.patch => 0602-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/unapplied/server/{0593-Don-t-apply-cramming-damage-to-players.patch => 0603-Don-t-apply-cramming-damage-to-players.patch} (100%) rename patches/unapplied/server/{0594-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0604-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/unapplied/server/{0595-Add-missing-forceDrop-toggles.patch => 0605-Add-missing-forceDrop-toggles.patch} (100%) rename patches/unapplied/server/{0596-Stinger-API.patch => 0606-Stinger-API.patch} (100%) rename patches/unapplied/server/{0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0607-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/unapplied/server/{0598-Add-System.out-err-catcher.patch => 0608-Add-System.out-err-catcher.patch} (100%) rename patches/unapplied/server/{0600-Prevent-AFK-kick-while-watching-end-credits.patch => 0610-Prevent-AFK-kick-while-watching-end-credits.patch} (100%) rename patches/unapplied/server/{0601-Allow-skipping-writing-of-comments-to-server.propert.patch => 0611-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/unapplied/server/{0602-Add-PlayerSetSpawnEvent.patch => 0612-Add-PlayerSetSpawnEvent.patch} (100%) rename patches/unapplied/server/{0603-Make-hoppers-respect-inventory-max-stack-size.patch => 0613-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/unapplied/server/{0604-Optimize-entity-tracker-passenger-checks.patch => 0614-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/unapplied/server/{0605-Config-option-for-Piglins-guarding-chests.patch => 0615-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/unapplied/server/{0606-Add-EntityDamageItemEvent.patch => 0616-Add-EntityDamageItemEvent.patch} (100%) rename patches/unapplied/server/{0607-Optimize-indirect-passenger-iteration.patch => 0617-Optimize-indirect-passenger-iteration.patch} (100%) rename patches/unapplied/server/{0608-Configurable-item-frame-map-cursor-update-interval.patch => 0618-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/unapplied/server/{0609-Clear-bucket-NBT-after-dispense.patch => 0619-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/unapplied/server/{0610-Change-EnderEye-target-without-changing-other-things.patch => 0620-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/unapplied/server/{0611-Add-BlockBreakBlockEvent.patch => 0621-Add-BlockBreakBlockEvent.patch} (100%) rename patches/unapplied/server/{0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0622-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/unapplied/server/{0613-More-CommandBlock-API.patch => 0623-More-CommandBlock-API.patch} (100%) rename patches/unapplied/server/{0614-Add-missing-team-sidebar-display-slots.patch => 0624-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/unapplied/server/{0615-Add-back-EntityPortalExitEvent.patch => 0625-Add-back-EntityPortalExitEvent.patch} (100%) rename patches/unapplied/server/{0616-Add-methods-to-find-targets-for-lightning-strikes.patch => 0626-Add-methods-to-find-targets-for-lightning-strikes.patch} (100%) rename patches/unapplied/server/{0617-Get-entity-default-attributes.patch => 0627-Get-entity-default-attributes.patch} (100%) rename patches/unapplied/server/{0618-Left-handed-API.patch => 0628-Left-handed-API.patch} (100%) rename patches/unapplied/server/{0619-Add-more-advancement-API.patch => 0629-Add-more-advancement-API.patch} (100%) rename patches/unapplied/server/{0620-Add-ItemFactory-getSpawnEgg-API.patch => 0630-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/unapplied/server/{0621-Add-critical-damage-API.patch => 0631-Add-critical-damage-API.patch} (100%) rename patches/unapplied/server/{0622-Fix-issues-with-mob-conversion.patch => 0632-Fix-issues-with-mob-conversion.patch} (100%) rename patches/unapplied/server/{0623-Add-isCollidable-methods-to-various-places.patch => 0633-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/unapplied/server/{0624-Goat-ram-API.patch => 0634-Goat-ram-API.patch} (100%) rename patches/unapplied/server/{0625-Add-API-for-resetting-a-single-score.patch => 0635-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/unapplied/server/{0626-Add-Raw-Byte-Entity-Serialization.patch => 0636-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/unapplied/server/{0627-Vanilla-command-permission-fixes.patch => 0637-Vanilla-command-permission-fixes.patch} (100%) rename patches/unapplied/server/{0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0638-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (100%) rename patches/unapplied/server/{0629-Fix-GameProfileCache-concurrency.patch => 0639-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/unapplied/server/{0630-Improve-and-expand-AsyncCatcher.patch => 0640-Improve-and-expand-AsyncCatcher.patch} (100%) rename patches/unapplied/server/{0631-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0641-Add-paper-mobcaps-and-paper-playermobcaps.patch} (100%) rename patches/unapplied/server/{0632-Sanitize-ResourceLocation-error-logging.patch => 0642-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/unapplied/server/{0633-Manually-inline-methods-in-BlockPosition.patch => 0643-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/unapplied/server/{0634-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0644-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/unapplied/server/{0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0645-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (100%) rename patches/unapplied/server/{0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0646-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/unapplied/server/{0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch => 0647-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (100%) rename patches/unapplied/server/{0638-Time-scoreboard-search.patch => 0648-Time-scoreboard-search.patch} (100%) rename patches/unapplied/server/{0639-Oprimise-map-impl-for-tracked-players.patch => 0649-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/unapplied/server/{0640-Add-missing-InventoryType.patch => 0650-Add-missing-InventoryType.patch} (100%) rename patches/unapplied/server/{0641-Optimise-BlockSoil-nearby-water-lookup.patch => 0651-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/unapplied/server/{0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0652-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (100%) rename patches/unapplied/server/{0643-Check-requirement-before-suggesting-root-nodes.patch => 0653-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/unapplied/server/{0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0654-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/unapplied/server/{0645-Add-packet-limiter-config.patch => 0655-Add-packet-limiter-config.patch} (100%) rename patches/unapplied/server/{0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0656-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/unapplied/server/{0647-Ensure-valid-vehicle-status.patch => 0657-Ensure-valid-vehicle-status.patch} (100%) rename patches/unapplied/server/{0648-Prevent-softlocked-end-exit-portal-generation.patch => 0658-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/unapplied/server/{0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0659-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/unapplied/server/{0650-Don-t-log-debug-logging-being-disabled.patch => 0660-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/unapplied/server/{0651-fix-various-menus-with-empty-level-accesses.patch => 0661-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/unapplied/server/{0652-Preserve-overstacked-loot.patch => 0662-Preserve-overstacked-loot.patch} (100%) rename patches/unapplied/server/{0653-Update-head-rotation-in-missing-places.patch => 0663-Update-head-rotation-in-missing-places.patch} (100%) rename patches/unapplied/server/{0654-prevent-unintended-light-block-manipulation.patch => 0664-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/unapplied/server/{0655-Fix-CraftCriteria-defaults-map.patch => 0665-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/unapplied/server/{0656-Fix-upstreams-block-state-factories.patch => 0666-Fix-upstreams-block-state-factories.patch} (100%) rename patches/unapplied/server/{0657-Configurable-feature-seeds.patch => 0667-Configurable-feature-seeds.patch} (100%) rename patches/unapplied/server/{0658-Add-root-admin-user-detection.patch => 0668-Add-root-admin-user-detection.patch} (100%) rename patches/unapplied/server/{0659-Always-allow-item-changing-in-Fireball.patch => 0669-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/unapplied/server/{0660-don-t-attempt-to-teleport-dead-entities.patch => 0670-don-t-attempt-to-teleport-dead-entities.patch} (100%) rename patches/unapplied/server/{0661-Prevent-excessive-velocity-through-repeated-crits.patch => 0671-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/unapplied/server/{0662-Remove-client-side-code-using-deprecated-for-removal.patch => 0672-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/unapplied/server/{0663-Fix-removing-recipes-from-RecipeIterator.patch => 0673-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/unapplied/server/{0664-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0674-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/unapplied/server/{0665-Hide-unnecessary-itemmeta-from-clients.patch => 0675-Hide-unnecessary-itemmeta-from-clients.patch} (100%) rename patches/unapplied/server/{0666-Fix-Spigot-growth-modifiers.patch => 0676-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/unapplied/server/{0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0677-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/unapplied/server/{0668-Add-PlayerItemFrameChangeEvent.patch => 0678-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/unapplied/server/{0669-Optimize-HashMapPalette.patch => 0679-Optimize-HashMapPalette.patch} (100%) rename patches/unapplied/server/{0670-Allow-delegation-to-vanilla-chunk-gen.patch => 0680-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/unapplied/server/{0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0681-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/unapplied/server/{0672-Add-more-Campfire-API.patch => 0682-Add-more-Campfire-API.patch} (100%) rename patches/unapplied/server/{0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0683-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/unapplied/server/{0674-Forward-CraftEntity-in-teleport-command.patch => 0684-Forward-CraftEntity-in-teleport-command.patch} (100%) rename patches/unapplied/server/{0675-Improve-scoreboard-entries.patch => 0685-Improve-scoreboard-entries.patch} (100%) rename patches/unapplied/server/{0676-Entity-powdered-snow-API.patch => 0686-Entity-powdered-snow-API.patch} (100%) rename patches/unapplied/server/{0677-Add-API-for-item-entity-health.patch => 0687-Add-API-for-item-entity-health.patch} (100%) rename patches/unapplied/server/{0678-Configurable-max-block-light-for-monster-spawning.patch => 0688-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/unapplied/server/{0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0689-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/unapplied/server/{0680-Load-effect-amplifiers-greater-than-127-correctly.patch => 0690-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/unapplied/server/{0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0691-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/unapplied/server/{0682-Fix-bees-aging-inside-hives.patch => 0692-Fix-bees-aging-inside-hives.patch} (100%) rename patches/unapplied/server/{0683-Bucketable-API.patch => 0693-Bucketable-API.patch} (100%) rename patches/unapplied/server/{0684-Validate-usernames.patch => 0694-Validate-usernames.patch} (100%) rename patches/unapplied/server/{0685-Make-water-animal-spawn-height-configurable.patch => 0695-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/unapplied/server/{0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0696-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/unapplied/server/{0687-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0697-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/unapplied/server/{0688-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0698-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/unapplied/server/{0689-Multiple-Entries-with-Scoreboards.patch => 0699-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/unapplied/server/{0690-Reset-placed-block-on-exception.patch => 0700-Reset-placed-block-on-exception.patch} (100%) rename patches/unapplied/server/{0691-Add-configurable-height-for-slime-spawn.patch => 0701-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/unapplied/server/{0692-Fix-xp-reward-for-baby-zombies.patch => 0702-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/unapplied/server/{0693-Multi-Block-Change-API-Implementation.patch => 0703-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/unapplied/server/{0694-Fix-NotePlayEvent.patch => 0704-Fix-NotePlayEvent.patch} (100%) rename patches/unapplied/server/{0695-Freeze-Tick-Lock-API.patch => 0705-Freeze-Tick-Lock-API.patch} (100%) rename patches/unapplied/server/{0696-More-PotionEffectType-API.patch => 0706-More-PotionEffectType-API.patch} (100%) rename patches/unapplied/server/{0697-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0707-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/unapplied/server/{0698-API-for-creating-command-sender-which-forwards-feedb.patch => 0708-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/unapplied/server/{0699-Add-missing-structure-set-seed-configs.patch => 0709-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/unapplied/server/{0700-Implement-regenerateChunk.patch => 0710-Implement-regenerateChunk.patch} (100%) rename patches/unapplied/server/{0701-Fix-cancelled-powdered-snow-bucket-placement.patch => 0711-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/unapplied/server/{0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0712-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (100%) rename patches/unapplied/server/{0703-Add-GameEvent-tags.patch => 0713-Add-GameEvent-tags.patch} (100%) rename patches/unapplied/server/{0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0714-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (100%) rename patches/unapplied/server/{0705-Furnace-RecipesUsed-API.patch => 0715-Furnace-RecipesUsed-API.patch} (100%) rename patches/unapplied/server/{0706-Configurable-sculk-sensor-listener-range.patch => 0716-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/unapplied/server/{0707-Add-missing-block-data-mins-and-maxes.patch => 0717-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/unapplied/server/{0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0718-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (100%) rename patches/unapplied/server/{0709-Put-world-into-worldlist-before-initing-the-world.patch => 0719-Put-world-into-worldlist-before-initing-the-world.patch} (100%) rename patches/unapplied/server/{0710-Fix-Entity-Position-Desync.patch => 0720-Fix-Entity-Position-Desync.patch} (100%) rename patches/unapplied/server/{0711-Custom-Potion-Mixes.patch => 0721-Custom-Potion-Mixes.patch} (100%) rename patches/unapplied/server/{0712-Force-close-world-loading-screen.patch => 0722-Force-close-world-loading-screen.patch} (100%) rename patches/unapplied/server/{0713-Fix-falling-block-spawn-methods.patch => 0723-Fix-falling-block-spawn-methods.patch} (100%) rename patches/unapplied/server/{0714-Expose-furnace-minecart-push-values.patch => 0724-Expose-furnace-minecart-push-values.patch} (100%) rename patches/unapplied/server/{0715-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0725-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/unapplied/server/{0716-More-Projectile-API.patch => 0726-More-Projectile-API.patch} (100%) rename patches/unapplied/server/{0717-Fix-swamp-hut-cat-generation-deadlock.patch => 0727-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/unapplied/server/{0718-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0728-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/unapplied/server/{0719-Implement-getComputedBiome-API.patch => 0729-Implement-getComputedBiome-API.patch} (100%) rename patches/unapplied/server/{0720-Make-some-itemstacks-nonnull.patch => 0730-Make-some-itemstacks-nonnull.patch} (100%) rename patches/unapplied/server/{0721-Implement-enchantWithLevels-API.patch => 0731-Implement-enchantWithLevels-API.patch} (100%) rename patches/unapplied/server/{0722-Fix-saving-in-unloadWorld.patch => 0732-Fix-saving-in-unloadWorld.patch} (100%) rename patches/unapplied/server/{0723-Buffer-OOB-setBlock-calls.patch => 0733-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/unapplied/server/{0724-Add-TameableDeathMessageEvent.patch => 0734-Add-TameableDeathMessageEvent.patch} (100%) rename patches/unapplied/server/{0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0735-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (100%) rename patches/unapplied/server/{0726-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0736-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/unapplied/server/{0727-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0737-Ensure-entity-passenger-world-matches-ridden-entity.patch} (100%) rename patches/unapplied/server/{0728-cache-resource-keys.patch => 0738-cache-resource-keys.patch} (100%) rename patches/unapplied/server/{0729-Allow-changing-the-EnderDragon-podium.patch => 0739-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/unapplied/server/{0730-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0740-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/unapplied/server/{0731-Prevent-tile-entity-copies-loading-chunks.patch => 0741-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/unapplied/server/{0732-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0742-Use-username-instead-of-display-name-in-PlayerList-g.patch} (100%) rename patches/unapplied/server/{0733-Expand-PlayerItemDamageEvent.patch => 0743-Expand-PlayerItemDamageEvent.patch} (100%) rename patches/unapplied/server/{0734-WorldCreator-keepSpawnLoaded.patch => 0744-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/unapplied/server/{0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0745-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/unapplied/server/{0736-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0746-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/unapplied/server/{0737-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0747-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/unapplied/server/{0738-Fire-CauldronLevelChange-on-initial-fill.patch => 0748-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/unapplied/server/{0739-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0749-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/unapplied/server/{0740-Add-PlayerStopUsingItemEvent.patch => 0750-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/unapplied/server/{0741-Don-t-tick-markers.patch => 0751-Don-t-tick-markers.patch} (100%) rename patches/unapplied/server/{0742-Expand-FallingBlock-API.patch => 0752-Expand-FallingBlock-API.patch} (100%) rename patches/unapplied/server/{0743-Add-support-for-Proxy-Protocol.patch => 0753-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/unapplied/server/{0744-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0754-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/unapplied/server/{0745-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0755-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/unapplied/server/{0746-properly-read-and-store-sus-effect-duration.patch => 0756-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/unapplied/server/{0747-Sanitize-sent-BlockEntity-NBT.patch => 0757-Sanitize-sent-BlockEntity-NBT.patch} (100%) rename patches/unapplied/server/{0748-Disable-component-selector-resolving-in-books-by-def.patch => 0758-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/unapplied/server/{0749-Prevent-entity-loading-causing-async-lookups.patch => 0759-Prevent-entity-loading-causing-async-lookups.patch} (100%) rename patches/unapplied/server/{0750-Throw-exception-on-world-create-while-being-ticked.patch => 0760-Throw-exception-on-world-create-while-being-ticked.patch} (100%) rename patches/unapplied/server/{0751-Dont-resent-entity-on-art-update.patch => 0761-Dont-resent-entity-on-art-update.patch} (100%) rename patches/unapplied/server/{0752-Add-WardenAngerChangeEvent.patch => 0762-Add-WardenAngerChangeEvent.patch} (100%) rename patches/unapplied/server/{0753-Add-option-for-strict-advancement-dimension-checks.patch => 0763-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/unapplied/server/{0754-Add-missing-important-BlockStateListPopulator-method.patch => 0764-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/unapplied/server/{0755-Nameable-Banner-API.patch => 0765-Nameable-Banner-API.patch} (100%) rename patches/unapplied/server/{0756-Don-t-broadcast-messages-to-command-blocks.patch => 0766-Don-t-broadcast-messages-to-command-blocks.patch} (100%) rename patches/unapplied/server/{0757-Prevent-empty-items-from-being-added-to-world.patch => 0767-Prevent-empty-items-from-being-added-to-world.patch} (100%) rename patches/unapplied/server/{0758-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0768-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/unapplied/server/{0759-Add-Player-getFishHook.patch => 0769-Add-Player-getFishHook.patch} (100%) rename patches/unapplied/server/{0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0770-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/unapplied/server/{0761-Add-various-missing-EntityDropItemEvent-calls.patch => 0771-Add-various-missing-EntityDropItemEvent-calls.patch} (100%) rename patches/unapplied/server/{0762-Fix-Bee-flower-NPE.patch => 0772-Fix-Bee-flower-NPE.patch} (100%) rename patches/unapplied/server/{0763-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0773-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (100%) rename patches/unapplied/server/{0764-More-Teleport-API.patch => 0774-More-Teleport-API.patch} (100%) rename patches/unapplied/server/{0765-Add-EntityPortalReadyEvent.patch => 0775-Add-EntityPortalReadyEvent.patch} (100%) rename patches/unapplied/server/{0766-Don-t-use-level-random-in-entity-constructors.patch => 0776-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/unapplied/server/{0767-Send-block-entities-after-destroy-prediction.patch => 0777-Send-block-entities-after-destroy-prediction.patch} (100%) rename patches/unapplied/server/{0768-Warn-on-plugins-accessing-faraway-chunks.patch => 0778-Warn-on-plugins-accessing-faraway-chunks.patch} (100%) rename patches/unapplied/server/{0769-Custom-Chat-Completion-Suggestions-API.patch => 0779-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/unapplied/server/{0770-Add-and-fix-missing-BlockFadeEvents.patch => 0780-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/unapplied/server/{0771-Collision-API.patch => 0781-Collision-API.patch} (100%) rename patches/unapplied/server/{0772-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0782-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/unapplied/server/{0773-Block-Ticking-API.patch => 0783-Block-Ticking-API.patch} (100%) rename patches/unapplied/server/{0774-Add-Velocity-IP-Forwarding-Support.patch => 0784-Add-Velocity-IP-Forwarding-Support.patch} (100%) rename patches/unapplied/server/{0775-Add-NamespacedKey-biome-methods.patch => 0785-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/unapplied/server/{0776-Fix-plugin-loggers-on-server-shutdown.patch => 0786-Fix-plugin-loggers-on-server-shutdown.patch} (100%) rename patches/unapplied/server/{0777-Stop-large-look-changes-from-crashing-the-server.patch => 0787-Stop-large-look-changes-from-crashing-the-server.patch} (100%) rename patches/unapplied/server/{0778-Fire-EntityChangeBlockEvent-in-more-places.patch => 0788-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/unapplied/server/{0779-Missing-eating-regain-reason.patch => 0789-Missing-eating-regain-reason.patch} (100%) rename patches/unapplied/server/{0780-Missing-effect-cause.patch => 0790-Missing-effect-cause.patch} (100%) rename patches/unapplied/server/{0781-Added-byte-array-serialization-deserialization-for-P.patch => 0791-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/unapplied/server/{0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0792-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/unapplied/server/{0783-Call-BlockPhysicsEvent-more-often.patch => 0793-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/unapplied/server/{0784-Configurable-chat-thread-limit.patch => 0794-Configurable-chat-thread-limit.patch} (100%) rename patches/unapplied/server/{0785-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0795-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/unapplied/server/{0786-fix-Jigsaw-block-kicking-user.patch => 0796-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/unapplied/server/{0787-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0797-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/unapplied/server/{0788-Add-getDrops-to-BlockState.patch => 0798-Add-getDrops-to-BlockState.patch} (100%) rename patches/unapplied/server/{0789-Fix-a-bunch-of-vanilla-bugs.patch => 0799-Fix-a-bunch-of-vanilla-bugs.patch} (100%) rename patches/unapplied/server/{0790-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0800-Remove-unnecessary-onTrackingStart-during-navigation.patch} (100%) rename patches/unapplied/server/{0791-Fix-custom-piglin-loved-items.patch => 0801-Fix-custom-piglin-loved-items.patch} (100%) rename patches/unapplied/server/{0792-EntityPickupItemEvent-fixes.patch => 0802-EntityPickupItemEvent-fixes.patch} (100%) rename patches/unapplied/server/{0793-Correctly-handle-interactions-with-items-on-cooldown.patch => 0803-Correctly-handle-interactions-with-items-on-cooldown.patch} (100%) rename patches/unapplied/server/{0794-Add-PlayerInventorySlotChangeEvent.patch => 0804-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/unapplied/server/{0795-Elder-Guardian-appearance-API.patch => 0805-Elder-Guardian-appearance-API.patch} (100%) rename patches/unapplied/server/{0796-Allow-changing-bed-s-occupied-property.patch => 0806-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/unapplied/server/{0797-Add-entity-knockback-API.patch => 0807-Add-entity-knockback-API.patch} (100%) rename patches/unapplied/server/{0798-Detect-headless-JREs.patch => 0808-Detect-headless-JREs.patch} (100%) rename patches/unapplied/server/{0799-fix-entity-vehicle-collision-event-not-called.patch => 0809-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/unapplied/server/{0800-Add-EntityToggleSitEvent.patch => 0810-Add-EntityToggleSitEvent.patch} (100%) rename patches/unapplied/server/{0801-Add-fire-tick-delay-option.patch => 0811-Add-fire-tick-delay-option.patch} (100%) rename patches/unapplied/server/{0802-Add-Moving-Piston-API.patch => 0812-Add-Moving-Piston-API.patch} (100%) rename patches/unapplied/server/{0803-Ignore-impossible-spawn-tick.patch => 0813-Ignore-impossible-spawn-tick.patch} (100%) rename patches/unapplied/server/{0804-Track-projectile-source-for-fireworks-from-dispenser.patch => 0814-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/unapplied/server/{0805-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0815-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/unapplied/server/{0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0816-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (100%) rename patches/unapplied/server/{0807-Add-PrePlayerAttackEntityEvent.patch => 0817-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/unapplied/server/{0808-ensure-reset-EnderDragon-boss-event-name.patch => 0818-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/unapplied/server/{0809-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0819-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/unapplied/server/{0810-Add-Player-Warden-Warning-API.patch => 0820-Add-Player-Warden-Warning-API.patch} (100%) rename patches/unapplied/server/{0811-More-vanilla-friendly-methods-to-update-trades.patch => 0821-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/unapplied/server/{0812-Add-paper-dumplisteners-command.patch => 0822-Add-paper-dumplisteners-command.patch} (100%) rename patches/unapplied/server/{0813-check-global-player-list-where-appropriate.patch => 0823-check-global-player-list-where-appropriate.patch} (100%) rename patches/unapplied/server/{0814-Fix-async-entity-add-due-to-fungus-trees.patch => 0824-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/unapplied/server/{0815-ItemStack-damage-API.patch => 0825-ItemStack-damage-API.patch} (100%) rename patches/unapplied/server/{0816-Friction-API.patch => 0826-Friction-API.patch} (100%) rename patches/unapplied/server/{0817-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0827-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/unapplied/server/{0818-Fix-premature-player-kicks-on-shutdown.patch => 0828-Fix-premature-player-kicks-on-shutdown.patch} (100%) rename patches/unapplied/server/{0819-Sync-offhand-slot-in-menus.patch => 0829-Sync-offhand-slot-in-menus.patch} (100%) rename patches/unapplied/server/{0820-Player-Entity-Tracking-Events.patch => 0830-Player-Entity-Tracking-Events.patch} (100%) rename patches/unapplied/server/{0821-Limit-pet-look-distance.patch => 0831-Limit-pet-look-distance.patch} (100%) rename patches/unapplied/server/{0822-Fixes-and-additions-to-the-SpawnReason-API.patch => 0832-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/unapplied/server/{0823-fix-Instruments.patch => 0833-fix-Instruments.patch} (100%) rename patches/unapplied/server/{0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0834-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (100%) rename patches/unapplied/server/{0825-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0835-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/unapplied/server/{0826-Add-BlockLockCheckEvent.patch => 0836-Add-BlockLockCheckEvent.patch} (100%) rename patches/unapplied/server/{0827-Add-Sneaking-API-for-Entities.patch => 0837-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/unapplied/server/{0828-Improve-logging-and-errors.patch => 0838-Improve-logging-and-errors.patch} (100%) rename patches/unapplied/server/{0829-Improve-PortalEvents.patch => 0839-Improve-PortalEvents.patch} (100%) rename patches/unapplied/server/{0830-Add-config-option-for-spider-worldborder-climbing.patch => 0840-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/unapplied/server/{0831-Add-missing-SpigotConfig-logCommands-check.patch => 0841-Add-missing-SpigotConfig-logCommands-check.patch} (100%) rename patches/unapplied/server/{0832-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0842-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/unapplied/server/{0833-Flying-Fall-Damage.patch => 0843-Flying-Fall-Damage.patch} (100%) rename patches/unapplied/server/{0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0844-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/unapplied/server/{0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0845-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (100%) rename patches/unapplied/server/{0836-config-for-disabling-entity-tag-tags.patch => 0846-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/unapplied/server/{0837-Use-single-player-info-update-packet-on-join.patch => 0847-Use-single-player-info-update-packet-on-join.patch} (100%) rename patches/unapplied/server/{0838-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0848-Correctly-shrink-items-during-EntityResurrectEvent.patch} (100%) rename patches/unapplied/server/{0839-Win-Screen-API.patch => 0849-Win-Screen-API.patch} (100%) rename patches/unapplied/server/{0840-Remove-CraftItemStack-setAmount-null-assignment.patch => 0850-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/unapplied/server/{0841-Fix-force-opening-enchantment-tables.patch => 0851-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/unapplied/server/{0842-Add-Entity-Body-Yaw-API.patch => 0852-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/unapplied/server/{0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0853-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/unapplied/server/{0844-Add-EntityFertilizeEggEvent.patch => 0854-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/unapplied/server/{0845-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0855-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/unapplied/server/{0846-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0856-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/unapplied/server/{0847-Correctly-handle-ArmorStand-invisibility.patch => 0857-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/unapplied/server/{0848-Fix-advancement-triggers-for-entity-damage.patch => 0858-Fix-advancement-triggers-for-entity-damage.patch} (100%) rename patches/unapplied/server/{0849-Fix-text-display-error-on-spawn.patch => 0859-Fix-text-display-error-on-spawn.patch} (100%) rename patches/unapplied/server/{0850-Fix-inventories-returning-null-Locations.patch => 0860-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/unapplied/server/{0851-Add-Shearable-API.patch => 0861-Add-Shearable-API.patch} (100%) rename patches/unapplied/server/{0852-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0862-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/unapplied/server/{0853-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0863-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/unapplied/server/{0854-Treat-sequence-violations-like-they-should-be.patch => 0864-Treat-sequence-violations-like-they-should-be.patch} (100%) rename patches/unapplied/server/{0855-remove-duplicate-animate-packet-for-records.patch => 0865-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/unapplied/server/{0856-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0866-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/unapplied/server/{0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0867-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (100%) rename patches/unapplied/server/{0858-Use-array-for-gamerule-storage.patch => 0868-Use-array-for-gamerule-storage.patch} (100%) rename patches/unapplied/server/{0859-Fix-a-couple-of-upstream-bed-issues.patch => 0869-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/unapplied/server/{0860-Fix-demo-flag-not-enabling-demo-mode.patch => 0870-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/unapplied/server/{0861-Add-Mob-Experience-reward-API.patch => 0871-Add-Mob-Experience-reward-API.patch} (100%) rename patches/unapplied/server/{0862-Break-redstone-on-top-of-trap-doors-early.patch => 0872-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/unapplied/server/{0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0873-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/unapplied/server/{0864-More-accurate-isInOpenWater-impl.patch => 0874-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/unapplied/server/{0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0875-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/unapplied/server/{0866-Expand-PlayerItemMendEvent.patch => 0876-Expand-PlayerItemMendEvent.patch} (100%) rename patches/unapplied/server/{0867-Refresh-ProjectileSource-for-projectiles.patch => 0877-Refresh-ProjectileSource-for-projectiles.patch} (100%) rename patches/unapplied/server/{0868-Add-transient-modifier-API.patch => 0878-Add-transient-modifier-API.patch} (100%) rename patches/unapplied/server/{0869-Fix-block-place-logic.patch => 0879-Fix-block-place-logic.patch} (100%) rename patches/unapplied/server/{0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0880-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/unapplied/server/{0871-Call-BlockGrowEvent-for-missing-blocks.patch => 0881-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/unapplied/server/{0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0882-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (100%) rename patches/unapplied/server/{0873-fix-MapLike-spam-for-missing-key-selector.patch => 0883-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/unapplied/server/{0874-Fix-sniffer-removeExploredLocation.patch => 0884-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/unapplied/server/{0875-Add-method-to-remove-all-active-potion-effects.patch => 0885-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/unapplied/server/{0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0886-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/unapplied/server/{0877-Add-event-for-player-editing-sign.patch => 0887-Add-event-for-player-editing-sign.patch} (100%) rename patches/unapplied/server/{0878-Only-tick-item-frames-if-players-can-see-it.patch => 0888-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/unapplied/server/{0879-Fix-cmd-permission-levels-for-command-blocks.patch => 0889-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/unapplied/server/{0880-Add-option-to-disable-block-updates.patch => 0890-Add-option-to-disable-block-updates.patch} (100%) rename patches/unapplied/server/{0881-Call-missing-BlockDispenseEvent.patch => 0891-Call-missing-BlockDispenseEvent.patch} (100%) rename patches/unapplied/server/{0882-Don-t-load-chunks-for-supporting-block-checks.patch => 0892-Don-t-load-chunks-for-supporting-block-checks.patch} (100%) rename patches/unapplied/server/{0883-Optimize-player-lookups-for-beacons.patch => 0893-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/unapplied/server/{0884-Add-Sign-getInteractableSideFor.patch => 0894-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/unapplied/server/{0885-Array-backed-synched-entity-data.patch => 0895-Array-backed-synched-entity-data.patch} (100%) rename patches/unapplied/server/{0886-fix-item-meta-for-tadpole-buckets.patch => 0896-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/unapplied/server/{0887-Fix-BanList-API.patch => 0897-Fix-BanList-API.patch} (100%) rename patches/unapplied/server/{0888-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0898-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/unapplied/server/{0889-Fix-possible-NPE-on-painting-creation.patch => 0899-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/unapplied/server/{0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0900-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/unapplied/server/{0891-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0901-ExperienceOrb-should-call-EntitySpawnEvent.patch} (100%) rename patches/unapplied/server/{0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0902-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/unapplied/server/{0893-Add-whitelist-events.patch => 0903-Add-whitelist-events.patch} (100%) rename patches/unapplied/server/{0894-Implement-PlayerFailMoveEvent.patch => 0904-Implement-PlayerFailMoveEvent.patch} (100%) rename patches/unapplied/server/{0895-Folia-scheduler-and-owned-region-API.patch => 0905-Folia-scheduler-and-owned-region-API.patch} (100%) rename patches/unapplied/server/{0896-Only-erase-allay-memory-on-non-item-targets.patch => 0906-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/unapplied/server/{0897-API-for-updating-recipes-on-clients.patch => 0907-API-for-updating-recipes-on-clients.patch} (100%) rename patches/unapplied/server/{0898-Fix-rotation-when-spawning-display-entities.patch => 0908-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/unapplied/server/{0899-Only-capture-actual-tree-growth.patch => 0909-Only-capture-actual-tree-growth.patch} (100%) rename patches/unapplied/server/{0900-Use-correct-source-for-mushroom-block-spread-event.patch => 0910-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/unapplied/server/{0901-Respect-randomizeData-on-more-entities-when-spawning.patch => 0911-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/unapplied/server/{0902-Use-correct-seed-on-api-world-load.patch => 0912-Use-correct-seed-on-api-world-load.patch} (100%) rename patches/unapplied/server/{0903-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0913-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/unapplied/server/{0904-Cache-map-ids-on-item-frames.patch => 0914-Cache-map-ids-on-item-frames.patch} (100%) rename patches/unapplied/server/{0905-Fix-custom-statistic-criteria-creation.patch => 0915-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/unapplied/server/{0906-Bandaid-fix-for-Effect.patch => 0916-Bandaid-fix-for-Effect.patch} (100%) rename patches/unapplied/server/{0907-SculkCatalyst-bloom-API.patch => 0917-SculkCatalyst-bloom-API.patch} (100%) rename patches/unapplied/server/{0908-API-for-an-entity-s-scoreboard-name.patch => 0918-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/unapplied/server/{0909-Deprecate-and-replace-methods-with-old-StructureType.patch => 0919-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/unapplied/server/{0910-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0920-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (100%) rename patches/unapplied/server/{0911-Properly-handle-BlockBreakEvent-isDropItems.patch => 0921-Properly-handle-BlockBreakEvent-isDropItems.patch} (100%) rename patches/unapplied/server/{0912-Fire-entity-death-event-for-ender-dragon.patch => 0922-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/unapplied/server/{0913-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0923-Configurable-entity-tracking-range-by-Y-coordinate.patch} (100%) rename patches/unapplied/server/{0914-Add-Listing-API-for-Player.patch => 0924-Add-Listing-API-for-Player.patch} (100%) rename patches/unapplied/server/{0915-Configurable-Region-Compression-Format.patch => 0925-Configurable-Region-Compression-Format.patch} (100%) rename patches/unapplied/server/{0916-Add-BlockFace-to-BlockDamageEvent.patch => 0926-Add-BlockFace-to-BlockDamageEvent.patch} (100%) rename patches/unapplied/server/{0917-Fix-NPE-on-Boat-getStatus.patch => 0927-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/unapplied/server/{0918-Expand-Pose-API.patch => 0928-Expand-Pose-API.patch} (100%) rename patches/unapplied/server/{0919-More-DragonBattle-API.patch => 0929-More-DragonBattle-API.patch} (100%) rename patches/unapplied/server/{0920-Deep-clone-unhandled-nbt-tags.patch => 0930-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/unapplied/server/{0921-Add-PlayerPickItemEvent.patch => 0931-Add-PlayerPickItemEvent.patch} (100%) rename patches/unapplied/server/{0922-Allow-trident-custom-damage.patch => 0932-Allow-trident-custom-damage.patch} (100%) rename patches/unapplied/server/{0923-Expose-hand-in-BlockCanBuildEvent.patch => 0933-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/unapplied/server/{0924-Optimize-nearest-structure-border-iteration.patch => 0934-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/unapplied/server/{0925-Implement-OfflinePlayer-isConnected.patch => 0935-Implement-OfflinePlayer-isConnected.patch} (100%) rename patches/unapplied/server/{0926-Fix-inventory-desync.patch => 0936-Fix-inventory-desync.patch} (100%) rename patches/unapplied/server/{0927-Add-titleOverride-to-InventoryOpenEvent.patch => 0937-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/unapplied/server/{0928-Configure-sniffer-egg-hatch-time.patch => 0938-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/unapplied/server/{0929-Do-crystal-portal-proximity-check-before-entity-look.patch => 0939-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/unapplied/server/{0930-Skip-POI-finding-if-stuck-in-vehicle.patch => 0940-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/unapplied/server/{0931-Add-slot-sanity-checks-in-container-clicks.patch => 0941-Add-slot-sanity-checks-in-container-clicks.patch} (100%) rename patches/unapplied/server/{0932-Call-BlockRedstoneEvents-for-lecterns.patch => 0942-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/unapplied/server/{0933-Allow-proper-checking-of-empty-item-stacks.patch => 0943-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/unapplied/server/{0934-Fix-silent-equipment-change-for-mobs.patch => 0944-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/unapplied/server/{0935-Fix-spigot-s-Forced-Stats.patch => 0945-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/unapplied/server/{0936-Add-missing-InventoryHolders-to-inventories.patch => 0946-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/unapplied/server/{0937-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0947-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/unapplied/server/{0938-Add-missing-logs-for-log-ips-config-option.patch => 0948-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/unapplied/server/{0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0949-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/unapplied/server/{0940-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0950-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/unapplied/server/{0941-Fix-team-sidebar-objectives-not-being-cleared.patch => 0951-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/unapplied/server/{0942-Fix-missing-map-initialize-event-call.patch => 0952-Fix-missing-map-initialize-event-call.patch} (100%) rename patches/unapplied/server/{0943-Update-entity-data-when-attaching-firework-to-entity.patch => 0953-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/unapplied/server/{0944-Use-correct-variable-for-initializing-CraftLootTable.patch => 0954-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/unapplied/server/{0945-Fix-UnsafeValues-loadAdvancement.patch => 0955-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/unapplied/server/{0946-Add-player-idle-duration-API.patch => 0956-Add-player-idle-duration-API.patch} (100%) rename patches/unapplied/server/{0947-Don-t-check-if-we-can-see-non-visible-entities.patch => 0957-Don-t-check-if-we-can-see-non-visible-entities.patch} (100%) rename patches/unapplied/server/{0948-Fix-NPE-in-SculkBloomEvent-world-access.patch => 0958-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/unapplied/server/{0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 0959-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/unapplied/server/{0950-Optimize-VarInts.patch => 0960-Optimize-VarInts.patch} (100%) rename patches/unapplied/server/{0951-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0961-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/unapplied/server/{0952-Add-predicate-for-blocks-when-raytracing.patch => 0962-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/unapplied/server/{0953-Broadcast-take-item-packets-with-collector-as-source.patch => 0963-Broadcast-take-item-packets-with-collector-as-source.patch} (100%) rename patches/unapplied/server/{0954-Expand-LingeringPotion-API.patch => 0964-Expand-LingeringPotion-API.patch} (100%) rename patches/unapplied/server/{0955-Add-MaterialTagsTest.patch => 0965-Add-MaterialTagsTest.patch} (100%) rename patches/unapplied/server/{0956-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 0966-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/unapplied/server/{0957-Add-hand-to-fish-event-for-all-player-interactions.patch => 0967-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/unapplied/server/{0958-Fix-several-issues-with-EntityBreedEvent.patch => 0968-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/unapplied/server/{0959-Add-UUID-attribute-modifier-API.patch => 0969-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/unapplied/server/{0960-Fix-missing-event-call-for-entity-teleport-API.patch => 0970-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/unapplied/server/{0961-Lazily-create-LootContext-for-criterions.patch => 0971-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/unapplied/server/{0962-Don-t-fire-sync-events-during-worldgen.patch => 0972-Don-t-fire-sync-events-during-worldgen.patch} (100%) rename patches/unapplied/server/{0963-Add-Structure-check-API.patch => 0973-Add-Structure-check-API.patch} (100%) rename patches/unapplied/server/{0964-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 0974-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/unapplied/server/{0965-Restore-vanilla-entity-drops-behavior.patch => 0975-Restore-vanilla-entity-drops-behavior.patch} (100%) rename patches/unapplied/server/{0966-Dont-resend-blocks-on-interactions.patch => 0976-Dont-resend-blocks-on-interactions.patch} (100%) rename patches/unapplied/server/{0967-add-more-scoreboard-API.patch => 0977-add-more-scoreboard-API.patch} (100%) rename patches/unapplied/server/{0968-Improve-Registry.patch => 0978-Improve-Registry.patch} (100%) rename patches/unapplied/server/{0969-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 0979-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (100%) rename patches/unapplied/server/{0970-Add-experience-points-API.patch => 0980-Add-experience-points-API.patch} (100%) rename patches/unapplied/server/{0971-Add-drops-to-shear-events.patch => 0981-Add-drops-to-shear-events.patch} (100%) rename patches/unapplied/server/{0972-Add-PlayerShieldDisableEvent.patch => 0982-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/unapplied/server/{0973-Validate-ResourceLocation-in-NBT-reading.patch => 0983-Validate-ResourceLocation-in-NBT-reading.patch} (100%) rename patches/unapplied/server/{0974-Properly-handle-experience-dropping-on-block-break.patch => 0984-Properly-handle-experience-dropping-on-block-break.patch} (100%) rename patches/unapplied/server/{0975-Fixup-NamespacedKey-handling.patch => 0985-Fixup-NamespacedKey-handling.patch} (100%) rename patches/unapplied/server/{0976-Expose-LootTable-of-DecoratedPot.patch => 0986-Expose-LootTable-of-DecoratedPot.patch} (100%) rename patches/unapplied/server/{0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 0987-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (100%) rename patches/unapplied/server/{0978-Rewrite-dataconverter-system.patch => 0988-Rewrite-dataconverter-system.patch} (100%) rename patches/unapplied/server/{0979-Starlight.patch => 0989-Starlight.patch} (100%) rename patches/unapplied/server/{0980-Rewrite-chunk-system.patch => 0990-Rewrite-chunk-system.patch} (100%) rename patches/unapplied/server/{0981-incremental-chunk-and-player-saving.patch => 0991-incremental-chunk-and-player-saving.patch} (100%) rename patches/unapplied/server/{0982-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch => 0992-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch} (100%) rename patches/unapplied/server/{0983-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch => 0993-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch} (100%) rename patches/unapplied/server/{0984-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch => 0994-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch} (100%) rename patches/unapplied/server/{0985-Optimize-Network-Manager-and-add-advanced-packet-sup.patch => 0995-Optimize-Network-Manager-and-add-advanced-packet-sup.patch} (100%) rename patches/unapplied/server/{0986-Allow-Saving-of-Oversized-Chunks.patch => 0996-Allow-Saving-of-Oversized-Chunks.patch} (100%) rename patches/unapplied/server/{0987-Fix-World-isChunkGenerated-calls.patch => 0997-Fix-World-isChunkGenerated-calls.patch} (100%) rename patches/unapplied/server/{0988-Flat-bedrock-generator-settings.patch => 0998-Flat-bedrock-generator-settings.patch} (100%) rename patches/unapplied/server/{0989-Entity-Activation-Range-2.0.patch => 0999-Entity-Activation-Range-2.0.patch} (100%) rename patches/unapplied/server/{0990-Optional-per-player-mob-spawns.patch => 1000-Optional-per-player-mob-spawns.patch} (100%) rename patches/unapplied/server/{0991-Anti-Xray.patch => 1001-Anti-Xray.patch} (100%) rename patches/unapplied/server/{0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 1002-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (100%) rename patches/unapplied/server/{0993-Optimize-Collision-to-not-load-chunks.patch => 1003-Optimize-Collision-to-not-load-chunks.patch} (100%) rename patches/unapplied/server/{0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => 1004-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (100%) rename patches/unapplied/server/{0995-Entity-load-save-limit-per-chunk.patch => 1005-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/unapplied/server/{0996-Fix-and-optimise-world-force-upgrading.patch => 1006-Fix-and-optimise-world-force-upgrading.patch} (100%) rename patches/unapplied/server/{0997-Improved-Watchdog-Support.patch => 1007-Improved-Watchdog-Support.patch} (100%) rename patches/unapplied/server/{0998-Optimize-Voxel-Shape-Merging.patch => 1008-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/unapplied/server/{0999-Write-SavedData-IO-async.patch => 1009-Write-SavedData-IO-async.patch} (100%) rename patches/unapplied/server/{1000-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 1010-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (100%) rename patches/unapplied/server/{1001-Use-distance-map-to-optimise-entity-tracker.patch => 1011-Use-distance-map-to-optimise-entity-tracker.patch} (100%) rename patches/unapplied/server/{1002-Optimize-Bit-Operations-by-inlining.patch => 1012-Optimize-Bit-Operations-by-inlining.patch} (100%) rename patches/unapplied/server/{1003-Remove-streams-from-hot-code.patch => 1013-Remove-streams-from-hot-code.patch} (100%) rename patches/unapplied/server/{1004-Eigencraft-redstone-implementation.patch => 1014-Eigencraft-redstone-implementation.patch} (100%) rename patches/unapplied/server/{1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 1015-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/unapplied/server/{1006-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 1016-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (100%) rename patches/unapplied/server/{1007-Improve-boat-collision-performance.patch => 1017-Improve-boat-collision-performance.patch} (100%) rename patches/unapplied/server/{1008-Optimise-general-POI-access.patch => 1018-Optimise-general-POI-access.patch} (100%) rename patches/unapplied/server/{1009-Custom-table-implementation-for-blockstate-state-loo.patch => 1019-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/unapplied/server/{1010-Execute-chunk-tasks-mid-tick.patch => 1020-Execute-chunk-tasks-mid-tick.patch} (100%) rename patches/unapplied/server/{1011-Optimise-random-block-ticking.patch => 1021-Optimise-random-block-ticking.patch} (100%) rename patches/unapplied/server/{1012-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1022-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/unapplied/server/{1013-Use-Velocity-compression-and-cipher-natives.patch => 1023-Use-Velocity-compression-and-cipher-natives.patch} (100%) rename patches/unapplied/server/{1014-Detail-more-information-in-watchdog-dumps.patch => 1024-Detail-more-information-in-watchdog-dumps.patch} (100%) rename patches/unapplied/server/{1015-Collision-optimisations.patch => 1025-Collision-optimisations.patch} (100%) rename patches/unapplied/server/{1016-Optimise-collision-checking-in-player-move-packet-ha.patch => 1026-Optimise-collision-checking-in-player-move-packet-ha.patch} (100%) rename patches/unapplied/server/{1017-Fix-tripwire-disarming-not-working-as-intended.patch => 1027-Fix-tripwire-disarming-not-working-as-intended.patch} (100%) rename patches/unapplied/server/{1018-Fix-entity-type-tags-suggestions-in-selectors.patch => 1028-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/unapplied/server/{1019-Add-Alternate-Current-redstone-implementation.patch => 1029-Add-Alternate-Current-redstone-implementation.patch} (100%) rename patches/unapplied/server/{1020-optimize-dirt-and-snow-spreading.patch => 1030-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/unapplied/server/{1021-Properly-resend-entities.patch => 1031-Properly-resend-entities.patch} (100%) rename patches/unapplied/server/{1022-Optimize-Hoppers.patch => 1032-Optimize-Hoppers.patch} (100%) rename patches/unapplied/server/{1023-Improve-performance-of-mass-crafts.patch => 1033-Improve-performance-of-mass-crafts.patch} (100%) rename patches/unapplied/server/{1024-Actually-optimise-explosions.patch => 1034-Actually-optimise-explosions.patch} (100%) rename patches/unapplied/server/{1025-Optimise-chunk-tick-iteration.patch => 1035-Optimise-chunk-tick-iteration.patch} (100%) rename patches/unapplied/server/{1026-Lag-compensation-ticks.patch => 1036-Lag-compensation-ticks.patch} (100%) rename patches/unapplied/server/{1027-Optimise-nearby-player-retrieval.patch => 1037-Optimise-nearby-player-retrieval.patch} (100%) rename patches/unapplied/server/{1028-Distance-manager-tick-timings.patch => 1038-Distance-manager-tick-timings.patch} (100%) rename patches/unapplied/server/{1029-Handle-Oversized-block-entities-in-chunks.patch => 1039-Handle-Oversized-block-entities-in-chunks.patch} (100%) rename patches/unapplied/server/{1030-Send-full-pos-packets-for-hard-colliding-entities.patch => 1040-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/unapplied/server/{1031-Add-ShulkerDuplicateEvent.patch => 1041-Add-ShulkerDuplicateEvent.patch} (100%) rename patches/unapplied/server/{1032-Add-api-for-spawn-egg-texture-colors.patch => 1042-Add-api-for-spawn-egg-texture-colors.patch} (100%) rename patches/unapplied/server/{1033-Disable-memory-reserve-allocating.patch => 1043-Disable-memory-reserve-allocating.patch} (100%) rename patches/unapplied/server/{1034-Improve-tag-parser-handling.patch => 1044-Improve-tag-parser-handling.patch} (100%) rename patches/unapplied/server/{1035-Add-Lifecycle-Event-system.patch => 1045-Add-Lifecycle-Event-system.patch} (100%) rename patches/unapplied/server/{1036-Conduit-API.patch => 1046-Conduit-API.patch} (100%) rename patches/unapplied/server/{1037-ItemStack-Tooltip-API.patch => 1047-ItemStack-Tooltip-API.patch} (100%) rename patches/unapplied/server/{1038-Fix-possible-StackOverflowError-for-some-dispenses.patch => 1048-Fix-possible-StackOverflowError-for-some-dispenses.patch} (100%) rename patches/unapplied/server/{1039-Properly-track-the-changed-item-from-dispense-events.patch => 1049-Properly-track-the-changed-item-from-dispense-events.patch} (100%) rename patches/unapplied/server/{1040-Add-getChunkSnapshot-includeLightData-parameter.patch => 1050-Add-getChunkSnapshot-includeLightData-parameter.patch} (100%) rename patches/unapplied/server/{1041-Add-FluidState-API.patch => 1051-Add-FluidState-API.patch} (100%) rename patches/unapplied/server/{1042-add-number-format-api.patch => 1052-add-number-format-api.patch} (100%) rename patches/unapplied/server/{1043-check-if-itemstack-is-stackable-first.patch => 1053-check-if-itemstack-is-stackable-first.patch} (100%) rename patches/unapplied/server/{1044-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch => 1054-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch} (100%) rename patches/unapplied/server/{1045-improve-BanList-types.patch => 1055-improve-BanList-types.patch} (100%) rename patches/unapplied/server/{1046-Configurable-max-block-fluid-ticks.patch => 1056-Configurable-max-block-fluid-ticks.patch} (100%) rename patches/unapplied/server/{1047-disable-forced-empty-world-ticks.patch => 1057-disable-forced-empty-world-ticks.patch} (100%) rename patches/unapplied/server/{1048-Suspicious-Effect-Entry-API.patch => 1058-Suspicious-Effect-Entry-API.patch} (100%) rename patches/unapplied/server/{1049-Per-world-ticks-per-spawn-settings.patch => 1059-Per-world-ticks-per-spawn-settings.patch} (100%) rename patches/unapplied/server/{1050-Add-onboarding-message-for-initial-server-start.patch => 1060-Add-onboarding-message-for-initial-server-start.patch} (100%) rename patches/unapplied/server/{1051-Fix-DamageSource-API.patch => 1061-Fix-DamageSource-API.patch} (100%) rename patches/unapplied/server/{1052-Expanded-Hopper-API.patch => 1062-Expanded-Hopper-API.patch} (100%) rename patches/unapplied/server/{1053-Fix-creation-of-invalid-block-entity-during-world-ge.patch => 1063-Fix-creation-of-invalid-block-entity-during-world-ge.patch} (100%) rename patches/unapplied/server/{1054-Add-BlockBreakProgressUpdateEvent.patch => 1064-Add-BlockBreakProgressUpdateEvent.patch} (100%) rename patches/unapplied/server/{1055-Deprecate-ItemStack-setType.patch => 1065-Deprecate-ItemStack-setType.patch} (100%) rename patches/unapplied/server/{1056-Item-Mutation-Fixes.patch => 1066-Item-Mutation-Fixes.patch} (100%) rename patches/unapplied/server/{1057-API-for-checking-sent-chunks.patch => 1067-API-for-checking-sent-chunks.patch} (100%) rename patches/unapplied/server/{1058-Add-CartographyItemEvent.patch => 1068-Add-CartographyItemEvent.patch} (100%) rename patches/unapplied/server/{1059-More-Raid-API.patch => 1069-More-Raid-API.patch} (100%) diff --git a/main.py b/main.py new file mode 100644 index 0000000000..7b3e56b188 --- /dev/null +++ b/main.py @@ -0,0 +1,36 @@ +import os +import re + +# Set the directory where the files are located +dir_path = '/Users/jason/IdeaProjects/PaperMC/Paper/patches/unapplied/server' + +# Change to the directory +os.chdir(dir_path) + +# Regex pattern to match the file names +pattern = r'^(\d+)-(.*\.patch)$' + +# List of files in the directory +files = os.listdir(dir_path) + +# Sort the files numerically +files.sort(key=lambda x: int(re.match(pattern, x).group(1))) + +for file in files: + # Match the file name against the pattern + match = re.match(pattern, file) + if match: + # Extract the current number and description + current_number = int(match.group(1)) + description = match.group(2) + + # Calculate the new number + new_number = current_number + 4 + + # Construct the new file name + new_file_name = f'{str(new_number).zfill(4)}-{description}' + + # Rename the file + os.rename(file, new_file_name) + +print('Files renamed successfully.') diff --git a/patches/unapplied/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/unapplied/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch similarity index 100% rename from patches/unapplied/server/0128-Use-TerminalConsoleAppender-for-console-improvements.patch rename to patches/unapplied/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch diff --git a/patches/unapplied/server/0149-Handle-plugin-prefixes-using-Log4J-configuration.patch b/patches/unapplied/server/0012-Handle-plugin-prefixes-using-Log4J-configuration.patch similarity index 100% rename from patches/unapplied/server/0149-Handle-plugin-prefixes-using-Log4J-configuration.patch rename to patches/unapplied/server/0012-Handle-plugin-prefixes-using-Log4J-configuration.patch diff --git a/patches/unapplied/server/0150-Improve-Log4J-Configuration-Plugin-Loggers.patch b/patches/unapplied/server/0013-Improve-Log4J-Configuration-Plugin-Loggers.patch similarity index 100% rename from patches/unapplied/server/0150-Improve-Log4J-Configuration-Plugin-Loggers.patch rename to patches/unapplied/server/0013-Improve-Log4J-Configuration-Plugin-Loggers.patch diff --git a/patches/unapplied/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch b/patches/unapplied/server/0014-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch similarity index 100% rename from patches/unapplied/server/0211-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch rename to patches/unapplied/server/0014-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch diff --git a/patches/unapplied/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/unapplied/server/0015-Deobfuscate-stacktraces-in-log-messages-crash-report.patch similarity index 100% rename from patches/unapplied/server/0366-Deobfuscate-stacktraces-in-log-messages-crash-report.patch rename to patches/unapplied/server/0015-Deobfuscate-stacktraces-in-log-messages-crash-report.patch diff --git a/patches/unapplied/server/0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/unapplied/server/0016-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/unapplied/server/0599-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/unapplied/server/0016-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/unapplied/server/0011-Paper-command.patch b/patches/unapplied/server/0017-Paper-command.patch similarity index 100% rename from patches/unapplied/server/0011-Paper-command.patch rename to patches/unapplied/server/0017-Paper-command.patch diff --git a/patches/unapplied/server/0012-Paper-Metrics.patch b/patches/unapplied/server/0018-Paper-Metrics.patch similarity index 100% rename from patches/unapplied/server/0012-Paper-Metrics.patch rename to patches/unapplied/server/0018-Paper-Metrics.patch diff --git a/patches/unapplied/server/0013-Paper-Plugins.patch b/patches/unapplied/server/0019-Paper-Plugins.patch similarity index 100% rename from patches/unapplied/server/0013-Paper-Plugins.patch rename to patches/unapplied/server/0019-Paper-Plugins.patch diff --git a/patches/unapplied/server/0014-Timings-v2.patch b/patches/unapplied/server/0024-Timings-v2.patch similarity index 100% rename from patches/unapplied/server/0014-Timings-v2.patch rename to patches/unapplied/server/0024-Timings-v2.patch diff --git a/patches/unapplied/server/0015-Add-TickThread.patch b/patches/unapplied/server/0025-Add-TickThread.patch similarity index 100% rename from patches/unapplied/server/0015-Add-TickThread.patch rename to patches/unapplied/server/0025-Add-TickThread.patch diff --git a/patches/unapplied/server/0016-Further-improve-server-tick-loop.patch b/patches/unapplied/server/0026-Further-improve-server-tick-loop.patch similarity index 100% rename from patches/unapplied/server/0016-Further-improve-server-tick-loop.patch rename to patches/unapplied/server/0026-Further-improve-server-tick-loop.patch diff --git a/patches/unapplied/server/0017-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/unapplied/server/0027-Add-command-line-option-to-load-extra-plugin-jars-no.patch similarity index 100% rename from patches/unapplied/server/0017-Add-command-line-option-to-load-extra-plugin-jars-no.patch rename to patches/unapplied/server/0027-Add-command-line-option-to-load-extra-plugin-jars-no.patch diff --git a/patches/unapplied/server/0018-Support-components-in-ItemMeta.patch b/patches/unapplied/server/0028-Support-components-in-ItemMeta.patch similarity index 100% rename from patches/unapplied/server/0018-Support-components-in-ItemMeta.patch rename to patches/unapplied/server/0028-Support-components-in-ItemMeta.patch diff --git a/patches/unapplied/server/0019-Configurable-cactus-bamboo-and-reed-growth-height.patch b/patches/unapplied/server/0029-Configurable-cactus-bamboo-and-reed-growth-height.patch similarity index 100% rename from patches/unapplied/server/0019-Configurable-cactus-bamboo-and-reed-growth-height.patch rename to patches/unapplied/server/0029-Configurable-cactus-bamboo-and-reed-growth-height.patch diff --git a/patches/unapplied/server/0020-Configurable-baby-zombie-movement-speed.patch b/patches/unapplied/server/0030-Configurable-baby-zombie-movement-speed.patch similarity index 100% rename from patches/unapplied/server/0020-Configurable-baby-zombie-movement-speed.patch rename to patches/unapplied/server/0030-Configurable-baby-zombie-movement-speed.patch diff --git a/patches/unapplied/server/0021-Configurable-fishing-time-ranges.patch b/patches/unapplied/server/0031-Configurable-fishing-time-ranges.patch similarity index 100% rename from patches/unapplied/server/0021-Configurable-fishing-time-ranges.patch rename to patches/unapplied/server/0031-Configurable-fishing-time-ranges.patch diff --git a/patches/unapplied/server/0022-Allow-nerfed-mobs-to-jump.patch b/patches/unapplied/server/0032-Allow-nerfed-mobs-to-jump.patch similarity index 100% rename from patches/unapplied/server/0022-Allow-nerfed-mobs-to-jump.patch rename to patches/unapplied/server/0032-Allow-nerfed-mobs-to-jump.patch diff --git a/patches/unapplied/server/0023-Add-configurable-entity-despawn-distances.patch b/patches/unapplied/server/0033-Add-configurable-entity-despawn-distances.patch similarity index 100% rename from patches/unapplied/server/0023-Add-configurable-entity-despawn-distances.patch rename to patches/unapplied/server/0033-Add-configurable-entity-despawn-distances.patch diff --git a/patches/unapplied/server/0024-Allow-for-toggling-of-spawn-chunks.patch b/patches/unapplied/server/0034-Allow-for-toggling-of-spawn-chunks.patch similarity index 100% rename from patches/unapplied/server/0024-Allow-for-toggling-of-spawn-chunks.patch rename to patches/unapplied/server/0034-Allow-for-toggling-of-spawn-chunks.patch diff --git a/patches/unapplied/server/0025-Drop-falling-block-and-tnt-entities-at-the-specified.patch b/patches/unapplied/server/0035-Drop-falling-block-and-tnt-entities-at-the-specified.patch similarity index 100% rename from patches/unapplied/server/0025-Drop-falling-block-and-tnt-entities-at-the-specified.patch rename to patches/unapplied/server/0035-Drop-falling-block-and-tnt-entities-at-the-specified.patch diff --git a/patches/unapplied/server/0026-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/unapplied/server/0036-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch similarity index 100% rename from patches/unapplied/server/0026-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch rename to patches/unapplied/server/0036-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch diff --git a/patches/unapplied/server/0027-Implement-Paper-VersionChecker.patch b/patches/unapplied/server/0037-Implement-Paper-VersionChecker.patch similarity index 100% rename from patches/unapplied/server/0027-Implement-Paper-VersionChecker.patch rename to patches/unapplied/server/0037-Implement-Paper-VersionChecker.patch diff --git a/patches/unapplied/server/0028-Add-version-history-to-version-command.patch b/patches/unapplied/server/0038-Add-version-history-to-version-command.patch similarity index 100% rename from patches/unapplied/server/0028-Add-version-history-to-version-command.patch rename to patches/unapplied/server/0038-Add-version-history-to-version-command.patch diff --git a/patches/unapplied/server/0029-Player-affects-spawning-API.patch b/patches/unapplied/server/0039-Player-affects-spawning-API.patch similarity index 100% rename from patches/unapplied/server/0029-Player-affects-spawning-API.patch rename to patches/unapplied/server/0039-Player-affects-spawning-API.patch diff --git a/patches/unapplied/server/0030-Only-refresh-abilities-if-needed.patch b/patches/unapplied/server/0040-Only-refresh-abilities-if-needed.patch similarity index 100% rename from patches/unapplied/server/0030-Only-refresh-abilities-if-needed.patch rename to patches/unapplied/server/0040-Only-refresh-abilities-if-needed.patch diff --git a/patches/unapplied/server/0031-fix-ItemMeta-removing-CustomModelData.patch b/patches/unapplied/server/0041-fix-ItemMeta-removing-CustomModelData.patch similarity index 100% rename from patches/unapplied/server/0031-fix-ItemMeta-removing-CustomModelData.patch rename to patches/unapplied/server/0041-fix-ItemMeta-removing-CustomModelData.patch diff --git a/patches/unapplied/server/0032-Entity-Origin-API.patch b/patches/unapplied/server/0042-Entity-Origin-API.patch similarity index 100% rename from patches/unapplied/server/0032-Entity-Origin-API.patch rename to patches/unapplied/server/0042-Entity-Origin-API.patch diff --git a/patches/unapplied/server/0033-Prevent-block-entity-and-entity-crashes.patch b/patches/unapplied/server/0043-Prevent-block-entity-and-entity-crashes.patch similarity index 100% rename from patches/unapplied/server/0033-Prevent-block-entity-and-entity-crashes.patch rename to patches/unapplied/server/0043-Prevent-block-entity-and-entity-crashes.patch diff --git a/patches/unapplied/server/0034-Configurable-top-of-nether-void-damage.patch b/patches/unapplied/server/0044-Configurable-top-of-nether-void-damage.patch similarity index 100% rename from patches/unapplied/server/0034-Configurable-top-of-nether-void-damage.patch rename to patches/unapplied/server/0044-Configurable-top-of-nether-void-damage.patch diff --git a/patches/unapplied/server/0035-Check-online-mode-before-converting-and-renaming-pla.patch b/patches/unapplied/server/0045-Check-online-mode-before-converting-and-renaming-pla.patch similarity index 100% rename from patches/unapplied/server/0035-Check-online-mode-before-converting-and-renaming-pla.patch rename to patches/unapplied/server/0045-Check-online-mode-before-converting-and-renaming-pla.patch diff --git a/patches/unapplied/server/0036-Add-more-entities-to-activation-range-ignore-list.patch b/patches/unapplied/server/0046-Add-more-entities-to-activation-range-ignore-list.patch similarity index 100% rename from patches/unapplied/server/0036-Add-more-entities-to-activation-range-ignore-list.patch rename to patches/unapplied/server/0046-Add-more-entities-to-activation-range-ignore-list.patch diff --git a/patches/unapplied/server/0037-Configurable-end-credits.patch b/patches/unapplied/server/0047-Configurable-end-credits.patch similarity index 100% rename from patches/unapplied/server/0037-Configurable-end-credits.patch rename to patches/unapplied/server/0047-Configurable-end-credits.patch diff --git a/patches/unapplied/server/0038-Fix-lag-from-explosions-processing-dead-entities.patch b/patches/unapplied/server/0048-Fix-lag-from-explosions-processing-dead-entities.patch similarity index 100% rename from patches/unapplied/server/0038-Fix-lag-from-explosions-processing-dead-entities.patch rename to patches/unapplied/server/0048-Fix-lag-from-explosions-processing-dead-entities.patch diff --git a/patches/unapplied/server/0039-Optimize-explosions.patch b/patches/unapplied/server/0049-Optimize-explosions.patch similarity index 100% rename from patches/unapplied/server/0039-Optimize-explosions.patch rename to patches/unapplied/server/0049-Optimize-explosions.patch diff --git a/patches/unapplied/server/0040-Disable-explosion-knockback.patch b/patches/unapplied/server/0050-Disable-explosion-knockback.patch similarity index 100% rename from patches/unapplied/server/0040-Disable-explosion-knockback.patch rename to patches/unapplied/server/0050-Disable-explosion-knockback.patch diff --git a/patches/unapplied/server/0041-Disable-thunder.patch b/patches/unapplied/server/0051-Disable-thunder.patch similarity index 100% rename from patches/unapplied/server/0041-Disable-thunder.patch rename to patches/unapplied/server/0051-Disable-thunder.patch diff --git a/patches/unapplied/server/0042-Disable-ice-and-snow.patch b/patches/unapplied/server/0052-Disable-ice-and-snow.patch similarity index 100% rename from patches/unapplied/server/0042-Disable-ice-and-snow.patch rename to patches/unapplied/server/0052-Disable-ice-and-snow.patch diff --git a/patches/unapplied/server/0043-Configurable-mob-spawner-tick-rate.patch b/patches/unapplied/server/0053-Configurable-mob-spawner-tick-rate.patch similarity index 100% rename from patches/unapplied/server/0043-Configurable-mob-spawner-tick-rate.patch rename to patches/unapplied/server/0053-Configurable-mob-spawner-tick-rate.patch diff --git a/patches/unapplied/server/0044-Implement-PlayerLocaleChangeEvent.patch b/patches/unapplied/server/0054-Implement-PlayerLocaleChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0044-Implement-PlayerLocaleChangeEvent.patch rename to patches/unapplied/server/0054-Implement-PlayerLocaleChangeEvent.patch diff --git a/patches/unapplied/server/0045-Add-BeaconEffectEvent.patch b/patches/unapplied/server/0055-Add-BeaconEffectEvent.patch similarity index 100% rename from patches/unapplied/server/0045-Add-BeaconEffectEvent.patch rename to patches/unapplied/server/0055-Add-BeaconEffectEvent.patch diff --git a/patches/unapplied/server/0046-Configurable-container-update-tick-rate.patch b/patches/unapplied/server/0056-Configurable-container-update-tick-rate.patch similarity index 100% rename from patches/unapplied/server/0046-Configurable-container-update-tick-rate.patch rename to patches/unapplied/server/0056-Configurable-container-update-tick-rate.patch diff --git a/patches/unapplied/server/0047-Use-UserCache-for-player-heads.patch b/patches/unapplied/server/0057-Use-UserCache-for-player-heads.patch similarity index 100% rename from patches/unapplied/server/0047-Use-UserCache-for-player-heads.patch rename to patches/unapplied/server/0057-Use-UserCache-for-player-heads.patch diff --git a/patches/unapplied/server/0048-Disable-spigot-tick-limiters.patch b/patches/unapplied/server/0058-Disable-spigot-tick-limiters.patch similarity index 100% rename from patches/unapplied/server/0048-Disable-spigot-tick-limiters.patch rename to patches/unapplied/server/0058-Disable-spigot-tick-limiters.patch diff --git a/patches/unapplied/server/0049-Add-PlayerInitialSpawnEvent.patch b/patches/unapplied/server/0059-Add-PlayerInitialSpawnEvent.patch similarity index 100% rename from patches/unapplied/server/0049-Add-PlayerInitialSpawnEvent.patch rename to patches/unapplied/server/0059-Add-PlayerInitialSpawnEvent.patch diff --git a/patches/unapplied/server/0050-Configurable-Disabling-Cat-Chest-Detection.patch b/patches/unapplied/server/0060-Configurable-Disabling-Cat-Chest-Detection.patch similarity index 100% rename from patches/unapplied/server/0050-Configurable-Disabling-Cat-Chest-Detection.patch rename to patches/unapplied/server/0060-Configurable-Disabling-Cat-Chest-Detection.patch diff --git a/patches/unapplied/server/0051-Improve-Player-chat-API-handling.patch b/patches/unapplied/server/0061-Improve-Player-chat-API-handling.patch similarity index 100% rename from patches/unapplied/server/0051-Improve-Player-chat-API-handling.patch rename to patches/unapplied/server/0061-Improve-Player-chat-API-handling.patch diff --git a/patches/unapplied/server/0052-All-chunks-are-slime-spawn-chunks-toggle.patch b/patches/unapplied/server/0062-All-chunks-are-slime-spawn-chunks-toggle.patch similarity index 100% rename from patches/unapplied/server/0052-All-chunks-are-slime-spawn-chunks-toggle.patch rename to patches/unapplied/server/0062-All-chunks-are-slime-spawn-chunks-toggle.patch diff --git a/patches/unapplied/server/0053-Expose-server-CommandMap.patch b/patches/unapplied/server/0063-Expose-server-CommandMap.patch similarity index 100% rename from patches/unapplied/server/0053-Expose-server-CommandMap.patch rename to patches/unapplied/server/0063-Expose-server-CommandMap.patch diff --git a/patches/unapplied/server/0054-Be-a-bit-more-informative-in-maxHealth-exception.patch b/patches/unapplied/server/0064-Be-a-bit-more-informative-in-maxHealth-exception.patch similarity index 100% rename from patches/unapplied/server/0054-Be-a-bit-more-informative-in-maxHealth-exception.patch rename to patches/unapplied/server/0064-Be-a-bit-more-informative-in-maxHealth-exception.patch diff --git a/patches/unapplied/server/0055-Player-Tab-List-and-Title-APIs.patch b/patches/unapplied/server/0065-Player-Tab-List-and-Title-APIs.patch similarity index 100% rename from patches/unapplied/server/0055-Player-Tab-List-and-Title-APIs.patch rename to patches/unapplied/server/0065-Player-Tab-List-and-Title-APIs.patch diff --git a/patches/unapplied/server/0056-Add-configurable-portal-search-radius.patch b/patches/unapplied/server/0066-Add-configurable-portal-search-radius.patch similarity index 100% rename from patches/unapplied/server/0056-Add-configurable-portal-search-radius.patch rename to patches/unapplied/server/0066-Add-configurable-portal-search-radius.patch diff --git a/patches/unapplied/server/0057-Add-velocity-warnings.patch b/patches/unapplied/server/0067-Add-velocity-warnings.patch similarity index 100% rename from patches/unapplied/server/0057-Add-velocity-warnings.patch rename to patches/unapplied/server/0067-Add-velocity-warnings.patch diff --git a/patches/unapplied/server/0058-Configurable-inter-world-teleportation-safety.patch b/patches/unapplied/server/0068-Configurable-inter-world-teleportation-safety.patch similarity index 100% rename from patches/unapplied/server/0058-Configurable-inter-world-teleportation-safety.patch rename to patches/unapplied/server/0068-Configurable-inter-world-teleportation-safety.patch diff --git a/patches/unapplied/server/0059-Add-exception-reporting-event.patch b/patches/unapplied/server/0069-Add-exception-reporting-event.patch similarity index 100% rename from patches/unapplied/server/0059-Add-exception-reporting-event.patch rename to patches/unapplied/server/0069-Add-exception-reporting-event.patch diff --git a/patches/unapplied/server/0060-Disable-Scoreboards-for-non-players-by-default.patch b/patches/unapplied/server/0070-Disable-Scoreboards-for-non-players-by-default.patch similarity index 100% rename from patches/unapplied/server/0060-Disable-Scoreboards-for-non-players-by-default.patch rename to patches/unapplied/server/0070-Disable-Scoreboards-for-non-players-by-default.patch diff --git a/patches/unapplied/server/0061-Add-methods-for-working-with-arrows-stuck-in-living-.patch b/patches/unapplied/server/0071-Add-methods-for-working-with-arrows-stuck-in-living-.patch similarity index 100% rename from patches/unapplied/server/0061-Add-methods-for-working-with-arrows-stuck-in-living-.patch rename to patches/unapplied/server/0071-Add-methods-for-working-with-arrows-stuck-in-living-.patch diff --git a/patches/unapplied/server/0062-Chunk-Save-Reattempt.patch b/patches/unapplied/server/0072-Chunk-Save-Reattempt.patch similarity index 100% rename from patches/unapplied/server/0062-Chunk-Save-Reattempt.patch rename to patches/unapplied/server/0072-Chunk-Save-Reattempt.patch diff --git a/patches/unapplied/server/0063-Complete-resource-pack-API.patch b/patches/unapplied/server/0073-Complete-resource-pack-API.patch similarity index 100% rename from patches/unapplied/server/0063-Complete-resource-pack-API.patch rename to patches/unapplied/server/0073-Complete-resource-pack-API.patch diff --git a/patches/unapplied/server/0064-Default-loading-permissions.yml-before-plugins.patch b/patches/unapplied/server/0074-Default-loading-permissions.yml-before-plugins.patch similarity index 100% rename from patches/unapplied/server/0064-Default-loading-permissions.yml-before-plugins.patch rename to patches/unapplied/server/0074-Default-loading-permissions.yml-before-plugins.patch diff --git a/patches/unapplied/server/0065-Allow-Reloading-of-Custom-Permissions.patch b/patches/unapplied/server/0075-Allow-Reloading-of-Custom-Permissions.patch similarity index 100% rename from patches/unapplied/server/0065-Allow-Reloading-of-Custom-Permissions.patch rename to patches/unapplied/server/0075-Allow-Reloading-of-Custom-Permissions.patch diff --git a/patches/unapplied/server/0066-Remove-Metadata-on-reload.patch b/patches/unapplied/server/0076-Remove-Metadata-on-reload.patch similarity index 100% rename from patches/unapplied/server/0066-Remove-Metadata-on-reload.patch rename to patches/unapplied/server/0076-Remove-Metadata-on-reload.patch diff --git a/patches/unapplied/server/0067-Handle-Item-Meta-Inconsistencies.patch b/patches/unapplied/server/0077-Handle-Item-Meta-Inconsistencies.patch similarity index 100% rename from patches/unapplied/server/0067-Handle-Item-Meta-Inconsistencies.patch rename to patches/unapplied/server/0077-Handle-Item-Meta-Inconsistencies.patch diff --git a/patches/unapplied/server/0068-Configurable-Non-Player-Arrow-Despawn-Rate.patch b/patches/unapplied/server/0078-Configurable-Non-Player-Arrow-Despawn-Rate.patch similarity index 100% rename from patches/unapplied/server/0068-Configurable-Non-Player-Arrow-Despawn-Rate.patch rename to patches/unapplied/server/0078-Configurable-Non-Player-Arrow-Despawn-Rate.patch diff --git a/patches/unapplied/server/0069-Add-World-Util-Methods.patch b/patches/unapplied/server/0079-Add-World-Util-Methods.patch similarity index 100% rename from patches/unapplied/server/0069-Add-World-Util-Methods.patch rename to patches/unapplied/server/0079-Add-World-Util-Methods.patch diff --git a/patches/unapplied/server/0070-Custom-replacement-for-eaten-items.patch b/patches/unapplied/server/0080-Custom-replacement-for-eaten-items.patch similarity index 100% rename from patches/unapplied/server/0070-Custom-replacement-for-eaten-items.patch rename to patches/unapplied/server/0080-Custom-replacement-for-eaten-items.patch diff --git a/patches/unapplied/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/unapplied/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch similarity index 100% rename from patches/unapplied/server/0071-handle-NaN-health-absorb-values-and-repair-bad-data.patch rename to patches/unapplied/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch diff --git a/patches/unapplied/server/0072-Use-a-Shared-Random-for-Entities.patch b/patches/unapplied/server/0082-Use-a-Shared-Random-for-Entities.patch similarity index 100% rename from patches/unapplied/server/0072-Use-a-Shared-Random-for-Entities.patch rename to patches/unapplied/server/0082-Use-a-Shared-Random-for-Entities.patch diff --git a/patches/unapplied/server/0073-Configurable-spawn-chances-for-skeleton-horses.patch b/patches/unapplied/server/0083-Configurable-spawn-chances-for-skeleton-horses.patch similarity index 100% rename from patches/unapplied/server/0073-Configurable-spawn-chances-for-skeleton-horses.patch rename to patches/unapplied/server/0083-Configurable-spawn-chances-for-skeleton-horses.patch diff --git a/patches/unapplied/server/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/unapplied/server/0084-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch similarity index 100% rename from patches/unapplied/server/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch rename to patches/unapplied/server/0084-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch diff --git a/patches/unapplied/server/0075-Entity-AddTo-RemoveFrom-World-Events.patch b/patches/unapplied/server/0085-Entity-AddTo-RemoveFrom-World-Events.patch similarity index 100% rename from patches/unapplied/server/0075-Entity-AddTo-RemoveFrom-World-Events.patch rename to patches/unapplied/server/0085-Entity-AddTo-RemoveFrom-World-Events.patch diff --git a/patches/unapplied/server/0076-Configurable-Chunk-Inhabited-Time.patch b/patches/unapplied/server/0086-Configurable-Chunk-Inhabited-Time.patch similarity index 100% rename from patches/unapplied/server/0076-Configurable-Chunk-Inhabited-Time.patch rename to patches/unapplied/server/0086-Configurable-Chunk-Inhabited-Time.patch diff --git a/patches/unapplied/server/0077-EntityPathfindEvent.patch b/patches/unapplied/server/0087-EntityPathfindEvent.patch similarity index 100% rename from patches/unapplied/server/0077-EntityPathfindEvent.patch rename to patches/unapplied/server/0087-EntityPathfindEvent.patch diff --git a/patches/unapplied/server/0078-Sanitise-RegionFileCache-and-make-configurable.patch b/patches/unapplied/server/0088-Sanitise-RegionFileCache-and-make-configurable.patch similarity index 100% rename from patches/unapplied/server/0078-Sanitise-RegionFileCache-and-make-configurable.patch rename to patches/unapplied/server/0088-Sanitise-RegionFileCache-and-make-configurable.patch diff --git a/patches/unapplied/server/0079-Do-not-load-chunks-for-Pathfinding.patch b/patches/unapplied/server/0089-Do-not-load-chunks-for-Pathfinding.patch similarity index 100% rename from patches/unapplied/server/0079-Do-not-load-chunks-for-Pathfinding.patch rename to patches/unapplied/server/0089-Do-not-load-chunks-for-Pathfinding.patch diff --git a/patches/unapplied/server/0080-Add-PlayerUseUnknownEntityEvent.patch b/patches/unapplied/server/0090-Add-PlayerUseUnknownEntityEvent.patch similarity index 100% rename from patches/unapplied/server/0080-Add-PlayerUseUnknownEntityEvent.patch rename to patches/unapplied/server/0090-Add-PlayerUseUnknownEntityEvent.patch diff --git a/patches/unapplied/server/0081-Configurable-random-tick-rates-for-blocks.patch b/patches/unapplied/server/0091-Configurable-random-tick-rates-for-blocks.patch similarity index 100% rename from patches/unapplied/server/0081-Configurable-random-tick-rates-for-blocks.patch rename to patches/unapplied/server/0091-Configurable-random-tick-rates-for-blocks.patch diff --git a/patches/unapplied/server/0082-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch b/patches/unapplied/server/0092-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch similarity index 100% rename from patches/unapplied/server/0082-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch rename to patches/unapplied/server/0092-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch diff --git a/patches/unapplied/server/0083-Optimize-DataBits.patch b/patches/unapplied/server/0093-Optimize-DataBits.patch similarity index 100% rename from patches/unapplied/server/0083-Optimize-DataBits.patch rename to patches/unapplied/server/0093-Optimize-DataBits.patch diff --git a/patches/unapplied/server/0084-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch b/patches/unapplied/server/0094-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch similarity index 100% rename from patches/unapplied/server/0084-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch rename to patches/unapplied/server/0094-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch diff --git a/patches/unapplied/server/0085-Configurable-Player-Collision.patch b/patches/unapplied/server/0095-Configurable-Player-Collision.patch similarity index 100% rename from patches/unapplied/server/0085-Configurable-Player-Collision.patch rename to patches/unapplied/server/0095-Configurable-Player-Collision.patch diff --git a/patches/unapplied/server/0086-Add-handshake-event-to-allow-plugins-to-handle-clien.patch b/patches/unapplied/server/0096-Add-handshake-event-to-allow-plugins-to-handle-clien.patch similarity index 100% rename from patches/unapplied/server/0086-Add-handshake-event-to-allow-plugins-to-handle-clien.patch rename to patches/unapplied/server/0096-Add-handshake-event-to-allow-plugins-to-handle-clien.patch diff --git a/patches/unapplied/server/0087-Configurable-RCON-IP-address.patch b/patches/unapplied/server/0097-Configurable-RCON-IP-address.patch similarity index 100% rename from patches/unapplied/server/0087-Configurable-RCON-IP-address.patch rename to patches/unapplied/server/0097-Configurable-RCON-IP-address.patch diff --git a/patches/unapplied/server/0088-EntityRegainHealthEvent-isFastRegen-API.patch b/patches/unapplied/server/0098-EntityRegainHealthEvent-isFastRegen-API.patch similarity index 100% rename from patches/unapplied/server/0088-EntityRegainHealthEvent-isFastRegen-API.patch rename to patches/unapplied/server/0098-EntityRegainHealthEvent-isFastRegen-API.patch diff --git a/patches/unapplied/server/0089-Add-ability-to-configure-frosted_ice-properties.patch b/patches/unapplied/server/0099-Add-ability-to-configure-frosted_ice-properties.patch similarity index 100% rename from patches/unapplied/server/0089-Add-ability-to-configure-frosted_ice-properties.patch rename to patches/unapplied/server/0099-Add-ability-to-configure-frosted_ice-properties.patch diff --git a/patches/unapplied/server/0090-remove-null-possibility-for-getServer-singleton.patch b/patches/unapplied/server/0100-remove-null-possibility-for-getServer-singleton.patch similarity index 100% rename from patches/unapplied/server/0090-remove-null-possibility-for-getServer-singleton.patch rename to patches/unapplied/server/0100-remove-null-possibility-for-getServer-singleton.patch diff --git a/patches/unapplied/server/0091-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch b/patches/unapplied/server/0101-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch similarity index 100% rename from patches/unapplied/server/0091-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch rename to patches/unapplied/server/0101-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch diff --git a/patches/unapplied/server/0092-LootTable-API-and-replenishable-lootables.patch b/patches/unapplied/server/0102-LootTable-API-and-replenishable-lootables.patch similarity index 100% rename from patches/unapplied/server/0092-LootTable-API-and-replenishable-lootables.patch rename to patches/unapplied/server/0102-LootTable-API-and-replenishable-lootables.patch diff --git a/patches/unapplied/server/0093-System-property-for-disabling-watchdoge.patch b/patches/unapplied/server/0103-System-property-for-disabling-watchdoge.patch similarity index 100% rename from patches/unapplied/server/0093-System-property-for-disabling-watchdoge.patch rename to patches/unapplied/server/0103-System-property-for-disabling-watchdoge.patch diff --git a/patches/unapplied/server/0094-Async-GameProfileCache-saving.patch b/patches/unapplied/server/0104-Async-GameProfileCache-saving.patch similarity index 100% rename from patches/unapplied/server/0094-Async-GameProfileCache-saving.patch rename to patches/unapplied/server/0104-Async-GameProfileCache-saving.patch diff --git a/patches/unapplied/server/0095-Optional-TNT-doesn-t-move-in-water.patch b/patches/unapplied/server/0105-Optional-TNT-doesn-t-move-in-water.patch similarity index 100% rename from patches/unapplied/server/0095-Optional-TNT-doesn-t-move-in-water.patch rename to patches/unapplied/server/0105-Optional-TNT-doesn-t-move-in-water.patch diff --git a/patches/unapplied/server/0096-Faster-redstone-torch-rapid-clock-removal.patch b/patches/unapplied/server/0106-Faster-redstone-torch-rapid-clock-removal.patch similarity index 100% rename from patches/unapplied/server/0096-Faster-redstone-torch-rapid-clock-removal.patch rename to patches/unapplied/server/0106-Faster-redstone-torch-rapid-clock-removal.patch diff --git a/patches/unapplied/server/0097-Add-server-name-parameter.patch b/patches/unapplied/server/0107-Add-server-name-parameter.patch similarity index 100% rename from patches/unapplied/server/0097-Add-server-name-parameter.patch rename to patches/unapplied/server/0107-Add-server-name-parameter.patch diff --git a/patches/unapplied/server/0098-Fix-global-sound-handling.patch b/patches/unapplied/server/0108-Fix-global-sound-handling.patch similarity index 100% rename from patches/unapplied/server/0098-Fix-global-sound-handling.patch rename to patches/unapplied/server/0108-Fix-global-sound-handling.patch diff --git a/patches/unapplied/server/0099-Avoid-blocking-on-Network-Manager-creation.patch b/patches/unapplied/server/0109-Avoid-blocking-on-Network-Manager-creation.patch similarity index 100% rename from patches/unapplied/server/0099-Avoid-blocking-on-Network-Manager-creation.patch rename to patches/unapplied/server/0109-Avoid-blocking-on-Network-Manager-creation.patch diff --git a/patches/unapplied/server/0100-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch b/patches/unapplied/server/0110-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch similarity index 100% rename from patches/unapplied/server/0100-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch rename to patches/unapplied/server/0110-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch diff --git a/patches/unapplied/server/0101-Add-setting-for-proxy-online-mode-status.patch b/patches/unapplied/server/0111-Add-setting-for-proxy-online-mode-status.patch similarity index 100% rename from patches/unapplied/server/0101-Add-setting-for-proxy-online-mode-status.patch rename to patches/unapplied/server/0111-Add-setting-for-proxy-online-mode-status.patch diff --git a/patches/unapplied/server/0102-Optimise-BlockState-s-hashCode-equals.patch b/patches/unapplied/server/0112-Optimise-BlockState-s-hashCode-equals.patch similarity index 100% rename from patches/unapplied/server/0102-Optimise-BlockState-s-hashCode-equals.patch rename to patches/unapplied/server/0112-Optimise-BlockState-s-hashCode-equals.patch diff --git a/patches/unapplied/server/0103-Configurable-packet-in-spam-threshold.patch b/patches/unapplied/server/0113-Configurable-packet-in-spam-threshold.patch similarity index 100% rename from patches/unapplied/server/0103-Configurable-packet-in-spam-threshold.patch rename to patches/unapplied/server/0113-Configurable-packet-in-spam-threshold.patch diff --git a/patches/unapplied/server/0104-Configurable-flying-kick-messages.patch b/patches/unapplied/server/0114-Configurable-flying-kick-messages.patch similarity index 100% rename from patches/unapplied/server/0104-Configurable-flying-kick-messages.patch rename to patches/unapplied/server/0114-Configurable-flying-kick-messages.patch diff --git a/patches/unapplied/server/0105-Add-EntityZapEvent.patch b/patches/unapplied/server/0115-Add-EntityZapEvent.patch similarity index 100% rename from patches/unapplied/server/0105-Add-EntityZapEvent.patch rename to patches/unapplied/server/0115-Add-EntityZapEvent.patch diff --git a/patches/unapplied/server/0106-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch b/patches/unapplied/server/0116-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch similarity index 100% rename from patches/unapplied/server/0106-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch rename to patches/unapplied/server/0116-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch diff --git a/patches/unapplied/server/0107-Cache-user-authenticator-threads.patch b/patches/unapplied/server/0117-Cache-user-authenticator-threads.patch similarity index 100% rename from patches/unapplied/server/0107-Cache-user-authenticator-threads.patch rename to patches/unapplied/server/0117-Cache-user-authenticator-threads.patch diff --git a/patches/unapplied/server/0108-Allow-Reloading-of-Command-Aliases.patch b/patches/unapplied/server/0118-Allow-Reloading-of-Command-Aliases.patch similarity index 100% rename from patches/unapplied/server/0108-Allow-Reloading-of-Command-Aliases.patch rename to patches/unapplied/server/0118-Allow-Reloading-of-Command-Aliases.patch diff --git a/patches/unapplied/server/0109-Add-source-to-PlayerExpChangeEvent.patch b/patches/unapplied/server/0119-Add-source-to-PlayerExpChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0109-Add-source-to-PlayerExpChangeEvent.patch rename to patches/unapplied/server/0119-Add-source-to-PlayerExpChangeEvent.patch diff --git a/patches/unapplied/server/0110-Add-ProjectileCollideEvent.patch b/patches/unapplied/server/0120-Add-ProjectileCollideEvent.patch similarity index 100% rename from patches/unapplied/server/0110-Add-ProjectileCollideEvent.patch rename to patches/unapplied/server/0120-Add-ProjectileCollideEvent.patch diff --git a/patches/unapplied/server/0111-Prevent-Pathfinding-out-of-World-Border.patch b/patches/unapplied/server/0121-Prevent-Pathfinding-out-of-World-Border.patch similarity index 100% rename from patches/unapplied/server/0111-Prevent-Pathfinding-out-of-World-Border.patch rename to patches/unapplied/server/0121-Prevent-Pathfinding-out-of-World-Border.patch diff --git a/patches/unapplied/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch b/patches/unapplied/server/0122-Optimize-Level.hasChunkAt-BlockPosition-Z.patch similarity index 100% rename from patches/unapplied/server/0112-Optimize-Level.hasChunkAt-BlockPosition-Z.patch rename to patches/unapplied/server/0122-Optimize-Level.hasChunkAt-BlockPosition-Z.patch diff --git a/patches/unapplied/server/0113-Bound-Treasure-Maps-to-World-Border.patch b/patches/unapplied/server/0123-Bound-Treasure-Maps-to-World-Border.patch similarity index 100% rename from patches/unapplied/server/0113-Bound-Treasure-Maps-to-World-Border.patch rename to patches/unapplied/server/0123-Bound-Treasure-Maps-to-World-Border.patch diff --git a/patches/unapplied/server/0114-Configurable-Cartographer-Treasure-Maps.patch b/patches/unapplied/server/0124-Configurable-Cartographer-Treasure-Maps.patch similarity index 100% rename from patches/unapplied/server/0114-Configurable-Cartographer-Treasure-Maps.patch rename to patches/unapplied/server/0124-Configurable-Cartographer-Treasure-Maps.patch diff --git a/patches/unapplied/server/0115-Add-API-methods-to-control-if-armor-stands-can-move.patch b/patches/unapplied/server/0125-Add-API-methods-to-control-if-armor-stands-can-move.patch similarity index 100% rename from patches/unapplied/server/0115-Add-API-methods-to-control-if-armor-stands-can-move.patch rename to patches/unapplied/server/0125-Add-API-methods-to-control-if-armor-stands-can-move.patch diff --git a/patches/unapplied/server/0116-String-based-Action-Bar-API.patch b/patches/unapplied/server/0126-String-based-Action-Bar-API.patch similarity index 100% rename from patches/unapplied/server/0116-String-based-Action-Bar-API.patch rename to patches/unapplied/server/0126-String-based-Action-Bar-API.patch diff --git a/patches/unapplied/server/0117-Properly-fix-item-duplication-bug.patch b/patches/unapplied/server/0127-Properly-fix-item-duplication-bug.patch similarity index 100% rename from patches/unapplied/server/0117-Properly-fix-item-duplication-bug.patch rename to patches/unapplied/server/0127-Properly-fix-item-duplication-bug.patch diff --git a/patches/unapplied/server/0118-Firework-API-s.patch b/patches/unapplied/server/0128-Firework-API-s.patch similarity index 100% rename from patches/unapplied/server/0118-Firework-API-s.patch rename to patches/unapplied/server/0128-Firework-API-s.patch diff --git a/patches/unapplied/server/0119-PlayerTeleportEndGatewayEvent.patch b/patches/unapplied/server/0129-PlayerTeleportEndGatewayEvent.patch similarity index 100% rename from patches/unapplied/server/0119-PlayerTeleportEndGatewayEvent.patch rename to patches/unapplied/server/0129-PlayerTeleportEndGatewayEvent.patch diff --git a/patches/unapplied/server/0120-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/unapplied/server/0130-Provide-E-TE-Chunk-count-stat-methods.patch similarity index 100% rename from patches/unapplied/server/0120-Provide-E-TE-Chunk-count-stat-methods.patch rename to patches/unapplied/server/0130-Provide-E-TE-Chunk-count-stat-methods.patch diff --git a/patches/unapplied/server/0121-Enforce-Sync-Player-Saves.patch b/patches/unapplied/server/0131-Enforce-Sync-Player-Saves.patch similarity index 100% rename from patches/unapplied/server/0121-Enforce-Sync-Player-Saves.patch rename to patches/unapplied/server/0131-Enforce-Sync-Player-Saves.patch diff --git a/patches/unapplied/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/unapplied/server/0132-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch similarity index 100% rename from patches/unapplied/server/0122-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch rename to patches/unapplied/server/0132-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch diff --git a/patches/unapplied/server/0123-Cap-Entity-Collisions.patch b/patches/unapplied/server/0133-Cap-Entity-Collisions.patch similarity index 100% rename from patches/unapplied/server/0123-Cap-Entity-Collisions.patch rename to patches/unapplied/server/0133-Cap-Entity-Collisions.patch diff --git a/patches/unapplied/server/0124-Remove-CraftScheduler-Async-Task-Debugger.patch b/patches/unapplied/server/0134-Remove-CraftScheduler-Async-Task-Debugger.patch similarity index 100% rename from patches/unapplied/server/0124-Remove-CraftScheduler-Async-Task-Debugger.patch rename to patches/unapplied/server/0134-Remove-CraftScheduler-Async-Task-Debugger.patch diff --git a/patches/unapplied/server/0125-Properly-handle-async-calls-to-restart-the-server.patch b/patches/unapplied/server/0135-Properly-handle-async-calls-to-restart-the-server.patch similarity index 100% rename from patches/unapplied/server/0125-Properly-handle-async-calls-to-restart-the-server.patch rename to patches/unapplied/server/0135-Properly-handle-async-calls-to-restart-the-server.patch diff --git a/patches/unapplied/server/0126-Add-option-to-make-parrots-stay-on-shoulders-despite.patch b/patches/unapplied/server/0136-Add-option-to-make-parrots-stay-on-shoulders-despite.patch similarity index 100% rename from patches/unapplied/server/0126-Add-option-to-make-parrots-stay-on-shoulders-despite.patch rename to patches/unapplied/server/0136-Add-option-to-make-parrots-stay-on-shoulders-despite.patch diff --git a/patches/unapplied/server/0127-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/unapplied/server/0137-Add-configuration-option-to-prevent-player-names-fro.patch similarity index 100% rename from patches/unapplied/server/0127-Add-configuration-option-to-prevent-player-names-fro.patch rename to patches/unapplied/server/0137-Add-configuration-option-to-prevent-player-names-fro.patch diff --git a/patches/unapplied/server/0129-provide-a-configurable-option-to-disable-creeper-lin.patch b/patches/unapplied/server/0139-provide-a-configurable-option-to-disable-creeper-lin.patch similarity index 100% rename from patches/unapplied/server/0129-provide-a-configurable-option-to-disable-creeper-lin.patch rename to patches/unapplied/server/0139-provide-a-configurable-option-to-disable-creeper-lin.patch diff --git a/patches/unapplied/server/0130-Item-canEntityPickup.patch b/patches/unapplied/server/0140-Item-canEntityPickup.patch similarity index 100% rename from patches/unapplied/server/0130-Item-canEntityPickup.patch rename to patches/unapplied/server/0140-Item-canEntityPickup.patch diff --git a/patches/unapplied/server/0131-PlayerPickupItemEvent-setFlyAtPlayer.patch b/patches/unapplied/server/0141-PlayerPickupItemEvent-setFlyAtPlayer.patch similarity index 100% rename from patches/unapplied/server/0131-PlayerPickupItemEvent-setFlyAtPlayer.patch rename to patches/unapplied/server/0141-PlayerPickupItemEvent-setFlyAtPlayer.patch diff --git a/patches/unapplied/server/0132-PlayerAttemptPickupItemEvent.patch b/patches/unapplied/server/0142-PlayerAttemptPickupItemEvent.patch similarity index 100% rename from patches/unapplied/server/0132-PlayerAttemptPickupItemEvent.patch rename to patches/unapplied/server/0142-PlayerAttemptPickupItemEvent.patch diff --git a/patches/unapplied/server/0133-Do-not-submit-profile-lookups-to-worldgen-threads.patch b/patches/unapplied/server/0143-Do-not-submit-profile-lookups-to-worldgen-threads.patch similarity index 100% rename from patches/unapplied/server/0133-Do-not-submit-profile-lookups-to-worldgen-threads.patch rename to patches/unapplied/server/0143-Do-not-submit-profile-lookups-to-worldgen-threads.patch diff --git a/patches/unapplied/server/0134-Basic-PlayerProfile-API.patch b/patches/unapplied/server/0144-Basic-PlayerProfile-API.patch similarity index 100% rename from patches/unapplied/server/0134-Basic-PlayerProfile-API.patch rename to patches/unapplied/server/0144-Basic-PlayerProfile-API.patch diff --git a/patches/unapplied/server/0135-Add-UnknownCommandEvent.patch b/patches/unapplied/server/0145-Add-UnknownCommandEvent.patch similarity index 100% rename from patches/unapplied/server/0135-Add-UnknownCommandEvent.patch rename to patches/unapplied/server/0145-Add-UnknownCommandEvent.patch diff --git a/patches/unapplied/server/0136-Shoulder-Entities-Release-API.patch b/patches/unapplied/server/0146-Shoulder-Entities-Release-API.patch similarity index 100% rename from patches/unapplied/server/0136-Shoulder-Entities-Release-API.patch rename to patches/unapplied/server/0146-Shoulder-Entities-Release-API.patch diff --git a/patches/unapplied/server/0137-Profile-Lookup-Events.patch b/patches/unapplied/server/0147-Profile-Lookup-Events.patch similarity index 100% rename from patches/unapplied/server/0137-Profile-Lookup-Events.patch rename to patches/unapplied/server/0147-Profile-Lookup-Events.patch diff --git a/patches/unapplied/server/0138-Block-player-logins-during-server-shutdown.patch b/patches/unapplied/server/0148-Block-player-logins-during-server-shutdown.patch similarity index 100% rename from patches/unapplied/server/0138-Block-player-logins-during-server-shutdown.patch rename to patches/unapplied/server/0148-Block-player-logins-during-server-shutdown.patch diff --git a/patches/unapplied/server/0139-Entity-fromMobSpawner.patch b/patches/unapplied/server/0149-Entity-fromMobSpawner.patch similarity index 100% rename from patches/unapplied/server/0139-Entity-fromMobSpawner.patch rename to patches/unapplied/server/0149-Entity-fromMobSpawner.patch diff --git a/patches/unapplied/server/0140-Improve-the-Saddle-API-for-Horses.patch b/patches/unapplied/server/0150-Improve-the-Saddle-API-for-Horses.patch similarity index 100% rename from patches/unapplied/server/0140-Improve-the-Saddle-API-for-Horses.patch rename to patches/unapplied/server/0150-Improve-the-Saddle-API-for-Horses.patch diff --git a/patches/unapplied/server/0141-ensureServerConversions-API.patch b/patches/unapplied/server/0151-ensureServerConversions-API.patch similarity index 100% rename from patches/unapplied/server/0141-ensureServerConversions-API.patch rename to patches/unapplied/server/0151-ensureServerConversions-API.patch diff --git a/patches/unapplied/server/0142-Implement-getI18NDisplayName.patch b/patches/unapplied/server/0152-Implement-getI18NDisplayName.patch similarity index 100% rename from patches/unapplied/server/0142-Implement-getI18NDisplayName.patch rename to patches/unapplied/server/0152-Implement-getI18NDisplayName.patch diff --git a/patches/unapplied/server/0143-ProfileWhitelistVerifyEvent.patch b/patches/unapplied/server/0153-ProfileWhitelistVerifyEvent.patch similarity index 100% rename from patches/unapplied/server/0143-ProfileWhitelistVerifyEvent.patch rename to patches/unapplied/server/0153-ProfileWhitelistVerifyEvent.patch diff --git a/patches/unapplied/server/0144-Fix-this-stupid-bullshit.patch b/patches/unapplied/server/0154-Fix-this-stupid-bullshit.patch similarity index 100% rename from patches/unapplied/server/0144-Fix-this-stupid-bullshit.patch rename to patches/unapplied/server/0154-Fix-this-stupid-bullshit.patch diff --git a/patches/unapplied/server/0145-LivingEntity-setKiller.patch b/patches/unapplied/server/0155-LivingEntity-setKiller.patch similarity index 100% rename from patches/unapplied/server/0145-LivingEntity-setKiller.patch rename to patches/unapplied/server/0155-LivingEntity-setKiller.patch diff --git a/patches/unapplied/server/0146-Ocelot-despawns-should-honor-nametags-and-leash.patch b/patches/unapplied/server/0156-Ocelot-despawns-should-honor-nametags-and-leash.patch similarity index 100% rename from patches/unapplied/server/0146-Ocelot-despawns-should-honor-nametags-and-leash.patch rename to patches/unapplied/server/0156-Ocelot-despawns-should-honor-nametags-and-leash.patch diff --git a/patches/unapplied/server/0147-Reset-spawner-timer-when-spawner-event-is-cancelled.patch b/patches/unapplied/server/0157-Reset-spawner-timer-when-spawner-event-is-cancelled.patch similarity index 100% rename from patches/unapplied/server/0147-Reset-spawner-timer-when-spawner-event-is-cancelled.patch rename to patches/unapplied/server/0157-Reset-spawner-timer-when-spawner-event-is-cancelled.patch diff --git a/patches/unapplied/server/0148-Allow-specifying-a-custom-authentication-servers-dow.patch b/patches/unapplied/server/0158-Allow-specifying-a-custom-authentication-servers-dow.patch similarity index 100% rename from patches/unapplied/server/0148-Allow-specifying-a-custom-authentication-servers-dow.patch rename to patches/unapplied/server/0158-Allow-specifying-a-custom-authentication-servers-dow.patch diff --git a/patches/unapplied/server/0151-Add-PlayerJumpEvent.patch b/patches/unapplied/server/0161-Add-PlayerJumpEvent.patch similarity index 100% rename from patches/unapplied/server/0151-Add-PlayerJumpEvent.patch rename to patches/unapplied/server/0161-Add-PlayerJumpEvent.patch diff --git a/patches/unapplied/server/0152-handle-ServerboundKeepAlivePacket-async.patch b/patches/unapplied/server/0162-handle-ServerboundKeepAlivePacket-async.patch similarity index 100% rename from patches/unapplied/server/0152-handle-ServerboundKeepAlivePacket-async.patch rename to patches/unapplied/server/0162-handle-ServerboundKeepAlivePacket-async.patch diff --git a/patches/unapplied/server/0153-Expose-client-protocol-version-and-virtual-host.patch b/patches/unapplied/server/0163-Expose-client-protocol-version-and-virtual-host.patch similarity index 100% rename from patches/unapplied/server/0153-Expose-client-protocol-version-and-virtual-host.patch rename to patches/unapplied/server/0163-Expose-client-protocol-version-and-virtual-host.patch diff --git a/patches/unapplied/server/0154-revert-serverside-behavior-of-keepalives.patch b/patches/unapplied/server/0164-revert-serverside-behavior-of-keepalives.patch similarity index 100% rename from patches/unapplied/server/0154-revert-serverside-behavior-of-keepalives.patch rename to patches/unapplied/server/0164-revert-serverside-behavior-of-keepalives.patch diff --git a/patches/unapplied/server/0155-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/patches/unapplied/server/0165-Send-attack-SoundEffects-only-to-players-who-can-see.patch similarity index 100% rename from patches/unapplied/server/0155-Send-attack-SoundEffects-only-to-players-who-can-see.patch rename to patches/unapplied/server/0165-Send-attack-SoundEffects-only-to-players-who-can-see.patch diff --git a/patches/unapplied/server/0156-Add-PlayerArmorChangeEvent.patch b/patches/unapplied/server/0166-Add-PlayerArmorChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0156-Add-PlayerArmorChangeEvent.patch rename to patches/unapplied/server/0166-Add-PlayerArmorChangeEvent.patch diff --git a/patches/unapplied/server/0157-Prevent-logins-from-being-processed-when-the-player-.patch b/patches/unapplied/server/0167-Prevent-logins-from-being-processed-when-the-player-.patch similarity index 100% rename from patches/unapplied/server/0157-Prevent-logins-from-being-processed-when-the-player-.patch rename to patches/unapplied/server/0167-Prevent-logins-from-being-processed-when-the-player-.patch diff --git a/patches/unapplied/server/0158-Fix-MC-117075-Block-entity-unload-lag-spike.patch b/patches/unapplied/server/0168-Fix-MC-117075-Block-entity-unload-lag-spike.patch similarity index 100% rename from patches/unapplied/server/0158-Fix-MC-117075-Block-entity-unload-lag-spike.patch rename to patches/unapplied/server/0168-Fix-MC-117075-Block-entity-unload-lag-spike.patch diff --git a/patches/unapplied/server/0159-use-CB-BlockState-implementations-for-captured-block.patch b/patches/unapplied/server/0169-use-CB-BlockState-implementations-for-captured-block.patch similarity index 100% rename from patches/unapplied/server/0159-use-CB-BlockState-implementations-for-captured-block.patch rename to patches/unapplied/server/0169-use-CB-BlockState-implementations-for-captured-block.patch diff --git a/patches/unapplied/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/unapplied/server/0170-API-to-get-a-BlockState-without-a-snapshot.patch similarity index 100% rename from patches/unapplied/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch rename to patches/unapplied/server/0170-API-to-get-a-BlockState-without-a-snapshot.patch diff --git a/patches/unapplied/server/0161-AsyncTabCompleteEvent.patch b/patches/unapplied/server/0171-AsyncTabCompleteEvent.patch similarity index 100% rename from patches/unapplied/server/0161-AsyncTabCompleteEvent.patch rename to patches/unapplied/server/0171-AsyncTabCompleteEvent.patch diff --git a/patches/unapplied/server/0162-PlayerPickupExperienceEvent.patch b/patches/unapplied/server/0172-PlayerPickupExperienceEvent.patch similarity index 100% rename from patches/unapplied/server/0162-PlayerPickupExperienceEvent.patch rename to patches/unapplied/server/0172-PlayerPickupExperienceEvent.patch diff --git a/patches/unapplied/server/0163-Ability-to-apply-mending-to-XP-API.patch b/patches/unapplied/server/0173-Ability-to-apply-mending-to-XP-API.patch similarity index 100% rename from patches/unapplied/server/0163-Ability-to-apply-mending-to-XP-API.patch rename to patches/unapplied/server/0173-Ability-to-apply-mending-to-XP-API.patch diff --git a/patches/unapplied/server/0164-PlayerNaturallySpawnCreaturesEvent.patch b/patches/unapplied/server/0174-PlayerNaturallySpawnCreaturesEvent.patch similarity index 100% rename from patches/unapplied/server/0164-PlayerNaturallySpawnCreaturesEvent.patch rename to patches/unapplied/server/0174-PlayerNaturallySpawnCreaturesEvent.patch diff --git a/patches/unapplied/server/0165-Add-setPlayerProfile-API-for-Skulls.patch b/patches/unapplied/server/0175-Add-setPlayerProfile-API-for-Skulls.patch similarity index 100% rename from patches/unapplied/server/0165-Add-setPlayerProfile-API-for-Skulls.patch rename to patches/unapplied/server/0175-Add-setPlayerProfile-API-for-Skulls.patch diff --git a/patches/unapplied/server/0166-PreCreatureSpawnEvent.patch b/patches/unapplied/server/0176-PreCreatureSpawnEvent.patch similarity index 100% rename from patches/unapplied/server/0166-PreCreatureSpawnEvent.patch rename to patches/unapplied/server/0176-PreCreatureSpawnEvent.patch diff --git a/patches/unapplied/server/0167-Fill-Profile-Property-Events.patch b/patches/unapplied/server/0177-Fill-Profile-Property-Events.patch similarity index 100% rename from patches/unapplied/server/0167-Fill-Profile-Property-Events.patch rename to patches/unapplied/server/0177-Fill-Profile-Property-Events.patch diff --git a/patches/unapplied/server/0168-Add-PlayerAdvancementCriterionGrantEvent.patch b/patches/unapplied/server/0178-Add-PlayerAdvancementCriterionGrantEvent.patch similarity index 100% rename from patches/unapplied/server/0168-Add-PlayerAdvancementCriterionGrantEvent.patch rename to patches/unapplied/server/0178-Add-PlayerAdvancementCriterionGrantEvent.patch diff --git a/patches/unapplied/server/0169-Add-ArmorStand-Item-Meta.patch b/patches/unapplied/server/0179-Add-ArmorStand-Item-Meta.patch similarity index 100% rename from patches/unapplied/server/0169-Add-ArmorStand-Item-Meta.patch rename to patches/unapplied/server/0179-Add-ArmorStand-Item-Meta.patch diff --git a/patches/unapplied/server/0170-Extend-Player-Interact-cancellation.patch b/patches/unapplied/server/0180-Extend-Player-Interact-cancellation.patch similarity index 100% rename from patches/unapplied/server/0170-Extend-Player-Interact-cancellation.patch rename to patches/unapplied/server/0180-Extend-Player-Interact-cancellation.patch diff --git a/patches/unapplied/server/0171-Tameable-getOwnerUniqueId-API.patch b/patches/unapplied/server/0181-Tameable-getOwnerUniqueId-API.patch similarity index 100% rename from patches/unapplied/server/0171-Tameable-getOwnerUniqueId-API.patch rename to patches/unapplied/server/0181-Tameable-getOwnerUniqueId-API.patch diff --git a/patches/unapplied/server/0172-Toggleable-player-crits.patch b/patches/unapplied/server/0182-Toggleable-player-crits.patch similarity index 100% rename from patches/unapplied/server/0172-Toggleable-player-crits.patch rename to patches/unapplied/server/0182-Toggleable-player-crits.patch diff --git a/patches/unapplied/server/0173-Disable-Explicit-Network-Manager-Flushing.patch b/patches/unapplied/server/0183-Disable-Explicit-Network-Manager-Flushing.patch similarity index 100% rename from patches/unapplied/server/0173-Disable-Explicit-Network-Manager-Flushing.patch rename to patches/unapplied/server/0183-Disable-Explicit-Network-Manager-Flushing.patch diff --git a/patches/unapplied/server/0174-Implement-extended-PaperServerListPingEvent.patch b/patches/unapplied/server/0184-Implement-extended-PaperServerListPingEvent.patch similarity index 100% rename from patches/unapplied/server/0174-Implement-extended-PaperServerListPingEvent.patch rename to patches/unapplied/server/0184-Implement-extended-PaperServerListPingEvent.patch diff --git a/patches/unapplied/server/0175-Add-more-fields-to-AsyncPreLoginEvent.patch b/patches/unapplied/server/0185-Add-more-fields-to-AsyncPreLoginEvent.patch similarity index 100% rename from patches/unapplied/server/0175-Add-more-fields-to-AsyncPreLoginEvent.patch rename to patches/unapplied/server/0185-Add-more-fields-to-AsyncPreLoginEvent.patch diff --git a/patches/unapplied/server/0176-Player.setPlayerProfile-API.patch b/patches/unapplied/server/0186-Player.setPlayerProfile-API.patch similarity index 100% rename from patches/unapplied/server/0176-Player.setPlayerProfile-API.patch rename to patches/unapplied/server/0186-Player.setPlayerProfile-API.patch diff --git a/patches/unapplied/server/0177-getPlayerUniqueId-API.patch b/patches/unapplied/server/0187-getPlayerUniqueId-API.patch similarity index 100% rename from patches/unapplied/server/0177-getPlayerUniqueId-API.patch rename to patches/unapplied/server/0187-getPlayerUniqueId-API.patch diff --git a/patches/unapplied/server/0178-Improved-Async-Task-Scheduler.patch b/patches/unapplied/server/0188-Improved-Async-Task-Scheduler.patch similarity index 100% rename from patches/unapplied/server/0178-Improved-Async-Task-Scheduler.patch rename to patches/unapplied/server/0188-Improved-Async-Task-Scheduler.patch diff --git a/patches/unapplied/server/0179-Make-legacy-ping-handler-more-reliable.patch b/patches/unapplied/server/0189-Make-legacy-ping-handler-more-reliable.patch similarity index 100% rename from patches/unapplied/server/0179-Make-legacy-ping-handler-more-reliable.patch rename to patches/unapplied/server/0189-Make-legacy-ping-handler-more-reliable.patch diff --git a/patches/unapplied/server/0180-Call-PaperServerListPingEvent-for-legacy-pings.patch b/patches/unapplied/server/0190-Call-PaperServerListPingEvent-for-legacy-pings.patch similarity index 100% rename from patches/unapplied/server/0180-Call-PaperServerListPingEvent-for-legacy-pings.patch rename to patches/unapplied/server/0190-Call-PaperServerListPingEvent-for-legacy-pings.patch diff --git a/patches/unapplied/server/0181-Flag-to-disable-the-channel-limit.patch b/patches/unapplied/server/0191-Flag-to-disable-the-channel-limit.patch similarity index 100% rename from patches/unapplied/server/0181-Flag-to-disable-the-channel-limit.patch rename to patches/unapplied/server/0191-Flag-to-disable-the-channel-limit.patch diff --git a/patches/unapplied/server/0182-Add-openSign-method-to-HumanEntity.patch b/patches/unapplied/server/0192-Add-openSign-method-to-HumanEntity.patch similarity index 100% rename from patches/unapplied/server/0182-Add-openSign-method-to-HumanEntity.patch rename to patches/unapplied/server/0192-Add-openSign-method-to-HumanEntity.patch diff --git a/patches/unapplied/server/0183-Configurable-sprint-interruption-on-attack.patch b/patches/unapplied/server/0193-Configurable-sprint-interruption-on-attack.patch similarity index 100% rename from patches/unapplied/server/0183-Configurable-sprint-interruption-on-attack.patch rename to patches/unapplied/server/0193-Configurable-sprint-interruption-on-attack.patch diff --git a/patches/unapplied/server/0184-EndermanEscapeEvent.patch b/patches/unapplied/server/0194-EndermanEscapeEvent.patch similarity index 100% rename from patches/unapplied/server/0184-EndermanEscapeEvent.patch rename to patches/unapplied/server/0194-EndermanEscapeEvent.patch diff --git a/patches/unapplied/server/0185-Enderman.teleportRandomly.patch b/patches/unapplied/server/0195-Enderman.teleportRandomly.patch similarity index 100% rename from patches/unapplied/server/0185-Enderman.teleportRandomly.patch rename to patches/unapplied/server/0195-Enderman.teleportRandomly.patch diff --git a/patches/unapplied/server/0186-Block-Enderpearl-Travel-Exploit.patch b/patches/unapplied/server/0196-Block-Enderpearl-Travel-Exploit.patch similarity index 100% rename from patches/unapplied/server/0186-Block-Enderpearl-Travel-Exploit.patch rename to patches/unapplied/server/0196-Block-Enderpearl-Travel-Exploit.patch diff --git a/patches/unapplied/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/unapplied/server/0197-Expand-World.spawnParticle-API-and-add-Builder.patch similarity index 100% rename from patches/unapplied/server/0187-Expand-World.spawnParticle-API-and-add-Builder.patch rename to patches/unapplied/server/0197-Expand-World.spawnParticle-API-and-add-Builder.patch diff --git a/patches/unapplied/server/0188-Fix-exploit-that-allowed-colored-signs-to-be-created.patch b/patches/unapplied/server/0198-Fix-exploit-that-allowed-colored-signs-to-be-created.patch similarity index 100% rename from patches/unapplied/server/0188-Fix-exploit-that-allowed-colored-signs-to-be-created.patch rename to patches/unapplied/server/0198-Fix-exploit-that-allowed-colored-signs-to-be-created.patch diff --git a/patches/unapplied/server/0189-EndermanAttackPlayerEvent.patch b/patches/unapplied/server/0199-EndermanAttackPlayerEvent.patch similarity index 100% rename from patches/unapplied/server/0189-EndermanAttackPlayerEvent.patch rename to patches/unapplied/server/0199-EndermanAttackPlayerEvent.patch diff --git a/patches/unapplied/server/0190-WitchConsumePotionEvent.patch b/patches/unapplied/server/0200-WitchConsumePotionEvent.patch similarity index 100% rename from patches/unapplied/server/0190-WitchConsumePotionEvent.patch rename to patches/unapplied/server/0200-WitchConsumePotionEvent.patch diff --git a/patches/unapplied/server/0191-WitchThrowPotionEvent.patch b/patches/unapplied/server/0201-WitchThrowPotionEvent.patch similarity index 100% rename from patches/unapplied/server/0191-WitchThrowPotionEvent.patch rename to patches/unapplied/server/0201-WitchThrowPotionEvent.patch diff --git a/patches/unapplied/server/0192-WitchReadyPotionEvent.patch b/patches/unapplied/server/0202-WitchReadyPotionEvent.patch similarity index 100% rename from patches/unapplied/server/0192-WitchReadyPotionEvent.patch rename to patches/unapplied/server/0202-WitchReadyPotionEvent.patch diff --git a/patches/unapplied/server/0193-ItemStack-getMaxItemUseDuration.patch b/patches/unapplied/server/0203-ItemStack-getMaxItemUseDuration.patch similarity index 100% rename from patches/unapplied/server/0193-ItemStack-getMaxItemUseDuration.patch rename to patches/unapplied/server/0203-ItemStack-getMaxItemUseDuration.patch diff --git a/patches/unapplied/server/0194-Add-EntityTeleportEndGatewayEvent.patch b/patches/unapplied/server/0204-Add-EntityTeleportEndGatewayEvent.patch similarity index 100% rename from patches/unapplied/server/0194-Add-EntityTeleportEndGatewayEvent.patch rename to patches/unapplied/server/0204-Add-EntityTeleportEndGatewayEvent.patch diff --git a/patches/unapplied/server/0195-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch b/patches/unapplied/server/0205-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch similarity index 100% rename from patches/unapplied/server/0195-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch rename to patches/unapplied/server/0205-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch diff --git a/patches/unapplied/server/0196-Fix-CraftEntity-hashCode.patch b/patches/unapplied/server/0206-Fix-CraftEntity-hashCode.patch similarity index 100% rename from patches/unapplied/server/0196-Fix-CraftEntity-hashCode.patch rename to patches/unapplied/server/0206-Fix-CraftEntity-hashCode.patch diff --git a/patches/unapplied/server/0197-Configurable-LootPool-luck-formula.patch b/patches/unapplied/server/0207-Configurable-LootPool-luck-formula.patch similarity index 100% rename from patches/unapplied/server/0197-Configurable-LootPool-luck-formula.patch rename to patches/unapplied/server/0207-Configurable-LootPool-luck-formula.patch diff --git a/patches/unapplied/server/0198-Print-Error-details-when-failing-to-save-player-data.patch b/patches/unapplied/server/0208-Print-Error-details-when-failing-to-save-player-data.patch similarity index 100% rename from patches/unapplied/server/0198-Print-Error-details-when-failing-to-save-player-data.patch rename to patches/unapplied/server/0208-Print-Error-details-when-failing-to-save-player-data.patch diff --git a/patches/unapplied/server/0199-Make-shield-blocking-delay-configurable.patch b/patches/unapplied/server/0209-Make-shield-blocking-delay-configurable.patch similarity index 100% rename from patches/unapplied/server/0199-Make-shield-blocking-delay-configurable.patch rename to patches/unapplied/server/0209-Make-shield-blocking-delay-configurable.patch diff --git a/patches/unapplied/server/0200-Improve-EntityShootBowEvent.patch b/patches/unapplied/server/0210-Improve-EntityShootBowEvent.patch similarity index 100% rename from patches/unapplied/server/0200-Improve-EntityShootBowEvent.patch rename to patches/unapplied/server/0210-Improve-EntityShootBowEvent.patch diff --git a/patches/unapplied/server/0201-PlayerReadyArrowEvent.patch b/patches/unapplied/server/0211-PlayerReadyArrowEvent.patch similarity index 100% rename from patches/unapplied/server/0201-PlayerReadyArrowEvent.patch rename to patches/unapplied/server/0211-PlayerReadyArrowEvent.patch diff --git a/patches/unapplied/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch b/patches/unapplied/server/0212-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch similarity index 100% rename from patches/unapplied/server/0202-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch rename to patches/unapplied/server/0212-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch diff --git a/patches/unapplied/server/0203-Expand-Explosions-API.patch b/patches/unapplied/server/0213-Expand-Explosions-API.patch similarity index 100% rename from patches/unapplied/server/0203-Expand-Explosions-API.patch rename to patches/unapplied/server/0213-Expand-Explosions-API.patch diff --git a/patches/unapplied/server/0204-LivingEntity-Active-Item-API.patch b/patches/unapplied/server/0214-LivingEntity-Active-Item-API.patch similarity index 100% rename from patches/unapplied/server/0204-LivingEntity-Active-Item-API.patch rename to patches/unapplied/server/0214-LivingEntity-Active-Item-API.patch diff --git a/patches/unapplied/server/0205-RangedEntity-API.patch b/patches/unapplied/server/0215-RangedEntity-API.patch similarity index 100% rename from patches/unapplied/server/0205-RangedEntity-API.patch rename to patches/unapplied/server/0215-RangedEntity-API.patch diff --git a/patches/unapplied/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch b/patches/unapplied/server/0216-Add-config-to-disable-ender-dragon-legacy-check.patch similarity index 100% rename from patches/unapplied/server/0206-Add-config-to-disable-ender-dragon-legacy-check.patch rename to patches/unapplied/server/0216-Add-config-to-disable-ender-dragon-legacy-check.patch diff --git a/patches/unapplied/server/0207-Implement-World.getEntity-UUID-API.patch b/patches/unapplied/server/0217-Implement-World.getEntity-UUID-API.patch similarity index 100% rename from patches/unapplied/server/0207-Implement-World.getEntity-UUID-API.patch rename to patches/unapplied/server/0217-Implement-World.getEntity-UUID-API.patch diff --git a/patches/unapplied/server/0208-InventoryCloseEvent-Reason-API.patch b/patches/unapplied/server/0218-InventoryCloseEvent-Reason-API.patch similarity index 100% rename from patches/unapplied/server/0208-InventoryCloseEvent-Reason-API.patch rename to patches/unapplied/server/0218-InventoryCloseEvent-Reason-API.patch diff --git a/patches/unapplied/server/0209-Vex-get-setSummoner-API.patch b/patches/unapplied/server/0219-Vex-get-setSummoner-API.patch similarity index 100% rename from patches/unapplied/server/0209-Vex-get-setSummoner-API.patch rename to patches/unapplied/server/0219-Vex-get-setSummoner-API.patch diff --git a/patches/unapplied/server/0210-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/unapplied/server/0220-Refresh-player-inventory-when-cancelling-PlayerInter.patch similarity index 100% rename from patches/unapplied/server/0210-Refresh-player-inventory-when-cancelling-PlayerInter.patch rename to patches/unapplied/server/0220-Refresh-player-inventory-when-cancelling-PlayerInter.patch diff --git a/patches/unapplied/server/0212-add-more-information-to-Entity.toString.patch b/patches/unapplied/server/0222-add-more-information-to-Entity.toString.patch similarity index 100% rename from patches/unapplied/server/0212-add-more-information-to-Entity.toString.patch rename to patches/unapplied/server/0222-add-more-information-to-Entity.toString.patch diff --git a/patches/unapplied/server/0213-EnderDragon-Events.patch b/patches/unapplied/server/0223-EnderDragon-Events.patch similarity index 100% rename from patches/unapplied/server/0213-EnderDragon-Events.patch rename to patches/unapplied/server/0223-EnderDragon-Events.patch diff --git a/patches/unapplied/server/0214-PlayerElytraBoostEvent.patch b/patches/unapplied/server/0224-PlayerElytraBoostEvent.patch similarity index 100% rename from patches/unapplied/server/0214-PlayerElytraBoostEvent.patch rename to patches/unapplied/server/0224-PlayerElytraBoostEvent.patch diff --git a/patches/unapplied/server/0215-PlayerLaunchProjectileEvent.patch b/patches/unapplied/server/0225-PlayerLaunchProjectileEvent.patch similarity index 100% rename from patches/unapplied/server/0215-PlayerLaunchProjectileEvent.patch rename to patches/unapplied/server/0225-PlayerLaunchProjectileEvent.patch diff --git a/patches/unapplied/server/0216-Improve-BlockPosition-inlining.patch b/patches/unapplied/server/0226-Improve-BlockPosition-inlining.patch similarity index 100% rename from patches/unapplied/server/0216-Improve-BlockPosition-inlining.patch rename to patches/unapplied/server/0226-Improve-BlockPosition-inlining.patch diff --git a/patches/unapplied/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/patches/unapplied/server/0227-Option-to-prevent-armor-stands-from-doing-entity-loo.patch similarity index 100% rename from patches/unapplied/server/0217-Option-to-prevent-armor-stands-from-doing-entity-loo.patch rename to patches/unapplied/server/0227-Option-to-prevent-armor-stands-from-doing-entity-loo.patch diff --git a/patches/unapplied/server/0218-Vanished-players-don-t-have-rights.patch b/patches/unapplied/server/0228-Vanished-players-don-t-have-rights.patch similarity index 100% rename from patches/unapplied/server/0218-Vanished-players-don-t-have-rights.patch rename to patches/unapplied/server/0228-Vanished-players-don-t-have-rights.patch diff --git a/patches/unapplied/server/0219-Allow-disabling-armor-stand-ticking.patch b/patches/unapplied/server/0229-Allow-disabling-armor-stand-ticking.patch similarity index 100% rename from patches/unapplied/server/0219-Allow-disabling-armor-stand-ticking.patch rename to patches/unapplied/server/0229-Allow-disabling-armor-stand-ticking.patch diff --git a/patches/unapplied/server/0220-SkeletonHorse-Additions.patch b/patches/unapplied/server/0230-SkeletonHorse-Additions.patch similarity index 100% rename from patches/unapplied/server/0220-SkeletonHorse-Additions.patch rename to patches/unapplied/server/0230-SkeletonHorse-Additions.patch diff --git a/patches/unapplied/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch b/patches/unapplied/server/0231-Don-t-call-getItemMeta-on-hasItemMeta.patch similarity index 100% rename from patches/unapplied/server/0221-Don-t-call-getItemMeta-on-hasItemMeta.patch rename to patches/unapplied/server/0231-Don-t-call-getItemMeta-on-hasItemMeta.patch diff --git a/patches/unapplied/server/0222-Expand-ArmorStand-API.patch b/patches/unapplied/server/0232-Expand-ArmorStand-API.patch similarity index 100% rename from patches/unapplied/server/0222-Expand-ArmorStand-API.patch rename to patches/unapplied/server/0232-Expand-ArmorStand-API.patch diff --git a/patches/unapplied/server/0223-AnvilDamageEvent.patch b/patches/unapplied/server/0233-AnvilDamageEvent.patch similarity index 100% rename from patches/unapplied/server/0223-AnvilDamageEvent.patch rename to patches/unapplied/server/0233-AnvilDamageEvent.patch diff --git a/patches/unapplied/server/0224-Add-TNTPrimeEvent.patch b/patches/unapplied/server/0234-Add-TNTPrimeEvent.patch similarity index 100% rename from patches/unapplied/server/0224-Add-TNTPrimeEvent.patch rename to patches/unapplied/server/0234-Add-TNTPrimeEvent.patch diff --git a/patches/unapplied/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/unapplied/server/0235-Break-up-and-make-tab-spam-limits-configurable.patch similarity index 100% rename from patches/unapplied/server/0225-Break-up-and-make-tab-spam-limits-configurable.patch rename to patches/unapplied/server/0235-Break-up-and-make-tab-spam-limits-configurable.patch diff --git a/patches/unapplied/server/0226-Fix-NBT-type-issues.patch b/patches/unapplied/server/0236-Fix-NBT-type-issues.patch similarity index 100% rename from patches/unapplied/server/0226-Fix-NBT-type-issues.patch rename to patches/unapplied/server/0236-Fix-NBT-type-issues.patch diff --git a/patches/unapplied/server/0227-Remove-unnecessary-itemmeta-handling.patch b/patches/unapplied/server/0237-Remove-unnecessary-itemmeta-handling.patch similarity index 100% rename from patches/unapplied/server/0227-Remove-unnecessary-itemmeta-handling.patch rename to patches/unapplied/server/0237-Remove-unnecessary-itemmeta-handling.patch diff --git a/patches/unapplied/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/unapplied/server/0238-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch similarity index 100% rename from patches/unapplied/server/0228-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch rename to patches/unapplied/server/0238-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch diff --git a/patches/unapplied/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/unapplied/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch similarity index 100% rename from patches/unapplied/server/0229-Add-Early-Warning-Feature-to-WatchDog.patch rename to patches/unapplied/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch diff --git a/patches/unapplied/server/0230-Use-ConcurrentHashMap-in-JsonList.patch b/patches/unapplied/server/0240-Use-ConcurrentHashMap-in-JsonList.patch similarity index 100% rename from patches/unapplied/server/0230-Use-ConcurrentHashMap-in-JsonList.patch rename to patches/unapplied/server/0240-Use-ConcurrentHashMap-in-JsonList.patch diff --git a/patches/unapplied/server/0231-Use-a-Queue-for-Queueing-Commands.patch b/patches/unapplied/server/0241-Use-a-Queue-for-Queueing-Commands.patch similarity index 100% rename from patches/unapplied/server/0231-Use-a-Queue-for-Queueing-Commands.patch rename to patches/unapplied/server/0241-Use-a-Queue-for-Queueing-Commands.patch diff --git a/patches/unapplied/server/0232-Ability-to-get-block-entities-from-a-chunk-without-s.patch b/patches/unapplied/server/0242-Ability-to-get-block-entities-from-a-chunk-without-s.patch similarity index 100% rename from patches/unapplied/server/0232-Ability-to-get-block-entities-from-a-chunk-without-s.patch rename to patches/unapplied/server/0242-Ability-to-get-block-entities-from-a-chunk-without-s.patch diff --git a/patches/unapplied/server/0233-Optimize-BlockPosition-helper-methods.patch b/patches/unapplied/server/0243-Optimize-BlockPosition-helper-methods.patch similarity index 100% rename from patches/unapplied/server/0233-Optimize-BlockPosition-helper-methods.patch rename to patches/unapplied/server/0243-Optimize-BlockPosition-helper-methods.patch diff --git a/patches/unapplied/server/0234-Restore-vanilla-default-mob-spawn-range-and-water-an.patch b/patches/unapplied/server/0244-Restore-vanilla-default-mob-spawn-range-and-water-an.patch similarity index 100% rename from patches/unapplied/server/0234-Restore-vanilla-default-mob-spawn-range-and-water-an.patch rename to patches/unapplied/server/0244-Restore-vanilla-default-mob-spawn-range-and-water-an.patch diff --git a/patches/unapplied/server/0235-Slime-Pathfinder-Events.patch b/patches/unapplied/server/0245-Slime-Pathfinder-Events.patch similarity index 100% rename from patches/unapplied/server/0235-Slime-Pathfinder-Events.patch rename to patches/unapplied/server/0245-Slime-Pathfinder-Events.patch diff --git a/patches/unapplied/server/0236-Configurable-speed-for-water-flowing-over-lava.patch b/patches/unapplied/server/0246-Configurable-speed-for-water-flowing-over-lava.patch similarity index 100% rename from patches/unapplied/server/0236-Configurable-speed-for-water-flowing-over-lava.patch rename to patches/unapplied/server/0246-Configurable-speed-for-water-flowing-over-lava.patch diff --git a/patches/unapplied/server/0237-Optimize-CraftBlockData-Creation.patch b/patches/unapplied/server/0247-Optimize-CraftBlockData-Creation.patch similarity index 100% rename from patches/unapplied/server/0237-Optimize-CraftBlockData-Creation.patch rename to patches/unapplied/server/0247-Optimize-CraftBlockData-Creation.patch diff --git a/patches/unapplied/server/0238-Optimize-MappedRegistry.patch b/patches/unapplied/server/0248-Optimize-MappedRegistry.patch similarity index 100% rename from patches/unapplied/server/0238-Optimize-MappedRegistry.patch rename to patches/unapplied/server/0248-Optimize-MappedRegistry.patch diff --git a/patches/unapplied/server/0239-Add-PhantomPreSpawnEvent.patch b/patches/unapplied/server/0249-Add-PhantomPreSpawnEvent.patch similarity index 100% rename from patches/unapplied/server/0239-Add-PhantomPreSpawnEvent.patch rename to patches/unapplied/server/0249-Add-PhantomPreSpawnEvent.patch diff --git a/patches/unapplied/server/0240-Add-More-Creeper-API.patch b/patches/unapplied/server/0250-Add-More-Creeper-API.patch similarity index 100% rename from patches/unapplied/server/0240-Add-More-Creeper-API.patch rename to patches/unapplied/server/0250-Add-More-Creeper-API.patch diff --git a/patches/unapplied/server/0241-Inventory-removeItemAnySlot.patch b/patches/unapplied/server/0251-Inventory-removeItemAnySlot.patch similarity index 100% rename from patches/unapplied/server/0241-Inventory-removeItemAnySlot.patch rename to patches/unapplied/server/0251-Inventory-removeItemAnySlot.patch diff --git a/patches/unapplied/server/0242-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch b/patches/unapplied/server/0252-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch similarity index 100% rename from patches/unapplied/server/0242-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch rename to patches/unapplied/server/0252-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch diff --git a/patches/unapplied/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/unapplied/server/0253-Add-ray-tracing-methods-to-LivingEntity.patch similarity index 100% rename from patches/unapplied/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch rename to patches/unapplied/server/0253-Add-ray-tracing-methods-to-LivingEntity.patch diff --git a/patches/unapplied/server/0244-Expose-attack-cooldown-methods-for-Player.patch b/patches/unapplied/server/0254-Expose-attack-cooldown-methods-for-Player.patch similarity index 100% rename from patches/unapplied/server/0244-Expose-attack-cooldown-methods-for-Player.patch rename to patches/unapplied/server/0254-Expose-attack-cooldown-methods-for-Player.patch diff --git a/patches/unapplied/server/0245-Improve-death-events.patch b/patches/unapplied/server/0255-Improve-death-events.patch similarity index 100% rename from patches/unapplied/server/0245-Improve-death-events.patch rename to patches/unapplied/server/0255-Improve-death-events.patch diff --git a/patches/unapplied/server/0246-Allow-chests-to-be-placed-with-NBT-data.patch b/patches/unapplied/server/0256-Allow-chests-to-be-placed-with-NBT-data.patch similarity index 100% rename from patches/unapplied/server/0246-Allow-chests-to-be-placed-with-NBT-data.patch rename to patches/unapplied/server/0256-Allow-chests-to-be-placed-with-NBT-data.patch diff --git a/patches/unapplied/server/0247-Mob-Pathfinding-API.patch b/patches/unapplied/server/0257-Mob-Pathfinding-API.patch similarity index 100% rename from patches/unapplied/server/0247-Mob-Pathfinding-API.patch rename to patches/unapplied/server/0257-Mob-Pathfinding-API.patch diff --git a/patches/unapplied/server/0248-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch b/patches/unapplied/server/0258-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch similarity index 100% rename from patches/unapplied/server/0248-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch rename to patches/unapplied/server/0258-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch diff --git a/patches/unapplied/server/0249-Prevent-various-interactions-from-causing-chunk-load.patch b/patches/unapplied/server/0259-Prevent-various-interactions-from-causing-chunk-load.patch similarity index 100% rename from patches/unapplied/server/0249-Prevent-various-interactions-from-causing-chunk-load.patch rename to patches/unapplied/server/0259-Prevent-various-interactions-from-causing-chunk-load.patch diff --git a/patches/unapplied/server/0250-Prevent-mob-spawning-from-loading-generating-chunks.patch b/patches/unapplied/server/0260-Prevent-mob-spawning-from-loading-generating-chunks.patch similarity index 100% rename from patches/unapplied/server/0250-Prevent-mob-spawning-from-loading-generating-chunks.patch rename to patches/unapplied/server/0260-Prevent-mob-spawning-from-loading-generating-chunks.patch diff --git a/patches/unapplied/server/0251-Implement-furnace-cook-speed-multiplier-API.patch b/patches/unapplied/server/0261-Implement-furnace-cook-speed-multiplier-API.patch similarity index 100% rename from patches/unapplied/server/0251-Implement-furnace-cook-speed-multiplier-API.patch rename to patches/unapplied/server/0261-Implement-furnace-cook-speed-multiplier-API.patch diff --git a/patches/unapplied/server/0252-Honor-EntityAgeable.ageLock.patch b/patches/unapplied/server/0262-Honor-EntityAgeable.ageLock.patch similarity index 100% rename from patches/unapplied/server/0252-Honor-EntityAgeable.ageLock.patch rename to patches/unapplied/server/0262-Honor-EntityAgeable.ageLock.patch diff --git a/patches/unapplied/server/0253-Configurable-connection-throttle-kick-message.patch b/patches/unapplied/server/0263-Configurable-connection-throttle-kick-message.patch similarity index 100% rename from patches/unapplied/server/0253-Configurable-connection-throttle-kick-message.patch rename to patches/unapplied/server/0263-Configurable-connection-throttle-kick-message.patch diff --git a/patches/unapplied/server/0254-Prevent-chunk-loading-from-Fluid-Flowing.patch b/patches/unapplied/server/0264-Prevent-chunk-loading-from-Fluid-Flowing.patch similarity index 100% rename from patches/unapplied/server/0254-Prevent-chunk-loading-from-Fluid-Flowing.patch rename to patches/unapplied/server/0264-Prevent-chunk-loading-from-Fluid-Flowing.patch diff --git a/patches/unapplied/server/0255-Hook-into-CB-plugin-rewrites.patch b/patches/unapplied/server/0265-Hook-into-CB-plugin-rewrites.patch similarity index 100% rename from patches/unapplied/server/0255-Hook-into-CB-plugin-rewrites.patch rename to patches/unapplied/server/0265-Hook-into-CB-plugin-rewrites.patch diff --git a/patches/unapplied/server/0256-PreSpawnerSpawnEvent.patch b/patches/unapplied/server/0266-PreSpawnerSpawnEvent.patch similarity index 100% rename from patches/unapplied/server/0256-PreSpawnerSpawnEvent.patch rename to patches/unapplied/server/0266-PreSpawnerSpawnEvent.patch diff --git a/patches/unapplied/server/0257-Add-LivingEntity-getTargetEntity.patch b/patches/unapplied/server/0267-Add-LivingEntity-getTargetEntity.patch similarity index 100% rename from patches/unapplied/server/0257-Add-LivingEntity-getTargetEntity.patch rename to patches/unapplied/server/0267-Add-LivingEntity-getTargetEntity.patch diff --git a/patches/unapplied/server/0258-Add-sun-related-API.patch b/patches/unapplied/server/0268-Add-sun-related-API.patch similarity index 100% rename from patches/unapplied/server/0258-Add-sun-related-API.patch rename to patches/unapplied/server/0268-Add-sun-related-API.patch diff --git a/patches/unapplied/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch b/patches/unapplied/server/0269-Catch-JsonParseException-in-entity-and-block-entity-.patch similarity index 100% rename from patches/unapplied/server/0259-Catch-JsonParseException-in-entity-and-block-entity-.patch rename to patches/unapplied/server/0269-Catch-JsonParseException-in-entity-and-block-entity-.patch diff --git a/patches/unapplied/server/0260-Turtle-API.patch b/patches/unapplied/server/0270-Turtle-API.patch similarity index 100% rename from patches/unapplied/server/0260-Turtle-API.patch rename to patches/unapplied/server/0270-Turtle-API.patch diff --git a/patches/unapplied/server/0261-Call-player-spectator-target-events-and-improve-impl.patch b/patches/unapplied/server/0271-Call-player-spectator-target-events-and-improve-impl.patch similarity index 100% rename from patches/unapplied/server/0261-Call-player-spectator-target-events-and-improve-impl.patch rename to patches/unapplied/server/0271-Call-player-spectator-target-events-and-improve-impl.patch diff --git a/patches/unapplied/server/0262-Add-more-Witch-API.patch b/patches/unapplied/server/0272-Add-more-Witch-API.patch similarity index 100% rename from patches/unapplied/server/0262-Add-more-Witch-API.patch rename to patches/unapplied/server/0272-Add-more-Witch-API.patch diff --git a/patches/unapplied/server/0263-Check-Drowned-for-Villager-Aggression-Config.patch b/patches/unapplied/server/0273-Check-Drowned-for-Villager-Aggression-Config.patch similarity index 100% rename from patches/unapplied/server/0263-Check-Drowned-for-Villager-Aggression-Config.patch rename to patches/unapplied/server/0273-Check-Drowned-for-Villager-Aggression-Config.patch diff --git a/patches/unapplied/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/unapplied/server/0274-Add-option-to-prevent-players-from-moving-into-unloa.patch similarity index 100% rename from patches/unapplied/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch rename to patches/unapplied/server/0274-Add-option-to-prevent-players-from-moving-into-unloa.patch diff --git a/patches/unapplied/server/0265-Reset-players-airTicks-on-respawn.patch b/patches/unapplied/server/0275-Reset-players-airTicks-on-respawn.patch similarity index 100% rename from patches/unapplied/server/0265-Reset-players-airTicks-on-respawn.patch rename to patches/unapplied/server/0275-Reset-players-airTicks-on-respawn.patch diff --git a/patches/unapplied/server/0266-Don-t-sleep-after-profile-lookups-if-not-needed.patch b/patches/unapplied/server/0276-Don-t-sleep-after-profile-lookups-if-not-needed.patch similarity index 100% rename from patches/unapplied/server/0266-Don-t-sleep-after-profile-lookups-if-not-needed.patch rename to patches/unapplied/server/0276-Don-t-sleep-after-profile-lookups-if-not-needed.patch diff --git a/patches/unapplied/server/0267-Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/patches/unapplied/server/0277-Improve-Server-Thread-Pool-and-Thread-Priorities.patch similarity index 100% rename from patches/unapplied/server/0267-Improve-Server-Thread-Pool-and-Thread-Priorities.patch rename to patches/unapplied/server/0277-Improve-Server-Thread-Pool-and-Thread-Priorities.patch diff --git a/patches/unapplied/server/0268-Optimize-World-Time-Updates.patch b/patches/unapplied/server/0278-Optimize-World-Time-Updates.patch similarity index 100% rename from patches/unapplied/server/0268-Optimize-World-Time-Updates.patch rename to patches/unapplied/server/0278-Optimize-World-Time-Updates.patch diff --git a/patches/unapplied/server/0269-Restore-custom-InventoryHolder-support.patch b/patches/unapplied/server/0279-Restore-custom-InventoryHolder-support.patch similarity index 100% rename from patches/unapplied/server/0269-Restore-custom-InventoryHolder-support.patch rename to patches/unapplied/server/0279-Restore-custom-InventoryHolder-support.patch diff --git a/patches/unapplied/server/0270-Fix-SpongeAbsortEvent-handling.patch b/patches/unapplied/server/0280-Fix-SpongeAbsortEvent-handling.patch similarity index 100% rename from patches/unapplied/server/0270-Fix-SpongeAbsortEvent-handling.patch rename to patches/unapplied/server/0280-Fix-SpongeAbsortEvent-handling.patch diff --git a/patches/unapplied/server/0271-Don-t-allow-digging-into-unloaded-chunks.patch b/patches/unapplied/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch similarity index 100% rename from patches/unapplied/server/0271-Don-t-allow-digging-into-unloaded-chunks.patch rename to patches/unapplied/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch diff --git a/patches/unapplied/server/0272-Make-the-default-permission-message-configurable.patch b/patches/unapplied/server/0282-Make-the-default-permission-message-configurable.patch similarity index 100% rename from patches/unapplied/server/0272-Make-the-default-permission-message-configurable.patch rename to patches/unapplied/server/0282-Make-the-default-permission-message-configurable.patch diff --git a/patches/unapplied/server/0273-Handle-Large-Packets-disconnecting-client.patch b/patches/unapplied/server/0283-Handle-Large-Packets-disconnecting-client.patch similarity index 100% rename from patches/unapplied/server/0273-Handle-Large-Packets-disconnecting-client.patch rename to patches/unapplied/server/0283-Handle-Large-Packets-disconnecting-client.patch diff --git a/patches/unapplied/server/0274-force-entity-dismount-during-teleportation.patch b/patches/unapplied/server/0284-force-entity-dismount-during-teleportation.patch similarity index 100% rename from patches/unapplied/server/0274-force-entity-dismount-during-teleportation.patch rename to patches/unapplied/server/0284-force-entity-dismount-during-teleportation.patch diff --git a/patches/unapplied/server/0275-Add-more-Zombie-API.patch b/patches/unapplied/server/0285-Add-more-Zombie-API.patch similarity index 100% rename from patches/unapplied/server/0275-Add-more-Zombie-API.patch rename to patches/unapplied/server/0285-Add-more-Zombie-API.patch diff --git a/patches/unapplied/server/0276-Book-Size-Limits.patch b/patches/unapplied/server/0286-Book-Size-Limits.patch similarity index 100% rename from patches/unapplied/server/0276-Book-Size-Limits.patch rename to patches/unapplied/server/0286-Book-Size-Limits.patch diff --git a/patches/unapplied/server/0277-Add-PlayerConnectionCloseEvent.patch b/patches/unapplied/server/0287-Add-PlayerConnectionCloseEvent.patch similarity index 100% rename from patches/unapplied/server/0277-Add-PlayerConnectionCloseEvent.patch rename to patches/unapplied/server/0287-Add-PlayerConnectionCloseEvent.patch diff --git a/patches/unapplied/server/0278-Replace-OfflinePlayer-getLastPlayed.patch b/patches/unapplied/server/0288-Replace-OfflinePlayer-getLastPlayed.patch similarity index 100% rename from patches/unapplied/server/0278-Replace-OfflinePlayer-getLastPlayed.patch rename to patches/unapplied/server/0288-Replace-OfflinePlayer-getLastPlayed.patch diff --git a/patches/unapplied/server/0279-Workaround-for-vehicle-tracking-issue-on-disconnect.patch b/patches/unapplied/server/0289-Workaround-for-vehicle-tracking-issue-on-disconnect.patch similarity index 100% rename from patches/unapplied/server/0279-Workaround-for-vehicle-tracking-issue-on-disconnect.patch rename to patches/unapplied/server/0289-Workaround-for-vehicle-tracking-issue-on-disconnect.patch diff --git a/patches/unapplied/server/0280-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch b/patches/unapplied/server/0290-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch similarity index 100% rename from patches/unapplied/server/0280-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch rename to patches/unapplied/server/0290-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch diff --git a/patches/unapplied/server/0281-BlockDestroyEvent.patch b/patches/unapplied/server/0291-BlockDestroyEvent.patch similarity index 100% rename from patches/unapplied/server/0281-BlockDestroyEvent.patch rename to patches/unapplied/server/0291-BlockDestroyEvent.patch diff --git a/patches/unapplied/server/0282-Async-command-map-building.patch b/patches/unapplied/server/0292-Async-command-map-building.patch similarity index 100% rename from patches/unapplied/server/0282-Async-command-map-building.patch rename to patches/unapplied/server/0292-Async-command-map-building.patch diff --git a/patches/unapplied/server/0283-Brigadier-Mojang-API.patch b/patches/unapplied/server/0293-Brigadier-Mojang-API.patch similarity index 100% rename from patches/unapplied/server/0283-Brigadier-Mojang-API.patch rename to patches/unapplied/server/0293-Brigadier-Mojang-API.patch diff --git a/patches/unapplied/server/0284-Improve-exact-choice-recipe-ingredients.patch b/patches/unapplied/server/0294-Improve-exact-choice-recipe-ingredients.patch similarity index 100% rename from patches/unapplied/server/0284-Improve-exact-choice-recipe-ingredients.patch rename to patches/unapplied/server/0294-Improve-exact-choice-recipe-ingredients.patch diff --git a/patches/unapplied/server/0285-Limit-Client-Sign-length-more.patch b/patches/unapplied/server/0295-Limit-Client-Sign-length-more.patch similarity index 100% rename from patches/unapplied/server/0285-Limit-Client-Sign-length-more.patch rename to patches/unapplied/server/0295-Limit-Client-Sign-length-more.patch diff --git a/patches/unapplied/server/0286-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch b/patches/unapplied/server/0296-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch similarity index 100% rename from patches/unapplied/server/0286-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch rename to patches/unapplied/server/0296-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch diff --git a/patches/unapplied/server/0287-Entity-getEntitySpawnReason.patch b/patches/unapplied/server/0297-Entity-getEntitySpawnReason.patch similarity index 100% rename from patches/unapplied/server/0287-Entity-getEntitySpawnReason.patch rename to patches/unapplied/server/0297-Entity-getEntitySpawnReason.patch diff --git a/patches/unapplied/server/0288-Fire-event-on-GS4-query.patch b/patches/unapplied/server/0298-Fire-event-on-GS4-query.patch similarity index 100% rename from patches/unapplied/server/0288-Fire-event-on-GS4-query.patch rename to patches/unapplied/server/0298-Fire-event-on-GS4-query.patch diff --git a/patches/unapplied/server/0289-Add-PlayerPostRespawnEvent.patch b/patches/unapplied/server/0299-Add-PlayerPostRespawnEvent.patch similarity index 100% rename from patches/unapplied/server/0289-Add-PlayerPostRespawnEvent.patch rename to patches/unapplied/server/0299-Add-PlayerPostRespawnEvent.patch diff --git a/patches/unapplied/server/0290-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch b/patches/unapplied/server/0300-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch similarity index 100% rename from patches/unapplied/server/0290-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch rename to patches/unapplied/server/0300-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch diff --git a/patches/unapplied/server/0291-Server-Tick-Events.patch b/patches/unapplied/server/0301-Server-Tick-Events.patch similarity index 100% rename from patches/unapplied/server/0291-Server-Tick-Events.patch rename to patches/unapplied/server/0301-Server-Tick-Events.patch diff --git a/patches/unapplied/server/0292-PlayerDeathEvent-getItemsToKeep.patch b/patches/unapplied/server/0302-PlayerDeathEvent-getItemsToKeep.patch similarity index 100% rename from patches/unapplied/server/0292-PlayerDeathEvent-getItemsToKeep.patch rename to patches/unapplied/server/0302-PlayerDeathEvent-getItemsToKeep.patch diff --git a/patches/unapplied/server/0293-Optimize-Captured-BlockEntity-Lookup.patch b/patches/unapplied/server/0303-Optimize-Captured-BlockEntity-Lookup.patch similarity index 100% rename from patches/unapplied/server/0293-Optimize-Captured-BlockEntity-Lookup.patch rename to patches/unapplied/server/0303-Optimize-Captured-BlockEntity-Lookup.patch diff --git a/patches/unapplied/server/0294-Add-Heightmap-API.patch b/patches/unapplied/server/0304-Add-Heightmap-API.patch similarity index 100% rename from patches/unapplied/server/0294-Add-Heightmap-API.patch rename to patches/unapplied/server/0304-Add-Heightmap-API.patch diff --git a/patches/unapplied/server/0295-Mob-Spawner-API-Enhancements.patch b/patches/unapplied/server/0305-Mob-Spawner-API-Enhancements.patch similarity index 100% rename from patches/unapplied/server/0295-Mob-Spawner-API-Enhancements.patch rename to patches/unapplied/server/0305-Mob-Spawner-API-Enhancements.patch diff --git a/patches/unapplied/server/0296-Fix-CB-call-to-changed-postToMainThread-method.patch b/patches/unapplied/server/0306-Fix-CB-call-to-changed-postToMainThread-method.patch similarity index 100% rename from patches/unapplied/server/0296-Fix-CB-call-to-changed-postToMainThread-method.patch rename to patches/unapplied/server/0306-Fix-CB-call-to-changed-postToMainThread-method.patch diff --git a/patches/unapplied/server/0297-Fix-sounds-when-item-frames-are-modified-MC-123450.patch b/patches/unapplied/server/0307-Fix-sounds-when-item-frames-are-modified-MC-123450.patch similarity index 100% rename from patches/unapplied/server/0297-Fix-sounds-when-item-frames-are-modified-MC-123450.patch rename to patches/unapplied/server/0307-Fix-sounds-when-item-frames-are-modified-MC-123450.patch diff --git a/patches/unapplied/server/0298-Implement-CraftBlockSoundGroup.patch b/patches/unapplied/server/0308-Implement-CraftBlockSoundGroup.patch similarity index 100% rename from patches/unapplied/server/0298-Implement-CraftBlockSoundGroup.patch rename to patches/unapplied/server/0308-Implement-CraftBlockSoundGroup.patch diff --git a/patches/unapplied/server/0299-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/patches/unapplied/server/0309-Configurable-Keep-Spawn-Loaded-range-per-world.patch similarity index 100% rename from patches/unapplied/server/0299-Configurable-Keep-Spawn-Loaded-range-per-world.patch rename to patches/unapplied/server/0309-Configurable-Keep-Spawn-Loaded-range-per-world.patch diff --git a/patches/unapplied/server/0300-Expose-the-internal-current-tick.patch b/patches/unapplied/server/0310-Expose-the-internal-current-tick.patch similarity index 100% rename from patches/unapplied/server/0300-Expose-the-internal-current-tick.patch rename to patches/unapplied/server/0310-Expose-the-internal-current-tick.patch diff --git a/patches/unapplied/server/0301-Show-blockstate-location-if-we-failed-to-read-it.patch b/patches/unapplied/server/0311-Show-blockstate-location-if-we-failed-to-read-it.patch similarity index 100% rename from patches/unapplied/server/0301-Show-blockstate-location-if-we-failed-to-read-it.patch rename to patches/unapplied/server/0311-Show-blockstate-location-if-we-failed-to-read-it.patch diff --git a/patches/unapplied/server/0302-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch b/patches/unapplied/server/0312-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch similarity index 100% rename from patches/unapplied/server/0302-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch rename to patches/unapplied/server/0312-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch diff --git a/patches/unapplied/server/0303-Configurable-projectile-relative-velocity.patch b/patches/unapplied/server/0313-Configurable-projectile-relative-velocity.patch similarity index 100% rename from patches/unapplied/server/0303-Configurable-projectile-relative-velocity.patch rename to patches/unapplied/server/0313-Configurable-projectile-relative-velocity.patch diff --git a/patches/unapplied/server/0304-offset-item-frame-ticking.patch b/patches/unapplied/server/0314-offset-item-frame-ticking.patch similarity index 100% rename from patches/unapplied/server/0304-offset-item-frame-ticking.patch rename to patches/unapplied/server/0314-offset-item-frame-ticking.patch diff --git a/patches/unapplied/server/0305-Prevent-consuming-the-wrong-itemstack.patch b/patches/unapplied/server/0315-Prevent-consuming-the-wrong-itemstack.patch similarity index 100% rename from patches/unapplied/server/0305-Prevent-consuming-the-wrong-itemstack.patch rename to patches/unapplied/server/0315-Prevent-consuming-the-wrong-itemstack.patch diff --git a/patches/unapplied/server/0306-Dont-send-unnecessary-sign-update.patch b/patches/unapplied/server/0316-Dont-send-unnecessary-sign-update.patch similarity index 100% rename from patches/unapplied/server/0306-Dont-send-unnecessary-sign-update.patch rename to patches/unapplied/server/0316-Dont-send-unnecessary-sign-update.patch diff --git a/patches/unapplied/server/0307-Add-option-to-disable-pillager-patrols.patch b/patches/unapplied/server/0317-Add-option-to-disable-pillager-patrols.patch similarity index 100% rename from patches/unapplied/server/0307-Add-option-to-disable-pillager-patrols.patch rename to patches/unapplied/server/0317-Add-option-to-disable-pillager-patrols.patch diff --git a/patches/unapplied/server/0308-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch b/patches/unapplied/server/0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch similarity index 100% rename from patches/unapplied/server/0308-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch rename to patches/unapplied/server/0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch diff --git a/patches/unapplied/server/0309-MC-145656-Fix-Follow-Range-Initial-Target.patch b/patches/unapplied/server/0319-MC-145656-Fix-Follow-Range-Initial-Target.patch similarity index 100% rename from patches/unapplied/server/0309-MC-145656-Fix-Follow-Range-Initial-Target.patch rename to patches/unapplied/server/0319-MC-145656-Fix-Follow-Range-Initial-Target.patch diff --git a/patches/unapplied/server/0310-Duplicate-UUID-Resolve-Option.patch b/patches/unapplied/server/0320-Duplicate-UUID-Resolve-Option.patch similarity index 100% rename from patches/unapplied/server/0310-Duplicate-UUID-Resolve-Option.patch rename to patches/unapplied/server/0320-Duplicate-UUID-Resolve-Option.patch diff --git a/patches/unapplied/server/0311-PlayerDeathEvent-shouldDropExperience.patch b/patches/unapplied/server/0321-PlayerDeathEvent-shouldDropExperience.patch similarity index 100% rename from patches/unapplied/server/0311-PlayerDeathEvent-shouldDropExperience.patch rename to patches/unapplied/server/0321-PlayerDeathEvent-shouldDropExperience.patch diff --git a/patches/unapplied/server/0312-Prevent-bees-loading-chunks-checking-hive-position.patch b/patches/unapplied/server/0322-Prevent-bees-loading-chunks-checking-hive-position.patch similarity index 100% rename from patches/unapplied/server/0312-Prevent-bees-loading-chunks-checking-hive-position.patch rename to patches/unapplied/server/0322-Prevent-bees-loading-chunks-checking-hive-position.patch diff --git a/patches/unapplied/server/0313-Don-t-load-Chunks-from-Hoppers-and-other-things.patch b/patches/unapplied/server/0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch similarity index 100% rename from patches/unapplied/server/0313-Don-t-load-Chunks-from-Hoppers-and-other-things.patch rename to patches/unapplied/server/0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch diff --git a/patches/unapplied/server/0314-Optimise-EntityGetter-getPlayerByUUID.patch b/patches/unapplied/server/0324-Optimise-EntityGetter-getPlayerByUUID.patch similarity index 100% rename from patches/unapplied/server/0314-Optimise-EntityGetter-getPlayerByUUID.patch rename to patches/unapplied/server/0324-Optimise-EntityGetter-getPlayerByUUID.patch diff --git a/patches/unapplied/server/0315-Fix-items-not-falling-correctly.patch b/patches/unapplied/server/0325-Fix-items-not-falling-correctly.patch similarity index 100% rename from patches/unapplied/server/0315-Fix-items-not-falling-correctly.patch rename to patches/unapplied/server/0325-Fix-items-not-falling-correctly.patch diff --git a/patches/unapplied/server/0316-Optimize-call-to-getFluid-for-explosions.patch b/patches/unapplied/server/0326-Optimize-call-to-getFluid-for-explosions.patch similarity index 100% rename from patches/unapplied/server/0316-Optimize-call-to-getFluid-for-explosions.patch rename to patches/unapplied/server/0326-Optimize-call-to-getFluid-for-explosions.patch diff --git a/patches/unapplied/server/0317-Fix-last-firework-in-stack-not-having-effects-when-d.patch b/patches/unapplied/server/0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch similarity index 100% rename from patches/unapplied/server/0317-Fix-last-firework-in-stack-not-having-effects-when-d.patch rename to patches/unapplied/server/0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch diff --git a/patches/unapplied/server/0318-Guard-against-serializing-mismatching-chunk-coordina.patch b/patches/unapplied/server/0328-Guard-against-serializing-mismatching-chunk-coordina.patch similarity index 100% rename from patches/unapplied/server/0318-Guard-against-serializing-mismatching-chunk-coordina.patch rename to patches/unapplied/server/0328-Guard-against-serializing-mismatching-chunk-coordina.patch diff --git a/patches/unapplied/server/0319-Alternative-item-despawn-rate.patch b/patches/unapplied/server/0329-Alternative-item-despawn-rate.patch similarity index 100% rename from patches/unapplied/server/0319-Alternative-item-despawn-rate.patch rename to patches/unapplied/server/0329-Alternative-item-despawn-rate.patch diff --git a/patches/unapplied/server/0320-Tracking-Range-Improvements.patch b/patches/unapplied/server/0330-Tracking-Range-Improvements.patch similarity index 100% rename from patches/unapplied/server/0320-Tracking-Range-Improvements.patch rename to patches/unapplied/server/0330-Tracking-Range-Improvements.patch diff --git a/patches/unapplied/server/0321-Fix-items-vanishing-through-end-portal.patch b/patches/unapplied/server/0331-Fix-items-vanishing-through-end-portal.patch similarity index 100% rename from patches/unapplied/server/0321-Fix-items-vanishing-through-end-portal.patch rename to patches/unapplied/server/0331-Fix-items-vanishing-through-end-portal.patch diff --git a/patches/unapplied/server/0322-Bees-get-gravity-in-void.-Fixes-MC-167279.patch b/patches/unapplied/server/0332-Bees-get-gravity-in-void.-Fixes-MC-167279.patch similarity index 100% rename from patches/unapplied/server/0322-Bees-get-gravity-in-void.-Fixes-MC-167279.patch rename to patches/unapplied/server/0332-Bees-get-gravity-in-void.-Fixes-MC-167279.patch diff --git a/patches/unapplied/server/0323-Improve-Block-breakNaturally-API.patch b/patches/unapplied/server/0333-Improve-Block-breakNaturally-API.patch similarity index 100% rename from patches/unapplied/server/0323-Improve-Block-breakNaturally-API.patch rename to patches/unapplied/server/0333-Improve-Block-breakNaturally-API.patch diff --git a/patches/unapplied/server/0324-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/patches/unapplied/server/0334-Optimise-getChunkAt-calls-for-loaded-chunks.patch similarity index 100% rename from patches/unapplied/server/0324-Optimise-getChunkAt-calls-for-loaded-chunks.patch rename to patches/unapplied/server/0334-Optimise-getChunkAt-calls-for-loaded-chunks.patch diff --git a/patches/unapplied/server/0325-Add-debug-for-sync-chunk-loads.patch b/patches/unapplied/server/0335-Add-debug-for-sync-chunk-loads.patch similarity index 100% rename from patches/unapplied/server/0325-Add-debug-for-sync-chunk-loads.patch rename to patches/unapplied/server/0335-Add-debug-for-sync-chunk-loads.patch diff --git a/patches/unapplied/server/0326-Improve-java-version-check.patch b/patches/unapplied/server/0336-Improve-java-version-check.patch similarity index 100% rename from patches/unapplied/server/0326-Improve-java-version-check.patch rename to patches/unapplied/server/0336-Improve-java-version-check.patch diff --git a/patches/unapplied/server/0327-Add-ThrownEggHatchEvent.patch b/patches/unapplied/server/0337-Add-ThrownEggHatchEvent.patch similarity index 100% rename from patches/unapplied/server/0327-Add-ThrownEggHatchEvent.patch rename to patches/unapplied/server/0337-Add-ThrownEggHatchEvent.patch diff --git a/patches/unapplied/server/0328-Entity-Jump-API.patch b/patches/unapplied/server/0338-Entity-Jump-API.patch similarity index 100% rename from patches/unapplied/server/0328-Entity-Jump-API.patch rename to patches/unapplied/server/0338-Entity-Jump-API.patch diff --git a/patches/unapplied/server/0329-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/unapplied/server/0339-Add-option-to-nerf-pigmen-from-nether-portals.patch similarity index 100% rename from patches/unapplied/server/0329-Add-option-to-nerf-pigmen-from-nether-portals.patch rename to patches/unapplied/server/0339-Add-option-to-nerf-pigmen-from-nether-portals.patch diff --git a/patches/unapplied/server/0330-Make-the-GUI-graph-fancier.patch b/patches/unapplied/server/0340-Make-the-GUI-graph-fancier.patch similarity index 100% rename from patches/unapplied/server/0330-Make-the-GUI-graph-fancier.patch rename to patches/unapplied/server/0340-Make-the-GUI-graph-fancier.patch diff --git a/patches/unapplied/server/0331-add-hand-to-BlockMultiPlaceEvent.patch b/patches/unapplied/server/0341-add-hand-to-BlockMultiPlaceEvent.patch similarity index 100% rename from patches/unapplied/server/0331-add-hand-to-BlockMultiPlaceEvent.patch rename to patches/unapplied/server/0341-add-hand-to-BlockMultiPlaceEvent.patch diff --git a/patches/unapplied/server/0332-Validate-tripwire-hook-placement-before-update.patch b/patches/unapplied/server/0342-Validate-tripwire-hook-placement-before-update.patch similarity index 100% rename from patches/unapplied/server/0332-Validate-tripwire-hook-placement-before-update.patch rename to patches/unapplied/server/0342-Validate-tripwire-hook-placement-before-update.patch diff --git a/patches/unapplied/server/0333-Add-option-to-allow-iron-golems-to-spawn-in-air.patch b/patches/unapplied/server/0343-Add-option-to-allow-iron-golems-to-spawn-in-air.patch similarity index 100% rename from patches/unapplied/server/0333-Add-option-to-allow-iron-golems-to-spawn-in-air.patch rename to patches/unapplied/server/0343-Add-option-to-allow-iron-golems-to-spawn-in-air.patch diff --git a/patches/unapplied/server/0334-Configurable-chance-of-villager-zombie-infection.patch b/patches/unapplied/server/0344-Configurable-chance-of-villager-zombie-infection.patch similarity index 100% rename from patches/unapplied/server/0334-Configurable-chance-of-villager-zombie-infection.patch rename to patches/unapplied/server/0344-Configurable-chance-of-villager-zombie-infection.patch diff --git a/patches/unapplied/server/0335-Optimise-Chunk-getFluid.patch b/patches/unapplied/server/0345-Optimise-Chunk-getFluid.patch similarity index 100% rename from patches/unapplied/server/0335-Optimise-Chunk-getFluid.patch rename to patches/unapplied/server/0345-Optimise-Chunk-getFluid.patch diff --git a/patches/unapplied/server/0336-Set-spigots-verbose-world-setting-to-false-by-def.patch b/patches/unapplied/server/0346-Set-spigots-verbose-world-setting-to-false-by-def.patch similarity index 100% rename from patches/unapplied/server/0336-Set-spigots-verbose-world-setting-to-false-by-def.patch rename to patches/unapplied/server/0346-Set-spigots-verbose-world-setting-to-false-by-def.patch diff --git a/patches/unapplied/server/0337-Add-tick-times-API-and-mspt-command.patch b/patches/unapplied/server/0347-Add-tick-times-API-and-mspt-command.patch similarity index 100% rename from patches/unapplied/server/0337-Add-tick-times-API-and-mspt-command.patch rename to patches/unapplied/server/0347-Add-tick-times-API-and-mspt-command.patch diff --git a/patches/unapplied/server/0338-Expose-MinecraftServer-isRunning.patch b/patches/unapplied/server/0348-Expose-MinecraftServer-isRunning.patch similarity index 100% rename from patches/unapplied/server/0338-Expose-MinecraftServer-isRunning.patch rename to patches/unapplied/server/0348-Expose-MinecraftServer-isRunning.patch diff --git a/patches/unapplied/server/0339-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/unapplied/server/0349-Add-Raw-Byte-ItemStack-Serialization.patch similarity index 100% rename from patches/unapplied/server/0339-Add-Raw-Byte-ItemStack-Serialization.patch rename to patches/unapplied/server/0349-Add-Raw-Byte-ItemStack-Serialization.patch diff --git a/patches/unapplied/server/0340-Pillager-patrol-spawn-settings-and-per-player-option.patch b/patches/unapplied/server/0350-Pillager-patrol-spawn-settings-and-per-player-option.patch similarity index 100% rename from patches/unapplied/server/0340-Pillager-patrol-spawn-settings-and-per-player-option.patch rename to patches/unapplied/server/0350-Pillager-patrol-spawn-settings-and-per-player-option.patch diff --git a/patches/unapplied/server/0341-Remote-Connections-shouldn-t-hold-up-shutdown.patch b/patches/unapplied/server/0351-Remote-Connections-shouldn-t-hold-up-shutdown.patch similarity index 100% rename from patches/unapplied/server/0341-Remote-Connections-shouldn-t-hold-up-shutdown.patch rename to patches/unapplied/server/0351-Remote-Connections-shouldn-t-hold-up-shutdown.patch diff --git a/patches/unapplied/server/0342-Do-not-allow-bees-to-load-chunks-for-beehives.patch b/patches/unapplied/server/0352-Do-not-allow-bees-to-load-chunks-for-beehives.patch similarity index 100% rename from patches/unapplied/server/0342-Do-not-allow-bees-to-load-chunks-for-beehives.patch rename to patches/unapplied/server/0352-Do-not-allow-bees-to-load-chunks-for-beehives.patch diff --git a/patches/unapplied/server/0343-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/unapplied/server/0353-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch similarity index 100% rename from patches/unapplied/server/0343-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch rename to patches/unapplied/server/0353-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch diff --git a/patches/unapplied/server/0344-Don-t-tick-dead-players.patch b/patches/unapplied/server/0354-Don-t-tick-dead-players.patch similarity index 100% rename from patches/unapplied/server/0344-Don-t-tick-dead-players.patch rename to patches/unapplied/server/0354-Don-t-tick-dead-players.patch diff --git a/patches/unapplied/server/0345-Dead-Player-s-shouldn-t-be-able-to-move.patch b/patches/unapplied/server/0355-Dead-Player-s-shouldn-t-be-able-to-move.patch similarity index 100% rename from patches/unapplied/server/0345-Dead-Player-s-shouldn-t-be-able-to-move.patch rename to patches/unapplied/server/0355-Dead-Player-s-shouldn-t-be-able-to-move.patch diff --git a/patches/unapplied/server/0346-Don-t-move-existing-players-to-world-spawn.patch b/patches/unapplied/server/0356-Don-t-move-existing-players-to-world-spawn.patch similarity index 100% rename from patches/unapplied/server/0346-Don-t-move-existing-players-to-world-spawn.patch rename to patches/unapplied/server/0356-Don-t-move-existing-players-to-world-spawn.patch diff --git a/patches/unapplied/server/0347-Optimize-Pathfinding.patch b/patches/unapplied/server/0357-Optimize-Pathfinding.patch similarity index 100% rename from patches/unapplied/server/0347-Optimize-Pathfinding.patch rename to patches/unapplied/server/0357-Optimize-Pathfinding.patch diff --git a/patches/unapplied/server/0348-Reduce-Either-Optional-allocation.patch b/patches/unapplied/server/0358-Reduce-Either-Optional-allocation.patch similarity index 100% rename from patches/unapplied/server/0348-Reduce-Either-Optional-allocation.patch rename to patches/unapplied/server/0358-Reduce-Either-Optional-allocation.patch diff --git a/patches/unapplied/server/0349-Reduce-memory-footprint-of-CompoundTag.patch b/patches/unapplied/server/0359-Reduce-memory-footprint-of-CompoundTag.patch similarity index 100% rename from patches/unapplied/server/0349-Reduce-memory-footprint-of-CompoundTag.patch rename to patches/unapplied/server/0359-Reduce-memory-footprint-of-CompoundTag.patch diff --git a/patches/unapplied/server/0350-Prevent-opening-inventories-when-frozen.patch b/patches/unapplied/server/0360-Prevent-opening-inventories-when-frozen.patch similarity index 100% rename from patches/unapplied/server/0350-Prevent-opening-inventories-when-frozen.patch rename to patches/unapplied/server/0360-Prevent-opening-inventories-when-frozen.patch diff --git a/patches/unapplied/server/0351-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/unapplied/server/0361-Don-t-run-entity-collision-code-if-not-needed.patch similarity index 100% rename from patches/unapplied/server/0351-Don-t-run-entity-collision-code-if-not-needed.patch rename to patches/unapplied/server/0361-Don-t-run-entity-collision-code-if-not-needed.patch diff --git a/patches/unapplied/server/0352-Implement-Player-Client-Options-API.patch b/patches/unapplied/server/0362-Implement-Player-Client-Options-API.patch similarity index 100% rename from patches/unapplied/server/0352-Implement-Player-Client-Options-API.patch rename to patches/unapplied/server/0362-Implement-Player-Client-Options-API.patch diff --git a/patches/unapplied/server/0353-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/patches/unapplied/server/0363-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch similarity index 100% rename from patches/unapplied/server/0353-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch rename to patches/unapplied/server/0363-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch diff --git a/patches/unapplied/server/0354-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch b/patches/unapplied/server/0364-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch similarity index 100% rename from patches/unapplied/server/0354-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch rename to patches/unapplied/server/0364-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch diff --git a/patches/unapplied/server/0355-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/unapplied/server/0365-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch similarity index 100% rename from patches/unapplied/server/0355-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch rename to patches/unapplied/server/0365-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch diff --git a/patches/unapplied/server/0356-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/unapplied/server/0366-Add-PlayerAttackEntityCooldownResetEvent.patch similarity index 100% rename from patches/unapplied/server/0356-Add-PlayerAttackEntityCooldownResetEvent.patch rename to patches/unapplied/server/0366-Add-PlayerAttackEntityCooldownResetEvent.patch diff --git a/patches/unapplied/server/0357-Don-t-fire-BlockFade-on-worldgen-threads.patch b/patches/unapplied/server/0367-Don-t-fire-BlockFade-on-worldgen-threads.patch similarity index 100% rename from patches/unapplied/server/0357-Don-t-fire-BlockFade-on-worldgen-threads.patch rename to patches/unapplied/server/0367-Don-t-fire-BlockFade-on-worldgen-threads.patch diff --git a/patches/unapplied/server/0358-Add-phantom-creative-and-insomniac-controls.patch b/patches/unapplied/server/0368-Add-phantom-creative-and-insomniac-controls.patch similarity index 100% rename from patches/unapplied/server/0358-Add-phantom-creative-and-insomniac-controls.patch rename to patches/unapplied/server/0368-Add-phantom-creative-and-insomniac-controls.patch diff --git a/patches/unapplied/server/0359-Fix-item-duplication-and-teleport-issues.patch b/patches/unapplied/server/0369-Fix-item-duplication-and-teleport-issues.patch similarity index 100% rename from patches/unapplied/server/0359-Fix-item-duplication-and-teleport-issues.patch rename to patches/unapplied/server/0369-Fix-item-duplication-and-teleport-issues.patch diff --git a/patches/unapplied/server/0360-Villager-Restocks-API.patch b/patches/unapplied/server/0370-Villager-Restocks-API.patch similarity index 100% rename from patches/unapplied/server/0360-Villager-Restocks-API.patch rename to patches/unapplied/server/0370-Villager-Restocks-API.patch diff --git a/patches/unapplied/server/0361-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/unapplied/server/0371-Validate-PickItem-Packet-and-kick-for-invalid.patch similarity index 100% rename from patches/unapplied/server/0361-Validate-PickItem-Packet-and-kick-for-invalid.patch rename to patches/unapplied/server/0371-Validate-PickItem-Packet-and-kick-for-invalid.patch diff --git a/patches/unapplied/server/0362-Expose-game-version.patch b/patches/unapplied/server/0372-Expose-game-version.patch similarity index 100% rename from patches/unapplied/server/0362-Expose-game-version.patch rename to patches/unapplied/server/0372-Expose-game-version.patch diff --git a/patches/unapplied/server/0363-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/patches/unapplied/server/0373-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch similarity index 100% rename from patches/unapplied/server/0363-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch rename to patches/unapplied/server/0373-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch diff --git a/patches/unapplied/server/0364-misc-debugging-dumps.patch b/patches/unapplied/server/0374-misc-debugging-dumps.patch similarity index 100% rename from patches/unapplied/server/0364-misc-debugging-dumps.patch rename to patches/unapplied/server/0374-misc-debugging-dumps.patch diff --git a/patches/unapplied/server/0365-Prevent-teleporting-dead-entities.patch b/patches/unapplied/server/0375-Prevent-teleporting-dead-entities.patch similarity index 100% rename from patches/unapplied/server/0365-Prevent-teleporting-dead-entities.patch rename to patches/unapplied/server/0375-Prevent-teleporting-dead-entities.patch diff --git a/patches/unapplied/server/0367-Implement-Mob-Goal-API.patch b/patches/unapplied/server/0377-Implement-Mob-Goal-API.patch similarity index 100% rename from patches/unapplied/server/0367-Implement-Mob-Goal-API.patch rename to patches/unapplied/server/0377-Implement-Mob-Goal-API.patch diff --git a/patches/unapplied/server/0368-Add-villager-reputation-API.patch b/patches/unapplied/server/0378-Add-villager-reputation-API.patch similarity index 100% rename from patches/unapplied/server/0368-Add-villager-reputation-API.patch rename to patches/unapplied/server/0378-Add-villager-reputation-API.patch diff --git a/patches/unapplied/server/0369-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/unapplied/server/0379-Option-for-maximum-exp-value-when-merging-orbs.patch similarity index 100% rename from patches/unapplied/server/0369-Option-for-maximum-exp-value-when-merging-orbs.patch rename to patches/unapplied/server/0379-Option-for-maximum-exp-value-when-merging-orbs.patch diff --git a/patches/unapplied/server/0370-ExperienceOrbMergeEvent.patch b/patches/unapplied/server/0380-ExperienceOrbMergeEvent.patch similarity index 100% rename from patches/unapplied/server/0370-ExperienceOrbMergeEvent.patch rename to patches/unapplied/server/0380-ExperienceOrbMergeEvent.patch diff --git a/patches/unapplied/server/0371-Fix-PotionEffect-ignores-icon-flag.patch b/patches/unapplied/server/0381-Fix-PotionEffect-ignores-icon-flag.patch similarity index 100% rename from patches/unapplied/server/0371-Fix-PotionEffect-ignores-icon-flag.patch rename to patches/unapplied/server/0381-Fix-PotionEffect-ignores-icon-flag.patch diff --git a/patches/unapplied/server/0372-Potential-bed-API.patch b/patches/unapplied/server/0382-Potential-bed-API.patch similarity index 100% rename from patches/unapplied/server/0372-Potential-bed-API.patch rename to patches/unapplied/server/0382-Potential-bed-API.patch diff --git a/patches/unapplied/server/0373-Wait-for-Async-Tasks-during-shutdown.patch b/patches/unapplied/server/0383-Wait-for-Async-Tasks-during-shutdown.patch similarity index 100% rename from patches/unapplied/server/0373-Wait-for-Async-Tasks-during-shutdown.patch rename to patches/unapplied/server/0383-Wait-for-Async-Tasks-during-shutdown.patch diff --git a/patches/unapplied/server/0374-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch b/patches/unapplied/server/0384-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch similarity index 100% rename from patches/unapplied/server/0374-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch rename to patches/unapplied/server/0384-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch diff --git a/patches/unapplied/server/0375-Ensure-safe-gateway-teleport.patch b/patches/unapplied/server/0385-Ensure-safe-gateway-teleport.patch similarity index 100% rename from patches/unapplied/server/0375-Ensure-safe-gateway-teleport.patch rename to patches/unapplied/server/0385-Ensure-safe-gateway-teleport.patch diff --git a/patches/unapplied/server/0376-Add-option-for-console-having-all-permissions.patch b/patches/unapplied/server/0386-Add-option-for-console-having-all-permissions.patch similarity index 100% rename from patches/unapplied/server/0376-Add-option-for-console-having-all-permissions.patch rename to patches/unapplied/server/0386-Add-option-for-console-having-all-permissions.patch diff --git a/patches/unapplied/server/0377-Fix-villager-trading-demand-MC-163962.patch b/patches/unapplied/server/0387-Fix-villager-trading-demand-MC-163962.patch similarity index 100% rename from patches/unapplied/server/0377-Fix-villager-trading-demand-MC-163962.patch rename to patches/unapplied/server/0387-Fix-villager-trading-demand-MC-163962.patch diff --git a/patches/unapplied/server/0378-Maps-shouldn-t-load-chunks.patch b/patches/unapplied/server/0388-Maps-shouldn-t-load-chunks.patch similarity index 100% rename from patches/unapplied/server/0378-Maps-shouldn-t-load-chunks.patch rename to patches/unapplied/server/0388-Maps-shouldn-t-load-chunks.patch diff --git a/patches/unapplied/server/0379-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch b/patches/unapplied/server/0389-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch similarity index 100% rename from patches/unapplied/server/0379-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch rename to patches/unapplied/server/0389-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch diff --git a/patches/unapplied/server/0380-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch b/patches/unapplied/server/0390-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch similarity index 100% rename from patches/unapplied/server/0380-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch rename to patches/unapplied/server/0390-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch diff --git a/patches/unapplied/server/0381-Fix-piston-physics-inconsistency-MC-188840.patch b/patches/unapplied/server/0391-Fix-piston-physics-inconsistency-MC-188840.patch similarity index 100% rename from patches/unapplied/server/0381-Fix-piston-physics-inconsistency-MC-188840.patch rename to patches/unapplied/server/0391-Fix-piston-physics-inconsistency-MC-188840.patch diff --git a/patches/unapplied/server/0382-Fix-missing-chunks-due-to-integer-overflow.patch b/patches/unapplied/server/0392-Fix-missing-chunks-due-to-integer-overflow.patch similarity index 100% rename from patches/unapplied/server/0382-Fix-missing-chunks-due-to-integer-overflow.patch rename to patches/unapplied/server/0392-Fix-missing-chunks-due-to-integer-overflow.patch diff --git a/patches/unapplied/server/0383-Prevent-position-desync-causing-tp-exploit.patch b/patches/unapplied/server/0393-Prevent-position-desync-causing-tp-exploit.patch similarity index 100% rename from patches/unapplied/server/0383-Prevent-position-desync-causing-tp-exploit.patch rename to patches/unapplied/server/0393-Prevent-position-desync-causing-tp-exploit.patch diff --git a/patches/unapplied/server/0384-Inventory-getHolder-method-without-block-snapshot.patch b/patches/unapplied/server/0394-Inventory-getHolder-method-without-block-snapshot.patch similarity index 100% rename from patches/unapplied/server/0384-Inventory-getHolder-method-without-block-snapshot.patch rename to patches/unapplied/server/0394-Inventory-getHolder-method-without-block-snapshot.patch diff --git a/patches/unapplied/server/0385-Add-PlayerRecipeBookClickEvent.patch b/patches/unapplied/server/0395-Add-PlayerRecipeBookClickEvent.patch similarity index 100% rename from patches/unapplied/server/0385-Add-PlayerRecipeBookClickEvent.patch rename to patches/unapplied/server/0395-Add-PlayerRecipeBookClickEvent.patch diff --git a/patches/unapplied/server/0386-Hide-sync-chunk-writes-behind-flag.patch b/patches/unapplied/server/0396-Hide-sync-chunk-writes-behind-flag.patch similarity index 100% rename from patches/unapplied/server/0386-Hide-sync-chunk-writes-behind-flag.patch rename to patches/unapplied/server/0396-Hide-sync-chunk-writes-behind-flag.patch diff --git a/patches/unapplied/server/0387-Add-permission-for-command-blocks.patch b/patches/unapplied/server/0397-Add-permission-for-command-blocks.patch similarity index 100% rename from patches/unapplied/server/0387-Add-permission-for-command-blocks.patch rename to patches/unapplied/server/0397-Add-permission-for-command-blocks.patch diff --git a/patches/unapplied/server/0388-Ensure-Entity-position-and-AABB-are-never-invalid.patch b/patches/unapplied/server/0398-Ensure-Entity-position-and-AABB-are-never-invalid.patch similarity index 100% rename from patches/unapplied/server/0388-Ensure-Entity-position-and-AABB-are-never-invalid.patch rename to patches/unapplied/server/0398-Ensure-Entity-position-and-AABB-are-never-invalid.patch diff --git a/patches/unapplied/server/0389-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/unapplied/server/0399-Fix-Per-World-Difficulty-Remembering-Difficulty.patch similarity index 100% rename from patches/unapplied/server/0389-Fix-Per-World-Difficulty-Remembering-Difficulty.patch rename to patches/unapplied/server/0399-Fix-Per-World-Difficulty-Remembering-Difficulty.patch diff --git a/patches/unapplied/server/0390-Paper-dumpitem-command.patch b/patches/unapplied/server/0400-Paper-dumpitem-command.patch similarity index 100% rename from patches/unapplied/server/0390-Paper-dumpitem-command.patch rename to patches/unapplied/server/0400-Paper-dumpitem-command.patch diff --git a/patches/unapplied/server/0391-Improve-Legacy-Component-serialization-size.patch b/patches/unapplied/server/0401-Improve-Legacy-Component-serialization-size.patch similarity index 100% rename from patches/unapplied/server/0391-Improve-Legacy-Component-serialization-size.patch rename to patches/unapplied/server/0401-Improve-Legacy-Component-serialization-size.patch diff --git a/patches/unapplied/server/0392-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/unapplied/server/0402-Add-Plugin-Tickets-to-API-Chunk-Methods.patch similarity index 100% rename from patches/unapplied/server/0392-Add-Plugin-Tickets-to-API-Chunk-Methods.patch rename to patches/unapplied/server/0402-Add-Plugin-Tickets-to-API-Chunk-Methods.patch diff --git a/patches/unapplied/server/0393-Add-BlockStateMeta-clearBlockState.patch b/patches/unapplied/server/0403-Add-BlockStateMeta-clearBlockState.patch similarity index 100% rename from patches/unapplied/server/0393-Add-BlockStateMeta-clearBlockState.patch rename to patches/unapplied/server/0403-Add-BlockStateMeta-clearBlockState.patch diff --git a/patches/unapplied/server/0394-Support-old-UUID-format-for-NBT.patch b/patches/unapplied/server/0404-Support-old-UUID-format-for-NBT.patch similarity index 100% rename from patches/unapplied/server/0394-Support-old-UUID-format-for-NBT.patch rename to patches/unapplied/server/0404-Support-old-UUID-format-for-NBT.patch diff --git a/patches/unapplied/server/0395-Convert-legacy-attributes-in-Item-Meta.patch b/patches/unapplied/server/0405-Convert-legacy-attributes-in-Item-Meta.patch similarity index 100% rename from patches/unapplied/server/0395-Convert-legacy-attributes-in-Item-Meta.patch rename to patches/unapplied/server/0405-Convert-legacy-attributes-in-Item-Meta.patch diff --git a/patches/unapplied/server/0396-Do-not-accept-invalid-client-settings.patch b/patches/unapplied/server/0406-Do-not-accept-invalid-client-settings.patch similarity index 100% rename from patches/unapplied/server/0396-Do-not-accept-invalid-client-settings.patch rename to patches/unapplied/server/0406-Do-not-accept-invalid-client-settings.patch diff --git a/patches/unapplied/server/0397-Improve-fix-EntityTargetLivingEntityEvent.patch b/patches/unapplied/server/0407-Improve-fix-EntityTargetLivingEntityEvent.patch similarity index 100% rename from patches/unapplied/server/0397-Improve-fix-EntityTargetLivingEntityEvent.patch rename to patches/unapplied/server/0407-Improve-fix-EntityTargetLivingEntityEvent.patch diff --git a/patches/unapplied/server/0398-Add-entity-liquid-API.patch b/patches/unapplied/server/0408-Add-entity-liquid-API.patch similarity index 100% rename from patches/unapplied/server/0398-Add-entity-liquid-API.patch rename to patches/unapplied/server/0408-Add-entity-liquid-API.patch diff --git a/patches/unapplied/server/0399-Update-itemstack-legacy-name-and-lore.patch b/patches/unapplied/server/0409-Update-itemstack-legacy-name-and-lore.patch similarity index 100% rename from patches/unapplied/server/0399-Update-itemstack-legacy-name-and-lore.patch rename to patches/unapplied/server/0409-Update-itemstack-legacy-name-and-lore.patch diff --git a/patches/unapplied/server/0400-Add-PrepareResultEvent.patch b/patches/unapplied/server/0410-Add-PrepareResultEvent.patch similarity index 100% rename from patches/unapplied/server/0400-Add-PrepareResultEvent.patch rename to patches/unapplied/server/0410-Add-PrepareResultEvent.patch diff --git a/patches/unapplied/server/0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/unapplied/server/0411-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch similarity index 100% rename from patches/unapplied/server/0401-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch rename to patches/unapplied/server/0411-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch diff --git a/patches/unapplied/server/0402-Fix-arrows-never-despawning-MC-125757.patch b/patches/unapplied/server/0412-Fix-arrows-never-despawning-MC-125757.patch similarity index 100% rename from patches/unapplied/server/0402-Fix-arrows-never-despawning-MC-125757.patch rename to patches/unapplied/server/0412-Fix-arrows-never-despawning-MC-125757.patch diff --git a/patches/unapplied/server/0403-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/unapplied/server/0413-Thread-Safe-Vanilla-Command-permission-checking.patch similarity index 100% rename from patches/unapplied/server/0403-Thread-Safe-Vanilla-Command-permission-checking.patch rename to patches/unapplied/server/0413-Thread-Safe-Vanilla-Command-permission-checking.patch diff --git a/patches/unapplied/server/0404-Fix-SPIGOT-5989.patch b/patches/unapplied/server/0414-Fix-SPIGOT-5989.patch similarity index 100% rename from patches/unapplied/server/0404-Fix-SPIGOT-5989.patch rename to patches/unapplied/server/0414-Fix-SPIGOT-5989.patch diff --git a/patches/unapplied/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/patches/unapplied/server/0415-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch similarity index 100% rename from patches/unapplied/server/0405-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch rename to patches/unapplied/server/0415-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch diff --git a/patches/unapplied/server/0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch b/patches/unapplied/server/0416-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch similarity index 100% rename from patches/unapplied/server/0406-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch rename to patches/unapplied/server/0416-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch diff --git a/patches/unapplied/server/0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/patches/unapplied/server/0417-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch similarity index 100% rename from patches/unapplied/server/0407-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch rename to patches/unapplied/server/0417-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch diff --git a/patches/unapplied/server/0408-Optimize-NetworkManager-Exception-Handling.patch b/patches/unapplied/server/0418-Optimize-NetworkManager-Exception-Handling.patch similarity index 100% rename from patches/unapplied/server/0408-Optimize-NetworkManager-Exception-Handling.patch rename to patches/unapplied/server/0418-Optimize-NetworkManager-Exception-Handling.patch diff --git a/patches/unapplied/server/0409-Fix-some-rails-connecting-improperly.patch b/patches/unapplied/server/0419-Fix-some-rails-connecting-improperly.patch similarity index 100% rename from patches/unapplied/server/0409-Fix-some-rails-connecting-improperly.patch rename to patches/unapplied/server/0419-Fix-some-rails-connecting-improperly.patch diff --git a/patches/unapplied/server/0410-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch b/patches/unapplied/server/0420-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch similarity index 100% rename from patches/unapplied/server/0410-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch rename to patches/unapplied/server/0420-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch diff --git a/patches/unapplied/server/0411-Brand-support.patch b/patches/unapplied/server/0421-Brand-support.patch similarity index 100% rename from patches/unapplied/server/0411-Brand-support.patch rename to patches/unapplied/server/0421-Brand-support.patch diff --git a/patches/unapplied/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/unapplied/server/0422-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 100% rename from patches/unapplied/server/0412-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/unapplied/server/0422-Add-playPickupItemAnimation-to-LivingEntity.patch diff --git a/patches/unapplied/server/0413-Don-t-require-FACING-data.patch b/patches/unapplied/server/0423-Don-t-require-FACING-data.patch similarity index 100% rename from patches/unapplied/server/0413-Don-t-require-FACING-data.patch rename to patches/unapplied/server/0423-Don-t-require-FACING-data.patch diff --git a/patches/unapplied/server/0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/unapplied/server/0424-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 100% rename from patches/unapplied/server/0414-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/unapplied/server/0424-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch diff --git a/patches/unapplied/server/0415-Add-moon-phase-API.patch b/patches/unapplied/server/0425-Add-moon-phase-API.patch similarity index 100% rename from patches/unapplied/server/0415-Add-moon-phase-API.patch rename to patches/unapplied/server/0425-Add-moon-phase-API.patch diff --git a/patches/unapplied/server/0416-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/unapplied/server/0426-Do-not-let-the-server-load-chunks-from-newer-version.patch similarity index 100% rename from patches/unapplied/server/0416-Do-not-let-the-server-load-chunks-from-newer-version.patch rename to patches/unapplied/server/0426-Do-not-let-the-server-load-chunks-from-newer-version.patch diff --git a/patches/unapplied/server/0417-Prevent-headless-pistons-from-being-created.patch b/patches/unapplied/server/0427-Prevent-headless-pistons-from-being-created.patch similarity index 100% rename from patches/unapplied/server/0417-Prevent-headless-pistons-from-being-created.patch rename to patches/unapplied/server/0427-Prevent-headless-pistons-from-being-created.patch diff --git a/patches/unapplied/server/0418-Add-BellRingEvent.patch b/patches/unapplied/server/0428-Add-BellRingEvent.patch similarity index 100% rename from patches/unapplied/server/0418-Add-BellRingEvent.patch rename to patches/unapplied/server/0428-Add-BellRingEvent.patch diff --git a/patches/unapplied/server/0419-Add-zombie-targets-turtle-egg-config.patch b/patches/unapplied/server/0429-Add-zombie-targets-turtle-egg-config.patch similarity index 100% rename from patches/unapplied/server/0419-Add-zombie-targets-turtle-egg-config.patch rename to patches/unapplied/server/0429-Add-zombie-targets-turtle-egg-config.patch diff --git a/patches/unapplied/server/0420-Buffer-joins-to-world.patch b/patches/unapplied/server/0430-Buffer-joins-to-world.patch similarity index 100% rename from patches/unapplied/server/0420-Buffer-joins-to-world.patch rename to patches/unapplied/server/0430-Buffer-joins-to-world.patch diff --git a/patches/unapplied/server/0421-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/unapplied/server/0431-Fix-hex-colors-not-working-in-some-kick-messages.patch similarity index 100% rename from patches/unapplied/server/0421-Fix-hex-colors-not-working-in-some-kick-messages.patch rename to patches/unapplied/server/0431-Fix-hex-colors-not-working-in-some-kick-messages.patch diff --git a/patches/unapplied/server/0422-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/unapplied/server/0432-PortalCreateEvent-needs-to-know-its-entity.patch similarity index 100% rename from patches/unapplied/server/0422-PortalCreateEvent-needs-to-know-its-entity.patch rename to patches/unapplied/server/0432-PortalCreateEvent-needs-to-know-its-entity.patch diff --git a/patches/unapplied/server/0423-Add-more-Evoker-API.patch b/patches/unapplied/server/0433-Add-more-Evoker-API.patch similarity index 100% rename from patches/unapplied/server/0423-Add-more-Evoker-API.patch rename to patches/unapplied/server/0433-Add-more-Evoker-API.patch diff --git a/patches/unapplied/server/0424-Add-methods-to-get-translation-keys.patch b/patches/unapplied/server/0434-Add-methods-to-get-translation-keys.patch similarity index 100% rename from patches/unapplied/server/0424-Add-methods-to-get-translation-keys.patch rename to patches/unapplied/server/0434-Add-methods-to-get-translation-keys.patch diff --git a/patches/unapplied/server/0425-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/unapplied/server/0435-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/unapplied/server/0425-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/unapplied/server/0435-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/unapplied/server/0426-Cache-block-data-strings.patch b/patches/unapplied/server/0436-Cache-block-data-strings.patch similarity index 100% rename from patches/unapplied/server/0426-Cache-block-data-strings.patch rename to patches/unapplied/server/0436-Cache-block-data-strings.patch diff --git a/patches/unapplied/server/0427-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/unapplied/server/0437-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch similarity index 100% rename from patches/unapplied/server/0427-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch rename to patches/unapplied/server/0437-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch diff --git a/patches/unapplied/server/0428-Add-additional-open-container-api-to-HumanEntity.patch b/patches/unapplied/server/0438-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/unapplied/server/0428-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/unapplied/server/0438-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/unapplied/server/0429-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/unapplied/server/0439-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch similarity index 100% rename from patches/unapplied/server/0429-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch rename to patches/unapplied/server/0439-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch diff --git a/patches/unapplied/server/0430-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/unapplied/server/0440-Extend-block-drop-capture-to-capture-all-items-added.patch similarity index 100% rename from patches/unapplied/server/0430-Extend-block-drop-capture-to-capture-all-items-added.patch rename to patches/unapplied/server/0440-Extend-block-drop-capture-to-capture-all-items-added.patch diff --git a/patches/unapplied/server/0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/unapplied/server/0441-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 100% rename from patches/unapplied/server/0431-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/unapplied/server/0441-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch diff --git a/patches/unapplied/server/0432-Lazily-track-plugin-scoreboards-by-default.patch b/patches/unapplied/server/0442-Lazily-track-plugin-scoreboards-by-default.patch similarity index 100% rename from patches/unapplied/server/0432-Lazily-track-plugin-scoreboards-by-default.patch rename to patches/unapplied/server/0442-Lazily-track-plugin-scoreboards-by-default.patch diff --git a/patches/unapplied/server/0433-Entity-isTicking.patch b/patches/unapplied/server/0443-Entity-isTicking.patch similarity index 100% rename from patches/unapplied/server/0433-Entity-isTicking.patch rename to patches/unapplied/server/0443-Entity-isTicking.patch diff --git a/patches/unapplied/server/0434-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/unapplied/server/0444-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch similarity index 100% rename from patches/unapplied/server/0434-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch rename to patches/unapplied/server/0444-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch diff --git a/patches/unapplied/server/0435-Fix-Concurrency-issue-in-ShufflingList.patch b/patches/unapplied/server/0445-Fix-Concurrency-issue-in-ShufflingList.patch similarity index 100% rename from patches/unapplied/server/0435-Fix-Concurrency-issue-in-ShufflingList.patch rename to patches/unapplied/server/0445-Fix-Concurrency-issue-in-ShufflingList.patch diff --git a/patches/unapplied/server/0436-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/unapplied/server/0446-Reset-Ender-Crystals-on-Dragon-Spawn.patch similarity index 100% rename from patches/unapplied/server/0436-Reset-Ender-Crystals-on-Dragon-Spawn.patch rename to patches/unapplied/server/0446-Reset-Ender-Crystals-on-Dragon-Spawn.patch diff --git a/patches/unapplied/server/0437-Fix-for-large-move-vectors-crashing-server.patch b/patches/unapplied/server/0447-Fix-for-large-move-vectors-crashing-server.patch similarity index 100% rename from patches/unapplied/server/0437-Fix-for-large-move-vectors-crashing-server.patch rename to patches/unapplied/server/0447-Fix-for-large-move-vectors-crashing-server.patch diff --git a/patches/unapplied/server/0438-Optimise-getType-calls.patch b/patches/unapplied/server/0448-Optimise-getType-calls.patch similarity index 100% rename from patches/unapplied/server/0438-Optimise-getType-calls.patch rename to patches/unapplied/server/0448-Optimise-getType-calls.patch diff --git a/patches/unapplied/server/0439-Villager-resetOffers.patch b/patches/unapplied/server/0449-Villager-resetOffers.patch similarity index 100% rename from patches/unapplied/server/0439-Villager-resetOffers.patch rename to patches/unapplied/server/0449-Villager-resetOffers.patch diff --git a/patches/unapplied/server/0440-Retain-block-place-order-when-capturing-blockstates.patch b/patches/unapplied/server/0450-Retain-block-place-order-when-capturing-blockstates.patch similarity index 100% rename from patches/unapplied/server/0440-Retain-block-place-order-when-capturing-blockstates.patch rename to patches/unapplied/server/0450-Retain-block-place-order-when-capturing-blockstates.patch diff --git a/patches/unapplied/server/0441-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/unapplied/server/0451-Reduce-blockpos-allocation-from-pathfinding.patch similarity index 100% rename from patches/unapplied/server/0441-Reduce-blockpos-allocation-from-pathfinding.patch rename to patches/unapplied/server/0451-Reduce-blockpos-allocation-from-pathfinding.patch diff --git a/patches/unapplied/server/0442-Fix-item-locations-dropped-from-campfires.patch b/patches/unapplied/server/0452-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/unapplied/server/0442-Fix-item-locations-dropped-from-campfires.patch rename to patches/unapplied/server/0452-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/unapplied/server/0443-Fix-bell-block-entity-memory-leak.patch b/patches/unapplied/server/0453-Fix-bell-block-entity-memory-leak.patch similarity index 100% rename from patches/unapplied/server/0443-Fix-bell-block-entity-memory-leak.patch rename to patches/unapplied/server/0453-Fix-bell-block-entity-memory-leak.patch diff --git a/patches/unapplied/server/0444-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/unapplied/server/0454-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/unapplied/server/0444-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/unapplied/server/0454-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/unapplied/server/0445-Add-getOfflinePlayerIfCached-String.patch b/patches/unapplied/server/0455-Add-getOfflinePlayerIfCached-String.patch similarity index 100% rename from patches/unapplied/server/0445-Add-getOfflinePlayerIfCached-String.patch rename to patches/unapplied/server/0455-Add-getOfflinePlayerIfCached-String.patch diff --git a/patches/unapplied/server/0446-Add-ignore-discounts-API.patch b/patches/unapplied/server/0456-Add-ignore-discounts-API.patch similarity index 100% rename from patches/unapplied/server/0446-Add-ignore-discounts-API.patch rename to patches/unapplied/server/0456-Add-ignore-discounts-API.patch diff --git a/patches/unapplied/server/0447-Toggle-for-removing-existing-dragon.patch b/patches/unapplied/server/0457-Toggle-for-removing-existing-dragon.patch similarity index 100% rename from patches/unapplied/server/0447-Toggle-for-removing-existing-dragon.patch rename to patches/unapplied/server/0457-Toggle-for-removing-existing-dragon.patch diff --git a/patches/unapplied/server/0448-Fix-client-lag-on-advancement-loading.patch b/patches/unapplied/server/0458-Fix-client-lag-on-advancement-loading.patch similarity index 100% rename from patches/unapplied/server/0448-Fix-client-lag-on-advancement-loading.patch rename to patches/unapplied/server/0458-Fix-client-lag-on-advancement-loading.patch diff --git a/patches/unapplied/server/0449-Item-no-age-no-player-pickup.patch b/patches/unapplied/server/0459-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/unapplied/server/0449-Item-no-age-no-player-pickup.patch rename to patches/unapplied/server/0459-Item-no-age-no-player-pickup.patch diff --git a/patches/unapplied/server/0450-Beacon-API-custom-effect-ranges.patch b/patches/unapplied/server/0460-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/unapplied/server/0450-Beacon-API-custom-effect-ranges.patch rename to patches/unapplied/server/0460-Beacon-API-custom-effect-ranges.patch diff --git a/patches/unapplied/server/0451-Add-API-for-quit-reason.patch b/patches/unapplied/server/0461-Add-API-for-quit-reason.patch similarity index 100% rename from patches/unapplied/server/0451-Add-API-for-quit-reason.patch rename to patches/unapplied/server/0461-Add-API-for-quit-reason.patch diff --git a/patches/unapplied/server/0452-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/unapplied/server/0462-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/unapplied/server/0452-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/unapplied/server/0462-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/unapplied/server/0453-Expose-world-spawn-angle.patch b/patches/unapplied/server/0463-Expose-world-spawn-angle.patch similarity index 100% rename from patches/unapplied/server/0453-Expose-world-spawn-angle.patch rename to patches/unapplied/server/0463-Expose-world-spawn-angle.patch diff --git a/patches/unapplied/server/0454-Add-Destroy-Speed-API.patch b/patches/unapplied/server/0464-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/unapplied/server/0454-Add-Destroy-Speed-API.patch rename to patches/unapplied/server/0464-Add-Destroy-Speed-API.patch diff --git a/patches/unapplied/server/0455-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/unapplied/server/0465-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 100% rename from patches/unapplied/server/0455-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/unapplied/server/0465-Fix-Player-spawnParticle-x-y-z-precision-loss.patch diff --git a/patches/unapplied/server/0456-Add-LivingEntity-clearActiveItem.patch b/patches/unapplied/server/0466-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/unapplied/server/0456-Add-LivingEntity-clearActiveItem.patch rename to patches/unapplied/server/0466-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/unapplied/server/0457-Add-PlayerItemCooldownEvent.patch b/patches/unapplied/server/0467-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/unapplied/server/0457-Add-PlayerItemCooldownEvent.patch rename to patches/unapplied/server/0467-Add-PlayerItemCooldownEvent.patch diff --git a/patches/unapplied/server/0458-Significantly-improve-performance-of-the-end-generat.patch b/patches/unapplied/server/0468-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/unapplied/server/0458-Significantly-improve-performance-of-the-end-generat.patch rename to patches/unapplied/server/0468-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/unapplied/server/0459-More-lightning-API.patch b/patches/unapplied/server/0469-More-lightning-API.patch similarity index 100% rename from patches/unapplied/server/0459-More-lightning-API.patch rename to patches/unapplied/server/0469-More-lightning-API.patch diff --git a/patches/unapplied/server/0460-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/unapplied/server/0470-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 100% rename from patches/unapplied/server/0460-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/unapplied/server/0470-Climbing-should-not-bypass-cramming-gamerule.patch diff --git a/patches/unapplied/server/0461-Add-missing-default-perms-for-commands.patch b/patches/unapplied/server/0471-Add-missing-default-perms-for-commands.patch similarity index 100% rename from patches/unapplied/server/0461-Add-missing-default-perms-for-commands.patch rename to patches/unapplied/server/0471-Add-missing-default-perms-for-commands.patch diff --git a/patches/unapplied/server/0462-Add-PlayerShearBlockEvent.patch b/patches/unapplied/server/0472-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/unapplied/server/0462-Add-PlayerShearBlockEvent.patch rename to patches/unapplied/server/0472-Add-PlayerShearBlockEvent.patch diff --git a/patches/unapplied/server/0463-Limit-recipe-packets.patch b/patches/unapplied/server/0473-Limit-recipe-packets.patch similarity index 100% rename from patches/unapplied/server/0463-Limit-recipe-packets.patch rename to patches/unapplied/server/0473-Limit-recipe-packets.patch diff --git a/patches/unapplied/server/0464-Fix-CraftSound-backwards-compatibility.patch b/patches/unapplied/server/0474-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/unapplied/server/0464-Fix-CraftSound-backwards-compatibility.patch rename to patches/unapplied/server/0474-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/unapplied/server/0465-Player-Chunk-Load-Unload-Events.patch b/patches/unapplied/server/0475-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/unapplied/server/0465-Player-Chunk-Load-Unload-Events.patch rename to patches/unapplied/server/0475-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/unapplied/server/0466-Optimize-Dynamic-get-Missing-Keys.patch b/patches/unapplied/server/0476-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/unapplied/server/0466-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/unapplied/server/0476-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/unapplied/server/0467-Expose-LivingEntity-hurt-direction.patch b/patches/unapplied/server/0477-Expose-LivingEntity-hurt-direction.patch similarity index 100% rename from patches/unapplied/server/0467-Expose-LivingEntity-hurt-direction.patch rename to patches/unapplied/server/0477-Expose-LivingEntity-hurt-direction.patch diff --git a/patches/unapplied/server/0468-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/unapplied/server/0478-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/unapplied/server/0468-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/unapplied/server/0478-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/unapplied/server/0469-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch b/patches/unapplied/server/0479-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch similarity index 100% rename from patches/unapplied/server/0469-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch rename to patches/unapplied/server/0479-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch diff --git a/patches/unapplied/server/0470-Add-TargetHitEvent.patch b/patches/unapplied/server/0480-Add-TargetHitEvent.patch similarity index 100% rename from patches/unapplied/server/0470-Add-TargetHitEvent.patch rename to patches/unapplied/server/0480-Add-TargetHitEvent.patch diff --git a/patches/unapplied/server/0471-MC-4-Fix-item-position-desync.patch b/patches/unapplied/server/0481-MC-4-Fix-item-position-desync.patch similarity index 100% rename from patches/unapplied/server/0471-MC-4-Fix-item-position-desync.patch rename to patches/unapplied/server/0481-MC-4-Fix-item-position-desync.patch diff --git a/patches/unapplied/server/0472-Additional-Block-Material-API.patch b/patches/unapplied/server/0482-Additional-Block-Material-API.patch similarity index 100% rename from patches/unapplied/server/0472-Additional-Block-Material-API.patch rename to patches/unapplied/server/0482-Additional-Block-Material-API.patch diff --git a/patches/unapplied/server/0473-Fix-harming-potion-dupe.patch b/patches/unapplied/server/0483-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/unapplied/server/0473-Fix-harming-potion-dupe.patch rename to patches/unapplied/server/0483-Fix-harming-potion-dupe.patch diff --git a/patches/unapplied/server/0474-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/unapplied/server/0484-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/unapplied/server/0474-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/unapplied/server/0484-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/unapplied/server/0475-Cache-burn-durations.patch b/patches/unapplied/server/0485-Cache-burn-durations.patch similarity index 100% rename from patches/unapplied/server/0475-Cache-burn-durations.patch rename to patches/unapplied/server/0485-Cache-burn-durations.patch diff --git a/patches/unapplied/server/0476-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/unapplied/server/0486-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/unapplied/server/0476-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/unapplied/server/0486-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/unapplied/server/0477-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/unapplied/server/0487-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 100% rename from patches/unapplied/server/0477-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/unapplied/server/0487-Fix-Not-a-string-Map-Conversion-spam.patch diff --git a/patches/unapplied/server/0478-Add-PlayerFlowerPotManipulateEvent.patch b/patches/unapplied/server/0488-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/unapplied/server/0478-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/unapplied/server/0488-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/unapplied/server/0479-Fix-interact-event-not-being-called-sometimes.patch b/patches/unapplied/server/0489-Fix-interact-event-not-being-called-sometimes.patch similarity index 100% rename from patches/unapplied/server/0479-Fix-interact-event-not-being-called-sometimes.patch rename to patches/unapplied/server/0489-Fix-interact-event-not-being-called-sometimes.patch diff --git a/patches/unapplied/server/0480-Zombie-API-breaking-doors.patch b/patches/unapplied/server/0490-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/unapplied/server/0480-Zombie-API-breaking-doors.patch rename to patches/unapplied/server/0490-Zombie-API-breaking-doors.patch diff --git a/patches/unapplied/server/0481-Fix-nerfed-slime-when-splitting.patch b/patches/unapplied/server/0491-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/unapplied/server/0481-Fix-nerfed-slime-when-splitting.patch rename to patches/unapplied/server/0491-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/unapplied/server/0482-Add-EntityLoadCrossbowEvent.patch b/patches/unapplied/server/0492-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/unapplied/server/0482-Add-EntityLoadCrossbowEvent.patch rename to patches/unapplied/server/0492-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/unapplied/server/0483-Add-WorldGameRuleChangeEvent.patch b/patches/unapplied/server/0493-Add-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0483-Add-WorldGameRuleChangeEvent.patch rename to patches/unapplied/server/0493-Add-WorldGameRuleChangeEvent.patch diff --git a/patches/unapplied/server/0484-Add-ServerResourcesReloadedEvent.patch b/patches/unapplied/server/0494-Add-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/unapplied/server/0484-Add-ServerResourcesReloadedEvent.patch rename to patches/unapplied/server/0494-Add-ServerResourcesReloadedEvent.patch diff --git a/patches/unapplied/server/0485-Add-world-settings-for-mobs-picking-up-loot.patch b/patches/unapplied/server/0495-Add-world-settings-for-mobs-picking-up-loot.patch similarity index 100% rename from patches/unapplied/server/0485-Add-world-settings-for-mobs-picking-up-loot.patch rename to patches/unapplied/server/0495-Add-world-settings-for-mobs-picking-up-loot.patch diff --git a/patches/unapplied/server/0486-Add-BlockFailedDispenseEvent.patch b/patches/unapplied/server/0496-Add-BlockFailedDispenseEvent.patch similarity index 100% rename from patches/unapplied/server/0486-Add-BlockFailedDispenseEvent.patch rename to patches/unapplied/server/0496-Add-BlockFailedDispenseEvent.patch diff --git a/patches/unapplied/server/0487-Add-PlayerLecternPageChangeEvent.patch b/patches/unapplied/server/0497-Add-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0487-Add-PlayerLecternPageChangeEvent.patch rename to patches/unapplied/server/0497-Add-PlayerLecternPageChangeEvent.patch diff --git a/patches/unapplied/server/0488-Add-PlayerLoomPatternSelectEvent.patch b/patches/unapplied/server/0498-Add-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/unapplied/server/0488-Add-PlayerLoomPatternSelectEvent.patch rename to patches/unapplied/server/0498-Add-PlayerLoomPatternSelectEvent.patch diff --git a/patches/unapplied/server/0489-Configurable-door-breaking-difficulty.patch b/patches/unapplied/server/0499-Configurable-door-breaking-difficulty.patch similarity index 100% rename from patches/unapplied/server/0489-Configurable-door-breaking-difficulty.patch rename to patches/unapplied/server/0499-Configurable-door-breaking-difficulty.patch diff --git a/patches/unapplied/server/0490-Empty-commands-shall-not-be-dispatched.patch b/patches/unapplied/server/0500-Empty-commands-shall-not-be-dispatched.patch similarity index 100% rename from patches/unapplied/server/0490-Empty-commands-shall-not-be-dispatched.patch rename to patches/unapplied/server/0500-Empty-commands-shall-not-be-dispatched.patch diff --git a/patches/unapplied/server/0491-Remove-stale-POIs.patch b/patches/unapplied/server/0501-Remove-stale-POIs.patch similarity index 100% rename from patches/unapplied/server/0491-Remove-stale-POIs.patch rename to patches/unapplied/server/0501-Remove-stale-POIs.patch diff --git a/patches/unapplied/server/0492-Fix-villager-boat-exploit.patch b/patches/unapplied/server/0502-Fix-villager-boat-exploit.patch similarity index 100% rename from patches/unapplied/server/0492-Fix-villager-boat-exploit.patch rename to patches/unapplied/server/0502-Fix-villager-boat-exploit.patch diff --git a/patches/unapplied/server/0493-Add-sendOpLevel-API.patch b/patches/unapplied/server/0503-Add-sendOpLevel-API.patch similarity index 100% rename from patches/unapplied/server/0493-Add-sendOpLevel-API.patch rename to patches/unapplied/server/0503-Add-sendOpLevel-API.patch diff --git a/patches/unapplied/server/0494-TODO-Registry-Modification-API.patch b/patches/unapplied/server/0504-TODO-Registry-Modification-API.patch similarity index 100% rename from patches/unapplied/server/0494-TODO-Registry-Modification-API.patch rename to patches/unapplied/server/0504-TODO-Registry-Modification-API.patch diff --git a/patches/unapplied/server/0495-Add-StructuresLocateEvent.patch b/patches/unapplied/server/0505-Add-StructuresLocateEvent.patch similarity index 100% rename from patches/unapplied/server/0495-Add-StructuresLocateEvent.patch rename to patches/unapplied/server/0505-Add-StructuresLocateEvent.patch diff --git a/patches/unapplied/server/0496-Collision-option-for-requiring-a-player-participant.patch b/patches/unapplied/server/0506-Collision-option-for-requiring-a-player-participant.patch similarity index 100% rename from patches/unapplied/server/0496-Collision-option-for-requiring-a-player-participant.patch rename to patches/unapplied/server/0506-Collision-option-for-requiring-a-player-participant.patch diff --git a/patches/unapplied/server/0497-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/unapplied/server/0507-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch similarity index 100% rename from patches/unapplied/server/0497-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch rename to patches/unapplied/server/0507-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch diff --git a/patches/unapplied/server/0498-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/unapplied/server/0508-Return-chat-component-with-empty-text-instead-of-thr.patch similarity index 100% rename from patches/unapplied/server/0498-Return-chat-component-with-empty-text-instead-of-thr.patch rename to patches/unapplied/server/0508-Return-chat-component-with-empty-text-instead-of-thr.patch diff --git a/patches/unapplied/server/0499-Make-schedule-command-per-world.patch b/patches/unapplied/server/0509-Make-schedule-command-per-world.patch similarity index 100% rename from patches/unapplied/server/0499-Make-schedule-command-per-world.patch rename to patches/unapplied/server/0509-Make-schedule-command-per-world.patch diff --git a/patches/unapplied/server/0500-Configurable-max-leash-distance.patch b/patches/unapplied/server/0510-Configurable-max-leash-distance.patch similarity index 100% rename from patches/unapplied/server/0500-Configurable-max-leash-distance.patch rename to patches/unapplied/server/0510-Configurable-max-leash-distance.patch diff --git a/patches/unapplied/server/0501-Add-BlockPreDispenseEvent.patch b/patches/unapplied/server/0511-Add-BlockPreDispenseEvent.patch similarity index 100% rename from patches/unapplied/server/0501-Add-BlockPreDispenseEvent.patch rename to patches/unapplied/server/0511-Add-BlockPreDispenseEvent.patch diff --git a/patches/unapplied/server/0502-Add-PlayerChangeBeaconEffectEvent.patch b/patches/unapplied/server/0512-Add-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/unapplied/server/0502-Add-PlayerChangeBeaconEffectEvent.patch rename to patches/unapplied/server/0512-Add-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/unapplied/server/0503-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/unapplied/server/0513-Add-toggle-for-always-placing-the-dragon-egg.patch similarity index 100% rename from patches/unapplied/server/0503-Add-toggle-for-always-placing-the-dragon-egg.patch rename to patches/unapplied/server/0513-Add-toggle-for-always-placing-the-dragon-egg.patch diff --git a/patches/unapplied/server/0504-Add-PlayerStonecutterRecipeSelectEvent.patch b/patches/unapplied/server/0514-Add-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/unapplied/server/0504-Add-PlayerStonecutterRecipeSelectEvent.patch rename to patches/unapplied/server/0514-Add-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/unapplied/server/0505-Expand-EntityUnleashEvent.patch b/patches/unapplied/server/0515-Expand-EntityUnleashEvent.patch similarity index 100% rename from patches/unapplied/server/0505-Expand-EntityUnleashEvent.patch rename to patches/unapplied/server/0515-Expand-EntityUnleashEvent.patch diff --git a/patches/unapplied/server/0506-Reset-shield-blocking-on-dimension-change.patch b/patches/unapplied/server/0516-Reset-shield-blocking-on-dimension-change.patch similarity index 100% rename from patches/unapplied/server/0506-Reset-shield-blocking-on-dimension-change.patch rename to patches/unapplied/server/0516-Reset-shield-blocking-on-dimension-change.patch diff --git a/patches/unapplied/server/0507-Add-DragonEggFormEvent.patch b/patches/unapplied/server/0517-Add-DragonEggFormEvent.patch similarity index 100% rename from patches/unapplied/server/0507-Add-DragonEggFormEvent.patch rename to patches/unapplied/server/0517-Add-DragonEggFormEvent.patch diff --git a/patches/unapplied/server/0508-Add-EntityMoveEvent.patch b/patches/unapplied/server/0518-Add-EntityMoveEvent.patch similarity index 100% rename from patches/unapplied/server/0508-Add-EntityMoveEvent.patch rename to patches/unapplied/server/0518-Add-EntityMoveEvent.patch diff --git a/patches/unapplied/server/0509-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/unapplied/server/0519-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 100% rename from patches/unapplied/server/0509-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/unapplied/server/0519-added-option-to-disable-pathfinding-updates-on-block.patch diff --git a/patches/unapplied/server/0510-Inline-shift-direction-fields.patch b/patches/unapplied/server/0520-Inline-shift-direction-fields.patch similarity index 100% rename from patches/unapplied/server/0510-Inline-shift-direction-fields.patch rename to patches/unapplied/server/0520-Inline-shift-direction-fields.patch diff --git a/patches/unapplied/server/0511-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/unapplied/server/0521-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/unapplied/server/0511-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/unapplied/server/0521-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/unapplied/server/0512-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/unapplied/server/0522-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/unapplied/server/0512-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/unapplied/server/0522-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/unapplied/server/0513-living-entity-allow-attribute-registration.patch b/patches/unapplied/server/0523-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/unapplied/server/0513-living-entity-allow-attribute-registration.patch rename to patches/unapplied/server/0523-living-entity-allow-attribute-registration.patch diff --git a/patches/unapplied/server/0514-fix-dead-slime-setSize-invincibility.patch b/patches/unapplied/server/0524-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/unapplied/server/0514-fix-dead-slime-setSize-invincibility.patch rename to patches/unapplied/server/0524-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/unapplied/server/0515-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/unapplied/server/0525-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/unapplied/server/0515-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/unapplied/server/0525-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/unapplied/server/0516-Expose-Tracked-Players.patch b/patches/unapplied/server/0526-Expose-Tracked-Players.patch similarity index 100% rename from patches/unapplied/server/0516-Expose-Tracked-Players.patch rename to patches/unapplied/server/0526-Expose-Tracked-Players.patch diff --git a/patches/unapplied/server/0517-Improve-ServerGUI.patch b/patches/unapplied/server/0527-Improve-ServerGUI.patch similarity index 100% rename from patches/unapplied/server/0517-Improve-ServerGUI.patch rename to patches/unapplied/server/0527-Improve-ServerGUI.patch diff --git a/patches/unapplied/server/0518-fix-converting-txt-to-json-file.patch b/patches/unapplied/server/0528-fix-converting-txt-to-json-file.patch similarity index 100% rename from patches/unapplied/server/0518-fix-converting-txt-to-json-file.patch rename to patches/unapplied/server/0528-fix-converting-txt-to-json-file.patch diff --git a/patches/unapplied/server/0519-Add-worldborder-events.patch b/patches/unapplied/server/0529-Add-worldborder-events.patch similarity index 100% rename from patches/unapplied/server/0519-Add-worldborder-events.patch rename to patches/unapplied/server/0529-Add-worldborder-events.patch diff --git a/patches/unapplied/server/0520-Add-PlayerNameEntityEvent.patch b/patches/unapplied/server/0530-Add-PlayerNameEntityEvent.patch similarity index 100% rename from patches/unapplied/server/0520-Add-PlayerNameEntityEvent.patch rename to patches/unapplied/server/0530-Add-PlayerNameEntityEvent.patch diff --git a/patches/unapplied/server/0521-Prevent-grindstones-from-overstacking-items.patch b/patches/unapplied/server/0531-Prevent-grindstones-from-overstacking-items.patch similarity index 100% rename from patches/unapplied/server/0521-Prevent-grindstones-from-overstacking-items.patch rename to patches/unapplied/server/0531-Prevent-grindstones-from-overstacking-items.patch diff --git a/patches/unapplied/server/0522-Add-recipe-to-cook-events.patch b/patches/unapplied/server/0532-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/unapplied/server/0522-Add-recipe-to-cook-events.patch rename to patches/unapplied/server/0532-Add-recipe-to-cook-events.patch diff --git a/patches/unapplied/server/0523-Add-Block-isValidTool.patch b/patches/unapplied/server/0533-Add-Block-isValidTool.patch similarity index 100% rename from patches/unapplied/server/0523-Add-Block-isValidTool.patch rename to patches/unapplied/server/0533-Add-Block-isValidTool.patch diff --git a/patches/unapplied/server/0524-Allow-using-signs-inside-spawn-protection.patch b/patches/unapplied/server/0534-Allow-using-signs-inside-spawn-protection.patch similarity index 100% rename from patches/unapplied/server/0524-Allow-using-signs-inside-spawn-protection.patch rename to patches/unapplied/server/0534-Allow-using-signs-inside-spawn-protection.patch diff --git a/patches/unapplied/server/0525-Expand-world-key-API.patch b/patches/unapplied/server/0535-Expand-world-key-API.patch similarity index 100% rename from patches/unapplied/server/0525-Expand-world-key-API.patch rename to patches/unapplied/server/0535-Expand-world-key-API.patch diff --git a/patches/unapplied/server/0526-Add-fast-alternative-constructor-for-Rotations.patch b/patches/unapplied/server/0536-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/unapplied/server/0526-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/unapplied/server/0536-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/unapplied/server/0527-Item-Rarity-API.patch b/patches/unapplied/server/0537-Item-Rarity-API.patch similarity index 100% rename from patches/unapplied/server/0527-Item-Rarity-API.patch rename to patches/unapplied/server/0537-Item-Rarity-API.patch diff --git a/patches/unapplied/server/0528-Drop-carried-item-when-player-has-disconnected.patch b/patches/unapplied/server/0538-Drop-carried-item-when-player-has-disconnected.patch similarity index 100% rename from patches/unapplied/server/0528-Drop-carried-item-when-player-has-disconnected.patch rename to patches/unapplied/server/0538-Drop-carried-item-when-player-has-disconnected.patch diff --git a/patches/unapplied/server/0529-forced-whitelist-use-configurable-kick-message.patch b/patches/unapplied/server/0539-forced-whitelist-use-configurable-kick-message.patch similarity index 100% rename from patches/unapplied/server/0529-forced-whitelist-use-configurable-kick-message.patch rename to patches/unapplied/server/0539-forced-whitelist-use-configurable-kick-message.patch diff --git a/patches/unapplied/server/0530-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/unapplied/server/0540-Don-t-ignore-result-of-PlayerEditBookEvent.patch similarity index 100% rename from patches/unapplied/server/0530-Don-t-ignore-result-of-PlayerEditBookEvent.patch rename to patches/unapplied/server/0540-Don-t-ignore-result-of-PlayerEditBookEvent.patch diff --git a/patches/unapplied/server/0531-Expose-protocol-version.patch b/patches/unapplied/server/0541-Expose-protocol-version.patch similarity index 100% rename from patches/unapplied/server/0531-Expose-protocol-version.patch rename to patches/unapplied/server/0541-Expose-protocol-version.patch diff --git a/patches/unapplied/server/0532-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/unapplied/server/0542-Enhance-console-tab-completions-for-brigadier-comman.patch similarity index 100% rename from patches/unapplied/server/0532-Enhance-console-tab-completions-for-brigadier-comman.patch rename to patches/unapplied/server/0542-Enhance-console-tab-completions-for-brigadier-comman.patch diff --git a/patches/unapplied/server/0533-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/unapplied/server/0543-Fix-PlayerItemConsumeEvent-cancelling-properly.patch similarity index 100% rename from patches/unapplied/server/0533-Fix-PlayerItemConsumeEvent-cancelling-properly.patch rename to patches/unapplied/server/0543-Fix-PlayerItemConsumeEvent-cancelling-properly.patch diff --git a/patches/unapplied/server/0534-Add-bypass-host-check.patch b/patches/unapplied/server/0544-Add-bypass-host-check.patch similarity index 100% rename from patches/unapplied/server/0534-Add-bypass-host-check.patch rename to patches/unapplied/server/0544-Add-bypass-host-check.patch diff --git a/patches/unapplied/server/0535-Set-area-affect-cloud-rotation.patch b/patches/unapplied/server/0545-Set-area-affect-cloud-rotation.patch similarity index 100% rename from patches/unapplied/server/0535-Set-area-affect-cloud-rotation.patch rename to patches/unapplied/server/0545-Set-area-affect-cloud-rotation.patch diff --git a/patches/unapplied/server/0536-add-isDeeplySleeping-to-HumanEntity.patch b/patches/unapplied/server/0546-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/unapplied/server/0536-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/unapplied/server/0546-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/unapplied/server/0537-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/unapplied/server/0547-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/unapplied/server/0537-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/unapplied/server/0547-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/unapplied/server/0538-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/unapplied/server/0548-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/unapplied/server/0538-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/unapplied/server/0548-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/unapplied/server/0539-fix-PigZombieAngerEvent-cancellation.patch b/patches/unapplied/server/0549-fix-PigZombieAngerEvent-cancellation.patch similarity index 100% rename from patches/unapplied/server/0539-fix-PigZombieAngerEvent-cancellation.patch rename to patches/unapplied/server/0549-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/unapplied/server/0540-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/unapplied/server/0550-fix-PlayerItemHeldEvent-firing-twice.patch similarity index 100% rename from patches/unapplied/server/0540-fix-PlayerItemHeldEvent-firing-twice.patch rename to patches/unapplied/server/0550-fix-PlayerItemHeldEvent-firing-twice.patch diff --git a/patches/unapplied/server/0541-Add-PlayerDeepSleepEvent.patch b/patches/unapplied/server/0551-Add-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/unapplied/server/0541-Add-PlayerDeepSleepEvent.patch rename to patches/unapplied/server/0551-Add-PlayerDeepSleepEvent.patch diff --git a/patches/unapplied/server/0542-More-World-API.patch b/patches/unapplied/server/0552-More-World-API.patch similarity index 100% rename from patches/unapplied/server/0542-More-World-API.patch rename to patches/unapplied/server/0552-More-World-API.patch diff --git a/patches/unapplied/server/0543-Add-PlayerBedFailEnterEvent.patch b/patches/unapplied/server/0553-Add-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/unapplied/server/0543-Add-PlayerBedFailEnterEvent.patch rename to patches/unapplied/server/0553-Add-PlayerBedFailEnterEvent.patch diff --git a/patches/unapplied/server/0544-Implement-methods-to-convert-between-Component-and-B.patch b/patches/unapplied/server/0554-Implement-methods-to-convert-between-Component-and-B.patch similarity index 100% rename from patches/unapplied/server/0544-Implement-methods-to-convert-between-Component-and-B.patch rename to patches/unapplied/server/0554-Implement-methods-to-convert-between-Component-and-B.patch diff --git a/patches/unapplied/server/0545-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/unapplied/server/0555-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch similarity index 100% rename from patches/unapplied/server/0545-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch rename to patches/unapplied/server/0555-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch diff --git a/patches/unapplied/server/0546-Introduce-beacon-activation-deactivation-events.patch b/patches/unapplied/server/0556-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/unapplied/server/0546-Introduce-beacon-activation-deactivation-events.patch rename to patches/unapplied/server/0556-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/unapplied/server/0547-Add-Channel-initialization-listeners.patch b/patches/unapplied/server/0557-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/unapplied/server/0547-Add-Channel-initialization-listeners.patch rename to patches/unapplied/server/0557-Add-Channel-initialization-listeners.patch diff --git a/patches/unapplied/server/0548-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/unapplied/server/0558-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/unapplied/server/0548-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/unapplied/server/0558-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/unapplied/server/0549-Add-more-WanderingTrader-API.patch b/patches/unapplied/server/0559-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/unapplied/server/0549-Add-more-WanderingTrader-API.patch rename to patches/unapplied/server/0559-Add-more-WanderingTrader-API.patch diff --git a/patches/unapplied/server/0550-Add-EntityBlockStorage-clearEntities.patch b/patches/unapplied/server/0560-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/unapplied/server/0550-Add-EntityBlockStorage-clearEntities.patch rename to patches/unapplied/server/0560-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/unapplied/server/0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/unapplied/server/0561-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/unapplied/server/0551-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/unapplied/server/0561-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/unapplied/server/0552-Add-HiddenPotionEffect-API.patch b/patches/unapplied/server/0562-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/unapplied/server/0552-Add-HiddenPotionEffect-API.patch rename to patches/unapplied/server/0562-Add-HiddenPotionEffect-API.patch diff --git a/patches/unapplied/server/0553-Inventory-close.patch b/patches/unapplied/server/0563-Inventory-close.patch similarity index 100% rename from patches/unapplied/server/0553-Inventory-close.patch rename to patches/unapplied/server/0563-Inventory-close.patch diff --git a/patches/unapplied/server/0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/unapplied/server/0564-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/unapplied/server/0554-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/unapplied/server/0564-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/unapplied/server/0555-Add-basic-Datapack-API.patch b/patches/unapplied/server/0565-Add-basic-Datapack-API.patch similarity index 100% rename from patches/unapplied/server/0555-Add-basic-Datapack-API.patch rename to patches/unapplied/server/0565-Add-basic-Datapack-API.patch diff --git a/patches/unapplied/server/0556-Add-environment-variable-to-disable-server-gui.patch b/patches/unapplied/server/0566-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/unapplied/server/0556-Add-environment-variable-to-disable-server-gui.patch rename to patches/unapplied/server/0566-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/unapplied/server/0557-Expand-PlayerGameModeChangeEvent.patch b/patches/unapplied/server/0567-Expand-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0557-Expand-PlayerGameModeChangeEvent.patch rename to patches/unapplied/server/0567-Expand-PlayerGameModeChangeEvent.patch diff --git a/patches/unapplied/server/0558-ItemStack-repair-check-API.patch b/patches/unapplied/server/0568-ItemStack-repair-check-API.patch similarity index 100% rename from patches/unapplied/server/0558-ItemStack-repair-check-API.patch rename to patches/unapplied/server/0568-ItemStack-repair-check-API.patch diff --git a/patches/unapplied/server/0559-More-Enchantment-API.patch b/patches/unapplied/server/0569-More-Enchantment-API.patch similarity index 100% rename from patches/unapplied/server/0559-More-Enchantment-API.patch rename to patches/unapplied/server/0569-More-Enchantment-API.patch diff --git a/patches/unapplied/server/0560-Move-range-check-for-block-placing-up.patch b/patches/unapplied/server/0570-Move-range-check-for-block-placing-up.patch similarity index 100% rename from patches/unapplied/server/0560-Move-range-check-for-block-placing-up.patch rename to patches/unapplied/server/0570-Move-range-check-for-block-placing-up.patch diff --git a/patches/unapplied/server/0561-Add-Mob-lookAt-API.patch b/patches/unapplied/server/0571-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/unapplied/server/0561-Add-Mob-lookAt-API.patch rename to patches/unapplied/server/0571-Add-Mob-lookAt-API.patch diff --git a/patches/unapplied/server/0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/unapplied/server/0572-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/unapplied/server/0562-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/unapplied/server/0572-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/unapplied/server/0563-Add-Unix-domain-socket-support.patch b/patches/unapplied/server/0573-Add-Unix-domain-socket-support.patch similarity index 100% rename from patches/unapplied/server/0563-Add-Unix-domain-socket-support.patch rename to patches/unapplied/server/0573-Add-Unix-domain-socket-support.patch diff --git a/patches/unapplied/server/0564-Add-EntityInsideBlockEvent.patch b/patches/unapplied/server/0574-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/unapplied/server/0564-Add-EntityInsideBlockEvent.patch rename to patches/unapplied/server/0574-Add-EntityInsideBlockEvent.patch diff --git a/patches/unapplied/server/0565-Attributes-API-for-item-defaults.patch b/patches/unapplied/server/0575-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/unapplied/server/0565-Attributes-API-for-item-defaults.patch rename to patches/unapplied/server/0575-Attributes-API-for-item-defaults.patch diff --git a/patches/unapplied/server/0566-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/unapplied/server/0576-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/unapplied/server/0566-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/unapplied/server/0576-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/unapplied/server/0567-More-Lidded-Block-API.patch b/patches/unapplied/server/0577-More-Lidded-Block-API.patch similarity index 100% rename from patches/unapplied/server/0567-More-Lidded-Block-API.patch rename to patches/unapplied/server/0577-More-Lidded-Block-API.patch diff --git a/patches/unapplied/server/0568-Limit-item-frame-cursors-on-maps.patch b/patches/unapplied/server/0578-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/unapplied/server/0568-Limit-item-frame-cursors-on-maps.patch rename to patches/unapplied/server/0578-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/unapplied/server/0569-Add-PlayerKickEvent-causes.patch b/patches/unapplied/server/0579-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/unapplied/server/0569-Add-PlayerKickEvent-causes.patch rename to patches/unapplied/server/0579-Add-PlayerKickEvent-causes.patch diff --git a/patches/unapplied/server/0570-Add-PufferFishStateChangeEvent.patch b/patches/unapplied/server/0580-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0570-Add-PufferFishStateChangeEvent.patch rename to patches/unapplied/server/0580-Add-PufferFishStateChangeEvent.patch diff --git a/patches/unapplied/server/0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/unapplied/server/0581-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/unapplied/server/0571-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/unapplied/server/0581-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/unapplied/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/unapplied/server/0582-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/unapplied/server/0572-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/unapplied/server/0582-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/unapplied/server/0573-Add-option-to-fix-items-merging-through-walls.patch b/patches/unapplied/server/0583-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/unapplied/server/0573-Add-option-to-fix-items-merging-through-walls.patch rename to patches/unapplied/server/0583-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/unapplied/server/0574-Add-BellRevealRaiderEvent.patch b/patches/unapplied/server/0584-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/unapplied/server/0574-Add-BellRevealRaiderEvent.patch rename to patches/unapplied/server/0584-Add-BellRevealRaiderEvent.patch diff --git a/patches/unapplied/server/0575-Fix-invulnerable-end-crystals.patch b/patches/unapplied/server/0585-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/unapplied/server/0575-Fix-invulnerable-end-crystals.patch rename to patches/unapplied/server/0585-Fix-invulnerable-end-crystals.patch diff --git a/patches/unapplied/server/0576-Add-ElderGuardianAppearanceEvent.patch b/patches/unapplied/server/0586-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/unapplied/server/0576-Add-ElderGuardianAppearanceEvent.patch rename to patches/unapplied/server/0586-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/unapplied/server/0577-Fix-dangerous-end-portal-logic.patch b/patches/unapplied/server/0587-Fix-dangerous-end-portal-logic.patch similarity index 100% rename from patches/unapplied/server/0577-Fix-dangerous-end-portal-logic.patch rename to patches/unapplied/server/0587-Fix-dangerous-end-portal-logic.patch diff --git a/patches/unapplied/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/unapplied/server/0588-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/unapplied/server/0578-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/unapplied/server/0588-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/unapplied/server/0579-Make-item-validations-configurable.patch b/patches/unapplied/server/0589-Make-item-validations-configurable.patch similarity index 100% rename from patches/unapplied/server/0579-Make-item-validations-configurable.patch rename to patches/unapplied/server/0589-Make-item-validations-configurable.patch diff --git a/patches/unapplied/server/0580-Line-Of-Sight-Changes.patch b/patches/unapplied/server/0590-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/unapplied/server/0580-Line-Of-Sight-Changes.patch rename to patches/unapplied/server/0590-Line-Of-Sight-Changes.patch diff --git a/patches/unapplied/server/0581-add-per-world-spawn-limits.patch b/patches/unapplied/server/0591-add-per-world-spawn-limits.patch similarity index 100% rename from patches/unapplied/server/0581-add-per-world-spawn-limits.patch rename to patches/unapplied/server/0591-add-per-world-spawn-limits.patch diff --git a/patches/unapplied/server/0582-Fix-potions-splash-events.patch b/patches/unapplied/server/0592-Fix-potions-splash-events.patch similarity index 100% rename from patches/unapplied/server/0582-Fix-potions-splash-events.patch rename to patches/unapplied/server/0592-Fix-potions-splash-events.patch diff --git a/patches/unapplied/server/0583-Add-more-LimitedRegion-API.patch b/patches/unapplied/server/0593-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/unapplied/server/0583-Add-more-LimitedRegion-API.patch rename to patches/unapplied/server/0593-Add-more-LimitedRegion-API.patch diff --git a/patches/unapplied/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/unapplied/server/0594-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 100% rename from patches/unapplied/server/0584-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/unapplied/server/0594-Fix-PlayerDropItemEvent-using-wrong-item.patch diff --git a/patches/unapplied/server/0585-Missing-Entity-API.patch b/patches/unapplied/server/0595-Missing-Entity-API.patch similarity index 100% rename from patches/unapplied/server/0585-Missing-Entity-API.patch rename to patches/unapplied/server/0595-Missing-Entity-API.patch diff --git a/patches/unapplied/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/unapplied/server/0596-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 100% rename from patches/unapplied/server/0586-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/unapplied/server/0596-Ensure-disconnect-for-book-edit-is-called-on-main.patch diff --git a/patches/unapplied/server/0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/unapplied/server/0597-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/unapplied/server/0587-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/unapplied/server/0597-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/unapplied/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/unapplied/server/0598-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 100% rename from patches/unapplied/server/0588-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/unapplied/server/0598-Use-getChunkIfLoadedImmediately-in-places.patch diff --git a/patches/unapplied/server/0589-Fix-commands-from-signs-not-firing-command-events.patch b/patches/unapplied/server/0599-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/unapplied/server/0589-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/unapplied/server/0599-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/unapplied/server/0590-Add-PlayerArmSwingEvent.patch b/patches/unapplied/server/0600-Add-PlayerArmSwingEvent.patch similarity index 100% rename from patches/unapplied/server/0590-Add-PlayerArmSwingEvent.patch rename to patches/unapplied/server/0600-Add-PlayerArmSwingEvent.patch diff --git a/patches/unapplied/server/0591-Fix-kick-event-leave-message-not-being-sent.patch b/patches/unapplied/server/0601-Fix-kick-event-leave-message-not-being-sent.patch similarity index 100% rename from patches/unapplied/server/0591-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/unapplied/server/0601-Fix-kick-event-leave-message-not-being-sent.patch diff --git a/patches/unapplied/server/0592-Add-config-for-mobs-immune-to-default-effects.patch b/patches/unapplied/server/0602-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/unapplied/server/0592-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/unapplied/server/0602-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/unapplied/server/0593-Don-t-apply-cramming-damage-to-players.patch b/patches/unapplied/server/0603-Don-t-apply-cramming-damage-to-players.patch similarity index 100% rename from patches/unapplied/server/0593-Don-t-apply-cramming-damage-to-players.patch rename to patches/unapplied/server/0603-Don-t-apply-cramming-damage-to-players.patch diff --git a/patches/unapplied/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/unapplied/server/0604-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/unapplied/server/0594-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/unapplied/server/0604-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/unapplied/server/0595-Add-missing-forceDrop-toggles.patch b/patches/unapplied/server/0605-Add-missing-forceDrop-toggles.patch similarity index 100% rename from patches/unapplied/server/0595-Add-missing-forceDrop-toggles.patch rename to patches/unapplied/server/0605-Add-missing-forceDrop-toggles.patch diff --git a/patches/unapplied/server/0596-Stinger-API.patch b/patches/unapplied/server/0606-Stinger-API.patch similarity index 100% rename from patches/unapplied/server/0596-Stinger-API.patch rename to patches/unapplied/server/0606-Stinger-API.patch diff --git a/patches/unapplied/server/0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/unapplied/server/0607-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/unapplied/server/0597-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/unapplied/server/0607-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/unapplied/server/0598-Add-System.out-err-catcher.patch b/patches/unapplied/server/0608-Add-System.out-err-catcher.patch similarity index 100% rename from patches/unapplied/server/0598-Add-System.out-err-catcher.patch rename to patches/unapplied/server/0608-Add-System.out-err-catcher.patch diff --git a/patches/unapplied/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/unapplied/server/0610-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 100% rename from patches/unapplied/server/0600-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/unapplied/server/0610-Prevent-AFK-kick-while-watching-end-credits.patch diff --git a/patches/unapplied/server/0601-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/unapplied/server/0611-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/unapplied/server/0601-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/unapplied/server/0611-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/unapplied/server/0602-Add-PlayerSetSpawnEvent.patch b/patches/unapplied/server/0612-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/unapplied/server/0602-Add-PlayerSetSpawnEvent.patch rename to patches/unapplied/server/0612-Add-PlayerSetSpawnEvent.patch diff --git a/patches/unapplied/server/0603-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/unapplied/server/0613-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/unapplied/server/0603-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/unapplied/server/0613-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/unapplied/server/0604-Optimize-entity-tracker-passenger-checks.patch b/patches/unapplied/server/0614-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/unapplied/server/0604-Optimize-entity-tracker-passenger-checks.patch rename to patches/unapplied/server/0614-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/unapplied/server/0605-Config-option-for-Piglins-guarding-chests.patch b/patches/unapplied/server/0615-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/unapplied/server/0605-Config-option-for-Piglins-guarding-chests.patch rename to patches/unapplied/server/0615-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/unapplied/server/0606-Add-EntityDamageItemEvent.patch b/patches/unapplied/server/0616-Add-EntityDamageItemEvent.patch similarity index 100% rename from patches/unapplied/server/0606-Add-EntityDamageItemEvent.patch rename to patches/unapplied/server/0616-Add-EntityDamageItemEvent.patch diff --git a/patches/unapplied/server/0607-Optimize-indirect-passenger-iteration.patch b/patches/unapplied/server/0617-Optimize-indirect-passenger-iteration.patch similarity index 100% rename from patches/unapplied/server/0607-Optimize-indirect-passenger-iteration.patch rename to patches/unapplied/server/0617-Optimize-indirect-passenger-iteration.patch diff --git a/patches/unapplied/server/0608-Configurable-item-frame-map-cursor-update-interval.patch b/patches/unapplied/server/0618-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/unapplied/server/0608-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/unapplied/server/0618-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/unapplied/server/0609-Clear-bucket-NBT-after-dispense.patch b/patches/unapplied/server/0619-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/unapplied/server/0609-Clear-bucket-NBT-after-dispense.patch rename to patches/unapplied/server/0619-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/unapplied/server/0610-Change-EnderEye-target-without-changing-other-things.patch b/patches/unapplied/server/0620-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/unapplied/server/0610-Change-EnderEye-target-without-changing-other-things.patch rename to patches/unapplied/server/0620-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/unapplied/server/0611-Add-BlockBreakBlockEvent.patch b/patches/unapplied/server/0621-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/unapplied/server/0611-Add-BlockBreakBlockEvent.patch rename to patches/unapplied/server/0621-Add-BlockBreakBlockEvent.patch diff --git a/patches/unapplied/server/0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/unapplied/server/0622-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/unapplied/server/0612-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/unapplied/server/0622-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/unapplied/server/0613-More-CommandBlock-API.patch b/patches/unapplied/server/0623-More-CommandBlock-API.patch similarity index 100% rename from patches/unapplied/server/0613-More-CommandBlock-API.patch rename to patches/unapplied/server/0623-More-CommandBlock-API.patch diff --git a/patches/unapplied/server/0614-Add-missing-team-sidebar-display-slots.patch b/patches/unapplied/server/0624-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/unapplied/server/0614-Add-missing-team-sidebar-display-slots.patch rename to patches/unapplied/server/0624-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/unapplied/server/0615-Add-back-EntityPortalExitEvent.patch b/patches/unapplied/server/0625-Add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/unapplied/server/0615-Add-back-EntityPortalExitEvent.patch rename to patches/unapplied/server/0625-Add-back-EntityPortalExitEvent.patch diff --git a/patches/unapplied/server/0616-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/unapplied/server/0626-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/unapplied/server/0616-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/unapplied/server/0626-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/unapplied/server/0617-Get-entity-default-attributes.patch b/patches/unapplied/server/0627-Get-entity-default-attributes.patch similarity index 100% rename from patches/unapplied/server/0617-Get-entity-default-attributes.patch rename to patches/unapplied/server/0627-Get-entity-default-attributes.patch diff --git a/patches/unapplied/server/0618-Left-handed-API.patch b/patches/unapplied/server/0628-Left-handed-API.patch similarity index 100% rename from patches/unapplied/server/0618-Left-handed-API.patch rename to patches/unapplied/server/0628-Left-handed-API.patch diff --git a/patches/unapplied/server/0619-Add-more-advancement-API.patch b/patches/unapplied/server/0629-Add-more-advancement-API.patch similarity index 100% rename from patches/unapplied/server/0619-Add-more-advancement-API.patch rename to patches/unapplied/server/0629-Add-more-advancement-API.patch diff --git a/patches/unapplied/server/0620-Add-ItemFactory-getSpawnEgg-API.patch b/patches/unapplied/server/0630-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/unapplied/server/0620-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/unapplied/server/0630-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/unapplied/server/0621-Add-critical-damage-API.patch b/patches/unapplied/server/0631-Add-critical-damage-API.patch similarity index 100% rename from patches/unapplied/server/0621-Add-critical-damage-API.patch rename to patches/unapplied/server/0631-Add-critical-damage-API.patch diff --git a/patches/unapplied/server/0622-Fix-issues-with-mob-conversion.patch b/patches/unapplied/server/0632-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/unapplied/server/0622-Fix-issues-with-mob-conversion.patch rename to patches/unapplied/server/0632-Fix-issues-with-mob-conversion.patch diff --git a/patches/unapplied/server/0623-Add-isCollidable-methods-to-various-places.patch b/patches/unapplied/server/0633-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/unapplied/server/0623-Add-isCollidable-methods-to-various-places.patch rename to patches/unapplied/server/0633-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/unapplied/server/0624-Goat-ram-API.patch b/patches/unapplied/server/0634-Goat-ram-API.patch similarity index 100% rename from patches/unapplied/server/0624-Goat-ram-API.patch rename to patches/unapplied/server/0634-Goat-ram-API.patch diff --git a/patches/unapplied/server/0625-Add-API-for-resetting-a-single-score.patch b/patches/unapplied/server/0635-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/unapplied/server/0625-Add-API-for-resetting-a-single-score.patch rename to patches/unapplied/server/0635-Add-API-for-resetting-a-single-score.patch diff --git a/patches/unapplied/server/0626-Add-Raw-Byte-Entity-Serialization.patch b/patches/unapplied/server/0636-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/unapplied/server/0626-Add-Raw-Byte-Entity-Serialization.patch rename to patches/unapplied/server/0636-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/unapplied/server/0627-Vanilla-command-permission-fixes.patch b/patches/unapplied/server/0637-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/unapplied/server/0627-Vanilla-command-permission-fixes.patch rename to patches/unapplied/server/0637-Vanilla-command-permission-fixes.patch diff --git a/patches/unapplied/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/unapplied/server/0638-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 100% rename from patches/unapplied/server/0628-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/unapplied/server/0638-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch diff --git a/patches/unapplied/server/0629-Fix-GameProfileCache-concurrency.patch b/patches/unapplied/server/0639-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/unapplied/server/0629-Fix-GameProfileCache-concurrency.patch rename to patches/unapplied/server/0639-Fix-GameProfileCache-concurrency.patch diff --git a/patches/unapplied/server/0630-Improve-and-expand-AsyncCatcher.patch b/patches/unapplied/server/0640-Improve-and-expand-AsyncCatcher.patch similarity index 100% rename from patches/unapplied/server/0630-Improve-and-expand-AsyncCatcher.patch rename to patches/unapplied/server/0640-Improve-and-expand-AsyncCatcher.patch diff --git a/patches/unapplied/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/unapplied/server/0641-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 100% rename from patches/unapplied/server/0631-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/unapplied/server/0641-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/unapplied/server/0632-Sanitize-ResourceLocation-error-logging.patch b/patches/unapplied/server/0642-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/unapplied/server/0632-Sanitize-ResourceLocation-error-logging.patch rename to patches/unapplied/server/0642-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/unapplied/server/0633-Manually-inline-methods-in-BlockPosition.patch b/patches/unapplied/server/0643-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/unapplied/server/0633-Manually-inline-methods-in-BlockPosition.patch rename to patches/unapplied/server/0643-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/unapplied/server/0634-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/unapplied/server/0644-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/unapplied/server/0634-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/unapplied/server/0644-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/unapplied/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/unapplied/server/0645-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 100% rename from patches/unapplied/server/0635-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/unapplied/server/0645-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch diff --git a/patches/unapplied/server/0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/unapplied/server/0646-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/unapplied/server/0636-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/unapplied/server/0646-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/unapplied/server/0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/unapplied/server/0647-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 100% rename from patches/unapplied/server/0637-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/unapplied/server/0647-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch diff --git a/patches/unapplied/server/0638-Time-scoreboard-search.patch b/patches/unapplied/server/0648-Time-scoreboard-search.patch similarity index 100% rename from patches/unapplied/server/0638-Time-scoreboard-search.patch rename to patches/unapplied/server/0648-Time-scoreboard-search.patch diff --git a/patches/unapplied/server/0639-Oprimise-map-impl-for-tracked-players.patch b/patches/unapplied/server/0649-Oprimise-map-impl-for-tracked-players.patch similarity index 100% rename from patches/unapplied/server/0639-Oprimise-map-impl-for-tracked-players.patch rename to patches/unapplied/server/0649-Oprimise-map-impl-for-tracked-players.patch diff --git a/patches/unapplied/server/0640-Add-missing-InventoryType.patch b/patches/unapplied/server/0650-Add-missing-InventoryType.patch similarity index 100% rename from patches/unapplied/server/0640-Add-missing-InventoryType.patch rename to patches/unapplied/server/0650-Add-missing-InventoryType.patch diff --git a/patches/unapplied/server/0641-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/unapplied/server/0651-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/unapplied/server/0641-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/unapplied/server/0651-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/unapplied/server/0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/unapplied/server/0652-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 100% rename from patches/unapplied/server/0642-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/unapplied/server/0652-Fix-merchant-inventory-not-closing-on-entity-removal.patch diff --git a/patches/unapplied/server/0643-Check-requirement-before-suggesting-root-nodes.patch b/patches/unapplied/server/0653-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/unapplied/server/0643-Check-requirement-before-suggesting-root-nodes.patch rename to patches/unapplied/server/0653-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/unapplied/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/unapplied/server/0654-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 100% rename from patches/unapplied/server/0644-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/unapplied/server/0654-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/unapplied/server/0645-Add-packet-limiter-config.patch b/patches/unapplied/server/0655-Add-packet-limiter-config.patch similarity index 100% rename from patches/unapplied/server/0645-Add-packet-limiter-config.patch rename to patches/unapplied/server/0655-Add-packet-limiter-config.patch diff --git a/patches/unapplied/server/0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/unapplied/server/0656-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/unapplied/server/0646-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/unapplied/server/0656-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/unapplied/server/0647-Ensure-valid-vehicle-status.patch b/patches/unapplied/server/0657-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/unapplied/server/0647-Ensure-valid-vehicle-status.patch rename to patches/unapplied/server/0657-Ensure-valid-vehicle-status.patch diff --git a/patches/unapplied/server/0648-Prevent-softlocked-end-exit-portal-generation.patch b/patches/unapplied/server/0658-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/unapplied/server/0648-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/unapplied/server/0658-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/unapplied/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/unapplied/server/0659-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/unapplied/server/0649-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/unapplied/server/0659-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/unapplied/server/0650-Don-t-log-debug-logging-being-disabled.patch b/patches/unapplied/server/0660-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/unapplied/server/0650-Don-t-log-debug-logging-being-disabled.patch rename to patches/unapplied/server/0660-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/unapplied/server/0651-fix-various-menus-with-empty-level-accesses.patch b/patches/unapplied/server/0661-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/unapplied/server/0651-fix-various-menus-with-empty-level-accesses.patch rename to patches/unapplied/server/0661-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/unapplied/server/0652-Preserve-overstacked-loot.patch b/patches/unapplied/server/0662-Preserve-overstacked-loot.patch similarity index 100% rename from patches/unapplied/server/0652-Preserve-overstacked-loot.patch rename to patches/unapplied/server/0662-Preserve-overstacked-loot.patch diff --git a/patches/unapplied/server/0653-Update-head-rotation-in-missing-places.patch b/patches/unapplied/server/0663-Update-head-rotation-in-missing-places.patch similarity index 100% rename from patches/unapplied/server/0653-Update-head-rotation-in-missing-places.patch rename to patches/unapplied/server/0663-Update-head-rotation-in-missing-places.patch diff --git a/patches/unapplied/server/0654-prevent-unintended-light-block-manipulation.patch b/patches/unapplied/server/0664-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/unapplied/server/0654-prevent-unintended-light-block-manipulation.patch rename to patches/unapplied/server/0664-prevent-unintended-light-block-manipulation.patch diff --git a/patches/unapplied/server/0655-Fix-CraftCriteria-defaults-map.patch b/patches/unapplied/server/0665-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/unapplied/server/0655-Fix-CraftCriteria-defaults-map.patch rename to patches/unapplied/server/0665-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/unapplied/server/0656-Fix-upstreams-block-state-factories.patch b/patches/unapplied/server/0666-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/unapplied/server/0656-Fix-upstreams-block-state-factories.patch rename to patches/unapplied/server/0666-Fix-upstreams-block-state-factories.patch diff --git a/patches/unapplied/server/0657-Configurable-feature-seeds.patch b/patches/unapplied/server/0667-Configurable-feature-seeds.patch similarity index 100% rename from patches/unapplied/server/0657-Configurable-feature-seeds.patch rename to patches/unapplied/server/0667-Configurable-feature-seeds.patch diff --git a/patches/unapplied/server/0658-Add-root-admin-user-detection.patch b/patches/unapplied/server/0668-Add-root-admin-user-detection.patch similarity index 100% rename from patches/unapplied/server/0658-Add-root-admin-user-detection.patch rename to patches/unapplied/server/0668-Add-root-admin-user-detection.patch diff --git a/patches/unapplied/server/0659-Always-allow-item-changing-in-Fireball.patch b/patches/unapplied/server/0669-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/unapplied/server/0659-Always-allow-item-changing-in-Fireball.patch rename to patches/unapplied/server/0669-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/unapplied/server/0660-don-t-attempt-to-teleport-dead-entities.patch b/patches/unapplied/server/0670-don-t-attempt-to-teleport-dead-entities.patch similarity index 100% rename from patches/unapplied/server/0660-don-t-attempt-to-teleport-dead-entities.patch rename to patches/unapplied/server/0670-don-t-attempt-to-teleport-dead-entities.patch diff --git a/patches/unapplied/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/unapplied/server/0671-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/unapplied/server/0661-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/unapplied/server/0671-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/unapplied/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/unapplied/server/0672-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/unapplied/server/0662-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/unapplied/server/0672-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/unapplied/server/0663-Fix-removing-recipes-from-RecipeIterator.patch b/patches/unapplied/server/0673-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/unapplied/server/0663-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/unapplied/server/0673-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/unapplied/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/unapplied/server/0674-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/unapplied/server/0664-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/unapplied/server/0674-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/unapplied/server/0665-Hide-unnecessary-itemmeta-from-clients.patch b/patches/unapplied/server/0675-Hide-unnecessary-itemmeta-from-clients.patch similarity index 100% rename from patches/unapplied/server/0665-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/unapplied/server/0675-Hide-unnecessary-itemmeta-from-clients.patch diff --git a/patches/unapplied/server/0666-Fix-Spigot-growth-modifiers.patch b/patches/unapplied/server/0676-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/unapplied/server/0666-Fix-Spigot-growth-modifiers.patch rename to patches/unapplied/server/0676-Fix-Spigot-growth-modifiers.patch diff --git a/patches/unapplied/server/0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/unapplied/server/0677-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/unapplied/server/0667-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/unapplied/server/0677-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/unapplied/server/0668-Add-PlayerItemFrameChangeEvent.patch b/patches/unapplied/server/0678-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0668-Add-PlayerItemFrameChangeEvent.patch rename to patches/unapplied/server/0678-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/unapplied/server/0669-Optimize-HashMapPalette.patch b/patches/unapplied/server/0679-Optimize-HashMapPalette.patch similarity index 100% rename from patches/unapplied/server/0669-Optimize-HashMapPalette.patch rename to patches/unapplied/server/0679-Optimize-HashMapPalette.patch diff --git a/patches/unapplied/server/0670-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/unapplied/server/0680-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/unapplied/server/0670-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/unapplied/server/0680-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/unapplied/server/0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/unapplied/server/0681-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/unapplied/server/0671-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/unapplied/server/0681-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/unapplied/server/0672-Add-more-Campfire-API.patch b/patches/unapplied/server/0682-Add-more-Campfire-API.patch similarity index 100% rename from patches/unapplied/server/0672-Add-more-Campfire-API.patch rename to patches/unapplied/server/0682-Add-more-Campfire-API.patch diff --git a/patches/unapplied/server/0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/unapplied/server/0683-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/unapplied/server/0673-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/unapplied/server/0683-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/unapplied/server/0674-Forward-CraftEntity-in-teleport-command.patch b/patches/unapplied/server/0684-Forward-CraftEntity-in-teleport-command.patch similarity index 100% rename from patches/unapplied/server/0674-Forward-CraftEntity-in-teleport-command.patch rename to patches/unapplied/server/0684-Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/unapplied/server/0675-Improve-scoreboard-entries.patch b/patches/unapplied/server/0685-Improve-scoreboard-entries.patch similarity index 100% rename from patches/unapplied/server/0675-Improve-scoreboard-entries.patch rename to patches/unapplied/server/0685-Improve-scoreboard-entries.patch diff --git a/patches/unapplied/server/0676-Entity-powdered-snow-API.patch b/patches/unapplied/server/0686-Entity-powdered-snow-API.patch similarity index 100% rename from patches/unapplied/server/0676-Entity-powdered-snow-API.patch rename to patches/unapplied/server/0686-Entity-powdered-snow-API.patch diff --git a/patches/unapplied/server/0677-Add-API-for-item-entity-health.patch b/patches/unapplied/server/0687-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/unapplied/server/0677-Add-API-for-item-entity-health.patch rename to patches/unapplied/server/0687-Add-API-for-item-entity-health.patch diff --git a/patches/unapplied/server/0678-Configurable-max-block-light-for-monster-spawning.patch b/patches/unapplied/server/0688-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/unapplied/server/0678-Configurable-max-block-light-for-monster-spawning.patch rename to patches/unapplied/server/0688-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/unapplied/server/0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/unapplied/server/0689-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/unapplied/server/0679-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/unapplied/server/0689-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/unapplied/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/unapplied/server/0690-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/unapplied/server/0680-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/unapplied/server/0690-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/unapplied/server/0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/unapplied/server/0691-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/unapplied/server/0681-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/unapplied/server/0691-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/unapplied/server/0682-Fix-bees-aging-inside-hives.patch b/patches/unapplied/server/0692-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/unapplied/server/0682-Fix-bees-aging-inside-hives.patch rename to patches/unapplied/server/0692-Fix-bees-aging-inside-hives.patch diff --git a/patches/unapplied/server/0683-Bucketable-API.patch b/patches/unapplied/server/0693-Bucketable-API.patch similarity index 100% rename from patches/unapplied/server/0683-Bucketable-API.patch rename to patches/unapplied/server/0693-Bucketable-API.patch diff --git a/patches/unapplied/server/0684-Validate-usernames.patch b/patches/unapplied/server/0694-Validate-usernames.patch similarity index 100% rename from patches/unapplied/server/0684-Validate-usernames.patch rename to patches/unapplied/server/0694-Validate-usernames.patch diff --git a/patches/unapplied/server/0685-Make-water-animal-spawn-height-configurable.patch b/patches/unapplied/server/0695-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/unapplied/server/0685-Make-water-animal-spawn-height-configurable.patch rename to patches/unapplied/server/0695-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/unapplied/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/unapplied/server/0696-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/unapplied/server/0686-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/unapplied/server/0696-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/unapplied/server/0687-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/unapplied/server/0697-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/unapplied/server/0687-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/unapplied/server/0697-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/unapplied/server/0688-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/unapplied/server/0698-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/unapplied/server/0688-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/unapplied/server/0698-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/unapplied/server/0689-Multiple-Entries-with-Scoreboards.patch b/patches/unapplied/server/0699-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/unapplied/server/0689-Multiple-Entries-with-Scoreboards.patch rename to patches/unapplied/server/0699-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/unapplied/server/0690-Reset-placed-block-on-exception.patch b/patches/unapplied/server/0700-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/unapplied/server/0690-Reset-placed-block-on-exception.patch rename to patches/unapplied/server/0700-Reset-placed-block-on-exception.patch diff --git a/patches/unapplied/server/0691-Add-configurable-height-for-slime-spawn.patch b/patches/unapplied/server/0701-Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/unapplied/server/0691-Add-configurable-height-for-slime-spawn.patch rename to patches/unapplied/server/0701-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/unapplied/server/0692-Fix-xp-reward-for-baby-zombies.patch b/patches/unapplied/server/0702-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/unapplied/server/0692-Fix-xp-reward-for-baby-zombies.patch rename to patches/unapplied/server/0702-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/unapplied/server/0693-Multi-Block-Change-API-Implementation.patch b/patches/unapplied/server/0703-Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/unapplied/server/0693-Multi-Block-Change-API-Implementation.patch rename to patches/unapplied/server/0703-Multi-Block-Change-API-Implementation.patch diff --git a/patches/unapplied/server/0694-Fix-NotePlayEvent.patch b/patches/unapplied/server/0704-Fix-NotePlayEvent.patch similarity index 100% rename from patches/unapplied/server/0694-Fix-NotePlayEvent.patch rename to patches/unapplied/server/0704-Fix-NotePlayEvent.patch diff --git a/patches/unapplied/server/0695-Freeze-Tick-Lock-API.patch b/patches/unapplied/server/0705-Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/unapplied/server/0695-Freeze-Tick-Lock-API.patch rename to patches/unapplied/server/0705-Freeze-Tick-Lock-API.patch diff --git a/patches/unapplied/server/0696-More-PotionEffectType-API.patch b/patches/unapplied/server/0706-More-PotionEffectType-API.patch similarity index 100% rename from patches/unapplied/server/0696-More-PotionEffectType-API.patch rename to patches/unapplied/server/0706-More-PotionEffectType-API.patch diff --git a/patches/unapplied/server/0697-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/unapplied/server/0707-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/unapplied/server/0697-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/unapplied/server/0707-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/unapplied/server/0698-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/unapplied/server/0708-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/unapplied/server/0698-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/unapplied/server/0708-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/unapplied/server/0699-Add-missing-structure-set-seed-configs.patch b/patches/unapplied/server/0709-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/unapplied/server/0699-Add-missing-structure-set-seed-configs.patch rename to patches/unapplied/server/0709-Add-missing-structure-set-seed-configs.patch diff --git a/patches/unapplied/server/0700-Implement-regenerateChunk.patch b/patches/unapplied/server/0710-Implement-regenerateChunk.patch similarity index 100% rename from patches/unapplied/server/0700-Implement-regenerateChunk.patch rename to patches/unapplied/server/0710-Implement-regenerateChunk.patch diff --git a/patches/unapplied/server/0701-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/unapplied/server/0711-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/unapplied/server/0701-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/unapplied/server/0711-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/unapplied/server/0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/unapplied/server/0712-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/unapplied/server/0702-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/unapplied/server/0712-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/unapplied/server/0703-Add-GameEvent-tags.patch b/patches/unapplied/server/0713-Add-GameEvent-tags.patch similarity index 100% rename from patches/unapplied/server/0703-Add-GameEvent-tags.patch rename to patches/unapplied/server/0713-Add-GameEvent-tags.patch diff --git a/patches/unapplied/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/unapplied/server/0714-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/unapplied/server/0704-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/unapplied/server/0714-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/unapplied/server/0705-Furnace-RecipesUsed-API.patch b/patches/unapplied/server/0715-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/unapplied/server/0705-Furnace-RecipesUsed-API.patch rename to patches/unapplied/server/0715-Furnace-RecipesUsed-API.patch diff --git a/patches/unapplied/server/0706-Configurable-sculk-sensor-listener-range.patch b/patches/unapplied/server/0716-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/unapplied/server/0706-Configurable-sculk-sensor-listener-range.patch rename to patches/unapplied/server/0716-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/unapplied/server/0707-Add-missing-block-data-mins-and-maxes.patch b/patches/unapplied/server/0717-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/unapplied/server/0707-Add-missing-block-data-mins-and-maxes.patch rename to patches/unapplied/server/0717-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/unapplied/server/0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/unapplied/server/0718-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 100% rename from patches/unapplied/server/0708-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/unapplied/server/0718-Option-to-have-default-CustomSpawners-in-custom-worl.patch diff --git a/patches/unapplied/server/0709-Put-world-into-worldlist-before-initing-the-world.patch b/patches/unapplied/server/0719-Put-world-into-worldlist-before-initing-the-world.patch similarity index 100% rename from patches/unapplied/server/0709-Put-world-into-worldlist-before-initing-the-world.patch rename to patches/unapplied/server/0719-Put-world-into-worldlist-before-initing-the-world.patch diff --git a/patches/unapplied/server/0710-Fix-Entity-Position-Desync.patch b/patches/unapplied/server/0720-Fix-Entity-Position-Desync.patch similarity index 100% rename from patches/unapplied/server/0710-Fix-Entity-Position-Desync.patch rename to patches/unapplied/server/0720-Fix-Entity-Position-Desync.patch diff --git a/patches/unapplied/server/0711-Custom-Potion-Mixes.patch b/patches/unapplied/server/0721-Custom-Potion-Mixes.patch similarity index 100% rename from patches/unapplied/server/0711-Custom-Potion-Mixes.patch rename to patches/unapplied/server/0721-Custom-Potion-Mixes.patch diff --git a/patches/unapplied/server/0712-Force-close-world-loading-screen.patch b/patches/unapplied/server/0722-Force-close-world-loading-screen.patch similarity index 100% rename from patches/unapplied/server/0712-Force-close-world-loading-screen.patch rename to patches/unapplied/server/0722-Force-close-world-loading-screen.patch diff --git a/patches/unapplied/server/0713-Fix-falling-block-spawn-methods.patch b/patches/unapplied/server/0723-Fix-falling-block-spawn-methods.patch similarity index 100% rename from patches/unapplied/server/0713-Fix-falling-block-spawn-methods.patch rename to patches/unapplied/server/0723-Fix-falling-block-spawn-methods.patch diff --git a/patches/unapplied/server/0714-Expose-furnace-minecart-push-values.patch b/patches/unapplied/server/0724-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/unapplied/server/0714-Expose-furnace-minecart-push-values.patch rename to patches/unapplied/server/0724-Expose-furnace-minecart-push-values.patch diff --git a/patches/unapplied/server/0715-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/unapplied/server/0725-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/unapplied/server/0715-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/unapplied/server/0725-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/unapplied/server/0716-More-Projectile-API.patch b/patches/unapplied/server/0726-More-Projectile-API.patch similarity index 100% rename from patches/unapplied/server/0716-More-Projectile-API.patch rename to patches/unapplied/server/0726-More-Projectile-API.patch diff --git a/patches/unapplied/server/0717-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/unapplied/server/0727-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/unapplied/server/0717-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/unapplied/server/0727-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/unapplied/server/0718-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/unapplied/server/0728-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 100% rename from patches/unapplied/server/0718-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/unapplied/server/0728-Don-t-allow-vehicle-movement-from-players-while-tele.patch diff --git a/patches/unapplied/server/0719-Implement-getComputedBiome-API.patch b/patches/unapplied/server/0729-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/unapplied/server/0719-Implement-getComputedBiome-API.patch rename to patches/unapplied/server/0729-Implement-getComputedBiome-API.patch diff --git a/patches/unapplied/server/0720-Make-some-itemstacks-nonnull.patch b/patches/unapplied/server/0730-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/unapplied/server/0720-Make-some-itemstacks-nonnull.patch rename to patches/unapplied/server/0730-Make-some-itemstacks-nonnull.patch diff --git a/patches/unapplied/server/0721-Implement-enchantWithLevels-API.patch b/patches/unapplied/server/0731-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/unapplied/server/0721-Implement-enchantWithLevels-API.patch rename to patches/unapplied/server/0731-Implement-enchantWithLevels-API.patch diff --git a/patches/unapplied/server/0722-Fix-saving-in-unloadWorld.patch b/patches/unapplied/server/0732-Fix-saving-in-unloadWorld.patch similarity index 100% rename from patches/unapplied/server/0722-Fix-saving-in-unloadWorld.patch rename to patches/unapplied/server/0732-Fix-saving-in-unloadWorld.patch diff --git a/patches/unapplied/server/0723-Buffer-OOB-setBlock-calls.patch b/patches/unapplied/server/0733-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/unapplied/server/0723-Buffer-OOB-setBlock-calls.patch rename to patches/unapplied/server/0733-Buffer-OOB-setBlock-calls.patch diff --git a/patches/unapplied/server/0724-Add-TameableDeathMessageEvent.patch b/patches/unapplied/server/0734-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/unapplied/server/0724-Add-TameableDeathMessageEvent.patch rename to patches/unapplied/server/0734-Add-TameableDeathMessageEvent.patch diff --git a/patches/unapplied/server/0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/unapplied/server/0735-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 100% rename from patches/unapplied/server/0725-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/unapplied/server/0735-Fix-new-block-data-for-EntityChangeBlockEvent.patch diff --git a/patches/unapplied/server/0726-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/unapplied/server/0736-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 100% rename from patches/unapplied/server/0726-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/unapplied/server/0736-fix-player-loottables-running-when-mob-loot-gamerule.patch diff --git a/patches/unapplied/server/0727-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/unapplied/server/0737-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 100% rename from patches/unapplied/server/0727-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/unapplied/server/0737-Ensure-entity-passenger-world-matches-ridden-entity.patch diff --git a/patches/unapplied/server/0728-cache-resource-keys.patch b/patches/unapplied/server/0738-cache-resource-keys.patch similarity index 100% rename from patches/unapplied/server/0728-cache-resource-keys.patch rename to patches/unapplied/server/0738-cache-resource-keys.patch diff --git a/patches/unapplied/server/0729-Allow-changing-the-EnderDragon-podium.patch b/patches/unapplied/server/0739-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/unapplied/server/0729-Allow-changing-the-EnderDragon-podium.patch rename to patches/unapplied/server/0739-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/unapplied/server/0730-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/unapplied/server/0740-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/unapplied/server/0730-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/unapplied/server/0740-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/unapplied/server/0731-Prevent-tile-entity-copies-loading-chunks.patch b/patches/unapplied/server/0741-Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/unapplied/server/0731-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/unapplied/server/0741-Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/unapplied/server/0732-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/unapplied/server/0742-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 100% rename from patches/unapplied/server/0732-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/unapplied/server/0742-Use-username-instead-of-display-name-in-PlayerList-g.patch diff --git a/patches/unapplied/server/0733-Expand-PlayerItemDamageEvent.patch b/patches/unapplied/server/0743-Expand-PlayerItemDamageEvent.patch similarity index 100% rename from patches/unapplied/server/0733-Expand-PlayerItemDamageEvent.patch rename to patches/unapplied/server/0743-Expand-PlayerItemDamageEvent.patch diff --git a/patches/unapplied/server/0734-WorldCreator-keepSpawnLoaded.patch b/patches/unapplied/server/0744-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/unapplied/server/0734-WorldCreator-keepSpawnLoaded.patch rename to patches/unapplied/server/0744-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/unapplied/server/0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/unapplied/server/0745-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/unapplied/server/0735-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/unapplied/server/0745-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/unapplied/server/0736-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/unapplied/server/0746-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/unapplied/server/0736-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/unapplied/server/0746-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/unapplied/server/0737-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/unapplied/server/0747-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/unapplied/server/0737-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/unapplied/server/0747-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/unapplied/server/0738-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/unapplied/server/0748-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/unapplied/server/0738-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/unapplied/server/0748-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/unapplied/server/0739-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/unapplied/server/0749-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/unapplied/server/0739-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/unapplied/server/0749-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/unapplied/server/0740-Add-PlayerStopUsingItemEvent.patch b/patches/unapplied/server/0750-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/unapplied/server/0740-Add-PlayerStopUsingItemEvent.patch rename to patches/unapplied/server/0750-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/unapplied/server/0741-Don-t-tick-markers.patch b/patches/unapplied/server/0751-Don-t-tick-markers.patch similarity index 100% rename from patches/unapplied/server/0741-Don-t-tick-markers.patch rename to patches/unapplied/server/0751-Don-t-tick-markers.patch diff --git a/patches/unapplied/server/0742-Expand-FallingBlock-API.patch b/patches/unapplied/server/0752-Expand-FallingBlock-API.patch similarity index 100% rename from patches/unapplied/server/0742-Expand-FallingBlock-API.patch rename to patches/unapplied/server/0752-Expand-FallingBlock-API.patch diff --git a/patches/unapplied/server/0743-Add-support-for-Proxy-Protocol.patch b/patches/unapplied/server/0753-Add-support-for-Proxy-Protocol.patch similarity index 100% rename from patches/unapplied/server/0743-Add-support-for-Proxy-Protocol.patch rename to patches/unapplied/server/0753-Add-support-for-Proxy-Protocol.patch diff --git a/patches/unapplied/server/0744-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/unapplied/server/0754-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/unapplied/server/0744-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/unapplied/server/0754-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/unapplied/server/0745-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/unapplied/server/0755-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/unapplied/server/0745-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/unapplied/server/0755-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/unapplied/server/0746-properly-read-and-store-sus-effect-duration.patch b/patches/unapplied/server/0756-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/unapplied/server/0746-properly-read-and-store-sus-effect-duration.patch rename to patches/unapplied/server/0756-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/unapplied/server/0747-Sanitize-sent-BlockEntity-NBT.patch b/patches/unapplied/server/0757-Sanitize-sent-BlockEntity-NBT.patch similarity index 100% rename from patches/unapplied/server/0747-Sanitize-sent-BlockEntity-NBT.patch rename to patches/unapplied/server/0757-Sanitize-sent-BlockEntity-NBT.patch diff --git a/patches/unapplied/server/0748-Disable-component-selector-resolving-in-books-by-def.patch b/patches/unapplied/server/0758-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/unapplied/server/0748-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/unapplied/server/0758-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/unapplied/server/0749-Prevent-entity-loading-causing-async-lookups.patch b/patches/unapplied/server/0759-Prevent-entity-loading-causing-async-lookups.patch similarity index 100% rename from patches/unapplied/server/0749-Prevent-entity-loading-causing-async-lookups.patch rename to patches/unapplied/server/0759-Prevent-entity-loading-causing-async-lookups.patch diff --git a/patches/unapplied/server/0750-Throw-exception-on-world-create-while-being-ticked.patch b/patches/unapplied/server/0760-Throw-exception-on-world-create-while-being-ticked.patch similarity index 100% rename from patches/unapplied/server/0750-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/unapplied/server/0760-Throw-exception-on-world-create-while-being-ticked.patch diff --git a/patches/unapplied/server/0751-Dont-resent-entity-on-art-update.patch b/patches/unapplied/server/0761-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/unapplied/server/0751-Dont-resent-entity-on-art-update.patch rename to patches/unapplied/server/0761-Dont-resent-entity-on-art-update.patch diff --git a/patches/unapplied/server/0752-Add-WardenAngerChangeEvent.patch b/patches/unapplied/server/0762-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0752-Add-WardenAngerChangeEvent.patch rename to patches/unapplied/server/0762-Add-WardenAngerChangeEvent.patch diff --git a/patches/unapplied/server/0753-Add-option-for-strict-advancement-dimension-checks.patch b/patches/unapplied/server/0763-Add-option-for-strict-advancement-dimension-checks.patch similarity index 100% rename from patches/unapplied/server/0753-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/unapplied/server/0763-Add-option-for-strict-advancement-dimension-checks.patch diff --git a/patches/unapplied/server/0754-Add-missing-important-BlockStateListPopulator-method.patch b/patches/unapplied/server/0764-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/unapplied/server/0754-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/unapplied/server/0764-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/unapplied/server/0755-Nameable-Banner-API.patch b/patches/unapplied/server/0765-Nameable-Banner-API.patch similarity index 100% rename from patches/unapplied/server/0755-Nameable-Banner-API.patch rename to patches/unapplied/server/0765-Nameable-Banner-API.patch diff --git a/patches/unapplied/server/0756-Don-t-broadcast-messages-to-command-blocks.patch b/patches/unapplied/server/0766-Don-t-broadcast-messages-to-command-blocks.patch similarity index 100% rename from patches/unapplied/server/0756-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/unapplied/server/0766-Don-t-broadcast-messages-to-command-blocks.patch diff --git a/patches/unapplied/server/0757-Prevent-empty-items-from-being-added-to-world.patch b/patches/unapplied/server/0767-Prevent-empty-items-from-being-added-to-world.patch similarity index 100% rename from patches/unapplied/server/0757-Prevent-empty-items-from-being-added-to-world.patch rename to patches/unapplied/server/0767-Prevent-empty-items-from-being-added-to-world.patch diff --git a/patches/unapplied/server/0758-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/unapplied/server/0768-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/unapplied/server/0758-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/unapplied/server/0768-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/unapplied/server/0759-Add-Player-getFishHook.patch b/patches/unapplied/server/0769-Add-Player-getFishHook.patch similarity index 100% rename from patches/unapplied/server/0759-Add-Player-getFishHook.patch rename to patches/unapplied/server/0769-Add-Player-getFishHook.patch diff --git a/patches/unapplied/server/0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/unapplied/server/0770-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/unapplied/server/0760-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/unapplied/server/0770-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/unapplied/server/0761-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/unapplied/server/0771-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 100% rename from patches/unapplied/server/0761-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/unapplied/server/0771-Add-various-missing-EntityDropItemEvent-calls.patch diff --git a/patches/unapplied/server/0762-Fix-Bee-flower-NPE.patch b/patches/unapplied/server/0772-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/unapplied/server/0762-Fix-Bee-flower-NPE.patch rename to patches/unapplied/server/0772-Fix-Bee-flower-NPE.patch diff --git a/patches/unapplied/server/0763-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/unapplied/server/0773-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 100% rename from patches/unapplied/server/0763-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/unapplied/server/0773-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch diff --git a/patches/unapplied/server/0764-More-Teleport-API.patch b/patches/unapplied/server/0774-More-Teleport-API.patch similarity index 100% rename from patches/unapplied/server/0764-More-Teleport-API.patch rename to patches/unapplied/server/0774-More-Teleport-API.patch diff --git a/patches/unapplied/server/0765-Add-EntityPortalReadyEvent.patch b/patches/unapplied/server/0775-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/unapplied/server/0765-Add-EntityPortalReadyEvent.patch rename to patches/unapplied/server/0775-Add-EntityPortalReadyEvent.patch diff --git a/patches/unapplied/server/0766-Don-t-use-level-random-in-entity-constructors.patch b/patches/unapplied/server/0776-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/unapplied/server/0766-Don-t-use-level-random-in-entity-constructors.patch rename to patches/unapplied/server/0776-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/unapplied/server/0767-Send-block-entities-after-destroy-prediction.patch b/patches/unapplied/server/0777-Send-block-entities-after-destroy-prediction.patch similarity index 100% rename from patches/unapplied/server/0767-Send-block-entities-after-destroy-prediction.patch rename to patches/unapplied/server/0777-Send-block-entities-after-destroy-prediction.patch diff --git a/patches/unapplied/server/0768-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/unapplied/server/0778-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 100% rename from patches/unapplied/server/0768-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/unapplied/server/0778-Warn-on-plugins-accessing-faraway-chunks.patch diff --git a/patches/unapplied/server/0769-Custom-Chat-Completion-Suggestions-API.patch b/patches/unapplied/server/0779-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/unapplied/server/0769-Custom-Chat-Completion-Suggestions-API.patch rename to patches/unapplied/server/0779-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/unapplied/server/0770-Add-and-fix-missing-BlockFadeEvents.patch b/patches/unapplied/server/0780-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/unapplied/server/0770-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/unapplied/server/0780-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/unapplied/server/0771-Collision-API.patch b/patches/unapplied/server/0781-Collision-API.patch similarity index 100% rename from patches/unapplied/server/0771-Collision-API.patch rename to patches/unapplied/server/0781-Collision-API.patch diff --git a/patches/unapplied/server/0772-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/unapplied/server/0782-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 100% rename from patches/unapplied/server/0772-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/unapplied/server/0782-Fix-suggest-command-message-for-brigadier-syntax-exc.patch diff --git a/patches/unapplied/server/0773-Block-Ticking-API.patch b/patches/unapplied/server/0783-Block-Ticking-API.patch similarity index 100% rename from patches/unapplied/server/0773-Block-Ticking-API.patch rename to patches/unapplied/server/0783-Block-Ticking-API.patch diff --git a/patches/unapplied/server/0774-Add-Velocity-IP-Forwarding-Support.patch b/patches/unapplied/server/0784-Add-Velocity-IP-Forwarding-Support.patch similarity index 100% rename from patches/unapplied/server/0774-Add-Velocity-IP-Forwarding-Support.patch rename to patches/unapplied/server/0784-Add-Velocity-IP-Forwarding-Support.patch diff --git a/patches/unapplied/server/0775-Add-NamespacedKey-biome-methods.patch b/patches/unapplied/server/0785-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/unapplied/server/0775-Add-NamespacedKey-biome-methods.patch rename to patches/unapplied/server/0785-Add-NamespacedKey-biome-methods.patch diff --git a/patches/unapplied/server/0776-Fix-plugin-loggers-on-server-shutdown.patch b/patches/unapplied/server/0786-Fix-plugin-loggers-on-server-shutdown.patch similarity index 100% rename from patches/unapplied/server/0776-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/unapplied/server/0786-Fix-plugin-loggers-on-server-shutdown.patch diff --git a/patches/unapplied/server/0777-Stop-large-look-changes-from-crashing-the-server.patch b/patches/unapplied/server/0787-Stop-large-look-changes-from-crashing-the-server.patch similarity index 100% rename from patches/unapplied/server/0777-Stop-large-look-changes-from-crashing-the-server.patch rename to patches/unapplied/server/0787-Stop-large-look-changes-from-crashing-the-server.patch diff --git a/patches/unapplied/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/unapplied/server/0788-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/unapplied/server/0778-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/unapplied/server/0788-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/unapplied/server/0779-Missing-eating-regain-reason.patch b/patches/unapplied/server/0789-Missing-eating-regain-reason.patch similarity index 100% rename from patches/unapplied/server/0779-Missing-eating-regain-reason.patch rename to patches/unapplied/server/0789-Missing-eating-regain-reason.patch diff --git a/patches/unapplied/server/0780-Missing-effect-cause.patch b/patches/unapplied/server/0790-Missing-effect-cause.patch similarity index 100% rename from patches/unapplied/server/0780-Missing-effect-cause.patch rename to patches/unapplied/server/0790-Missing-effect-cause.patch diff --git a/patches/unapplied/server/0781-Added-byte-array-serialization-deserialization-for-P.patch b/patches/unapplied/server/0791-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/unapplied/server/0781-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/unapplied/server/0791-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/unapplied/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/unapplied/server/0792-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/unapplied/server/0782-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/unapplied/server/0792-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/unapplied/server/0783-Call-BlockPhysicsEvent-more-often.patch b/patches/unapplied/server/0793-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/unapplied/server/0783-Call-BlockPhysicsEvent-more-often.patch rename to patches/unapplied/server/0793-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/unapplied/server/0784-Configurable-chat-thread-limit.patch b/patches/unapplied/server/0794-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/unapplied/server/0784-Configurable-chat-thread-limit.patch rename to patches/unapplied/server/0794-Configurable-chat-thread-limit.patch diff --git a/patches/unapplied/server/0785-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/unapplied/server/0795-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/unapplied/server/0785-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/unapplied/server/0795-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/unapplied/server/0786-fix-Jigsaw-block-kicking-user.patch b/patches/unapplied/server/0796-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/unapplied/server/0786-fix-Jigsaw-block-kicking-user.patch rename to patches/unapplied/server/0796-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/unapplied/server/0787-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/unapplied/server/0797-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/unapplied/server/0787-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/unapplied/server/0797-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/unapplied/server/0788-Add-getDrops-to-BlockState.patch b/patches/unapplied/server/0798-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/unapplied/server/0788-Add-getDrops-to-BlockState.patch rename to patches/unapplied/server/0798-Add-getDrops-to-BlockState.patch diff --git a/patches/unapplied/server/0789-Fix-a-bunch-of-vanilla-bugs.patch b/patches/unapplied/server/0799-Fix-a-bunch-of-vanilla-bugs.patch similarity index 100% rename from patches/unapplied/server/0789-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/unapplied/server/0799-Fix-a-bunch-of-vanilla-bugs.patch diff --git a/patches/unapplied/server/0790-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/unapplied/server/0800-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 100% rename from patches/unapplied/server/0790-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/unapplied/server/0800-Remove-unnecessary-onTrackingStart-during-navigation.patch diff --git a/patches/unapplied/server/0791-Fix-custom-piglin-loved-items.patch b/patches/unapplied/server/0801-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/unapplied/server/0791-Fix-custom-piglin-loved-items.patch rename to patches/unapplied/server/0801-Fix-custom-piglin-loved-items.patch diff --git a/patches/unapplied/server/0792-EntityPickupItemEvent-fixes.patch b/patches/unapplied/server/0802-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/unapplied/server/0792-EntityPickupItemEvent-fixes.patch rename to patches/unapplied/server/0802-EntityPickupItemEvent-fixes.patch diff --git a/patches/unapplied/server/0793-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/unapplied/server/0803-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 100% rename from patches/unapplied/server/0793-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/unapplied/server/0803-Correctly-handle-interactions-with-items-on-cooldown.patch diff --git a/patches/unapplied/server/0794-Add-PlayerInventorySlotChangeEvent.patch b/patches/unapplied/server/0804-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0794-Add-PlayerInventorySlotChangeEvent.patch rename to patches/unapplied/server/0804-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/unapplied/server/0795-Elder-Guardian-appearance-API.patch b/patches/unapplied/server/0805-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/unapplied/server/0795-Elder-Guardian-appearance-API.patch rename to patches/unapplied/server/0805-Elder-Guardian-appearance-API.patch diff --git a/patches/unapplied/server/0796-Allow-changing-bed-s-occupied-property.patch b/patches/unapplied/server/0806-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/unapplied/server/0796-Allow-changing-bed-s-occupied-property.patch rename to patches/unapplied/server/0806-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/unapplied/server/0797-Add-entity-knockback-API.patch b/patches/unapplied/server/0807-Add-entity-knockback-API.patch similarity index 100% rename from patches/unapplied/server/0797-Add-entity-knockback-API.patch rename to patches/unapplied/server/0807-Add-entity-knockback-API.patch diff --git a/patches/unapplied/server/0798-Detect-headless-JREs.patch b/patches/unapplied/server/0808-Detect-headless-JREs.patch similarity index 100% rename from patches/unapplied/server/0798-Detect-headless-JREs.patch rename to patches/unapplied/server/0808-Detect-headless-JREs.patch diff --git a/patches/unapplied/server/0799-fix-entity-vehicle-collision-event-not-called.patch b/patches/unapplied/server/0809-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/unapplied/server/0799-fix-entity-vehicle-collision-event-not-called.patch rename to patches/unapplied/server/0809-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/unapplied/server/0800-Add-EntityToggleSitEvent.patch b/patches/unapplied/server/0810-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/unapplied/server/0800-Add-EntityToggleSitEvent.patch rename to patches/unapplied/server/0810-Add-EntityToggleSitEvent.patch diff --git a/patches/unapplied/server/0801-Add-fire-tick-delay-option.patch b/patches/unapplied/server/0811-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/unapplied/server/0801-Add-fire-tick-delay-option.patch rename to patches/unapplied/server/0811-Add-fire-tick-delay-option.patch diff --git a/patches/unapplied/server/0802-Add-Moving-Piston-API.patch b/patches/unapplied/server/0812-Add-Moving-Piston-API.patch similarity index 100% rename from patches/unapplied/server/0802-Add-Moving-Piston-API.patch rename to patches/unapplied/server/0812-Add-Moving-Piston-API.patch diff --git a/patches/unapplied/server/0803-Ignore-impossible-spawn-tick.patch b/patches/unapplied/server/0813-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/unapplied/server/0803-Ignore-impossible-spawn-tick.patch rename to patches/unapplied/server/0813-Ignore-impossible-spawn-tick.patch diff --git a/patches/unapplied/server/0804-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/unapplied/server/0814-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/unapplied/server/0804-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/unapplied/server/0814-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/unapplied/server/0805-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/unapplied/server/0815-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/unapplied/server/0805-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/unapplied/server/0815-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/unapplied/server/0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/unapplied/server/0816-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 100% rename from patches/unapplied/server/0806-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/unapplied/server/0816-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch diff --git a/patches/unapplied/server/0807-Add-PrePlayerAttackEntityEvent.patch b/patches/unapplied/server/0817-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/unapplied/server/0807-Add-PrePlayerAttackEntityEvent.patch rename to patches/unapplied/server/0817-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/unapplied/server/0808-ensure-reset-EnderDragon-boss-event-name.patch b/patches/unapplied/server/0818-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/unapplied/server/0808-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/unapplied/server/0818-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/unapplied/server/0809-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/unapplied/server/0819-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/unapplied/server/0809-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/unapplied/server/0819-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/unapplied/server/0810-Add-Player-Warden-Warning-API.patch b/patches/unapplied/server/0820-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/unapplied/server/0810-Add-Player-Warden-Warning-API.patch rename to patches/unapplied/server/0820-Add-Player-Warden-Warning-API.patch diff --git a/patches/unapplied/server/0811-More-vanilla-friendly-methods-to-update-trades.patch b/patches/unapplied/server/0821-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/unapplied/server/0811-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/unapplied/server/0821-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/unapplied/server/0812-Add-paper-dumplisteners-command.patch b/patches/unapplied/server/0822-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/unapplied/server/0812-Add-paper-dumplisteners-command.patch rename to patches/unapplied/server/0822-Add-paper-dumplisteners-command.patch diff --git a/patches/unapplied/server/0813-check-global-player-list-where-appropriate.patch b/patches/unapplied/server/0823-check-global-player-list-where-appropriate.patch similarity index 100% rename from patches/unapplied/server/0813-check-global-player-list-where-appropriate.patch rename to patches/unapplied/server/0823-check-global-player-list-where-appropriate.patch diff --git a/patches/unapplied/server/0814-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/unapplied/server/0824-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/unapplied/server/0814-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/unapplied/server/0824-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/unapplied/server/0815-ItemStack-damage-API.patch b/patches/unapplied/server/0825-ItemStack-damage-API.patch similarity index 100% rename from patches/unapplied/server/0815-ItemStack-damage-API.patch rename to patches/unapplied/server/0825-ItemStack-damage-API.patch diff --git a/patches/unapplied/server/0816-Friction-API.patch b/patches/unapplied/server/0826-Friction-API.patch similarity index 100% rename from patches/unapplied/server/0816-Friction-API.patch rename to patches/unapplied/server/0826-Friction-API.patch diff --git a/patches/unapplied/server/0817-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/unapplied/server/0827-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/unapplied/server/0817-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/unapplied/server/0827-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/unapplied/server/0818-Fix-premature-player-kicks-on-shutdown.patch b/patches/unapplied/server/0828-Fix-premature-player-kicks-on-shutdown.patch similarity index 100% rename from patches/unapplied/server/0818-Fix-premature-player-kicks-on-shutdown.patch rename to patches/unapplied/server/0828-Fix-premature-player-kicks-on-shutdown.patch diff --git a/patches/unapplied/server/0819-Sync-offhand-slot-in-menus.patch b/patches/unapplied/server/0829-Sync-offhand-slot-in-menus.patch similarity index 100% rename from patches/unapplied/server/0819-Sync-offhand-slot-in-menus.patch rename to patches/unapplied/server/0829-Sync-offhand-slot-in-menus.patch diff --git a/patches/unapplied/server/0820-Player-Entity-Tracking-Events.patch b/patches/unapplied/server/0830-Player-Entity-Tracking-Events.patch similarity index 100% rename from patches/unapplied/server/0820-Player-Entity-Tracking-Events.patch rename to patches/unapplied/server/0830-Player-Entity-Tracking-Events.patch diff --git a/patches/unapplied/server/0821-Limit-pet-look-distance.patch b/patches/unapplied/server/0831-Limit-pet-look-distance.patch similarity index 100% rename from patches/unapplied/server/0821-Limit-pet-look-distance.patch rename to patches/unapplied/server/0831-Limit-pet-look-distance.patch diff --git a/patches/unapplied/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/unapplied/server/0832-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/unapplied/server/0822-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/unapplied/server/0832-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/unapplied/server/0823-fix-Instruments.patch b/patches/unapplied/server/0833-fix-Instruments.patch similarity index 100% rename from patches/unapplied/server/0823-fix-Instruments.patch rename to patches/unapplied/server/0833-fix-Instruments.patch diff --git a/patches/unapplied/server/0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/unapplied/server/0834-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 100% rename from patches/unapplied/server/0824-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/unapplied/server/0834-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch diff --git a/patches/unapplied/server/0825-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/unapplied/server/0835-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/unapplied/server/0825-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/unapplied/server/0835-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/unapplied/server/0826-Add-BlockLockCheckEvent.patch b/patches/unapplied/server/0836-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/unapplied/server/0826-Add-BlockLockCheckEvent.patch rename to patches/unapplied/server/0836-Add-BlockLockCheckEvent.patch diff --git a/patches/unapplied/server/0827-Add-Sneaking-API-for-Entities.patch b/patches/unapplied/server/0837-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/unapplied/server/0827-Add-Sneaking-API-for-Entities.patch rename to patches/unapplied/server/0837-Add-Sneaking-API-for-Entities.patch diff --git a/patches/unapplied/server/0828-Improve-logging-and-errors.patch b/patches/unapplied/server/0838-Improve-logging-and-errors.patch similarity index 100% rename from patches/unapplied/server/0828-Improve-logging-and-errors.patch rename to patches/unapplied/server/0838-Improve-logging-and-errors.patch diff --git a/patches/unapplied/server/0829-Improve-PortalEvents.patch b/patches/unapplied/server/0839-Improve-PortalEvents.patch similarity index 100% rename from patches/unapplied/server/0829-Improve-PortalEvents.patch rename to patches/unapplied/server/0839-Improve-PortalEvents.patch diff --git a/patches/unapplied/server/0830-Add-config-option-for-spider-worldborder-climbing.patch b/patches/unapplied/server/0840-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/unapplied/server/0830-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/unapplied/server/0840-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/unapplied/server/0831-Add-missing-SpigotConfig-logCommands-check.patch b/patches/unapplied/server/0841-Add-missing-SpigotConfig-logCommands-check.patch similarity index 100% rename from patches/unapplied/server/0831-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/unapplied/server/0841-Add-missing-SpigotConfig-logCommands-check.patch diff --git a/patches/unapplied/server/0832-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/unapplied/server/0842-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/unapplied/server/0832-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/unapplied/server/0842-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/unapplied/server/0833-Flying-Fall-Damage.patch b/patches/unapplied/server/0843-Flying-Fall-Damage.patch similarity index 100% rename from patches/unapplied/server/0833-Flying-Fall-Damage.patch rename to patches/unapplied/server/0843-Flying-Fall-Damage.patch diff --git a/patches/unapplied/server/0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/unapplied/server/0844-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/unapplied/server/0834-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/unapplied/server/0844-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/unapplied/server/0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/unapplied/server/0845-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 100% rename from patches/unapplied/server/0835-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/unapplied/server/0845-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch diff --git a/patches/unapplied/server/0836-config-for-disabling-entity-tag-tags.patch b/patches/unapplied/server/0846-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/unapplied/server/0836-config-for-disabling-entity-tag-tags.patch rename to patches/unapplied/server/0846-config-for-disabling-entity-tag-tags.patch diff --git a/patches/unapplied/server/0837-Use-single-player-info-update-packet-on-join.patch b/patches/unapplied/server/0847-Use-single-player-info-update-packet-on-join.patch similarity index 100% rename from patches/unapplied/server/0837-Use-single-player-info-update-packet-on-join.patch rename to patches/unapplied/server/0847-Use-single-player-info-update-packet-on-join.patch diff --git a/patches/unapplied/server/0838-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/unapplied/server/0848-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 100% rename from patches/unapplied/server/0838-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/unapplied/server/0848-Correctly-shrink-items-during-EntityResurrectEvent.patch diff --git a/patches/unapplied/server/0839-Win-Screen-API.patch b/patches/unapplied/server/0849-Win-Screen-API.patch similarity index 100% rename from patches/unapplied/server/0839-Win-Screen-API.patch rename to patches/unapplied/server/0849-Win-Screen-API.patch diff --git a/patches/unapplied/server/0840-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/unapplied/server/0850-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/unapplied/server/0840-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/unapplied/server/0850-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/unapplied/server/0841-Fix-force-opening-enchantment-tables.patch b/patches/unapplied/server/0851-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/unapplied/server/0841-Fix-force-opening-enchantment-tables.patch rename to patches/unapplied/server/0851-Fix-force-opening-enchantment-tables.patch diff --git a/patches/unapplied/server/0842-Add-Entity-Body-Yaw-API.patch b/patches/unapplied/server/0852-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/unapplied/server/0842-Add-Entity-Body-Yaw-API.patch rename to patches/unapplied/server/0852-Add-Entity-Body-Yaw-API.patch diff --git a/patches/unapplied/server/0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/unapplied/server/0853-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/unapplied/server/0843-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/unapplied/server/0853-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/unapplied/server/0844-Add-EntityFertilizeEggEvent.patch b/patches/unapplied/server/0854-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/unapplied/server/0844-Add-EntityFertilizeEggEvent.patch rename to patches/unapplied/server/0854-Add-EntityFertilizeEggEvent.patch diff --git a/patches/unapplied/server/0845-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/unapplied/server/0855-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/unapplied/server/0845-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/unapplied/server/0855-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/unapplied/server/0846-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/unapplied/server/0856-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/unapplied/server/0846-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/unapplied/server/0856-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/unapplied/server/0847-Correctly-handle-ArmorStand-invisibility.patch b/patches/unapplied/server/0857-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/unapplied/server/0847-Correctly-handle-ArmorStand-invisibility.patch rename to patches/unapplied/server/0857-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/unapplied/server/0848-Fix-advancement-triggers-for-entity-damage.patch b/patches/unapplied/server/0858-Fix-advancement-triggers-for-entity-damage.patch similarity index 100% rename from patches/unapplied/server/0848-Fix-advancement-triggers-for-entity-damage.patch rename to patches/unapplied/server/0858-Fix-advancement-triggers-for-entity-damage.patch diff --git a/patches/unapplied/server/0849-Fix-text-display-error-on-spawn.patch b/patches/unapplied/server/0859-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/unapplied/server/0849-Fix-text-display-error-on-spawn.patch rename to patches/unapplied/server/0859-Fix-text-display-error-on-spawn.patch diff --git a/patches/unapplied/server/0850-Fix-inventories-returning-null-Locations.patch b/patches/unapplied/server/0860-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/unapplied/server/0850-Fix-inventories-returning-null-Locations.patch rename to patches/unapplied/server/0860-Fix-inventories-returning-null-Locations.patch diff --git a/patches/unapplied/server/0851-Add-Shearable-API.patch b/patches/unapplied/server/0861-Add-Shearable-API.patch similarity index 100% rename from patches/unapplied/server/0851-Add-Shearable-API.patch rename to patches/unapplied/server/0861-Add-Shearable-API.patch diff --git a/patches/unapplied/server/0852-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/unapplied/server/0862-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/unapplied/server/0852-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/unapplied/server/0862-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/unapplied/server/0853-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/unapplied/server/0863-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/unapplied/server/0853-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/unapplied/server/0863-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/unapplied/server/0854-Treat-sequence-violations-like-they-should-be.patch b/patches/unapplied/server/0864-Treat-sequence-violations-like-they-should-be.patch similarity index 100% rename from patches/unapplied/server/0854-Treat-sequence-violations-like-they-should-be.patch rename to patches/unapplied/server/0864-Treat-sequence-violations-like-they-should-be.patch diff --git a/patches/unapplied/server/0855-remove-duplicate-animate-packet-for-records.patch b/patches/unapplied/server/0865-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/unapplied/server/0855-remove-duplicate-animate-packet-for-records.patch rename to patches/unapplied/server/0865-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/unapplied/server/0856-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/unapplied/server/0866-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/unapplied/server/0856-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/unapplied/server/0866-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/unapplied/server/0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/unapplied/server/0867-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 100% rename from patches/unapplied/server/0857-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/unapplied/server/0867-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch diff --git a/patches/unapplied/server/0858-Use-array-for-gamerule-storage.patch b/patches/unapplied/server/0868-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/unapplied/server/0858-Use-array-for-gamerule-storage.patch rename to patches/unapplied/server/0868-Use-array-for-gamerule-storage.patch diff --git a/patches/unapplied/server/0859-Fix-a-couple-of-upstream-bed-issues.patch b/patches/unapplied/server/0869-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/unapplied/server/0859-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/unapplied/server/0869-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/unapplied/server/0860-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/unapplied/server/0870-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/unapplied/server/0860-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/unapplied/server/0870-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/unapplied/server/0861-Add-Mob-Experience-reward-API.patch b/patches/unapplied/server/0871-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/unapplied/server/0861-Add-Mob-Experience-reward-API.patch rename to patches/unapplied/server/0871-Add-Mob-Experience-reward-API.patch diff --git a/patches/unapplied/server/0862-Break-redstone-on-top-of-trap-doors-early.patch b/patches/unapplied/server/0872-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/unapplied/server/0862-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/unapplied/server/0872-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/unapplied/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/unapplied/server/0873-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/unapplied/server/0863-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/unapplied/server/0873-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/unapplied/server/0864-More-accurate-isInOpenWater-impl.patch b/patches/unapplied/server/0874-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/unapplied/server/0864-More-accurate-isInOpenWater-impl.patch rename to patches/unapplied/server/0874-More-accurate-isInOpenWater-impl.patch diff --git a/patches/unapplied/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/unapplied/server/0875-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/unapplied/server/0865-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/unapplied/server/0875-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/unapplied/server/0866-Expand-PlayerItemMendEvent.patch b/patches/unapplied/server/0876-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/unapplied/server/0866-Expand-PlayerItemMendEvent.patch rename to patches/unapplied/server/0876-Expand-PlayerItemMendEvent.patch diff --git a/patches/unapplied/server/0867-Refresh-ProjectileSource-for-projectiles.patch b/patches/unapplied/server/0877-Refresh-ProjectileSource-for-projectiles.patch similarity index 100% rename from patches/unapplied/server/0867-Refresh-ProjectileSource-for-projectiles.patch rename to patches/unapplied/server/0877-Refresh-ProjectileSource-for-projectiles.patch diff --git a/patches/unapplied/server/0868-Add-transient-modifier-API.patch b/patches/unapplied/server/0878-Add-transient-modifier-API.patch similarity index 100% rename from patches/unapplied/server/0868-Add-transient-modifier-API.patch rename to patches/unapplied/server/0878-Add-transient-modifier-API.patch diff --git a/patches/unapplied/server/0869-Fix-block-place-logic.patch b/patches/unapplied/server/0879-Fix-block-place-logic.patch similarity index 100% rename from patches/unapplied/server/0869-Fix-block-place-logic.patch rename to patches/unapplied/server/0879-Fix-block-place-logic.patch diff --git a/patches/unapplied/server/0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/unapplied/server/0880-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/unapplied/server/0870-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/unapplied/server/0880-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/unapplied/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/unapplied/server/0881-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/unapplied/server/0871-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/unapplied/server/0881-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/unapplied/server/0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/unapplied/server/0882-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 100% rename from patches/unapplied/server/0872-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/unapplied/server/0882-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch diff --git a/patches/unapplied/server/0873-fix-MapLike-spam-for-missing-key-selector.patch b/patches/unapplied/server/0883-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/unapplied/server/0873-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/unapplied/server/0883-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/unapplied/server/0874-Fix-sniffer-removeExploredLocation.patch b/patches/unapplied/server/0884-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/unapplied/server/0874-Fix-sniffer-removeExploredLocation.patch rename to patches/unapplied/server/0884-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/unapplied/server/0875-Add-method-to-remove-all-active-potion-effects.patch b/patches/unapplied/server/0885-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/unapplied/server/0875-Add-method-to-remove-all-active-potion-effects.patch rename to patches/unapplied/server/0885-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/unapplied/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/unapplied/server/0886-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/unapplied/server/0876-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/unapplied/server/0886-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/unapplied/server/0877-Add-event-for-player-editing-sign.patch b/patches/unapplied/server/0887-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/unapplied/server/0877-Add-event-for-player-editing-sign.patch rename to patches/unapplied/server/0887-Add-event-for-player-editing-sign.patch diff --git a/patches/unapplied/server/0878-Only-tick-item-frames-if-players-can-see-it.patch b/patches/unapplied/server/0888-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/unapplied/server/0878-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/unapplied/server/0888-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/unapplied/server/0879-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/unapplied/server/0889-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/unapplied/server/0879-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/unapplied/server/0889-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/unapplied/server/0880-Add-option-to-disable-block-updates.patch b/patches/unapplied/server/0890-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/unapplied/server/0880-Add-option-to-disable-block-updates.patch rename to patches/unapplied/server/0890-Add-option-to-disable-block-updates.patch diff --git a/patches/unapplied/server/0881-Call-missing-BlockDispenseEvent.patch b/patches/unapplied/server/0891-Call-missing-BlockDispenseEvent.patch similarity index 100% rename from patches/unapplied/server/0881-Call-missing-BlockDispenseEvent.patch rename to patches/unapplied/server/0891-Call-missing-BlockDispenseEvent.patch diff --git a/patches/unapplied/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/unapplied/server/0892-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 100% rename from patches/unapplied/server/0882-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/unapplied/server/0892-Don-t-load-chunks-for-supporting-block-checks.patch diff --git a/patches/unapplied/server/0883-Optimize-player-lookups-for-beacons.patch b/patches/unapplied/server/0893-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/unapplied/server/0883-Optimize-player-lookups-for-beacons.patch rename to patches/unapplied/server/0893-Optimize-player-lookups-for-beacons.patch diff --git a/patches/unapplied/server/0884-Add-Sign-getInteractableSideFor.patch b/patches/unapplied/server/0894-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/unapplied/server/0884-Add-Sign-getInteractableSideFor.patch rename to patches/unapplied/server/0894-Add-Sign-getInteractableSideFor.patch diff --git a/patches/unapplied/server/0885-Array-backed-synched-entity-data.patch b/patches/unapplied/server/0895-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/unapplied/server/0885-Array-backed-synched-entity-data.patch rename to patches/unapplied/server/0895-Array-backed-synched-entity-data.patch diff --git a/patches/unapplied/server/0886-fix-item-meta-for-tadpole-buckets.patch b/patches/unapplied/server/0896-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/unapplied/server/0886-fix-item-meta-for-tadpole-buckets.patch rename to patches/unapplied/server/0896-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/unapplied/server/0887-Fix-BanList-API.patch b/patches/unapplied/server/0897-Fix-BanList-API.patch similarity index 100% rename from patches/unapplied/server/0887-Fix-BanList-API.patch rename to patches/unapplied/server/0897-Fix-BanList-API.patch diff --git a/patches/unapplied/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/unapplied/server/0898-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/unapplied/server/0888-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/unapplied/server/0898-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/unapplied/server/0889-Fix-possible-NPE-on-painting-creation.patch b/patches/unapplied/server/0899-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/unapplied/server/0889-Fix-possible-NPE-on-painting-creation.patch rename to patches/unapplied/server/0899-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/unapplied/server/0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/unapplied/server/0900-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/unapplied/server/0890-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/unapplied/server/0900-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/unapplied/server/0891-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/unapplied/server/0901-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 100% rename from patches/unapplied/server/0891-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/unapplied/server/0901-ExperienceOrb-should-call-EntitySpawnEvent.patch diff --git a/patches/unapplied/server/0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/unapplied/server/0902-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/unapplied/server/0892-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/unapplied/server/0902-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/unapplied/server/0893-Add-whitelist-events.patch b/patches/unapplied/server/0903-Add-whitelist-events.patch similarity index 100% rename from patches/unapplied/server/0893-Add-whitelist-events.patch rename to patches/unapplied/server/0903-Add-whitelist-events.patch diff --git a/patches/unapplied/server/0894-Implement-PlayerFailMoveEvent.patch b/patches/unapplied/server/0904-Implement-PlayerFailMoveEvent.patch similarity index 100% rename from patches/unapplied/server/0894-Implement-PlayerFailMoveEvent.patch rename to patches/unapplied/server/0904-Implement-PlayerFailMoveEvent.patch diff --git a/patches/unapplied/server/0895-Folia-scheduler-and-owned-region-API.patch b/patches/unapplied/server/0905-Folia-scheduler-and-owned-region-API.patch similarity index 100% rename from patches/unapplied/server/0895-Folia-scheduler-and-owned-region-API.patch rename to patches/unapplied/server/0905-Folia-scheduler-and-owned-region-API.patch diff --git a/patches/unapplied/server/0896-Only-erase-allay-memory-on-non-item-targets.patch b/patches/unapplied/server/0906-Only-erase-allay-memory-on-non-item-targets.patch similarity index 100% rename from patches/unapplied/server/0896-Only-erase-allay-memory-on-non-item-targets.patch rename to patches/unapplied/server/0906-Only-erase-allay-memory-on-non-item-targets.patch diff --git a/patches/unapplied/server/0897-API-for-updating-recipes-on-clients.patch b/patches/unapplied/server/0907-API-for-updating-recipes-on-clients.patch similarity index 100% rename from patches/unapplied/server/0897-API-for-updating-recipes-on-clients.patch rename to patches/unapplied/server/0907-API-for-updating-recipes-on-clients.patch diff --git a/patches/unapplied/server/0898-Fix-rotation-when-spawning-display-entities.patch b/patches/unapplied/server/0908-Fix-rotation-when-spawning-display-entities.patch similarity index 100% rename from patches/unapplied/server/0898-Fix-rotation-when-spawning-display-entities.patch rename to patches/unapplied/server/0908-Fix-rotation-when-spawning-display-entities.patch diff --git a/patches/unapplied/server/0899-Only-capture-actual-tree-growth.patch b/patches/unapplied/server/0909-Only-capture-actual-tree-growth.patch similarity index 100% rename from patches/unapplied/server/0899-Only-capture-actual-tree-growth.patch rename to patches/unapplied/server/0909-Only-capture-actual-tree-growth.patch diff --git a/patches/unapplied/server/0900-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/unapplied/server/0910-Use-correct-source-for-mushroom-block-spread-event.patch similarity index 100% rename from patches/unapplied/server/0900-Use-correct-source-for-mushroom-block-spread-event.patch rename to patches/unapplied/server/0910-Use-correct-source-for-mushroom-block-spread-event.patch diff --git a/patches/unapplied/server/0901-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/unapplied/server/0911-Respect-randomizeData-on-more-entities-when-spawning.patch similarity index 100% rename from patches/unapplied/server/0901-Respect-randomizeData-on-more-entities-when-spawning.patch rename to patches/unapplied/server/0911-Respect-randomizeData-on-more-entities-when-spawning.patch diff --git a/patches/unapplied/server/0902-Use-correct-seed-on-api-world-load.patch b/patches/unapplied/server/0912-Use-correct-seed-on-api-world-load.patch similarity index 100% rename from patches/unapplied/server/0902-Use-correct-seed-on-api-world-load.patch rename to patches/unapplied/server/0912-Use-correct-seed-on-api-world-load.patch diff --git a/patches/unapplied/server/0903-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/unapplied/server/0913-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch similarity index 100% rename from patches/unapplied/server/0903-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch rename to patches/unapplied/server/0913-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch diff --git a/patches/unapplied/server/0904-Cache-map-ids-on-item-frames.patch b/patches/unapplied/server/0914-Cache-map-ids-on-item-frames.patch similarity index 100% rename from patches/unapplied/server/0904-Cache-map-ids-on-item-frames.patch rename to patches/unapplied/server/0914-Cache-map-ids-on-item-frames.patch diff --git a/patches/unapplied/server/0905-Fix-custom-statistic-criteria-creation.patch b/patches/unapplied/server/0915-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/unapplied/server/0905-Fix-custom-statistic-criteria-creation.patch rename to patches/unapplied/server/0915-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/unapplied/server/0906-Bandaid-fix-for-Effect.patch b/patches/unapplied/server/0916-Bandaid-fix-for-Effect.patch similarity index 100% rename from patches/unapplied/server/0906-Bandaid-fix-for-Effect.patch rename to patches/unapplied/server/0916-Bandaid-fix-for-Effect.patch diff --git a/patches/unapplied/server/0907-SculkCatalyst-bloom-API.patch b/patches/unapplied/server/0917-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/unapplied/server/0907-SculkCatalyst-bloom-API.patch rename to patches/unapplied/server/0917-SculkCatalyst-bloom-API.patch diff --git a/patches/unapplied/server/0908-API-for-an-entity-s-scoreboard-name.patch b/patches/unapplied/server/0918-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/unapplied/server/0908-API-for-an-entity-s-scoreboard-name.patch rename to patches/unapplied/server/0918-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/unapplied/server/0909-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/unapplied/server/0919-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/unapplied/server/0909-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/unapplied/server/0919-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/unapplied/server/0910-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/unapplied/server/0920-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 100% rename from patches/unapplied/server/0910-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/unapplied/server/0920-Don-t-tab-complete-namespaced-commands-if-send-names.patch diff --git a/patches/unapplied/server/0911-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/unapplied/server/0921-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 100% rename from patches/unapplied/server/0911-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/unapplied/server/0921-Properly-handle-BlockBreakEvent-isDropItems.patch diff --git a/patches/unapplied/server/0912-Fire-entity-death-event-for-ender-dragon.patch b/patches/unapplied/server/0922-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/unapplied/server/0912-Fire-entity-death-event-for-ender-dragon.patch rename to patches/unapplied/server/0922-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/unapplied/server/0913-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/unapplied/server/0923-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 100% rename from patches/unapplied/server/0913-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/unapplied/server/0923-Configurable-entity-tracking-range-by-Y-coordinate.patch diff --git a/patches/unapplied/server/0914-Add-Listing-API-for-Player.patch b/patches/unapplied/server/0924-Add-Listing-API-for-Player.patch similarity index 100% rename from patches/unapplied/server/0914-Add-Listing-API-for-Player.patch rename to patches/unapplied/server/0924-Add-Listing-API-for-Player.patch diff --git a/patches/unapplied/server/0915-Configurable-Region-Compression-Format.patch b/patches/unapplied/server/0925-Configurable-Region-Compression-Format.patch similarity index 100% rename from patches/unapplied/server/0915-Configurable-Region-Compression-Format.patch rename to patches/unapplied/server/0925-Configurable-Region-Compression-Format.patch diff --git a/patches/unapplied/server/0916-Add-BlockFace-to-BlockDamageEvent.patch b/patches/unapplied/server/0926-Add-BlockFace-to-BlockDamageEvent.patch similarity index 100% rename from patches/unapplied/server/0916-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/unapplied/server/0926-Add-BlockFace-to-BlockDamageEvent.patch diff --git a/patches/unapplied/server/0917-Fix-NPE-on-Boat-getStatus.patch b/patches/unapplied/server/0927-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/unapplied/server/0917-Fix-NPE-on-Boat-getStatus.patch rename to patches/unapplied/server/0927-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/unapplied/server/0918-Expand-Pose-API.patch b/patches/unapplied/server/0928-Expand-Pose-API.patch similarity index 100% rename from patches/unapplied/server/0918-Expand-Pose-API.patch rename to patches/unapplied/server/0928-Expand-Pose-API.patch diff --git a/patches/unapplied/server/0919-More-DragonBattle-API.patch b/patches/unapplied/server/0929-More-DragonBattle-API.patch similarity index 100% rename from patches/unapplied/server/0919-More-DragonBattle-API.patch rename to patches/unapplied/server/0929-More-DragonBattle-API.patch diff --git a/patches/unapplied/server/0920-Deep-clone-unhandled-nbt-tags.patch b/patches/unapplied/server/0930-Deep-clone-unhandled-nbt-tags.patch similarity index 100% rename from patches/unapplied/server/0920-Deep-clone-unhandled-nbt-tags.patch rename to patches/unapplied/server/0930-Deep-clone-unhandled-nbt-tags.patch diff --git a/patches/unapplied/server/0921-Add-PlayerPickItemEvent.patch b/patches/unapplied/server/0931-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/unapplied/server/0921-Add-PlayerPickItemEvent.patch rename to patches/unapplied/server/0931-Add-PlayerPickItemEvent.patch diff --git a/patches/unapplied/server/0922-Allow-trident-custom-damage.patch b/patches/unapplied/server/0932-Allow-trident-custom-damage.patch similarity index 100% rename from patches/unapplied/server/0922-Allow-trident-custom-damage.patch rename to patches/unapplied/server/0932-Allow-trident-custom-damage.patch diff --git a/patches/unapplied/server/0923-Expose-hand-in-BlockCanBuildEvent.patch b/patches/unapplied/server/0933-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/unapplied/server/0923-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/unapplied/server/0933-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/unapplied/server/0924-Optimize-nearest-structure-border-iteration.patch b/patches/unapplied/server/0934-Optimize-nearest-structure-border-iteration.patch similarity index 100% rename from patches/unapplied/server/0924-Optimize-nearest-structure-border-iteration.patch rename to patches/unapplied/server/0934-Optimize-nearest-structure-border-iteration.patch diff --git a/patches/unapplied/server/0925-Implement-OfflinePlayer-isConnected.patch b/patches/unapplied/server/0935-Implement-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/unapplied/server/0925-Implement-OfflinePlayer-isConnected.patch rename to patches/unapplied/server/0935-Implement-OfflinePlayer-isConnected.patch diff --git a/patches/unapplied/server/0926-Fix-inventory-desync.patch b/patches/unapplied/server/0936-Fix-inventory-desync.patch similarity index 100% rename from patches/unapplied/server/0926-Fix-inventory-desync.patch rename to patches/unapplied/server/0936-Fix-inventory-desync.patch diff --git a/patches/unapplied/server/0927-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/unapplied/server/0937-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 100% rename from patches/unapplied/server/0927-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/unapplied/server/0937-Add-titleOverride-to-InventoryOpenEvent.patch diff --git a/patches/unapplied/server/0928-Configure-sniffer-egg-hatch-time.patch b/patches/unapplied/server/0938-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/unapplied/server/0928-Configure-sniffer-egg-hatch-time.patch rename to patches/unapplied/server/0938-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/unapplied/server/0929-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/unapplied/server/0939-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 100% rename from patches/unapplied/server/0929-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/unapplied/server/0939-Do-crystal-portal-proximity-check-before-entity-look.patch diff --git a/patches/unapplied/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/unapplied/server/0940-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/unapplied/server/0930-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/unapplied/server/0940-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/unapplied/server/0931-Add-slot-sanity-checks-in-container-clicks.patch b/patches/unapplied/server/0941-Add-slot-sanity-checks-in-container-clicks.patch similarity index 100% rename from patches/unapplied/server/0931-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/unapplied/server/0941-Add-slot-sanity-checks-in-container-clicks.patch diff --git a/patches/unapplied/server/0932-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/unapplied/server/0942-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/unapplied/server/0932-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/unapplied/server/0942-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/unapplied/server/0933-Allow-proper-checking-of-empty-item-stacks.patch b/patches/unapplied/server/0943-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/unapplied/server/0933-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/unapplied/server/0943-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/unapplied/server/0934-Fix-silent-equipment-change-for-mobs.patch b/patches/unapplied/server/0944-Fix-silent-equipment-change-for-mobs.patch similarity index 100% rename from patches/unapplied/server/0934-Fix-silent-equipment-change-for-mobs.patch rename to patches/unapplied/server/0944-Fix-silent-equipment-change-for-mobs.patch diff --git a/patches/unapplied/server/0935-Fix-spigot-s-Forced-Stats.patch b/patches/unapplied/server/0945-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/unapplied/server/0935-Fix-spigot-s-Forced-Stats.patch rename to patches/unapplied/server/0945-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/unapplied/server/0936-Add-missing-InventoryHolders-to-inventories.patch b/patches/unapplied/server/0946-Add-missing-InventoryHolders-to-inventories.patch similarity index 100% rename from patches/unapplied/server/0936-Add-missing-InventoryHolders-to-inventories.patch rename to patches/unapplied/server/0946-Add-missing-InventoryHolders-to-inventories.patch diff --git a/patches/unapplied/server/0937-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/unapplied/server/0947-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/unapplied/server/0937-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/unapplied/server/0947-Do-not-read-tile-entities-in-chunks-that-are-positio.patch diff --git a/patches/unapplied/server/0938-Add-missing-logs-for-log-ips-config-option.patch b/patches/unapplied/server/0948-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/unapplied/server/0938-Add-missing-logs-for-log-ips-config-option.patch rename to patches/unapplied/server/0948-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/unapplied/server/0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/unapplied/server/0949-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/unapplied/server/0939-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/unapplied/server/0949-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/unapplied/server/0940-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/unapplied/server/0950-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/unapplied/server/0940-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/unapplied/server/0950-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/unapplied/server/0941-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/unapplied/server/0951-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/unapplied/server/0941-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/unapplied/server/0951-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/unapplied/server/0942-Fix-missing-map-initialize-event-call.patch b/patches/unapplied/server/0952-Fix-missing-map-initialize-event-call.patch similarity index 100% rename from patches/unapplied/server/0942-Fix-missing-map-initialize-event-call.patch rename to patches/unapplied/server/0952-Fix-missing-map-initialize-event-call.patch diff --git a/patches/unapplied/server/0943-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/unapplied/server/0953-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/unapplied/server/0943-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/unapplied/server/0953-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/unapplied/server/0944-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/unapplied/server/0954-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/unapplied/server/0944-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/unapplied/server/0954-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/unapplied/server/0945-Fix-UnsafeValues-loadAdvancement.patch b/patches/unapplied/server/0955-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/unapplied/server/0945-Fix-UnsafeValues-loadAdvancement.patch rename to patches/unapplied/server/0955-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/unapplied/server/0946-Add-player-idle-duration-API.patch b/patches/unapplied/server/0956-Add-player-idle-duration-API.patch similarity index 100% rename from patches/unapplied/server/0946-Add-player-idle-duration-API.patch rename to patches/unapplied/server/0956-Add-player-idle-duration-API.patch diff --git a/patches/unapplied/server/0947-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/unapplied/server/0957-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 100% rename from patches/unapplied/server/0947-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/unapplied/server/0957-Don-t-check-if-we-can-see-non-visible-entities.patch diff --git a/patches/unapplied/server/0948-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/unapplied/server/0958-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/unapplied/server/0948-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/unapplied/server/0958-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/unapplied/server/0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/unapplied/server/0959-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 100% rename from patches/unapplied/server/0949-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/unapplied/server/0959-Allow-null-itemstack-for-Player-sendEquipmentChange.patch diff --git a/patches/unapplied/server/0950-Optimize-VarInts.patch b/patches/unapplied/server/0960-Optimize-VarInts.patch similarity index 100% rename from patches/unapplied/server/0950-Optimize-VarInts.patch rename to patches/unapplied/server/0960-Optimize-VarInts.patch diff --git a/patches/unapplied/server/0951-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/unapplied/server/0961-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/unapplied/server/0951-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/unapplied/server/0961-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/unapplied/server/0952-Add-predicate-for-blocks-when-raytracing.patch b/patches/unapplied/server/0962-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/unapplied/server/0952-Add-predicate-for-blocks-when-raytracing.patch rename to patches/unapplied/server/0962-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/unapplied/server/0953-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/unapplied/server/0963-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 100% rename from patches/unapplied/server/0953-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/unapplied/server/0963-Broadcast-take-item-packets-with-collector-as-source.patch diff --git a/patches/unapplied/server/0954-Expand-LingeringPotion-API.patch b/patches/unapplied/server/0964-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/unapplied/server/0954-Expand-LingeringPotion-API.patch rename to patches/unapplied/server/0964-Expand-LingeringPotion-API.patch diff --git a/patches/unapplied/server/0955-Add-MaterialTagsTest.patch b/patches/unapplied/server/0965-Add-MaterialTagsTest.patch similarity index 100% rename from patches/unapplied/server/0955-Add-MaterialTagsTest.patch rename to patches/unapplied/server/0965-Add-MaterialTagsTest.patch diff --git a/patches/unapplied/server/0956-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/unapplied/server/0966-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 100% rename from patches/unapplied/server/0956-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/unapplied/server/0966-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch diff --git a/patches/unapplied/server/0957-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/unapplied/server/0967-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/unapplied/server/0957-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/unapplied/server/0967-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/unapplied/server/0958-Fix-several-issues-with-EntityBreedEvent.patch b/patches/unapplied/server/0968-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/unapplied/server/0958-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/unapplied/server/0968-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/unapplied/server/0959-Add-UUID-attribute-modifier-API.patch b/patches/unapplied/server/0969-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/unapplied/server/0959-Add-UUID-attribute-modifier-API.patch rename to patches/unapplied/server/0969-Add-UUID-attribute-modifier-API.patch diff --git a/patches/unapplied/server/0960-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/unapplied/server/0970-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/unapplied/server/0960-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/unapplied/server/0970-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/unapplied/server/0961-Lazily-create-LootContext-for-criterions.patch b/patches/unapplied/server/0971-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/unapplied/server/0961-Lazily-create-LootContext-for-criterions.patch rename to patches/unapplied/server/0971-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/unapplied/server/0962-Don-t-fire-sync-events-during-worldgen.patch b/patches/unapplied/server/0972-Don-t-fire-sync-events-during-worldgen.patch similarity index 100% rename from patches/unapplied/server/0962-Don-t-fire-sync-events-during-worldgen.patch rename to patches/unapplied/server/0972-Don-t-fire-sync-events-during-worldgen.patch diff --git a/patches/unapplied/server/0963-Add-Structure-check-API.patch b/patches/unapplied/server/0973-Add-Structure-check-API.patch similarity index 100% rename from patches/unapplied/server/0963-Add-Structure-check-API.patch rename to patches/unapplied/server/0973-Add-Structure-check-API.patch diff --git a/patches/unapplied/server/0964-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/unapplied/server/0974-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/unapplied/server/0964-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/unapplied/server/0974-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/unapplied/server/0965-Restore-vanilla-entity-drops-behavior.patch b/patches/unapplied/server/0975-Restore-vanilla-entity-drops-behavior.patch similarity index 100% rename from patches/unapplied/server/0965-Restore-vanilla-entity-drops-behavior.patch rename to patches/unapplied/server/0975-Restore-vanilla-entity-drops-behavior.patch diff --git a/patches/unapplied/server/0966-Dont-resend-blocks-on-interactions.patch b/patches/unapplied/server/0976-Dont-resend-blocks-on-interactions.patch similarity index 100% rename from patches/unapplied/server/0966-Dont-resend-blocks-on-interactions.patch rename to patches/unapplied/server/0976-Dont-resend-blocks-on-interactions.patch diff --git a/patches/unapplied/server/0967-add-more-scoreboard-API.patch b/patches/unapplied/server/0977-add-more-scoreboard-API.patch similarity index 100% rename from patches/unapplied/server/0967-add-more-scoreboard-API.patch rename to patches/unapplied/server/0977-add-more-scoreboard-API.patch diff --git a/patches/unapplied/server/0968-Improve-Registry.patch b/patches/unapplied/server/0978-Improve-Registry.patch similarity index 100% rename from patches/unapplied/server/0968-Improve-Registry.patch rename to patches/unapplied/server/0978-Improve-Registry.patch diff --git a/patches/unapplied/server/0969-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/unapplied/server/0979-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 100% rename from patches/unapplied/server/0969-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/unapplied/server/0979-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch diff --git a/patches/unapplied/server/0970-Add-experience-points-API.patch b/patches/unapplied/server/0980-Add-experience-points-API.patch similarity index 100% rename from patches/unapplied/server/0970-Add-experience-points-API.patch rename to patches/unapplied/server/0980-Add-experience-points-API.patch diff --git a/patches/unapplied/server/0971-Add-drops-to-shear-events.patch b/patches/unapplied/server/0981-Add-drops-to-shear-events.patch similarity index 100% rename from patches/unapplied/server/0971-Add-drops-to-shear-events.patch rename to patches/unapplied/server/0981-Add-drops-to-shear-events.patch diff --git a/patches/unapplied/server/0972-Add-PlayerShieldDisableEvent.patch b/patches/unapplied/server/0982-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/unapplied/server/0972-Add-PlayerShieldDisableEvent.patch rename to patches/unapplied/server/0982-Add-PlayerShieldDisableEvent.patch diff --git a/patches/unapplied/server/0973-Validate-ResourceLocation-in-NBT-reading.patch b/patches/unapplied/server/0983-Validate-ResourceLocation-in-NBT-reading.patch similarity index 100% rename from patches/unapplied/server/0973-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/unapplied/server/0983-Validate-ResourceLocation-in-NBT-reading.patch diff --git a/patches/unapplied/server/0974-Properly-handle-experience-dropping-on-block-break.patch b/patches/unapplied/server/0984-Properly-handle-experience-dropping-on-block-break.patch similarity index 100% rename from patches/unapplied/server/0974-Properly-handle-experience-dropping-on-block-break.patch rename to patches/unapplied/server/0984-Properly-handle-experience-dropping-on-block-break.patch diff --git a/patches/unapplied/server/0975-Fixup-NamespacedKey-handling.patch b/patches/unapplied/server/0985-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/unapplied/server/0975-Fixup-NamespacedKey-handling.patch rename to patches/unapplied/server/0985-Fixup-NamespacedKey-handling.patch diff --git a/patches/unapplied/server/0976-Expose-LootTable-of-DecoratedPot.patch b/patches/unapplied/server/0986-Expose-LootTable-of-DecoratedPot.patch similarity index 100% rename from patches/unapplied/server/0976-Expose-LootTable-of-DecoratedPot.patch rename to patches/unapplied/server/0986-Expose-LootTable-of-DecoratedPot.patch diff --git a/patches/unapplied/server/0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/unapplied/server/0987-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 100% rename from patches/unapplied/server/0977-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/unapplied/server/0987-Reduce-allocation-of-Vec3D-by-entity-tracker.patch diff --git a/patches/unapplied/server/0978-Rewrite-dataconverter-system.patch b/patches/unapplied/server/0988-Rewrite-dataconverter-system.patch similarity index 100% rename from patches/unapplied/server/0978-Rewrite-dataconverter-system.patch rename to patches/unapplied/server/0988-Rewrite-dataconverter-system.patch diff --git a/patches/unapplied/server/0979-Starlight.patch b/patches/unapplied/server/0989-Starlight.patch similarity index 100% rename from patches/unapplied/server/0979-Starlight.patch rename to patches/unapplied/server/0989-Starlight.patch diff --git a/patches/unapplied/server/0980-Rewrite-chunk-system.patch b/patches/unapplied/server/0990-Rewrite-chunk-system.patch similarity index 100% rename from patches/unapplied/server/0980-Rewrite-chunk-system.patch rename to patches/unapplied/server/0990-Rewrite-chunk-system.patch diff --git a/patches/unapplied/server/0981-incremental-chunk-and-player-saving.patch b/patches/unapplied/server/0991-incremental-chunk-and-player-saving.patch similarity index 100% rename from patches/unapplied/server/0981-incremental-chunk-and-player-saving.patch rename to patches/unapplied/server/0991-incremental-chunk-and-player-saving.patch diff --git a/patches/unapplied/server/0982-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch b/patches/unapplied/server/0992-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch similarity index 100% rename from patches/unapplied/server/0982-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch rename to patches/unapplied/server/0992-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch diff --git a/patches/unapplied/server/0983-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/unapplied/server/0993-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch similarity index 100% rename from patches/unapplied/server/0983-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch rename to patches/unapplied/server/0993-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch diff --git a/patches/unapplied/server/0984-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/unapplied/server/0994-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch similarity index 100% rename from patches/unapplied/server/0984-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch rename to patches/unapplied/server/0994-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch diff --git a/patches/unapplied/server/0985-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/unapplied/server/0995-Optimize-Network-Manager-and-add-advanced-packet-sup.patch similarity index 100% rename from patches/unapplied/server/0985-Optimize-Network-Manager-and-add-advanced-packet-sup.patch rename to patches/unapplied/server/0995-Optimize-Network-Manager-and-add-advanced-packet-sup.patch diff --git a/patches/unapplied/server/0986-Allow-Saving-of-Oversized-Chunks.patch b/patches/unapplied/server/0996-Allow-Saving-of-Oversized-Chunks.patch similarity index 100% rename from patches/unapplied/server/0986-Allow-Saving-of-Oversized-Chunks.patch rename to patches/unapplied/server/0996-Allow-Saving-of-Oversized-Chunks.patch diff --git a/patches/unapplied/server/0987-Fix-World-isChunkGenerated-calls.patch b/patches/unapplied/server/0997-Fix-World-isChunkGenerated-calls.patch similarity index 100% rename from patches/unapplied/server/0987-Fix-World-isChunkGenerated-calls.patch rename to patches/unapplied/server/0997-Fix-World-isChunkGenerated-calls.patch diff --git a/patches/unapplied/server/0988-Flat-bedrock-generator-settings.patch b/patches/unapplied/server/0998-Flat-bedrock-generator-settings.patch similarity index 100% rename from patches/unapplied/server/0988-Flat-bedrock-generator-settings.patch rename to patches/unapplied/server/0998-Flat-bedrock-generator-settings.patch diff --git a/patches/unapplied/server/0989-Entity-Activation-Range-2.0.patch b/patches/unapplied/server/0999-Entity-Activation-Range-2.0.patch similarity index 100% rename from patches/unapplied/server/0989-Entity-Activation-Range-2.0.patch rename to patches/unapplied/server/0999-Entity-Activation-Range-2.0.patch diff --git a/patches/unapplied/server/0990-Optional-per-player-mob-spawns.patch b/patches/unapplied/server/1000-Optional-per-player-mob-spawns.patch similarity index 100% rename from patches/unapplied/server/0990-Optional-per-player-mob-spawns.patch rename to patches/unapplied/server/1000-Optional-per-player-mob-spawns.patch diff --git a/patches/unapplied/server/0991-Anti-Xray.patch b/patches/unapplied/server/1001-Anti-Xray.patch similarity index 100% rename from patches/unapplied/server/0991-Anti-Xray.patch rename to patches/unapplied/server/1001-Anti-Xray.patch diff --git a/patches/unapplied/server/0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/unapplied/server/1002-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 100% rename from patches/unapplied/server/0992-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/unapplied/server/1002-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch diff --git a/patches/unapplied/server/0993-Optimize-Collision-to-not-load-chunks.patch b/patches/unapplied/server/1003-Optimize-Collision-to-not-load-chunks.patch similarity index 100% rename from patches/unapplied/server/0993-Optimize-Collision-to-not-load-chunks.patch rename to patches/unapplied/server/1003-Optimize-Collision-to-not-load-chunks.patch diff --git a/patches/unapplied/server/0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/unapplied/server/1004-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 100% rename from patches/unapplied/server/0994-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/unapplied/server/1004-Optimize-GoalSelector-Goal.Flag-Set-operations.patch diff --git a/patches/unapplied/server/0995-Entity-load-save-limit-per-chunk.patch b/patches/unapplied/server/1005-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/unapplied/server/0995-Entity-load-save-limit-per-chunk.patch rename to patches/unapplied/server/1005-Entity-load-save-limit-per-chunk.patch diff --git a/patches/unapplied/server/0996-Fix-and-optimise-world-force-upgrading.patch b/patches/unapplied/server/1006-Fix-and-optimise-world-force-upgrading.patch similarity index 100% rename from patches/unapplied/server/0996-Fix-and-optimise-world-force-upgrading.patch rename to patches/unapplied/server/1006-Fix-and-optimise-world-force-upgrading.patch diff --git a/patches/unapplied/server/0997-Improved-Watchdog-Support.patch b/patches/unapplied/server/1007-Improved-Watchdog-Support.patch similarity index 100% rename from patches/unapplied/server/0997-Improved-Watchdog-Support.patch rename to patches/unapplied/server/1007-Improved-Watchdog-Support.patch diff --git a/patches/unapplied/server/0998-Optimize-Voxel-Shape-Merging.patch b/patches/unapplied/server/1008-Optimize-Voxel-Shape-Merging.patch similarity index 100% rename from patches/unapplied/server/0998-Optimize-Voxel-Shape-Merging.patch rename to patches/unapplied/server/1008-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/unapplied/server/0999-Write-SavedData-IO-async.patch b/patches/unapplied/server/1009-Write-SavedData-IO-async.patch similarity index 100% rename from patches/unapplied/server/0999-Write-SavedData-IO-async.patch rename to patches/unapplied/server/1009-Write-SavedData-IO-async.patch diff --git a/patches/unapplied/server/1000-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/unapplied/server/1010-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch similarity index 100% rename from patches/unapplied/server/1000-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch rename to patches/unapplied/server/1010-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch diff --git a/patches/unapplied/server/1001-Use-distance-map-to-optimise-entity-tracker.patch b/patches/unapplied/server/1011-Use-distance-map-to-optimise-entity-tracker.patch similarity index 100% rename from patches/unapplied/server/1001-Use-distance-map-to-optimise-entity-tracker.patch rename to patches/unapplied/server/1011-Use-distance-map-to-optimise-entity-tracker.patch diff --git a/patches/unapplied/server/1002-Optimize-Bit-Operations-by-inlining.patch b/patches/unapplied/server/1012-Optimize-Bit-Operations-by-inlining.patch similarity index 100% rename from patches/unapplied/server/1002-Optimize-Bit-Operations-by-inlining.patch rename to patches/unapplied/server/1012-Optimize-Bit-Operations-by-inlining.patch diff --git a/patches/unapplied/server/1003-Remove-streams-from-hot-code.patch b/patches/unapplied/server/1013-Remove-streams-from-hot-code.patch similarity index 100% rename from patches/unapplied/server/1003-Remove-streams-from-hot-code.patch rename to patches/unapplied/server/1013-Remove-streams-from-hot-code.patch diff --git a/patches/unapplied/server/1004-Eigencraft-redstone-implementation.patch b/patches/unapplied/server/1014-Eigencraft-redstone-implementation.patch similarity index 100% rename from patches/unapplied/server/1004-Eigencraft-redstone-implementation.patch rename to patches/unapplied/server/1014-Eigencraft-redstone-implementation.patch diff --git a/patches/unapplied/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/unapplied/server/1015-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/unapplied/server/1005-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/unapplied/server/1015-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/unapplied/server/1006-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/unapplied/server/1016-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch similarity index 100% rename from patches/unapplied/server/1006-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch rename to patches/unapplied/server/1016-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch diff --git a/patches/unapplied/server/1007-Improve-boat-collision-performance.patch b/patches/unapplied/server/1017-Improve-boat-collision-performance.patch similarity index 100% rename from patches/unapplied/server/1007-Improve-boat-collision-performance.patch rename to patches/unapplied/server/1017-Improve-boat-collision-performance.patch diff --git a/patches/unapplied/server/1008-Optimise-general-POI-access.patch b/patches/unapplied/server/1018-Optimise-general-POI-access.patch similarity index 100% rename from patches/unapplied/server/1008-Optimise-general-POI-access.patch rename to patches/unapplied/server/1018-Optimise-general-POI-access.patch diff --git a/patches/unapplied/server/1009-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/unapplied/server/1019-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/unapplied/server/1009-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/unapplied/server/1019-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/unapplied/server/1010-Execute-chunk-tasks-mid-tick.patch b/patches/unapplied/server/1020-Execute-chunk-tasks-mid-tick.patch similarity index 100% rename from patches/unapplied/server/1010-Execute-chunk-tasks-mid-tick.patch rename to patches/unapplied/server/1020-Execute-chunk-tasks-mid-tick.patch diff --git a/patches/unapplied/server/1011-Optimise-random-block-ticking.patch b/patches/unapplied/server/1021-Optimise-random-block-ticking.patch similarity index 100% rename from patches/unapplied/server/1011-Optimise-random-block-ticking.patch rename to patches/unapplied/server/1021-Optimise-random-block-ticking.patch diff --git a/patches/unapplied/server/1012-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/unapplied/server/1022-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/unapplied/server/1012-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/unapplied/server/1022-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/unapplied/server/1013-Use-Velocity-compression-and-cipher-natives.patch b/patches/unapplied/server/1023-Use-Velocity-compression-and-cipher-natives.patch similarity index 100% rename from patches/unapplied/server/1013-Use-Velocity-compression-and-cipher-natives.patch rename to patches/unapplied/server/1023-Use-Velocity-compression-and-cipher-natives.patch diff --git a/patches/unapplied/server/1014-Detail-more-information-in-watchdog-dumps.patch b/patches/unapplied/server/1024-Detail-more-information-in-watchdog-dumps.patch similarity index 100% rename from patches/unapplied/server/1014-Detail-more-information-in-watchdog-dumps.patch rename to patches/unapplied/server/1024-Detail-more-information-in-watchdog-dumps.patch diff --git a/patches/unapplied/server/1015-Collision-optimisations.patch b/patches/unapplied/server/1025-Collision-optimisations.patch similarity index 100% rename from patches/unapplied/server/1015-Collision-optimisations.patch rename to patches/unapplied/server/1025-Collision-optimisations.patch diff --git a/patches/unapplied/server/1016-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/unapplied/server/1026-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 100% rename from patches/unapplied/server/1016-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/unapplied/server/1026-Optimise-collision-checking-in-player-move-packet-ha.patch diff --git a/patches/unapplied/server/1017-Fix-tripwire-disarming-not-working-as-intended.patch b/patches/unapplied/server/1027-Fix-tripwire-disarming-not-working-as-intended.patch similarity index 100% rename from patches/unapplied/server/1017-Fix-tripwire-disarming-not-working-as-intended.patch rename to patches/unapplied/server/1027-Fix-tripwire-disarming-not-working-as-intended.patch diff --git a/patches/unapplied/server/1018-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/unapplied/server/1028-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/unapplied/server/1018-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/unapplied/server/1028-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/unapplied/server/1019-Add-Alternate-Current-redstone-implementation.patch b/patches/unapplied/server/1029-Add-Alternate-Current-redstone-implementation.patch similarity index 100% rename from patches/unapplied/server/1019-Add-Alternate-Current-redstone-implementation.patch rename to patches/unapplied/server/1029-Add-Alternate-Current-redstone-implementation.patch diff --git a/patches/unapplied/server/1020-optimize-dirt-and-snow-spreading.patch b/patches/unapplied/server/1030-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/unapplied/server/1020-optimize-dirt-and-snow-spreading.patch rename to patches/unapplied/server/1030-optimize-dirt-and-snow-spreading.patch diff --git a/patches/unapplied/server/1021-Properly-resend-entities.patch b/patches/unapplied/server/1031-Properly-resend-entities.patch similarity index 100% rename from patches/unapplied/server/1021-Properly-resend-entities.patch rename to patches/unapplied/server/1031-Properly-resend-entities.patch diff --git a/patches/unapplied/server/1022-Optimize-Hoppers.patch b/patches/unapplied/server/1032-Optimize-Hoppers.patch similarity index 100% rename from patches/unapplied/server/1022-Optimize-Hoppers.patch rename to patches/unapplied/server/1032-Optimize-Hoppers.patch diff --git a/patches/unapplied/server/1023-Improve-performance-of-mass-crafts.patch b/patches/unapplied/server/1033-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/unapplied/server/1023-Improve-performance-of-mass-crafts.patch rename to patches/unapplied/server/1033-Improve-performance-of-mass-crafts.patch diff --git a/patches/unapplied/server/1024-Actually-optimise-explosions.patch b/patches/unapplied/server/1034-Actually-optimise-explosions.patch similarity index 100% rename from patches/unapplied/server/1024-Actually-optimise-explosions.patch rename to patches/unapplied/server/1034-Actually-optimise-explosions.patch diff --git a/patches/unapplied/server/1025-Optimise-chunk-tick-iteration.patch b/patches/unapplied/server/1035-Optimise-chunk-tick-iteration.patch similarity index 100% rename from patches/unapplied/server/1025-Optimise-chunk-tick-iteration.patch rename to patches/unapplied/server/1035-Optimise-chunk-tick-iteration.patch diff --git a/patches/unapplied/server/1026-Lag-compensation-ticks.patch b/patches/unapplied/server/1036-Lag-compensation-ticks.patch similarity index 100% rename from patches/unapplied/server/1026-Lag-compensation-ticks.patch rename to patches/unapplied/server/1036-Lag-compensation-ticks.patch diff --git a/patches/unapplied/server/1027-Optimise-nearby-player-retrieval.patch b/patches/unapplied/server/1037-Optimise-nearby-player-retrieval.patch similarity index 100% rename from patches/unapplied/server/1027-Optimise-nearby-player-retrieval.patch rename to patches/unapplied/server/1037-Optimise-nearby-player-retrieval.patch diff --git a/patches/unapplied/server/1028-Distance-manager-tick-timings.patch b/patches/unapplied/server/1038-Distance-manager-tick-timings.patch similarity index 100% rename from patches/unapplied/server/1028-Distance-manager-tick-timings.patch rename to patches/unapplied/server/1038-Distance-manager-tick-timings.patch diff --git a/patches/unapplied/server/1029-Handle-Oversized-block-entities-in-chunks.patch b/patches/unapplied/server/1039-Handle-Oversized-block-entities-in-chunks.patch similarity index 100% rename from patches/unapplied/server/1029-Handle-Oversized-block-entities-in-chunks.patch rename to patches/unapplied/server/1039-Handle-Oversized-block-entities-in-chunks.patch diff --git a/patches/unapplied/server/1030-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/unapplied/server/1040-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/unapplied/server/1030-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/unapplied/server/1040-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/unapplied/server/1031-Add-ShulkerDuplicateEvent.patch b/patches/unapplied/server/1041-Add-ShulkerDuplicateEvent.patch similarity index 100% rename from patches/unapplied/server/1031-Add-ShulkerDuplicateEvent.patch rename to patches/unapplied/server/1041-Add-ShulkerDuplicateEvent.patch diff --git a/patches/unapplied/server/1032-Add-api-for-spawn-egg-texture-colors.patch b/patches/unapplied/server/1042-Add-api-for-spawn-egg-texture-colors.patch similarity index 100% rename from patches/unapplied/server/1032-Add-api-for-spawn-egg-texture-colors.patch rename to patches/unapplied/server/1042-Add-api-for-spawn-egg-texture-colors.patch diff --git a/patches/unapplied/server/1033-Disable-memory-reserve-allocating.patch b/patches/unapplied/server/1043-Disable-memory-reserve-allocating.patch similarity index 100% rename from patches/unapplied/server/1033-Disable-memory-reserve-allocating.patch rename to patches/unapplied/server/1043-Disable-memory-reserve-allocating.patch diff --git a/patches/unapplied/server/1034-Improve-tag-parser-handling.patch b/patches/unapplied/server/1044-Improve-tag-parser-handling.patch similarity index 100% rename from patches/unapplied/server/1034-Improve-tag-parser-handling.patch rename to patches/unapplied/server/1044-Improve-tag-parser-handling.patch diff --git a/patches/unapplied/server/1035-Add-Lifecycle-Event-system.patch b/patches/unapplied/server/1045-Add-Lifecycle-Event-system.patch similarity index 100% rename from patches/unapplied/server/1035-Add-Lifecycle-Event-system.patch rename to patches/unapplied/server/1045-Add-Lifecycle-Event-system.patch diff --git a/patches/unapplied/server/1036-Conduit-API.patch b/patches/unapplied/server/1046-Conduit-API.patch similarity index 100% rename from patches/unapplied/server/1036-Conduit-API.patch rename to patches/unapplied/server/1046-Conduit-API.patch diff --git a/patches/unapplied/server/1037-ItemStack-Tooltip-API.patch b/patches/unapplied/server/1047-ItemStack-Tooltip-API.patch similarity index 100% rename from patches/unapplied/server/1037-ItemStack-Tooltip-API.patch rename to patches/unapplied/server/1047-ItemStack-Tooltip-API.patch diff --git a/patches/unapplied/server/1038-Fix-possible-StackOverflowError-for-some-dispenses.patch b/patches/unapplied/server/1048-Fix-possible-StackOverflowError-for-some-dispenses.patch similarity index 100% rename from patches/unapplied/server/1038-Fix-possible-StackOverflowError-for-some-dispenses.patch rename to patches/unapplied/server/1048-Fix-possible-StackOverflowError-for-some-dispenses.patch diff --git a/patches/unapplied/server/1039-Properly-track-the-changed-item-from-dispense-events.patch b/patches/unapplied/server/1049-Properly-track-the-changed-item-from-dispense-events.patch similarity index 100% rename from patches/unapplied/server/1039-Properly-track-the-changed-item-from-dispense-events.patch rename to patches/unapplied/server/1049-Properly-track-the-changed-item-from-dispense-events.patch diff --git a/patches/unapplied/server/1040-Add-getChunkSnapshot-includeLightData-parameter.patch b/patches/unapplied/server/1050-Add-getChunkSnapshot-includeLightData-parameter.patch similarity index 100% rename from patches/unapplied/server/1040-Add-getChunkSnapshot-includeLightData-parameter.patch rename to patches/unapplied/server/1050-Add-getChunkSnapshot-includeLightData-parameter.patch diff --git a/patches/unapplied/server/1041-Add-FluidState-API.patch b/patches/unapplied/server/1051-Add-FluidState-API.patch similarity index 100% rename from patches/unapplied/server/1041-Add-FluidState-API.patch rename to patches/unapplied/server/1051-Add-FluidState-API.patch diff --git a/patches/unapplied/server/1042-add-number-format-api.patch b/patches/unapplied/server/1052-add-number-format-api.patch similarity index 100% rename from patches/unapplied/server/1042-add-number-format-api.patch rename to patches/unapplied/server/1052-add-number-format-api.patch diff --git a/patches/unapplied/server/1043-check-if-itemstack-is-stackable-first.patch b/patches/unapplied/server/1053-check-if-itemstack-is-stackable-first.patch similarity index 100% rename from patches/unapplied/server/1043-check-if-itemstack-is-stackable-first.patch rename to patches/unapplied/server/1053-check-if-itemstack-is-stackable-first.patch diff --git a/patches/unapplied/server/1044-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch b/patches/unapplied/server/1054-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch similarity index 100% rename from patches/unapplied/server/1044-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch rename to patches/unapplied/server/1054-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch diff --git a/patches/unapplied/server/1045-improve-BanList-types.patch b/patches/unapplied/server/1055-improve-BanList-types.patch similarity index 100% rename from patches/unapplied/server/1045-improve-BanList-types.patch rename to patches/unapplied/server/1055-improve-BanList-types.patch diff --git a/patches/unapplied/server/1046-Configurable-max-block-fluid-ticks.patch b/patches/unapplied/server/1056-Configurable-max-block-fluid-ticks.patch similarity index 100% rename from patches/unapplied/server/1046-Configurable-max-block-fluid-ticks.patch rename to patches/unapplied/server/1056-Configurable-max-block-fluid-ticks.patch diff --git a/patches/unapplied/server/1047-disable-forced-empty-world-ticks.patch b/patches/unapplied/server/1057-disable-forced-empty-world-ticks.patch similarity index 100% rename from patches/unapplied/server/1047-disable-forced-empty-world-ticks.patch rename to patches/unapplied/server/1057-disable-forced-empty-world-ticks.patch diff --git a/patches/unapplied/server/1048-Suspicious-Effect-Entry-API.patch b/patches/unapplied/server/1058-Suspicious-Effect-Entry-API.patch similarity index 100% rename from patches/unapplied/server/1048-Suspicious-Effect-Entry-API.patch rename to patches/unapplied/server/1058-Suspicious-Effect-Entry-API.patch diff --git a/patches/unapplied/server/1049-Per-world-ticks-per-spawn-settings.patch b/patches/unapplied/server/1059-Per-world-ticks-per-spawn-settings.patch similarity index 100% rename from patches/unapplied/server/1049-Per-world-ticks-per-spawn-settings.patch rename to patches/unapplied/server/1059-Per-world-ticks-per-spawn-settings.patch diff --git a/patches/unapplied/server/1050-Add-onboarding-message-for-initial-server-start.patch b/patches/unapplied/server/1060-Add-onboarding-message-for-initial-server-start.patch similarity index 100% rename from patches/unapplied/server/1050-Add-onboarding-message-for-initial-server-start.patch rename to patches/unapplied/server/1060-Add-onboarding-message-for-initial-server-start.patch diff --git a/patches/unapplied/server/1051-Fix-DamageSource-API.patch b/patches/unapplied/server/1061-Fix-DamageSource-API.patch similarity index 100% rename from patches/unapplied/server/1051-Fix-DamageSource-API.patch rename to patches/unapplied/server/1061-Fix-DamageSource-API.patch diff --git a/patches/unapplied/server/1052-Expanded-Hopper-API.patch b/patches/unapplied/server/1062-Expanded-Hopper-API.patch similarity index 100% rename from patches/unapplied/server/1052-Expanded-Hopper-API.patch rename to patches/unapplied/server/1062-Expanded-Hopper-API.patch diff --git a/patches/unapplied/server/1053-Fix-creation-of-invalid-block-entity-during-world-ge.patch b/patches/unapplied/server/1063-Fix-creation-of-invalid-block-entity-during-world-ge.patch similarity index 100% rename from patches/unapplied/server/1053-Fix-creation-of-invalid-block-entity-during-world-ge.patch rename to patches/unapplied/server/1063-Fix-creation-of-invalid-block-entity-during-world-ge.patch diff --git a/patches/unapplied/server/1054-Add-BlockBreakProgressUpdateEvent.patch b/patches/unapplied/server/1064-Add-BlockBreakProgressUpdateEvent.patch similarity index 100% rename from patches/unapplied/server/1054-Add-BlockBreakProgressUpdateEvent.patch rename to patches/unapplied/server/1064-Add-BlockBreakProgressUpdateEvent.patch diff --git a/patches/unapplied/server/1055-Deprecate-ItemStack-setType.patch b/patches/unapplied/server/1065-Deprecate-ItemStack-setType.patch similarity index 100% rename from patches/unapplied/server/1055-Deprecate-ItemStack-setType.patch rename to patches/unapplied/server/1065-Deprecate-ItemStack-setType.patch diff --git a/patches/unapplied/server/1056-Item-Mutation-Fixes.patch b/patches/unapplied/server/1066-Item-Mutation-Fixes.patch similarity index 100% rename from patches/unapplied/server/1056-Item-Mutation-Fixes.patch rename to patches/unapplied/server/1066-Item-Mutation-Fixes.patch diff --git a/patches/unapplied/server/1057-API-for-checking-sent-chunks.patch b/patches/unapplied/server/1067-API-for-checking-sent-chunks.patch similarity index 100% rename from patches/unapplied/server/1057-API-for-checking-sent-chunks.patch rename to patches/unapplied/server/1067-API-for-checking-sent-chunks.patch diff --git a/patches/unapplied/server/1058-Add-CartographyItemEvent.patch b/patches/unapplied/server/1068-Add-CartographyItemEvent.patch similarity index 100% rename from patches/unapplied/server/1058-Add-CartographyItemEvent.patch rename to patches/unapplied/server/1068-Add-CartographyItemEvent.patch diff --git a/patches/unapplied/server/1059-More-Raid-API.patch b/patches/unapplied/server/1069-More-Raid-API.patch similarity index 100% rename from patches/unapplied/server/1059-More-Raid-API.patch rename to patches/unapplied/server/1069-More-Raid-API.patch From ef057bba7d2522b73dce50be95cbacd4e84d8099 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Tue, 23 Apr 2024 11:32:19 -0700 Subject: [PATCH 066/215] work on Adventure patch --- patches/server/0010-Adventure.patch | 688 +++++++++++++--------------- 1 file changed, 320 insertions(+), 368 deletions(-) diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index b91e0bfc27..e1fb6cc1dd 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -14,24 +14,33 @@ Co-authored-by: Jake Potrebic diff --git a/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java b/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java new file mode 100644 -index 0000000000000000000000000000000000000000..9090b0ebcd3ceecb14f83b274ad364d6ea17d1f4 +index 0000000000000000000000000000000000000000..b33e394d88517c7afc2f549bae5a2063316ada73 --- /dev/null +++ b/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java -@@ -0,0 +1,418 @@ +@@ -0,0 +1,458 @@ +package io.papermc.paper.adventure; + ++import com.google.gson.JsonElement; ++import com.google.gson.JsonParser; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.datafixers.util.Either; ++import com.mojang.datafixers.util.Pair; +import com.mojang.serialization.Codec; +import com.mojang.serialization.DataResult; ++import com.mojang.serialization.DynamicOps; +import com.mojang.serialization.Encoder; ++import com.mojang.serialization.JsonOps; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; ++import io.netty.buffer.ByteBuf; ++import io.netty.handler.codec.DecoderException; ++import io.netty.handler.codec.EncoderException; +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.UUID; ++import java.util.function.BiFunction; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Predicate; @@ -61,15 +70,23 @@ index 0000000000000000000000000000000000000000..9090b0ebcd3ceecb14f83b274ad364d6 +import net.minecraft.core.UUIDUtil; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.nbt.CompoundTag; ++import net.minecraft.nbt.NbtAccounter; ++import net.minecraft.nbt.NbtOps; ++import net.minecraft.nbt.Tag; +import net.minecraft.nbt.TagParser; ++import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.chat.ComponentSerialization; +import net.minecraft.network.chat.contents.KeybindContents; +import net.minecraft.network.chat.contents.ScoreContents; +import net.minecraft.network.chat.contents.TranslatableContents; ++import net.minecraft.network.codec.ByteBufCodecs; ++import net.minecraft.network.codec.StreamCodec; ++import net.minecraft.resources.RegistryOps; +import net.minecraft.util.ExtraCodecs; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; ++import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.framework.qual.DefaultQualifier; @@ -81,13 +98,13 @@ index 0000000000000000000000000000000000000000..9090b0ebcd3ceecb14f83b274ad364d6 +import static net.kyori.adventure.text.TranslationArgument.bool; +import static net.kyori.adventure.text.TranslationArgument.component; +import static net.kyori.adventure.text.TranslationArgument.numeric; -+import static net.minecraft.util.ExtraCodecs.recursive; -+import static net.minecraft.util.ExtraCodecs.strictOptionalField; ++import static com.mojang.serialization.Codec.recursive; + +@DefaultQualifier(NonNull.class) +public final class AdventureCodecs { + + public static final Codec COMPONENT_CODEC = recursive("adventure Component", AdventureCodecs::createCodec); ++ public static final StreamCodec STREAM_COMPONENT_CODEC = ByteBufCodecs.fromCodecWithRegistriesTrusted(COMPONENT_CODEC); + + static final Codec TEXT_COLOR_CODEC = Codec.STRING.comapFlatMap(s -> { + if (s.startsWith("#")) { @@ -125,7 +142,7 @@ index 0000000000000000000000000000000000000000..9090b0ebcd3ceecb14f83b274ad364d6 + return instance.group( + KEY_CODEC.fieldOf("type").forGetter(HoverEvent.ShowEntity::type), + UUIDUtil.LENIENT_CODEC.fieldOf("id").forGetter(HoverEvent.ShowEntity::id), -+ strictOptionalField(componentCodec, "name").forGetter(he -> Optional.ofNullable(he.name())) ++ componentCodec.lenientOptionalFieldOf("name").forGetter(he -> Optional.ofNullable(he.name())) + ).apply(instance, (key, uuid, component) -> { + return HoverEvent.ShowEntity.showEntity(key, uuid, component.orElse(null)); + }); @@ -134,7 +151,7 @@ index 0000000000000000000000000000000000000000..9090b0ebcd3ceecb14f83b274ad364d6 + + static Codec showItemCodec(final Codec componentCodec) { + return net.minecraft.network.chat.HoverEvent.ItemStackInfo.CODEC.xmap(isi -> { -+ @Subst("key") final String typeKey = BuiltInRegistries.ITEM.getKey(isi.item).toString(); ++ @Subst("key") final String typeKey = isi.item.unwrapKey().orElseThrow().toString(); + return HoverEvent.ShowItem.showItem(Key.key(typeKey), isi.count, PaperAdventure.asBinaryTagHolder(isi.tag.orElse(null))); + }, si -> { + final Item itemType = BuiltInRegistries.ITEM.get(PaperAdventure.asVanilla(si.item())); @@ -154,36 +171,59 @@ index 0000000000000000000000000000000000000000..9090b0ebcd3ceecb14f83b274ad364d6 + static final HoverEventType SHOW_TEXT_HOVER_EVENT_TYPE = new HoverEventType<>(identity(), HoverEvent.Action.SHOW_TEXT, "show_text", DataResult::success); + static final Codec> HOVER_EVENT_TYPE_CODEC = StringRepresentable.fromValues(() -> new HoverEventType[]{ SHOW_ENTITY_HOVER_EVENT_TYPE, SHOW_ITEM_HOVER_EVENT_TYPE, SHOW_TEXT_HOVER_EVENT_TYPE }); + -+ static DataResult legacyDeserializeEntity(final Component text) { ++ static DataResult legacyDeserializeEntity(final Component component, final @Nullable RegistryOps ops, final Codec componentCodec) { + try { -+ final CompoundTag tag = TagParser.parseTag(PlainTextComponentSerializer.plainText().serialize(text)); -+ final @Nullable Component entityName = GsonComponentSerializer.gson().deserializeOrNull(tag.getString("name")); ++ final CompoundTag tag = TagParser.parseTag(PlainTextComponentSerializer.plainText().serialize(component)); ++ final DynamicOps dynamicOps = ops != null ? ops.withParent(JsonOps.INSTANCE) : JsonOps.INSTANCE; ++ final DataResult entityNameResult = componentCodec.parse(dynamicOps, JsonParser.parseString(tag.getString("name"))); + @Subst("key") final String keyString = tag.getString("type"); + final UUID entityUUID = UUID.fromString(tag.getString("id")); -+ return DataResult.success(HoverEvent.ShowEntity.showEntity(Key.key(keyString), entityUUID, entityName)); ++ return entityNameResult.map(name -> HoverEvent.ShowEntity.showEntity(Key.key(keyString), entityUUID, name)); + } catch (final Exception ex) { + return DataResult.error(() -> "Failed to parse tooltip: " + ex.getMessage()); + } + } + -+ static DataResult legacyDeserializeItem(final Component text) { ++ static DataResult legacyDeserializeItem(final Component component, final @Nullable RegistryOps ops, final Codec componentCodec) { + try { -+ final ItemStack stack = ItemStack.of(TagParser.parseTag(PlainTextComponentSerializer.plainText().serialize(text))); -+ @Subst("key") final String keyString = BuiltInRegistries.ITEM.getKey(stack.getItem()).toString(); -+ return DataResult.success(HoverEvent.ShowItem.showItem(Key.key(keyString), stack.getCount(), stack.getTag() != null ? BinaryTagHolder.encode(stack.getTag(), PaperAdventure.NBT_CODEC) : null)); ++ final CompoundTag tag = TagParser.parseTag(PlainTextComponentSerializer.plainText().serialize(component)); ++ final DynamicOps dynamicOps = ops != null ? ops.withParent(NbtOps.INSTANCE) : NbtOps.INSTANCE; ++ final DataResult stackResult = ItemStack.CODEC.parse(dynamicOps, tag).map(CraftItemStack::asCraftMirror); ++ return stackResult.map(stack -> { ++ return HoverEvent.ShowItem.showItem(stack.getType().key(), stack.getAmount(), /* TODO */); ++ }); + } catch (final CommandSyntaxException | IOException ex) { + return DataResult.error(() -> "Failed to parse item tag: " + ex.getMessage()); + } + } + -+ record HoverEventType(Function, Codec>> codec, String id, Function, Codec>> legacyCodec) implements StringRepresentable { -+ HoverEventType(final Function, Codec> contentCodec, final HoverEvent.Action action, final String id, final Function> legacyDeserializer) { -+ this(cc -> contentCodec.apply(cc).xmap(v -> HoverEvent.hoverEvent(action, v), HoverEvent::value).fieldOf("contents").codec(), ++ @FunctionalInterface ++ interface LegacyDeserializer { ++ DataResult apply(Component component, @Nullable RegistryOps ops, Codec componentCodec); ++ } ++ ++ record HoverEventType(Function, MapCodec>> codec, String id, Function, MapCodec>> legacyCodec) implements StringRepresentable { ++ HoverEventType(final Function, Codec> contentCodec, final HoverEvent.Action action, final String id, final LegacyDeserializer legacyDeserializer) { ++ this(cc -> contentCodec.apply(cc).xmap(v -> HoverEvent.hoverEvent(action, v), HoverEvent::value).fieldOf("contents"), + id, -+ codec -> Codec.of( -+ Encoder.error("Can't encode in legacy format"), -+ codec.flatMap(legacyDeserializer).map(text -> HoverEvent.hoverEvent(action, text)) -+ ) ++ codec -> (new Codec>() { ++ public DataResult, D>> decode(final DynamicOps dynamicOps, final D object) { ++ return codec.decode(dynamicOps, object).flatMap(pair -> { ++ final DataResult dataResult; ++ if (dynamicOps instanceof final RegistryOps registryOps) { ++ dataResult = legacyDeserializer.apply(pair.getFirst(), registryOps, codec); ++ } else { ++ dataResult = legacyDeserializer.apply(pair.getFirst(), null, codec); ++ } ++ ++ return dataResult.map(value -> Pair.of(HoverEvent.hoverEvent(action, value), pair.getSecond())); ++ }); ++ } ++ ++ public DataResult encode(final HoverEvent hoverEvent, final DynamicOps dynamicOps, final D object) { ++ return DataResult.error(() -> "Can't encode in legacy format"); ++ } ++ }).fieldOf("value") + ); + } + @Override @@ -203,23 +243,23 @@ index 0000000000000000000000000000000000000000..9090b0ebcd3ceecb14f83b274ad364d6 + throw new IllegalStateException(); + } + }; -+ static final Codec> HOVER_EVENT_CODEC = Codec.either( ++ static final Codec> HOVER_EVENT_CODEC = Codec.withAlternative( + HOVER_EVENT_TYPE_CODEC.>dispatchMap("action", GET_HOVER_EVENT_TYPE, het -> het.codec.apply(COMPONENT_CODEC)).codec(), + HOVER_EVENT_TYPE_CODEC.>dispatchMap("action", GET_HOVER_EVENT_TYPE, het -> het.legacyCodec.apply(COMPONENT_CODEC)).codec() -+ ).xmap(either -> either.map(identity(), identity()), Either::left); ++ ); + + public static final MapCodec