diff options
author | Jake Potrebic <[email protected]> | 2024-04-27 13:28:17 -0700 |
---|---|---|
committer | Jake Potrebic <[email protected]> | 2024-04-27 13:28:17 -0700 |
commit | b0a676ba62298954fb641c78bafe327f3cb294a6 (patch) | |
tree | 776d808dec24d23e9d0c9956c0591bfbbefbfdb6 /paper-api | |
parent | 6fedaecd54d1dca67542115e5e90ca1014b79db6 (diff) | |
download | Paper-b0a676ba62298954fb641c78bafe327f3cb294a6.tar.gz Paper-b0a676ba62298954fb641c78bafe327f3cb294a6.zip |
Fix ItemFlags
Adds new flag in HIDE_STORED_ENCHANTS which was split
from HIDE_ADDITIONAL_INFO. Adds a migration to account for
this, adding the new flag if the itemstack is old and had the
old flag.
Diffstat (limited to 'paper-api')
-rw-r--r-- | paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java | 13 | ||||
-rw-r--r-- | paper-api/src/main/java/org/bukkit/inventory/ItemStack.java | 7 |
2 files changed, 18 insertions, 2 deletions
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java b/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java index 5b8dac777b..1af15fd327 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java @@ -2,6 +2,8 @@ package org.bukkit.inventory; /** * A ItemFlag can hide some Attributes from ItemStacks + * @apiNote Setting these without also setting the data they are hiding + * may not result in the item flag being persisted in the ItemMeta/ItemStack. */ public enum ItemFlag { @@ -27,7 +29,8 @@ public enum ItemFlag { HIDE_PLACED_ON, /** * Setting to show/hide potion effects, book and firework information, map - * tooltips, patterns of banners, and enchantments of enchanted books. + * tooltips, patterns of banners. + * @see #HIDE_STORED_ENCHANTS HIDE_STORED_ENCHANTS for hiding stored enchants (like on enchanted books) */ HIDE_ADDITIONAL_TOOLTIP, /** @@ -37,7 +40,13 @@ public enum ItemFlag { /** * Setting to show/hide armor trim from armor. */ - HIDE_ARMOR_TRIM; + HIDE_ARMOR_TRIM, + /** + * Setting to show/hide stored enchants on an item, such as enchantments + * on an enchanted book. + */ + HIDE_STORED_ENCHANTS, + ; // Paper start /** * Setting to show/hide item-specific information, including, but not limited to: diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java b/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java index 4bb051af04..10b913490e 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java @@ -588,6 +588,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat Object raw = args.get("meta"); if (raw instanceof ItemMeta) { ((ItemMeta) raw).setVersion(version); + // Paper start - for pre 1.20.5 itemstacks, add HIDE_STORED_ENCHANTS flag if HIDE_ADDITIONAL_TOOLTIP is set + if (version < 3837) { // 1.20.5 + if (((ItemMeta) raw).hasItemFlag(ItemFlag.HIDE_ADDITIONAL_TOOLTIP)) { + ((ItemMeta) raw).addItemFlags(ItemFlag.HIDE_STORED_ENCHANTS); + } + } + // Paper end result.setItemMeta((ItemMeta) raw); } } |