diff --git a/patches/api/Adventure.patch b/patches/api/Adventure.patch index 5c4a58981f..60ac07f447 100644 --- a/patches/api/Adventure.patch +++ b/patches/api/Adventure.patch @@ -4716,31 +4716,73 @@ diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/ja index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java -@@ -0,0 +0,0 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste - */ - boolean hasDisplayName(); +@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable; + */ + public interface ItemMeta extends Cloneable, ConfigurationSerializable, PersistentDataHolder { + // Paper start + /** ++ * Checks for existence of a custom name. ++ * ++ * @return true if this has a custom name ++ */ ++ boolean hasCustomName(); ++ ++ /** ++ * Gets the custom name. ++ * ++ *
Plugins should check that {@link #hasCustomName()} returns {@code true} before calling this method.
++ * ++ * @return the custom name ++ */ ++ net.kyori.adventure.text.@Nullable Component customName(); ++ ++ /** ++ * Sets the custom name. ++ * ++ * @param customName the custom name to set ++ */ ++ void customName(final net.kyori.adventure.text.@Nullable Component customName); ++ + /** + * Checks for existence of a display name. + * ++ * @apiNote This method is obsolete, use {@link #hasCustomName()} instead. + * @return true if this has a display name + */ +- boolean hasDisplayName(); ++ @ApiStatus.Obsolete(since = "1.21.4") ++ default boolean hasDisplayName() { ++ return this.hasCustomName(); ++ } ++ ++ /** + * Gets the display name. + * + *Plugins should check that {@link #hasDisplayName()} returns true
before calling this method.
@@ -0,0 +0,0 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
* before calling this method.
*
@@ -4859,6 +4901,79 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
void setLore(@Nullable List
+- * Plugins should check that hasCustomName() returns
++ * Plugins should check that {@link #hasCustomPotionName()} returns {@code true}
++ * before calling this method.
++ *
++ * @return the potion name that is set
++ */
++ @Nullable
++ String getCustomPotionName();
++
++ /**
++ * Sets the potion name translation suffix.
++ *
++ * @param name the name to set
++ */
++ void setCustomPotionName(@Nullable String name);
+
+ @Override
+ PotionMeta clone();
diff --git a/src/main/java/org/bukkit/inventory/meta/WritableBookMeta.java b/src/main/java/org/bukkit/inventory/meta/WritableBookMeta.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/inventory/meta/WritableBookMeta.java
diff --git a/patches/server/Adventure.patch b/patches/server/Adventure.patch
index f580a63d74..f20459e42c 100644
--- a/patches/server/Adventure.patch
+++ b/patches/server/Adventure.patch
@@ -5237,19 +5237,28 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ // Paper start
+ @Override
-+ public net.kyori.adventure.text.Component displayName() {
++ public net.kyori.adventure.text.Component customName() {
+ return displayName == null ? null : io.papermc.paper.adventure.PaperAdventure.asAdventure(displayName);
+ }
+
+ @Override
-+ public void displayName(final net.kyori.adventure.text.Component displayName) {
-+ this.displayName = displayName == null ? null : io.papermc.paper.adventure.PaperAdventure.asVanilla(displayName);
++ public void customName(final net.kyori.adventure.text.Component customName) {
++ this.displayName = customName == null ? null : io.papermc.paper.adventure.PaperAdventure.asVanilla(customName);
+ }
+ // Paper end
+
@Override
public String getDisplayName() {
return CraftChatMessage.fromComponent(this.displayName);
+@@ -0,0 +0,0 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+ }
+
+ @Override
+- public boolean hasDisplayName() {
++ public boolean hasCustomName() {
+ return this.displayName != null;
+ }
+
@@ -0,0 +0,0 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return this.itemName != null;
}
@@ -5288,6 +5297,78 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
@Override
public boolean hasRepairCost() {
return this.repairCost > 0;
+diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaPotion.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaPotion.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaPotion.java
++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaPotion.java
+@@ -0,0 +0,0 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
+
+ String name = SerializableMeta.getString(map, CraftMetaPotion.CUSTOM_NAME.BUKKIT, true);
+ if (name != null) {
+- this.setCustomName(name);
++ this.setCustomPotionName(name);
+ }
+
+ Iterable> rawEffectList = SerializableMeta.getObject(Iterable.class, map, CraftMetaPotion.POTION_EFFECTS.BUKKIT, true);
+@@ -0,0 +0,0 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
+ }
+
+ boolean isPotionEmpty() {
+- return (this.type == null) && !(this.hasCustomEffects() || this.hasColor() || this.hasCustomName());
++ return (this.type == null) && !(this.hasCustomEffects() || this.hasColor() || this.hasCustomPotionName());
+ }
+
+ @Override
+@@ -0,0 +0,0 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
+ }
+
+ @Override
+- public boolean hasCustomName() {
++ public boolean hasCustomPotionName() {
+ return this.customName != null;
+ }
+
+ @Override
+- public String getCustomName() {
++ public String getCustomPotionName() {
+ return this.customName;
+ }
+
+ @Override
+- public void setCustomName(String customName) {
++ public void setCustomPotionName(String customName) {
+ this.customName = customName;
+ }
+
+@@ -0,0 +0,0 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
+ if (this.hasColor()) {
+ hash = 73 * hash + this.color.hashCode();
+ }
+- if (this.hasCustomName()) {
++ if (this.hasCustomPotionName()) {
+ hash = 73 * hash + this.customName.hashCode();
+ }
+ if (this.hasCustomEffects()) {
+@@ -0,0 +0,0 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
+ return Objects.equals(this.type, that.type)
+ && (this.hasCustomEffects() ? that.hasCustomEffects() && this.customEffects.equals(that.customEffects) : !that.hasCustomEffects())
+ && (this.hasColor() ? that.hasColor() && this.color.equals(that.color) : !that.hasColor())
+- && (this.hasCustomName() ? that.hasCustomName() && this.customName.equals(that.customName) : !that.hasCustomName());
++ && (this.hasCustomPotionName() ? that.hasCustomPotionName() && this.customName.equals(that.customName) : !that.hasCustomPotionName());
+ }
+ return true;
+ }
+@@ -0,0 +0,0 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
+ builder.put(CraftMetaPotion.POTION_COLOR.BUKKIT, this.getColor());
+ }
+
+- if (this.hasCustomName()) {
+- builder.put(CraftMetaPotion.CUSTOM_NAME.BUKKIT, this.getCustomName());
++ if (this.hasCustomPotionName()) {
++ builder.put(CraftMetaPotion.CUSTOM_NAME.BUKKIT, this.getCustomPotionName());
+ }
+
+ if (this.hasCustomEffects()) {
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java
diff --git a/patches/server/General-ItemMeta-fixes.patch b/patches/server/General-ItemMeta-fixes.patch
index 6b12704dec..db87e0c7ad 100644
--- a/patches/server/General-ItemMeta-fixes.patch
+++ b/patches/server/General-ItemMeta-fixes.patch
@@ -1653,7 +1653,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
@@ -0,0 +0,0 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
@Override
- public void setCustomName(String customName) {
+ public void setCustomPotionName(String customName) {
+ Preconditions.checkArgument(customName == null || customName.length() <= 32767, "Custom name is longer than 32767 characters");
this.customName = customName;
}
diff --git a/patches/server/Support-components-in-ItemMeta.patch b/patches/server/Support-components-in-ItemMeta.patch
index 55d923667b..179299fddc 100644
--- a/patches/server/Support-components-in-ItemMeta.patch
+++ b/patches/server/Support-components-in-ItemMeta.patch
@@ -30,7 +30,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ }
+ // Paper end
@Override
- public boolean hasDisplayName() {
+ public boolean hasCustomName() {
return this.displayName != null;
@@ -0,0 +0,0 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return this.lore == null ? null : new ArrayListtrue
++ * Plugins should check that {@link #hasCustomPotionName()} returns {@code true}
+ * before calling this method.
+ *
++ * @deprecated conflicting name, use {@link #getCustomPotionName()}
+ * @return the potion name that is set
+ */
++ @Deprecated(forRemoval = true, since = "1.21.4")
+ @Nullable
+- String getCustomName();
++ default String getCustomName() {
++ return this.getCustomPotionName();
++ }
+
+ /**
+ * Sets the potion name translation suffix.
+ *
++ * @deprecated conflicting name, use {@link #setCustomPotionName(String)}
+ * @param name the name to set
+ */
+- void setCustomName(@Nullable String name);
++ @Deprecated(forRemoval = true, since = "1.21.4")
++ default void setCustomName(@Nullable String name) {
++ this.setCustomPotionName(name);
++ }
++
++ /**
++ * Checks for existence of a custom potion name translation suffix.
++ *
++ * @return true if this has a custom potion name
++ */
++ boolean hasCustomPotionName();
++
++ /**
++ * Gets the potion name translation suffix that is set.
++ *