Interface ItemMeta
- All Superinterfaces:
Cloneable
,ConfigurationSerializable
,PersistentDataHolder
- All Known Subinterfaces:
ArmorStandMeta
,AxolotlBucketMeta
,BannerMeta
,BlockDataMeta
,BlockStateMeta
,BookMeta
,BundleMeta
,CompassMeta
,CrossbowMeta
,Damageable
,EnchantmentStorageMeta
,FireworkEffectMeta
,FireworkMeta
,KnowledgeBookMeta
,LeatherArmorMeta
,MapMeta
,MusicInstrumentMeta
,PotionMeta
,Repairable
,SkullMeta
,SpawnEggMeta
,SuspiciousStewMeta
,TropicalFishBucketMeta
An implementation will handle the creation and application for ItemMeta. This class should not be implemented by a plugin in a live environment.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
addAttributeModifier
(@NotNull Attribute attribute, @NotNull AttributeModifier modifier) Add an Attribute and it's Modifier.boolean
addEnchant
(@NotNull Enchantment ench, int level, boolean ignoreLevelRestriction) Adds the specified enchantment to this item meta.void
addItemFlags
(@NotNull ItemFlag... itemFlags) Set itemflags which should be ignored when rendering a ItemStack in the Client.clone()
Gets the display name.void
displayName
(@Nullable Component displayName) Sets the display name.Get this ItemMeta as an NBT string.Return an immutable copy of all Attributes and their modifiers in this ItemMeta.
Returns null if none exist.getAttributeModifiers
(@NotNull Attribute attribute) Return an immutable copy of allAttributeModifier
s for a givenAttribute
Return an immutable copy of allAttribute
s and theirAttributeModifier
s for a givenEquipmentSlot
.
AnyAttributeModifier
that does have have a givenEquipmentSlot
will be returned.Deprecated.Deprecated.Minecraft does not limit this to the material enum, UsegetPlaceableKeys()
as a replacementint
Gets the custom model data that is set.Deprecated.this API part has been replaced by thePersistentDataHolder
API.Gets the collection of namespaced keys that the item can destroy inGameMode.ADVENTURE
Deprecated.in favour ofdisplayName()
@NotNull net.md_5.bungee.api.chat.BaseComponent[]
Deprecated.usedisplayName()
int
Checks for the level of the specified enchantment.Returns a copy the enchantments in this ItemMeta.Get current set itemFlags.Deprecated.UsedisplayName()
and cast it to aTranslatableComponent
.getLore()
Deprecated.in favour oflore()
Deprecated.uselore()
Gets the collection of namespaced keys that the item can be placed on inGameMode.ADVENTURE
boolean
Checks for the existence of any AttributeModifiers.boolean
Checks if the specified enchantment conflicts with any enchantments in this ItemMeta.boolean
Checks for existence of custom model data.boolean
Checks for the existence of any keys that the item can destroyboolean
Checks for existence of a display name.boolean
hasEnchant
(@NotNull Enchantment ench) Checks for existence of the specified enchantment.boolean
Checks for the existence of any enchantments.boolean
hasItemFlag
(@NotNull ItemFlag flag) Check if the specified flag is present on this item.boolean
Deprecated.UsedisplayName()
and check if it is instanceof aTranslatableComponent
.boolean
hasLore()
Checks for existence of lore.boolean
Checks for the existence of any keys that the item can be placed onboolean
Return if the unbreakable tag is true.lore()
Gets the lore.void
Sets the lore.boolean
removeAttributeModifier
(@NotNull Attribute attribute) Remove allAttributeModifier
s associated with the givenAttribute
.boolean
removeAttributeModifier
(@NotNull Attribute attribute, @NotNull AttributeModifier modifier) Remove a specificAttribute
andAttributeModifier
.boolean
Remove allAttribute
s andAttributeModifier
s for a givenEquipmentSlot
.
If the givenEquipmentSlot
is null, this will remove allAttributeModifier
s that do not have an EquipmentSlot set.boolean
removeEnchant
(@NotNull Enchantment ench) Removes the specified enchantment from this item meta.void
removeItemFlags
(@NotNull ItemFlag... itemFlags) Remove specific set of itemFlags.void
setAttributeModifiers
(@Nullable Multimap<Attribute, AttributeModifier> attributeModifiers) Set allAttribute
s and theirAttributeModifier
s.void
setCanDestroy
(Set<Material> canDestroy) Deprecated.Minecraft does not limit this to the material enum, UsesetDestroyableKeys(Collection)
as a replacementvoid
setCanPlaceOn
(Set<Material> canPlaceOn) Deprecated.Minecraft does not limit this to the material enum, UsesetPlaceableKeys(Collection)
as a replacementvoid
Sets the custom model data.void
setDestroyableKeys
(@NotNull Collection<Namespaced> canDestroy) Sets the collection of namespaced keys that the item can destroy inGameMode.ADVENTURE
void
setDisplayName
(@Nullable String name) Deprecated.in favour ofdisplayName(net.kyori.adventure.text.Component)
void
setDisplayNameComponent
(@Nullable net.md_5.bungee.api.chat.BaseComponent[] component) Deprecated.void
setLocalizedName
(@Nullable String name) Deprecated.UsedisplayName(Component)
with aTranslatableComponent
.void
Deprecated.in favour oflore(List)
void
setLoreComponents
(@Nullable List<net.md_5.bungee.api.chat.BaseComponent[]> lore) Deprecated.uselore(List)
void
setPlaceableKeys
(@NotNull Collection<Namespaced> canPlaceOn) Sets the set of namespaced keys that the item can be placed on inGameMode.ADVENTURE
void
setUnbreakable
(boolean unbreakable) Sets the unbreakable tag.void
setVersion
(int version) Deprecated.internal use onlyMethods inherited from interface org.bukkit.configuration.serialization.ConfigurationSerializable
serialize
Methods inherited from interface org.bukkit.persistence.PersistentDataHolder
getPersistentDataContainer
-
Method Details
-
hasDisplayName
boolean hasDisplayName()Checks for existence of a display name.- Returns:
- true if this has a display name
-
displayName
Gets the display name.Plugins should check that
hasDisplayName()
returnstrue
before calling this method.- Returns:
- the display name
-
displayName
Sets the display name.- Parameters:
displayName
- the display name to set
-
getDisplayName
Deprecated.in favour ofdisplayName()
Gets the display name that is set.Plugins should check that hasDisplayName() returns
true
before calling this method.- Returns:
- the display name that is set
-
getDisplayNameComponent
Deprecated.usedisplayName()
Gets the display name that is set.Plugins should check that hasDisplayName() returns
true
before calling this method.- Returns:
- the display name that is set
-
setDisplayName
Deprecated.in favour ofdisplayName(net.kyori.adventure.text.Component)
Sets the display name.- Parameters:
name
- the name to set
-
setDisplayNameComponent
@Deprecated void setDisplayNameComponent(@Nullable @Nullable net.md_5.bungee.api.chat.BaseComponent[] component) Deprecated.Sets the display name.- Parameters:
component
- the name component to set
-
hasLocalizedName
Deprecated.UsedisplayName()
and check if it is instanceof aTranslatableComponent
.Checks for existence of a localized name.- Returns:
- true if this has a localized name
-
getLocalizedName
Deprecated.UsedisplayName()
and cast it to aTranslatableComponent
. No longer used by the client.Gets the localized display name that is set.Plugins should check that hasLocalizedName() returns
true
before calling this method.- Returns:
- the localized name that is set
-
setLocalizedName
Deprecated.UsedisplayName(Component)
with aTranslatableComponent
. No longer used by the client.Sets the localized name.- Parameters:
name
- the name to set
-
hasLore
boolean hasLore()Checks for existence of lore.- Returns:
- true if this has lore
-
lore
Gets the lore.Plugins should check that
hasLore()
returnstrue
before calling this method.- Returns:
- the lore
-
lore
Sets the lore.- Parameters:
lore
- the lore to set
-
getLore
Deprecated.in favour oflore()
Gets the lore that is set.Plugins should check if hasLore() returns
true
before calling this method.- Returns:
- a list of lore that is set
-
getLoreComponents
Deprecated.uselore()
Gets the lore that is set.Plugins should check if hasLore() returns
true
before calling this method.- Returns:
- a list of lore that is set
-
setLore
Deprecated.in favour oflore(List)
Sets the lore for this item. Removes lore when given null.- Parameters:
lore
- the lore that will be set
-
setLoreComponents
@Deprecated void setLoreComponents(@Nullable @Nullable List<net.md_5.bungee.api.chat.BaseComponent[]> lore) Deprecated.uselore(List)
Sets the lore for this item. Removes lore when given null.- Parameters:
lore
- the lore that will be set
-
hasCustomModelData
boolean hasCustomModelData()Checks for existence of custom model data.CustomModelData is an integer that may be associated client side with a custom item model.
- Returns:
- true if this has custom model data
-
getCustomModelData
int getCustomModelData()Gets the custom model data that is set.CustomModelData is an integer that may be associated client side with a custom item model.
Plugins should check that hasCustomModelData() returns
true
before calling this method.- Returns:
- the custom model data that is set
-
setCustomModelData
Sets the custom model data.CustomModelData is an integer that may be associated client side with a custom item model.
- Parameters:
data
- the data to set, or null to clear
-
hasEnchants
boolean hasEnchants()Checks for the existence of any enchantments.- Returns:
- true if an enchantment exists on this meta
-
hasEnchant
Checks for existence of the specified enchantment.- Parameters:
ench
- enchantment to check- Returns:
- true if this enchantment exists for this meta
-
getEnchantLevel
Checks for the level of the specified enchantment.- Parameters:
ench
- enchantment to check- Returns:
- The level that the specified enchantment has, or 0 if none
-
getEnchants
Returns a copy the enchantments in this ItemMeta.
Returns an empty map if none.- Returns:
- An immutable copy of the enchantments
-
addEnchant
Adds the specified enchantment to this item meta.- Parameters:
ench
- Enchantment to addlevel
- Level for the enchantmentignoreLevelRestriction
- this indicates the enchantment should be applied, ignoring the level limit- Returns:
- true if the item meta changed as a result of this call, false otherwise
-
removeEnchant
Removes the specified enchantment from this item meta.- Parameters:
ench
- Enchantment to remove- Returns:
- true if the item meta changed as a result of this call, false otherwise
-
hasConflictingEnchant
Checks if the specified enchantment conflicts with any enchantments in this ItemMeta.- Parameters:
ench
- enchantment to test- Returns:
- true if the enchantment conflicts, false otherwise
-
addItemFlags
Set itemflags which should be ignored when rendering a ItemStack in the Client. This Method does silently ignore double set itemFlags.- Parameters:
itemFlags
- The hideflags which shouldn't be rendered
-
removeItemFlags
Remove specific set of itemFlags. This tells the Client it should render it again. This Method does silently ignore double removed itemFlags.- Parameters:
itemFlags
- Hideflags which should be removed
-
getItemFlags
Get current set itemFlags. The collection returned is unmodifiable.- Returns:
- A set of all itemFlags set
-
hasItemFlag
Check if the specified flag is present on this item.- Parameters:
flag
- the flag to check- Returns:
- if it is present
-
isUnbreakable
boolean isUnbreakable()Return if the unbreakable tag is true. An unbreakable item will not lose durability.- Returns:
- true if the unbreakable tag is true
-
setUnbreakable
void setUnbreakable(boolean unbreakable) Sets the unbreakable tag. An unbreakable item will not lose durability.- Parameters:
unbreakable
- true if set unbreakable
-
hasAttributeModifiers
boolean hasAttributeModifiers()Checks for the existence of any AttributeModifiers.- Returns:
- true if any AttributeModifiers exist
-
getAttributeModifiers
Return an immutable copy of all Attributes and their modifiers in this ItemMeta.
Returns null if none exist.- Returns:
- an immutable
Multimap
of Attributes and their AttributeModifiers, or null if none exist
-
getAttributeModifiers
@NotNull @NotNull Multimap<Attribute,AttributeModifier> getAttributeModifiers(@NotNull @NotNull EquipmentSlot slot) Return an immutable copy of allAttribute
s and theirAttributeModifier
s for a givenEquipmentSlot
.
AnyAttributeModifier
that does have have a givenEquipmentSlot
will be returned. This is because AttributeModifiers without a slot are active in any slot.
If there are no attributes set for the given slot, an empty map will be returned.- Parameters:
slot
- theEquipmentSlot
to check- Returns:
- the immutable
Multimap
with the respective Attributes and modifiers, or an empty map if no attributes are set.
-
getAttributeModifiers
@Nullable @Nullable Collection<AttributeModifier> getAttributeModifiers(@NotNull @NotNull Attribute attribute) Return an immutable copy of allAttributeModifier
s for a givenAttribute
- Parameters:
attribute
- theAttribute
- Returns:
- an immutable collection of
AttributeModifier
s or null if no AttributeModifiers exist for the Attribute. - Throws:
NullPointerException
- if Attribute is null
-
addAttributeModifier
boolean addAttributeModifier(@NotNull @NotNull Attribute attribute, @NotNull @NotNull AttributeModifier modifier) Add an Attribute and it's Modifier. AttributeModifiers can now supportEquipmentSlot
s. If not set, theAttributeModifier
will be active in ALL slots.
TwoAttributeModifier
s that have the sameUUID
cannot exist on the same Attribute.- Parameters:
attribute
- theAttribute
to modifymodifier
- theAttributeModifier
specifying the modification- Returns:
- true if the Attribute and AttributeModifier were successfully added
- Throws:
NullPointerException
- if Attribute is nullNullPointerException
- if AttributeModifier is nullIllegalArgumentException
- if AttributeModifier already exists
-
setAttributeModifiers
void setAttributeModifiers(@Nullable @Nullable Multimap<Attribute, AttributeModifier> attributeModifiers) Set allAttribute
s and theirAttributeModifier
s. To clear all currently set Attributes and AttributeModifiers use null or an empty Multimap. If not null nor empty, this will filter all entries that are not-null and add them to the ItemStack.- Parameters:
attributeModifiers
- the new Multimap containing the Attributes and their AttributeModifiers
-
removeAttributeModifier
Remove allAttributeModifier
s associated with the givenAttribute
. This will return false if nothing was removed.- Parameters:
attribute
- attribute to remove- Returns:
- true if all modifiers were removed from a given Attribute. Returns false if no attributes were removed.
- Throws:
NullPointerException
- if Attribute is null
-
removeAttributeModifier
Remove allAttribute
s andAttributeModifier
s for a givenEquipmentSlot
.
If the givenEquipmentSlot
is null, this will remove allAttributeModifier
s that do not have an EquipmentSlot set.- Parameters:
slot
- theEquipmentSlot
to clear all Attributes and their modifiers for- Returns:
- true if all modifiers were removed that match the given EquipmentSlot.
-
removeAttributeModifier
boolean removeAttributeModifier(@NotNull @NotNull Attribute attribute, @NotNull @NotNull AttributeModifier modifier) Remove a specificAttribute
andAttributeModifier
. AttributeModifiers are matched according to theirUUID
.- Parameters:
attribute
- theAttribute
to removemodifier
- theAttributeModifier
to remove- Returns:
- if any attribute modifiers were remove
- Throws:
NullPointerException
- if the Attribute is nullNullPointerException
- if the AttributeModifier is null- See Also:
-
getAsString
Get this ItemMeta as an NBT string.This string should not be relied upon as a serializable value. If serialization is desired, the
ConfigurationSerializable
API should be used instead.- Returns:
- the NBT string
-
getCustomTagContainer
Deprecated.this API part has been replaced by thePersistentDataHolder
API. Please usePersistentDataHolder.getPersistentDataContainer()
instead of this.Returns a public custom tag container capable of storing tags on the item. Those tags will be sent to the client with all of their content, so the client is capable of reading them. This will result in the player seeing a NBT Tag notification on the item. These tags can also be modified by the client once in creative mode- Returns:
- the custom tag container
-
setVersion
Deprecated.internal use onlyInternal use only! Do not use under any circumstances!- Parameters:
version
- version
-
clone
-
getCanDestroy
Deprecated.Minecraft does not limit this to the material enum, UsegetDestroyableKeys()
as a replacementGets set of materials what given item can destroy inGameMode.ADVENTURE
- Returns:
- Set of materials
-
setCanDestroy
Deprecated.Minecraft does not limit this to the material enum, UsesetDestroyableKeys(Collection)
as a replacementSets set of materials what given item can destroy inGameMode.ADVENTURE
- Parameters:
canDestroy
- Set of materials
-
getCanPlaceOn
Deprecated.Minecraft does not limit this to the material enum, UsegetPlaceableKeys()
as a replacementGets set of materials where given item can be placed on inGameMode.ADVENTURE
- Returns:
- Set of materials
-
setCanPlaceOn
Deprecated.Minecraft does not limit this to the material enum, UsesetPlaceableKeys(Collection)
as a replacementSets set of materials where given item can be placed on inGameMode.ADVENTURE
- Parameters:
canPlaceOn
- Set of materials
-
getDestroyableKeys
Gets the collection of namespaced keys that the item can destroy inGameMode.ADVENTURE
- Returns:
- Set of
Namespaced
-
setDestroyableKeys
Sets the collection of namespaced keys that the item can destroy inGameMode.ADVENTURE
- Parameters:
canDestroy
- Collection ofNamespaced
-
getPlaceableKeys
Gets the collection of namespaced keys that the item can be placed on inGameMode.ADVENTURE
- Returns:
- Set of
Namespaced
-
setPlaceableKeys
Sets the set of namespaced keys that the item can be placed on inGameMode.ADVENTURE
- Parameters:
canPlaceOn
- Collection ofNamespaced
-
hasPlaceableKeys
boolean hasPlaceableKeys()Checks for the existence of any keys that the item can be placed on- Returns:
- true if this item has placeable keys
-
hasDestroyableKeys
boolean hasDestroyableKeys()Checks for the existence of any keys that the item can destroy- Returns:
- true if this item has destroyable keys
-
getDestroyableKeys()
as a replacement