Interface ItemTagType<T,Z>

Type Parameters:
T - the primary object type that is stored in the given tag
Z - the retrieved object type when applying this item tag type
All Known Implementing Classes:
ItemTagType.PrimitiveTagType

@Deprecated(since="1.14") public interface ItemTagType<T,Z>
Deprecated.
please use PersistentDataType as this part of the api is being replaced
This class represents an enum with a generic content type. It defines the types a custom item tag can have.

This interface can be used to create your own custom ItemTagType with different complex types. This may be useful for the likes of a UUIDItemTagType:


public class UUIDItemTagType implements ItemTagType<byte[], UUID> {

        {@literal @Override}
        public Class<byte[]> getPrimitiveType() {
            return byte[].class;
        }

        {@literal @Override}
        public Class<UUID> getComplexType() {
            return UUID.class;
        }

        {@literal @Override}
        public byte[] toPrimitive(UUID complex, ItemTagAdapterContext context) {
            ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
            bb.putLong(complex.getMostSignificantBits());
            bb.putLong(complex.getLeastSignificantBits());
            return bb.array();
        }

        {@literal @Override}
        public UUID fromPrimitive(byte[] primitive, ItemTagAdapterContext context) {
            ByteBuffer bb = ByteBuffer.wrap(primitive);
            long firstLong = bb.getLong();
            long secondLong = bb.getLong();
            return new UUID(firstLong, secondLong);
        }
    }
  • Field Details

  • Method Details

    • getPrimitiveType

      @NotNull Class<T> getPrimitiveType()
      Deprecated.
      Returns the primitive data type of this tag.
      Returns:
      the class
    • getComplexType

      @NotNull Class<Z> getComplexType()
      Deprecated.
      Returns the complex object type the primitive value resembles.
      Returns:
      the class type
    • toPrimitive

      @NotNull T toPrimitive(@NotNull Z complex, @NotNull ItemTagAdapterContext context)
      Deprecated.
      Returns the primitive data that resembles the complex object passed to this method.
      Parameters:
      complex - the complex object instance
      context - the context this operation is running in
      Returns:
      the primitive value
    • fromPrimitive

      @NotNull Z fromPrimitive(@NotNull T primitive, @NotNull ItemTagAdapterContext context)
      Deprecated.
      Creates a complex object based of the passed primitive value
      Parameters:
      primitive - the primitive value
      context - the context this operation is running in
      Returns:
      the complex object instance