geforkt von Mirrors/Paper
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.
Dieser Commit ist enthalten in:
Ursprung
6fedaecd54
Commit
b0a676ba62
@ -2,6 +2,8 @@ package org.bukkit.inventory;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* A ItemFlag can hide some Attributes from ItemStacks
|
* 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 {
|
public enum ItemFlag {
|
||||||
|
|
||||||
@ -27,7 +29,8 @@ public enum ItemFlag {
|
|||||||
HIDE_PLACED_ON,
|
HIDE_PLACED_ON,
|
||||||
/**
|
/**
|
||||||
* Setting to show/hide potion effects, book and firework information, map
|
* 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,
|
HIDE_ADDITIONAL_TOOLTIP,
|
||||||
/**
|
/**
|
||||||
@ -37,7 +40,13 @@ public enum ItemFlag {
|
|||||||
/**
|
/**
|
||||||
* Setting to show/hide armor trim from armor.
|
* 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
|
// Paper start
|
||||||
/**
|
/**
|
||||||
* Setting to show/hide item-specific information, including, but not limited to:
|
* Setting to show/hide item-specific information, including, but not limited to:
|
||||||
|
@ -588,6 +588,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
|||||||
Object raw = args.get("meta");
|
Object raw = args.get("meta");
|
||||||
if (raw instanceof ItemMeta) {
|
if (raw instanceof ItemMeta) {
|
||||||
((ItemMeta) raw).setVersion(version);
|
((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);
|
result.setItemMeta((ItemMeta) raw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren