diff --git a/patches/api/API-to-get-a-BlockState-without-a-snapshot.patch b/patches/api/API-to-get-a-BlockState-without-a-snapshot.patch index 1df53fbe18..158eaae091 100644 --- a/patches/api/API-to-get-a-BlockState-without-a-snapshot.patch +++ b/patches/api/API-to-get-a-BlockState-without-a-snapshot.patch @@ -12,7 +12,7 @@ diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukki index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -0,0 +0,0 @@ public interface Block extends Metadatable { +@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable { @NotNull BlockState getState(); diff --git a/patches/api/Add-Block-isValidTool.patch b/patches/api/Add-Block-isValidTool.patch index d115b7cfde..348e05b224 100644 --- a/patches/api/Add-Block-isValidTool.patch +++ b/patches/api/Add-Block-isValidTool.patch @@ -8,7 +8,7 @@ diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukki index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -0,0 +0,0 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran +@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr public static int getBlockKeyZ(long packed) { return (int) ((packed << 10) >> 37); } diff --git a/patches/api/Add-BlockSoundGroup-interface.patch b/patches/api/Add-BlockSoundGroup-interface.patch index 5005389b7a..b3f68520dc 100644 --- a/patches/api/Add-BlockSoundGroup-interface.patch +++ b/patches/api/Add-BlockSoundGroup-interface.patch @@ -79,7 +79,7 @@ diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukki index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -0,0 +0,0 @@ public interface Block extends Metadatable { +@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable { * @return <code>true</code> if the block data can be placed here */ boolean canPlace(@NotNull BlockData data); diff --git a/patches/api/Add-Destroy-Speed-API.patch b/patches/api/Add-Destroy-Speed-API.patch index 4aaeed43e4..45a4c573b7 100644 --- a/patches/api/Add-Destroy-Speed-API.patch +++ b/patches/api/Add-Destroy-Speed-API.patch @@ -9,9 +9,9 @@ diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukki index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -0,0 +0,0 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran +@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr @NotNull - @Deprecated + @Deprecated(forRemoval = true) String getTranslationKey(); + + /** diff --git a/patches/api/Add-Raw-Byte-Entity-Serialization.patch b/patches/api/Add-Raw-Byte-Entity-Serialization.patch index 0e3f99ebdf..15cd50a215 100644 --- a/patches/api/Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/api/Add-Raw-Byte-Entity-Serialization.patch @@ -21,8 +21,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + org.bukkit.entity.Entity deserializeEntity(byte[] data, World world, boolean preserveUUID); + /** - * Return the translation key for the Material, so the client can translate it into the active - * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}. + * Creates and returns the next EntityId available. + * <p> diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/entity/Entity.java diff --git a/patches/api/Add-Raw-Byte-ItemStack-Serialization.patch b/patches/api/Add-Raw-Byte-ItemStack-Serialization.patch index ff1945465e..bb89536915 100644 --- a/patches/api/Add-Raw-Byte-ItemStack-Serialization.patch +++ b/patches/api/Add-Raw-Byte-ItemStack-Serialization.patch @@ -23,7 +23,7 @@ diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/o index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat return Bukkit.getServer().getItemFactory().ensureServerConversions(this); } diff --git a/patches/api/Add-enchantWithLevels-API.patch b/patches/api/Add-enchantWithLevels-API.patch index 98b6db8588..636b1b8021 100644 --- a/patches/api/Add-enchantWithLevels-API.patch +++ b/patches/api/Add-enchantWithLevels-API.patch @@ -35,7 +35,7 @@ diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/o index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat } // Paper start diff --git a/patches/api/Add-getComputedBiome-API.patch b/patches/api/Add-getComputedBiome-API.patch index f7389965b5..c7d04fc9e5 100644 --- a/patches/api/Add-getComputedBiome-API.patch +++ b/patches/api/Add-getComputedBiome-API.patch @@ -54,7 +54,7 @@ diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukki index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -0,0 +0,0 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran +@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr * Returns the biome that this block resides in * * @return Biome type containing this block diff --git a/patches/api/Add-getDrops-to-BlockState-and-isPreferredTool-to-Bl.patch b/patches/api/Add-getDrops-to-BlockState.patch similarity index 66% rename from patches/api/Add-getDrops-to-BlockState-and-isPreferredTool-to-Bl.patch rename to patches/api/Add-getDrops-to-BlockState.patch index 89d7359bb5..7e08b816a9 100644 --- a/patches/api/Add-getDrops-to-BlockState-and-isPreferredTool-to-Bl.patch +++ b/patches/api/Add-getDrops-to-BlockState.patch @@ -1,8 +1,10 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MelnCat <melncatuwu@gmail.com> Date: Fri, 12 Aug 2022 23:24:53 -0700 -Subject: [PATCH] Add getDrops to BlockState and isPreferredTool to BlockData +Subject: [PATCH] Add getDrops to BlockState +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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 @@ -43,24 +45,3 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + java.util.@org.jetbrains.annotations.Unmodifiable Collection<org.bukkit.inventory.ItemStack> getDrops(@NotNull org.bukkit.inventory.ItemStack tool, @Nullable org.bukkit.entity.Entity entity); // Paper end } -diff --git a/src/main/java/org/bukkit/block/data/BlockData.java b/src/main/java/org/bukkit/block/data/BlockData.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/data/BlockData.java -+++ b/src/main/java/org/bukkit/block/data/BlockData.java -@@ -0,0 +0,0 @@ public interface BlockData extends Cloneable { - * @return is ticked randomly - */ - boolean isRandomlyTicked(); -+ -+ /** -+ * Returns if the given item is a preferred choice to break this block. -+ * -+ * In some cases this determines if a block will drop anything or extra -+ * loot. -+ * -+ * @param tool The tool or item used for breaking this block -+ * @return true if the tool is preferred for breaking this block -+ */ -+ boolean isPreferredTool(@NotNull org.bukkit.inventory.ItemStack tool); - // Paper end - } diff --git a/patches/api/Add-getI18NDisplayName-API.patch b/patches/api/Add-getI18NDisplayName-API.patch index 4690b6073d..e63e7aefec 100644 --- a/patches/api/Add-getI18NDisplayName-API.patch +++ b/patches/api/Add-getI18NDisplayName-API.patch @@ -35,7 +35,7 @@ diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/o index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat public @NotNull net.kyori.adventure.text.Component displayName() { return Bukkit.getServer().getItemFactory().displayName(this); } diff --git a/patches/api/Add-isCollidable-methods-to-various-places.patch b/patches/api/Add-isCollidable-methods-to-various-places.patch index 084ef23bd0..370f7137f6 100644 --- a/patches/api/Add-isCollidable-methods-to-various-places.patch +++ b/patches/api/Add-isCollidable-methods-to-various-places.patch @@ -8,7 +8,7 @@ diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/M index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla public Multimap<Attribute, AttributeModifier> getItemAttributes(@NotNull EquipmentSlot equipmentSlot) { return Bukkit.getUnsafe().getItemAttributes(this, equipmentSlot); } @@ -48,7 +48,7 @@ diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukki index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -0,0 +0,0 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran +@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr * @return true if block is solid */ boolean isSolid(); diff --git a/patches/api/Add-methods-to-get-translation-keys.patch b/patches/api/Add-methods-to-get-translation-keys.patch index f3833b3b4c..0461e0fb1d 100644 --- a/patches/api/Add-methods-to-get-translation-keys.patch +++ b/patches/api/Add-methods-to-get-translation-keys.patch @@ -151,73 +151,61 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 * An enum of all material IDs accepted by the official server and client */ @SuppressWarnings({"DeprecatedIsStillUsed", "deprecation"}) // Paper --public enum Material implements Keyed { -+public enum Material implements Keyed, net.kyori.adventure.translation.Translatable { // Paper +-public enum Material implements Keyed, Translatable { ++public enum Material implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper //<editor-fold desc="Materials" defaultstate="collapsed"> AIR(9648, 0), STONE(22948), -@@ -0,0 +0,0 @@ public enum Material implements Keyed { +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable { } return false; } + -+ /** -+ * Return the translation key for the Material, so the client can translate it into the active -+ * locale when using a TranslatableComponent. -+ * @return the translation key -+ * @deprecated use {@link #translationKey()} -+ */ -+ @NotNull -+ @Deprecated -+ public String getTranslationKey() { -+ return this.translationKey(); -+ } -+ + @Override + public @NotNull String translationKey() { -+ return Bukkit.getUnsafe().getTranslationKey(this); ++ if (this.isItem()) { ++ return Bukkit.getUnsafe().getItemTranslationKey(this); ++ } else { ++ return Bukkit.getUnsafe().getBlockTranslationKey(this); ++ } + } // Paper end /** -diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable { + * material + * @see #getBlockTranslationKey() + * @see #getItemTranslationKey() ++ * @deprecated use {@link #translationKey()} + */ + @Override + @NotNull ++ @Deprecated(forRemoval = true) // Paper + public String getTranslationKey() { + if (this.isItem()) { + return Bukkit.getUnsafe().getItemTranslationKey(this); +diff --git a/src/main/java/org/bukkit/Translatable.java b/src/main/java/org/bukkit/Translatable.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/UnsafeValues.java -+++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -0,0 +0,0 @@ public interface UnsafeValues { - byte[] serializeItem(ItemStack item); +--- a/src/main/java/org/bukkit/Translatable.java ++++ b/src/main/java/org/bukkit/Translatable.java +@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; + /** + * Represents an object with a text representation that can be translated by the + * Minecraft client. ++ * @deprecated use {@link net.kyori.adventure.translation.Translatable} + */ ++@Deprecated(forRemoval = true) // Paper + public interface Translatable { - ItemStack deserializeItem(byte[] data); -+ -+ /** -+ * Return the translation key for the Material, so the client can translate it into the active -+ * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}. -+ * @return the translation key -+ */ -+ String getTranslationKey(Material mat); -+ -+ /** -+ * Return the translation key for the Block, so the client can translate it into the active -+ * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}. -+ * @return the translation key -+ */ -+ String getTranslationKey(org.bukkit.block.Block block); -+ -+ /** -+ * Return the translation key for the EntityType, so the client can translate it into the active -+ * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}.<br> -+ * This is <code>null</code>, when the EntityType isn't known to NMS (custom entities) -+ * @return the translation key -+ */ -+ String getTranslationKey(org.bukkit.entity.EntityType type); -+ -+ /** -+ * Return the translation key for the ItemStack, so the client can translate it into the active -+ * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}.<br> -+ * @return the translation key -+ */ -+ String getTranslationKey(ItemStack itemStack); - // Paper end + /** + * Get the translation key, suitable for use in a translation component. + * + * @return the translation key ++ * @deprecated look for a {@code translationKey()} method instead + */ + @NotNull ++ @Deprecated(forRemoval = true) // Paper + String getTranslationKey(); } diff --git a/src/main/java/org/bukkit/attribute/Attribute.java b/src/main/java/org/bukkit/attribute/Attribute.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 @@ -276,24 +264,21 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 * (i.e. lighting and power) may not be able to be safely accessed during world * generation when used in cases like BlockPhysicsEvent!!!! */ --public interface Block extends Metadatable { -+public interface Block extends Metadatable, net.kyori.adventure.translation.Translatable { // Paper - translatable +-public interface Block extends Metadatable, Translatable { ++public interface Block extends Metadatable, Translatable, net.kyori.adventure.translation.Translatable { // Paper - translatable /** * Gets the metadata for this block -@@ -0,0 +0,0 @@ public interface Block extends Metadatable { +@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable { * @return the sound group for this block */ @NotNull org.bukkit.SoundGroup getBlockSoundGroup(); + + /** -+ * Return the translation key for the Block, so the client can translate it into the active -+ * locale when using a TranslatableComponent. -+ * @return the translation key + * @deprecated use {@link #translationKey()} + */ + @NotNull -+ @Deprecated ++ @Deprecated(forRemoval = true) + String getTranslationKey(); // Paper end } @@ -333,29 +318,21 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; --public enum EntityType implements Keyed { -+public enum EntityType implements Keyed, net.kyori.adventure.translation.Translatable { // Paper - translatable +-public enum EntityType implements Keyed, Translatable { ++public enum EntityType implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - translatable // These strings MUST match the strings in nms.EntityTypes and are case sensitive. /** -@@ -0,0 +0,0 @@ public enum EntityType implements Keyed { - public boolean isAlive() { - return living; +@@ -0,0 +0,0 @@ public enum EntityType implements Keyed, Translatable { + + @Override + @NotNull ++ @Deprecated(forRemoval = true) // Paper + public String getTranslationKey() { + return Bukkit.getUnsafe().getTranslationKey(this); } -+ // Paper start -+ /** -+ * Return the translation key for the EntityType, so the client can translate it into the active -+ * locale when using a TranslatableComponent.<br> -+ * This is <code>null</code>, when the EntityType isn't known to NMS (custom entities) -+ * @return the translation key -+ * @deprecated use {@link #translationKey()} -+ */ -+ @Deprecated -+ @Nullable -+ public String getTranslationKey() { -+ return org.bukkit.Bukkit.getUnsafe().getTranslationKey(this); -+ } + ++ // Paper start + /** + * @throws IllegalArgumentException if the entity does not have a translation key (is probably a custom entity) + */ @@ -480,31 +457,25 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 * use this class to encapsulate Materials for which {@link Material#isItem()} * returns false.</b> */ --public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem> { // Paper -+public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem>, net.kyori.adventure.translation.Translatable { // Paper +-public class ItemStack implements Cloneable, ConfigurationSerializable, Translatable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem> { // Paper ++public class ItemStack implements Cloneable, ConfigurationSerializable, Translatable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem>, net.kyori.adventure.translation.Translatable { // Paper private Material type = Material.AIR; private int amount = 0; private MaterialData data = null; -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat + + @Override + @NotNull ++ @Deprecated(forRemoval = true) // Paper + public String getTranslationKey() { + return Bukkit.getUnsafe().getTranslationKey(this); + } +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat ItemMeta itemMeta = getItemMeta(); return itemMeta != null && itemMeta.hasItemFlag(flag); } + + /** -+ * Gets the translation key for this itemstack. -+ * This is not the same as getting the translation key -+ * for the material of this itemstack. -+ * -+ * @return the translation key -+ * @deprecated use {@link #translationKey()} -+ */ -+ @NotNull -+ @Deprecated -+ public String getTranslationKey() { -+ return this.translationKey(); -+ } -+ -+ /** + * {@inheritDoc} + * <p> + * This is not the same as getting the translation key diff --git a/patches/api/Add-missing-isFuel-Material-entries.patch b/patches/api/Add-missing-isFuel-Material-entries.patch index 985823f126..360810b640 100644 --- a/patches/api/Add-missing-isFuel-Material-entries.patch +++ b/patches/api/Add-missing-isFuel-Material-entries.patch @@ -8,7 +8,7 @@ diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/M index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla case ACACIA_DOOR: case ACACIA_FENCE: case ACACIA_FENCE_GATE: @@ -16,7 +16,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 case ACACIA_LOG: case ACACIA_PLANKS: case ACACIA_PRESSURE_PLATE: -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla case ACACIA_WOOD: case AZALEA: case BAMBOO: @@ -44,7 +44,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 case BARREL: case BIRCH_BOAT: case BIRCH_BUTTON: -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla case BIRCH_DOOR: case BIRCH_FENCE: case BIRCH_FENCE_GATE: @@ -52,7 +52,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 case BIRCH_LOG: case BIRCH_PLANKS: case BIRCH_PRESSURE_PLATE: -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla case DARK_OAK_DOOR: case DARK_OAK_FENCE: case DARK_OAK_FENCE_GATE: @@ -60,7 +60,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 case DARK_OAK_LOG: case DARK_OAK_PLANKS: case DARK_OAK_PRESSURE_PLATE: -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla case JUNGLE_DOOR: case JUNGLE_FENCE: case JUNGLE_FENCE_GATE: @@ -68,7 +68,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 case JUNGLE_LOG: case JUNGLE_PLANKS: case JUNGLE_PRESSURE_PLATE: -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla case MANGROVE_DOOR: case MANGROVE_FENCE: case MANGROVE_FENCE_GATE: @@ -76,7 +76,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 case MANGROVE_LOG: case MANGROVE_PLANKS: case MANGROVE_PRESSURE_PLATE: -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla case OAK_DOOR: case OAK_FENCE: case OAK_FENCE_GATE: @@ -84,7 +84,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 case OAK_LOG: case OAK_PLANKS: case OAK_PRESSURE_PLATE: -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla case SPRUCE_DOOR: case SPRUCE_FENCE: case SPRUCE_FENCE_GATE: @@ -92,7 +92,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 case SPRUCE_LOG: case SPRUCE_PLANKS: case SPRUCE_PRESSURE_PLATE: -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla case STICK: case STRIPPED_ACACIA_LOG: case STRIPPED_ACACIA_WOOD: diff --git a/patches/api/Additional-Block-Material-API-s.patch b/patches/api/Additional-Block-Material-API-s.patch index 994c0f52b8..2439118514 100644 --- a/patches/api/Additional-Block-Material-API-s.patch +++ b/patches/api/Additional-Block-Material-API-s.patch @@ -12,7 +12,7 @@ diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukki index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -0,0 +0,0 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran +@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr */ boolean isLiquid(); diff --git a/patches/api/Adventure.patch b/patches/api/Adventure.patch index 9e1fe92d39..175246c58c 100644 --- a/patches/api/Adventure.patch +++ b/patches/api/Adventure.patch @@ -3712,14 +3712,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 * use this class to encapsulate Materials for which {@link Material#isItem()} * returns false.</b> */ --public class ItemStack implements Cloneable, ConfigurationSerializable { -+public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem> { // Paper +-public class ItemStack implements Cloneable, ConfigurationSerializable, Translatable { ++public class ItemStack implements Cloneable, ConfigurationSerializable, Translatable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem> { // Paper private Material type = Material.AIR; private int amount = 0; private MaterialData data = null; -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable { - - return true; +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat + public String getTranslationKey() { + return Bukkit.getUnsafe().getTranslationKey(this); } + + // Paper start diff --git a/patches/api/Allow-Blocks-to-be-accessed-via-a-long-key.patch b/patches/api/Allow-Blocks-to-be-accessed-via-a-long-key.patch index 6b3a1ce13a..8f930a52e7 100644 --- a/patches/api/Allow-Blocks-to-be-accessed-via-a-long-key.patch +++ b/patches/api/Allow-Blocks-to-be-accessed-via-a-long-key.patch @@ -98,7 +98,7 @@ diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukki index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -0,0 +0,0 @@ public interface Block extends Metadatable { +@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable { */ int getZ(); diff --git a/patches/api/Attributes-API-for-item-defaults.patch b/patches/api/Attributes-API-for-item-defaults.patch index ac9b8f689b..8465c006a3 100644 --- a/patches/api/Attributes-API-for-item-defaults.patch +++ b/patches/api/Attributes-API-for-item-defaults.patch @@ -8,7 +8,7 @@ diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/M index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ 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/Block-Ticking-API.patch b/patches/api/Block-Ticking-API.patch index 16a3dfd263..160c0230b6 100644 --- a/patches/api/Block-Ticking-API.patch +++ b/patches/api/Block-Ticking-API.patch @@ -8,7 +8,7 @@ diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukki index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -0,0 +0,0 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran +@@ -0,0 +0,0 @@ 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); diff --git a/patches/api/Cache-the-result-of-Material-isBlock.patch b/patches/api/Cache-the-result-of-Material-isBlock.patch index 85161b8783..bf400a5790 100644 --- a/patches/api/Cache-the-result-of-Material-isBlock.patch +++ b/patches/api/Cache-the-result-of-Material-isBlock.patch @@ -8,7 +8,7 @@ diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/M index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ 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 0000000000000000000000000000000000000000..00000000000000000000000000000000 private Material(final int id) { this(id, 64); -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ 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 0000000000000000000000000000000000000000..00000000000000000000000000000000 switch (this) { //<editor-fold defaultstate="collapsed" desc="isBlock"> case ACACIA_BUTTON: -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ 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/Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/api/Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index de5800f633..e175ddef6d 100644 --- a/patches/api/Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/api/Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -10,9 +10,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -0,0 +0,0 @@ public interface UnsafeValues { - * @return the translation key - */ - String getTranslationKey(ItemStack itemStack); + byte[] serializeItem(ItemStack item); + + ItemStack deserializeItem(byte[] data); + + /** + * Creates and returns the next EntityId available. diff --git a/patches/api/Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch new file mode 100644 index 0000000000..42480ac263 --- /dev/null +++ b/patches/api/Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch @@ -0,0 +1,93 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic <jake.m.potrebic@gmail.com> +Date: Tue, 7 Feb 2023 08:20:27 -0800 +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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/event/block/BrewingStartEvent.java ++++ b/src/main/java/org/bukkit/event/block/BrewingStartEvent.java +@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; + */ + public class BrewingStartEvent extends InventoryBlockStartEvent { + +- private static final HandlerList handlers = new HandlerList(); ++ // Paper - remove HandlerList + private int brewingTime; + + public BrewingStartEvent(@NotNull final Block furnace, @NotNull ItemStack source, int brewingTime) { +@@ -0,0 +0,0 @@ public class BrewingStartEvent extends InventoryBlockStartEvent { + this.brewingTime = brewTime; + } + +- @NotNull +- @Override +- public HandlerList getHandlers() { +- return handlers; +- } +- +- @NotNull +- public static HandlerList getHandlerList() { +- return handlers; +- } ++ // 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/event/block/CampfireStartEvent.java ++++ b/src/main/java/org/bukkit/event/block/CampfireStartEvent.java +@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; + */ + public class CampfireStartEvent extends InventoryBlockStartEvent { + +- private static final HandlerList handlers = new HandlerList(); ++ // Paper - remove HandlerList + private int cookingTime; + private CampfireRecipe campfireRecipe; + +@@ -0,0 +0,0 @@ public class CampfireStartEvent extends InventoryBlockStartEvent { + this.cookingTime = cookTime; + } + +- @NotNull +- @Override +- public HandlerList getHandlers() { +- return handlers; +- } +- +- @NotNull +- public static HandlerList getHandlerList() { +- return handlers; +- } ++ // Paper - remove HandlerList + } +diff --git a/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java b/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java ++++ b/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java +@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; + * Called when a Furnace starts smelting. + */ + public class FurnaceStartSmeltEvent extends InventoryBlockStartEvent { +- private static final HandlerList handlers = new HandlerList(); ++ // Paper - remove HandlerList + private final CookingRecipe<?> recipe; + private int totalCookTime; + +@@ -0,0 +0,0 @@ public class FurnaceStartSmeltEvent extends InventoryBlockStartEvent { + this.totalCookTime = cookTime; + } + +- @NotNull +- @Override +- public HandlerList getHandlers() { +- return handlers; +- } +- +- @NotNull +- public static HandlerList getHandlerList() { +- return handlers; +- } ++ // Paper - remove HandlerList + } diff --git a/patches/api/Fix-Spigot-annotation-mistakes.patch b/patches/api/Fix-Spigot-annotation-mistakes.patch index 0c4ad19f14..bd4fedd28d 100644 --- a/patches/api/Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/Fix-Spigot-annotation-mistakes.patch @@ -82,7 +82,7 @@ diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/M index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -0,0 +0,0 @@ public enum Material implements Keyed { +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable { } /** @@ -96,7 +96,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public boolean isLegacy() { return legacy; } -@@ -0,0 +0,0 @@ public enum Material implements Keyed { +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable { * Gets the MaterialData class associated with this Material * * @return MaterialData associated with this Material @@ -144,6 +144,22 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public enum NetherWartsState { /** +diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/Registry.java ++++ b/src/main/java/org/bukkit/Registry.java +@@ -0,0 +0,0 @@ public interface Registry<T extends Keyed> extends Iterable<T> { + * + * @param input non-null input + * @return registered object or null if does not exist ++ * @deprecated this method's behavior is broken and not useful. If you want to get an object ++ * based on its vanilla name, or a key, wrap it in a {@link NamespacedKey} object and use {@link #get(NamespacedKey)} + */ + @Nullable ++ @Deprecated(forRemoval = true) // Paper + default T match(@NotNull String input) { + Preconditions.checkArgument(input != null, "input must not be null"); + diff --git a/src/main/java/org/bukkit/SandstoneType.java b/src/main/java/org/bukkit/SandstoneType.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/SandstoneType.java @@ -674,15 +690,15 @@ diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/o index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -0,0 +0,0 @@ import java.util.List; // Paper - import java.util.Map; +@@ -0,0 +0,0 @@ import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.Material; + import org.bukkit.Translatable; +import org.bukkit.UndefinedNullability; import org.bukkit.Utility; import org.bukkit.configuration.serialization.ConfigurationSerializable; import org.bukkit.enchantments.Enchantment; -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat * @param damage durability / damage * @deprecated see {@link #setDurability(short)} */ @@ -690,7 +706,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public ItemStack(@NotNull final Material type, final int amount, final short damage) { this(type, amount, damage, null); } -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat * Gets the MaterialData for this stack of items * * @return MaterialData for this item @@ -701,7 +717,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public MaterialData getData() { Material mat = Bukkit.getUnsafe().toLegacy(getType()); if (data == null && mat != null && mat.getData() != null) { -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat * Sets the MaterialData for this stack of items * * @param data New MaterialData for this item @@ -711,7 +727,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public void setData(@Nullable MaterialData data) { if (data == null) { this.data = data; -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat * * @return a copy of the current ItemStack's ItemData */ diff --git a/patches/api/Get-entity-default-attributes.patch b/patches/api/Get-entity-default-attributes.patch index a3875ab580..c963c456b3 100644 --- a/patches/api/Get-entity-default-attributes.patch +++ b/patches/api/Get-entity-default-attributes.patch @@ -35,7 +35,7 @@ diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/entity/EntityType.java +++ b/src/main/java/org/bukkit/entity/EntityType.java -@@ -0,0 +0,0 @@ public enum EntityType implements Keyed, net.kyori.adventure.translation.Transla +@@ -0,0 +0,0 @@ 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/Implement-furnace-cook-speed-multiplier-API.patch b/patches/api/Implement-furnace-cook-speed-multiplier-API.patch index 7504ded4b0..2fdab13daa 100644 --- a/patches/api/Implement-furnace-cook-speed-multiplier-API.patch +++ b/patches/api/Implement-furnace-cook-speed-multiplier-API.patch @@ -40,20 +40,19 @@ diff --git a/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java +++ b/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java -@@ -0,0 +0,0 @@ public class FurnaceStartSmeltEvent extends BlockEvent { +@@ -0,0 +0,0 @@ public class FurnaceStartSmeltEvent extends InventoryBlockStartEvent { private final CookingRecipe<?> recipe; private int totalCookTime; + @Deprecated // Paper - furnace cook speed multiplier public FurnaceStartSmeltEvent(@NotNull final Block furnace, @NotNull ItemStack source, @NotNull final CookingRecipe<?> recipe) { -+ // Paper start - furnace cook speed multiplier ++ // Paper start + this(furnace, source, recipe, recipe.getCookingTime()); + } + -+ public FurnaceStartSmeltEvent(@NotNull final Block furnace, @NotNull ItemStack source, @NotNull CookingRecipe<?> recipe, int cookingTime) { ++ public FurnaceStartSmeltEvent(final @NotNull Block furnace, final @NotNull ItemStack source, final @NotNull CookingRecipe<?> recipe, final int cookingTime) { + // Paper end - super(furnace); - this.source = source; + super(furnace, source); this.recipe = recipe; - this.totalCookTime = recipe.getCookingTime(); + this.totalCookTime = cookingTime; // Paper - furnace cook speed multiplier diff --git a/patches/api/Improve-Block-breakNaturally-API.patch b/patches/api/Improve-Block-breakNaturally-API.patch index 0890fbef19..02e283945e 100644 --- a/patches/api/Improve-Block-breakNaturally-API.patch +++ b/patches/api/Improve-Block-breakNaturally-API.patch @@ -13,7 +13,7 @@ diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukki index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -0,0 +0,0 @@ public interface Block extends Metadatable { +@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable { */ boolean breakNaturally(@Nullable ItemStack tool); diff --git a/patches/api/Item-Rarity-API.patch b/patches/api/Item-Rarity-API.patch index 808d3aa2c0..98d37aa6b4 100644 --- a/patches/api/Item-Rarity-API.patch +++ b/patches/api/Item-Rarity-API.patch @@ -42,9 +42,9 @@ diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/M index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata - public @NotNull String translationKey() { - return Bukkit.getUnsafe().getTranslationKey(this); +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + return Bukkit.getUnsafe().getBlockTranslationKey(this); + } } + + /** @@ -91,7 +91,7 @@ diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/o index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat public @NotNull String translationKey() { return Bukkit.getUnsafe().getTranslationKey(this); } diff --git a/patches/api/ItemStack-API-additions-for-quantity-flags-lore.patch b/patches/api/ItemStack-API-additions-for-quantity-flags-lore.patch index be753a01bf..0d3bfd4277 100644 --- a/patches/api/ItemStack-API-additions-for-quantity-flags-lore.patch +++ b/patches/api/ItemStack-API-additions-for-quantity-flags-lore.patch @@ -16,7 +16,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.Material; -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat // Requires access to NMS return ensureServerConversions().getMaxItemUseDuration(); } diff --git a/patches/api/ItemStack-damage-API.patch b/patches/api/ItemStack-damage-API.patch index 5c5643c265..c69417f0ca 100644 --- a/patches/api/ItemStack-damage-API.patch +++ b/patches/api/ItemStack-damage-API.patch @@ -64,7 +64,7 @@ diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/o index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat public boolean canRepair(@NotNull ItemStack toBeRepaired) { return Bukkit.getUnsafe().isValidRepairItemStack(toBeRepaired, this); } diff --git a/patches/api/ItemStack-editMeta.patch b/patches/api/ItemStack-editMeta.patch index 392bcab303..03534bc53e 100644 --- a/patches/api/ItemStack-editMeta.patch +++ b/patches/api/ItemStack-editMeta.patch @@ -8,7 +8,7 @@ diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/o index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat return result.ensureServerConversions(); // Paper } diff --git a/patches/api/ItemStack-getMaxItemUseDuration.patch b/patches/api/ItemStack-getMaxItemUseDuration.patch index 361192d6cd..49d8c076a3 100644 --- a/patches/api/ItemStack-getMaxItemUseDuration.patch +++ b/patches/api/ItemStack-getMaxItemUseDuration.patch @@ -9,7 +9,7 @@ diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/o index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat public String getI18NDisplayName() { return Bukkit.getServer().getItemFactory().getI18NDisplayName(this); } diff --git a/patches/api/ItemStack-repair-check-API.patch b/patches/api/ItemStack-repair-check-API.patch index 3251a10bcb..476c675975 100644 --- a/patches/api/ItemStack-repair-check-API.patch +++ b/patches/api/ItemStack-repair-check-API.patch @@ -29,7 +29,7 @@ diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/o index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat public io.papermc.paper.inventory.ItemRarity getRarity() { return Bukkit.getUnsafe().getItemStackRarity(this); } diff --git a/patches/api/Mark-experimental-api-as-such.patch b/patches/api/Mark-experimental-api-as-such.patch index 95ef207798..f9f5871cac 100644 --- a/patches/api/Mark-experimental-api-as-such.patch +++ b/patches/api/Mark-experimental-api-as-such.patch @@ -8,7 +8,7 @@ diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/M index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla ACACIA_PLANKS(31312), DARK_OAK_PLANKS(20869), MANGROVE_PLANKS(7078), @@ -20,7 +20,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_MOSAIC(10715), /** * BlockData: {@link Sapling} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Orientable} */ @@ -28,7 +28,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_BLOCK(20770, Orientable.class), /** * BlockData: {@link Orientable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Orientable} */ @@ -36,7 +36,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 STRIPPED_BAMBOO_BLOCK(14799, Orientable.class), /** * BlockData: {@link Orientable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Slab} */ @@ -49,7 +49,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_MOSAIC_SLAB(22118, Slab.class), /** * BlockData: {@link Slab} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link ChiseledBookshelf} */ @@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 CHISELED_BOOKSHELF(8099, ChiseledBookshelf.class), MOSSY_COBBLESTONE(21900), OBSIDIAN(32723), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Fence} */ @@ -65,7 +65,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_FENCE(17207, Fence.class), /** * BlockData: {@link Fence} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Stairs} */ @@ -78,7 +78,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_MOSAIC_STAIRS(20977, Stairs.class), /** * BlockData: {@link Stairs} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Switch} */ @@ -86,7 +86,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_BUTTON(21810, Switch.class), /** * BlockData: {@link Switch} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Powerable} */ @@ -94,7 +94,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_PRESSURE_PLATE(26740, Powerable.class), /** * BlockData: {@link Powerable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Door} */ @@ -102,7 +102,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_DOOR(19971, Door.class), /** * BlockData: {@link Door} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link TrapDoor} */ @@ -110,7 +110,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_TRAPDOOR(9174, TrapDoor.class), /** * BlockData: {@link TrapDoor} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Gate} */ @@ -118,7 +118,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_FENCE_GATE(14290, Gate.class), /** * BlockData: {@link Gate} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla DARK_OAK_CHEST_BOAT(8733, 1), MANGROVE_BOAT(20792, 1), MANGROVE_CHEST_BOAT(18572, 1), @@ -128,7 +128,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_CHEST_RAFT(20056, 1), /** * BlockData: {@link StructureBlock} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Sign} */ @@ -136,7 +136,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_SIGN(26139, 16, Sign.class), /** * BlockData: {@link Sign} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link HangingSign} */ @@ -189,7 +189,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 WARPED_HANGING_SIGN(8195, 16, HangingSign.class), BUCKET(15215, 16), WATER_BUCKET(8802, 1), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla EGG(21603, 16), COMPASS(24139), RECOVERY_COMPASS(12710), @@ -197,7 +197,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BUNDLE(16835, 1), FISHING_ROD(4167, 1, 64), CLOCK(14980), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla BEE_SPAWN_EGG(22924), BLAZE_SPAWN_EGG(4759), CAT_SPAWN_EGG(29583), @@ -205,7 +205,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 CAMEL_SPAWN_EGG(14760), CAVE_SPIDER_SPAWN_EGG(23341), CHICKEN_SPAWN_EGG(5462), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Rotatable} */ @@ -213,7 +213,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 PIGLIN_HEAD(5512, Rotatable.class), NETHER_STAR(12469), PUMPKIN_PIE(28725), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link WallSign} */ @@ -271,7 +271,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 BAMBOO_WALL_HANGING_SIGN(6669, WallHangingSign.class), /** * BlockData: {@link RedstoneWallTorch} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla /** * BlockData: {@link Directional} */ @@ -430,7 +430,7 @@ diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/entity/EntityType.java +++ b/src/main/java/org/bukkit/entity/EntityType.java -@@ -0,0 +0,0 @@ public enum EntityType implements Keyed, net.kyori.adventure.translation.Transla +@@ -0,0 +0,0 @@ public enum EntityType implements Keyed, Translatable, net.kyori.adventure.trans FROG("frog", Frog.class, -1), TADPOLE("tadpole", Tadpole.class, -1), WARDEN("warden", Warden.class, -1), diff --git a/patches/api/Material-API-additions.patch b/patches/api/Material-API-additions.patch index 30f9e1562e..6e56683c2f 100644 --- a/patches/api/Material-API-additions.patch +++ b/patches/api/Material-API-additions.patch @@ -13,10 +13,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 * An enum of all material IDs accepted by the official server and client */ +@SuppressWarnings({"DeprecatedIsStillUsed", "deprecation"}) // Paper - public enum Material implements Keyed { + public enum Material implements Keyed, Translatable { //<editor-fold desc="Materials" defaultstate="collapsed"> AIR(9648, 0), -@@ -0,0 +0,0 @@ public enum Material implements Keyed { +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable { } } diff --git a/patches/api/Timings-v2.patch b/patches/api/Timings-v2.patch index 957431f78d..ae392c11ef 100644 --- a/patches/api/Timings-v2.patch +++ b/patches/api/Timings-v2.patch @@ -2846,9 +2846,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 Material fromLegacy(Material material); @@ -0,0 +0,0 @@ public interface UnsafeValues { - Multimap<Attribute, AttributeModifier> getDefaultAttributeModifiers(Material material, EquipmentSlot slot); + String getTranslationKey(EntityType entityType); - CreativeCategory getCreativeCategory(Material material); + String getTranslationKey(ItemStack itemStack); + + // Paper start + /** diff --git a/patches/api/ensureServerConversions-API.patch b/patches/api/ensureServerConversions-API.patch index 6a9cb2dae9..43440407a7 100644 --- a/patches/api/ensureServerConversions-API.patch +++ b/patches/api/ensureServerConversions-API.patch @@ -32,7 +32,7 @@ diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/o index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat } } @@ -41,7 +41,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } /** -@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor +@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat return Bukkit.getServer().getItemFactory().displayName(this); } diff --git a/patches/server/Add-Destroy-Speed-API.patch b/patches/server/Add-Destroy-Speed-API.patch index 4c604c09f5..5fbd0c3048 100644 --- a/patches/server/Add-Destroy-Speed-API.patch +++ b/patches/server/Add-Destroy-Speed-API.patch @@ -11,7 +11,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -0,0 +0,0 @@ public class CraftBlock implements Block { public String translationKey() { - return org.bukkit.Bukkit.getUnsafe().getTranslationKey(this); + return this.getNMS().getBlock().getDescriptionId(); } + + @Override diff --git a/patches/server/Add-getDrops-to-BlockState-and-isPreferredTool-to-Bl.patch b/patches/server/Add-getDrops-to-BlockState.patch similarity index 66% rename from patches/server/Add-getDrops-to-BlockState-and-isPreferredTool-to-Bl.patch rename to patches/server/Add-getDrops-to-BlockState.patch index ff0603f575..a7d8c4fba6 100644 --- a/patches/server/Add-getDrops-to-BlockState-and-isPreferredTool-to-Bl.patch +++ b/patches/server/Add-getDrops-to-BlockState.patch @@ -1,8 +1,10 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MelnCat <melncatuwu@gmail.com> Date: Fri, 12 Aug 2022 23:24:37 -0700 -Subject: [PATCH] Add getDrops to BlockState and isPreferredTool to BlockData +Subject: [PATCH] Add getDrops to BlockState +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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 @@ -42,20 +44,3 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } // Paper end } -diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -+++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -@@ -0,0 +0,0 @@ public class CraftBlockData implements BlockData { - return this.state.isRandomlyTicking(); - } - // Paper end -+ -+ // Paper start - Preferred tool API -+ @Override -+ public boolean isPreferredTool(org.bukkit.inventory.ItemStack item) { -+ net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item); -+ return !state.requiresCorrectToolForDrops() || nms.isCorrectToolForDrops(state); -+ } -+ // Paper end - } diff --git a/patches/server/Add-methods-to-get-translation-keys.patch b/patches/server/Add-methods-to-get-translation-keys.patch index 0f08d052bf..af5ce07fe4 100644 --- a/patches/server/Add-methods-to-get-translation-keys.patch +++ b/patches/server/Add-methods-to-get-translation-keys.patch @@ -19,13 +19,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } + + @Override -+ public String getTranslationKey() { -+ return this.translationKey(); -+ } -+ -+ @Override + public String translationKey() { -+ return org.bukkit.Bukkit.getUnsafe().getTranslationKey(this); ++ return this.getNMS().getBlock().getDescriptionId(); + } // Paper end } @@ -45,41 +40,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 // Paper end public net.minecraft.world.item.enchantment.Enchantment getHandle() { -diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues { - Preconditions.checkArgument(dataVersion <= getDataVersion(), "Newer version! Server downgrades are not supported!"); - return compound; - } -+ -+ @Override -+ public String getTranslationKey(Material mat) { -+ if (mat.isBlock()) { -+ return getBlock(mat).getDescriptionId(); -+ } -+ return getItem(mat).getDescriptionId(); -+ } -+ -+ @Override -+ public String getTranslationKey(org.bukkit.block.Block block) { -+ return ((org.bukkit.craftbukkit.block.CraftBlock)block).getNMS().getBlock().getDescriptionId(); -+ } -+ -+ @Override -+ public String getTranslationKey(org.bukkit.entity.EntityType type) { -+ return net.minecraft.world.entity.EntityType.byString(type.getName()).map(net.minecraft.world.entity.EntityType::getDescriptionId).orElse(null); -+ } -+ -+ @Override -+ public String getTranslationKey(org.bukkit.inventory.ItemStack itemStack) { -+ net.minecraft.world.item.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(itemStack); -+ return nmsItemStack.getItem().getDescriptionId(nmsItemStack); -+ } - // Paper end - - /** diff --git a/src/test/java/io/papermc/paper/world/TranslationKeyTest.java b/src/test/java/io/papermc/paper/world/TranslationKeyTest.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/test/java/io/papermc/paper/world/TranslationKeyTest.java diff --git a/patches/server/Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index d88dd58a85..6af5bde1f6 100644 --- a/patches/server/Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -25,10 +25,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues { - net.minecraft.world.item.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(itemStack); - return nmsItemStack.getItem().getDescriptionId(nmsItemStack); + Preconditions.checkArgument(dataVersion <= getDataVersion(), "Newer version! Server downgrades are not supported!"); + return compound; } + ++ @Override + public int nextEntityId() { + return net.minecraft.world.entity.Entity.nextEntityId(); + } diff --git a/patches/server/Fix-Fluid-tags-isTagged-method.patch b/patches/server/Fix-Fluid-tags-isTagged-method.patch deleted file mode 100644 index 00ef77f8b6..0000000000 --- a/patches/server/Fix-Fluid-tags-isTagged-method.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic <jake.m.potrebic@gmail.com> -Date: Tue, 1 Mar 2022 12:45:50 -0800 -Subject: [PATCH] Fix Fluid tags isTagged method - - -diff --git a/src/main/java/org/bukkit/craftbukkit/tag/CraftFluidTag.java b/src/main/java/org/bukkit/craftbukkit/tag/CraftFluidTag.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/craftbukkit/tag/CraftFluidTag.java -+++ b/src/main/java/org/bukkit/craftbukkit/tag/CraftFluidTag.java -@@ -0,0 +0,0 @@ public class CraftFluidTag extends CraftTag<net.minecraft.world.level.material.F - - @Override - public boolean isTagged(Fluid fluid) { -- return CraftMagicNumbers.getFluid(fluid).is(tag); -+ return registry.getHolderOrThrow(net.minecraft.resources.ResourceKey.create(net.minecraft.core.Registry.FLUID_REGISTRY, org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(fluid.getKey()))).is(tag); // Paper - } - - @Override -diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues { - return CraftMagicNumbers.MATERIAL_BLOCK.get(material); - } - -- public static net.minecraft.world.level.material.Fluid getFluid(Fluid fluid) { -+ public static net.minecraft.world.level.material.Fluid getFluid(Material fluid) { // Paper - wrong type - return CraftMagicNumbers.MATERIAL_FLUID.get(fluid); - } - diff --git a/patches/server/Implement-CraftBlockSoundGroup.patch b/patches/server/Implement-CraftBlockSoundGroup.patch index b85eb56ebf..4a48e1c37a 100644 --- a/patches/server/Implement-CraftBlockSoundGroup.patch +++ b/patches/server/Implement-CraftBlockSoundGroup.patch @@ -54,8 +54,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -0,0 +0,0 @@ public class CraftBlock implements Block { - - return iblockdata.canSurvive(world, this.position); + public String getTranslationKey() { + return this.getNMS().getBlock().getDescriptionId(); } + + // Paper start diff --git a/patches/server/MC-Utils.patch b/patches/server/MC-Utils.patch index e79b1d370b..960ab1be08 100644 --- a/patches/server/MC-Utils.patch +++ b/patches/server/MC-Utils.patch @@ -7622,9 +7622,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues { + private static final BiMap<net.minecraft.world.level.material.Fluid, Fluid> FLUIDTYPE_FLUID = HashBiMap.create(); private static final Map<Material, Item> MATERIAL_ITEM = new HashMap<>(); private static final Map<Material, Block> MATERIAL_BLOCK = new HashMap<>(); - private static final Map<Material, net.minecraft.world.level.material.Fluid> MATERIAL_FLUID = new HashMap<>(); + // Paper start + private static final Map<org.bukkit.entity.EntityType, net.minecraft.world.entity.EntityType<?>> ENTITY_TYPE_ENTITY_TYPES = new HashMap<>(); + private static final Map<net.minecraft.world.entity.EntityType<?>, org.bukkit.entity.EntityType> ENTITY_TYPES_ENTITY_TYPE = new HashMap<>(); diff --git a/patches/server/Timings-v2.patch b/patches/server/Timings-v2.patch index be1ca002de..f1aa454792 100644 --- a/patches/server/Timings-v2.patch +++ b/patches/server/Timings-v2.patch @@ -2038,7 +2038,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public static byte toLegacyData(BlockState data) { return CraftLegacy.toLegacyData(data); @@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues { - return CreativeCategory.BUILDING_BLOCKS; // TODO: Figure out what to do with this + return nmsItemStack.getItem().getDescriptionId(nmsItemStack); } + // Paper start diff --git a/patches/server/cache-resource-keys.patch b/patches/server/cache-resource-keys.patch index 21d3326d95..fa1667d845 100644 --- a/patches/server/cache-resource-keys.patch +++ b/patches/server/cache-resource-keys.patch @@ -38,20 +38,4 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + return registry.getHolderOrThrow(KEY_CACHE.computeIfAbsent(entity, type -> ResourceKey.create(Registries.ENTITY_TYPE, CraftNamespacedKey.toMinecraft(type.getKey())))).is(tag); // Paper - cache key } - @Override -diff --git a/src/main/java/org/bukkit/craftbukkit/tag/CraftFluidTag.java b/src/main/java/org/bukkit/craftbukkit/tag/CraftFluidTag.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/craftbukkit/tag/CraftFluidTag.java -+++ b/src/main/java/org/bukkit/craftbukkit/tag/CraftFluidTag.java -@@ -0,0 +0,0 @@ public class CraftFluidTag extends CraftTag<net.minecraft.world.level.material.F - super(registry, tag); - } - -+ private static final java.util.Map<Fluid, net.minecraft.resources.ResourceKey<net.minecraft.world.level.material.Fluid>> KEY_CACHE = Collections.synchronizedMap(new java.util.EnumMap<>(Fluid.class)); // Paper - @Override - public boolean isTagged(Fluid fluid) { -- return registry.getHolderOrThrow(net.minecraft.resources.ResourceKey.create(net.minecraft.core.Registry.FLUID_REGISTRY, org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(fluid.getKey()))).is(tag); // Paper -+ return registry.getHolderOrThrow(KEY_CACHE.computeIfAbsent(fluid, f -> net.minecraft.resources.ResourceKey.create(net.minecraft.core.registries.Registries.FLUID, org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(f.getKey())))).is(tag); // Paper - cache key - } - @Override diff --git a/work/Bukkit b/work/Bukkit index 22f8c20898..37262de84b 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 22f8c20898698bdd5fe348404a49d0cad36fef0b +Subproject commit 37262de84b9613e61809f31691e6f9db48dce0a8 diff --git a/work/CraftBukkit b/work/CraftBukkit index 39462a8985..a50301aa51 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 39462a898595280d1a1c6197c2ad66082434ba80 +Subproject commit a50301aa51aab7aa25869d921fa0c6a65eeda547