Interface CustomItemTagContainer


@Deprecated public interface CustomItemTagContainer
Deprecated.
this API part has been replaced by the PersistentDataHolder API. Please use PersistentDataHolder instead of this.
This interface represents a map like object, capable of storing custom tags in it.
  • Method Details

    • setCustomTag

      <T, Z> void setCustomTag(@NotNull @NotNull NamespacedKey key, @NotNull @NotNull ItemTagType<T,Z> type, @NotNull Z value)
      Deprecated.
      Stores a custom value on the ItemMeta. This API cannot be used to manipulate minecraft tags, as the values will be stored using your namespace. This method will override any existing value the meta may have stored under the provided key.
      Type Parameters:
      T - the generic java type of the tag value
      Z - the generic type of the object to store
      Parameters:
      key - the key this value will be stored under
      type - the type this item tag uses
      value - the value stored in the tag
      Throws:
      NullPointerException - if the key is null
      NullPointerException - if the type is null
      NullPointerException - if the value is null. Removing a custom tag should be done using removeCustomTag(org.bukkit.NamespacedKey)
      IllegalArgumentException - if no suitable adapter will be found for the ItemTagType.getPrimitiveType()
    • hasCustomTag

      <T, Z> boolean hasCustomTag(@NotNull @NotNull NamespacedKey key, @NotNull @NotNull ItemTagType<T,Z> type)
      Deprecated.
      Returns if the item meta has a custom tag registered matching the provided parameters. This method will only return if the found value has the same primitive data type as the provided key. Storing a value using a custom ItemTagType implementation will not store the complex data type. Therefore storing a UUID (by storing a byte[]) will match hasCustomTag("key" , ItemTagType.BYTE_ARRAY). Likewise a stored byte[] will always match your UUID ItemTagType even if it is not 16 bytes long. This method is only usable for custom object keys. Overwriting existing tags, like the the display name, will not work as the values are stored using your namespace.
      Type Parameters:
      T - the generic type of the stored primitive
      Z - the generic type of the eventually created complex object
      Parameters:
      key - the key the value is stored under
      type - the type which primitive storage type has to match the value
      Returns:
      if a value
      Throws:
      NullPointerException - if the key to look up is null
      NullPointerException - if the type to cast the found object to is null
    • getCustomTag

      @Nullable <T, Z> Z getCustomTag(@NotNull @NotNull NamespacedKey key, @NotNull @NotNull ItemTagType<T,Z> type)
      Deprecated.
      Returns the custom tag's value that is stored on the item.
      Type Parameters:
      T - the generic type of the stored primitive
      Z - the generic type of the eventually created complex object
      Parameters:
      key - the key to look up in the custom tag map
      type - the type the value must have and will be casted to
      Returns:
      the value or null if no value was mapped under the given value
      Throws:
      NullPointerException - if the key to look up is null
      NullPointerException - if the type to cast the found object to is null
      IllegalArgumentException - if the value exists under the given key, but cannot be access using the given type
      IllegalArgumentException - if no suitable adapter will be found for the ItemTagType.getPrimitiveType()
    • removeCustomTag

      void removeCustomTag(@NotNull @NotNull NamespacedKey key)
      Deprecated.
      Removes a custom key from the item meta.
      Parameters:
      key - the key
      Throws:
      NullPointerException - if the provided key is null
    • isEmpty

      boolean isEmpty()
      Deprecated.
      Returns if the container instance is empty, therefore has no entries inside it.
      Returns:
      the boolean
    • getAdapterContext

      Deprecated.
      Returns the adapter context this tag container uses.
      Returns:
      the tag context