Interface EnchantmentStorageMeta

All Superinterfaces:
Cloneable, ConfigurationSerializable, ItemMeta, PersistentDataHolder, PersistentDataViewHolder

public interface EnchantmentStorageMeta extends ItemMeta
EnchantmentMeta is specific to items that can store enchantments, as opposed to being enchanted. Material.ENCHANTED_BOOK is an example of an item with enchantment storage.
  • Method Details

    • hasStoredEnchants

      boolean hasStoredEnchants()
      Checks for the existence of any stored enchantments.
      Returns:
      true if an enchantment exists on this meta
    • hasStoredEnchant

      boolean hasStoredEnchant(@NotNull @NotNull Enchantment ench)
      Checks for storage of the specified enchantment.
      Parameters:
      ench - enchantment to check
      Returns:
      true if this enchantment is stored in this meta
    • getStoredEnchantLevel

      int getStoredEnchantLevel(@NotNull @NotNull Enchantment ench)
      Checks for the level of the stored enchantment.
      Parameters:
      ench - enchantment to check
      Returns:
      The level that the specified stored enchantment has, or 0 if none
    • getStoredEnchants

      @NotNull @NotNull Map<Enchantment,Integer> getStoredEnchants()
      Gets a copy the stored enchantments in this ItemMeta.
      Returns:
      An immutable copy of the stored enchantments
    • addStoredEnchant

      boolean addStoredEnchant(@NotNull @NotNull Enchantment ench, int level, boolean ignoreLevelRestriction)
      Stores the specified enchantment in this item meta.
      Parameters:
      ench - Enchantment to store
      level - Level for the enchantment
      ignoreLevelRestriction - 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
      Throws:
      IllegalArgumentException - if enchantment is null
    • removeStoredEnchant

      boolean removeStoredEnchant(@NotNull @NotNull Enchantment ench) throws IllegalArgumentException
      Remove the specified stored 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
      Throws:
      IllegalArgumentException - if enchantment is null
    • hasConflictingStoredEnchant

      boolean hasConflictingStoredEnchant(@NotNull @NotNull Enchantment ench)
      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
    • clone

      Specified by:
      clone in interface ItemMeta