Class Tag<T>

Type Parameters:
T - the tag type

@NonExtendable public class Tag<T> extends Object
Represents a key to retrieve or change a value.

All tags are serializable.

  • Method Details

    • getKey

      @NotNull public @NotNull String getKey()
      Returns the key used to navigate inside the holder nbt.
      the tag key
    • defaultValue

      @Contract(value="_ -> new", pure=true) public Tag<T> defaultValue(@NotNull @NotNull Supplier<T> defaultValue)
    • defaultValue

      @Contract(value="_ -> new", pure=true) public Tag<T> defaultValue(@NotNull T defaultValue)
    • map

      @Contract(value="_, _ -> new", pure=true) public <R> Tag<R> map(@NotNull @NotNull Function<T,R> readMap, @NotNull @NotNull Function<R,T> writeMap)
    • list

      @Experimental @Contract(value="-> new", pure=true) public Tag<List<T>> list()
    • path

      @Experimental @Contract(value="_ -> new", pure=true) public Tag<T> path(@NotNull @NotNull String @Nullable ... path)
    • read

      @Nullable public T read(@NotNull @NotNull org.jglrxavpok.hephaistos.nbt.NBTCompoundLike nbt)
    • write

      public void write(@NotNull @NotNull org.jglrxavpok.hephaistos.nbt.mutable.MutableNBTCompound nbtCompound, @Nullable T value)
    • writeUnsafe

      public void writeUnsafe(@NotNull @NotNull org.jglrxavpok.hephaistos.nbt.mutable.MutableNBTCompound nbtCompound, @Nullable @Nullable Object value)
    • equals

      public boolean equals(Object o)
      equals in class Object
    • hashCode

      public int hashCode()
      hashCode in class Object
    • Byte

      @NotNull public static @NotNull Tag<Byte> Byte(@NotNull @NotNull String key)
    • Boolean

      @NotNull public static @NotNull Tag<Boolean> Boolean(@NotNull @NotNull String key)
    • Short

      @NotNull public static @NotNull Tag<Short> Short(@NotNull @NotNull String key)
    • Integer

      @NotNull public static @NotNull Tag<Integer> Integer(@NotNull @NotNull String key)
    • Long

      @NotNull public static @NotNull Tag<Long> Long(@NotNull @NotNull String key)
    • Float

      @NotNull public static @NotNull Tag<Float> Float(@NotNull @NotNull String key)
    • Double

      @NotNull public static @NotNull Tag<Double> Double(@NotNull @NotNull String key)
    • String

      @NotNull public static @NotNull Tag<String> String(@NotNull @NotNull String key)
    • UUID

      @Experimental @NotNull public static @NotNull Tag<UUID> UUID(@NotNull @NotNull String key)
    • ItemStack

      @NotNull public static @NotNull Tag<ItemStack> ItemStack(@NotNull @NotNull String key)
    • Component

      @NotNull public static @NotNull Tag<Component> Component(@NotNull @NotNull String key)
    • NBT

      @NotNull public static @NotNull Tag<org.jglrxavpok.hephaistos.nbt.NBT> NBT(@NotNull @NotNull String key)
      Creates a flexible tag able to read and write any NBT objects.

      Specialized tags are recommended if the type is known as conversion will be required both way (read and write).

    • Structure

      @NotNull public static <T> @NotNull Tag<T> Structure(@NotNull @NotNull String key, @NotNull @NotNull TagSerializer<T> serializer)
      Creates a tag containing multiple fields.

      Those fields cannot be modified from an outside tag. (This is to prevent the backed object from becoming out of sync)

      Type Parameters:
      T - the tag type
      key - the tag key
      serializer - the tag serializer
      the created tag
    • View

      @NotNull public static <T> @NotNull Tag<T> View(@NotNull @NotNull TagSerializer<T> serializer)
      Specialized Structure tag affecting the src of the handler (i.e. overwrite all its data).

      Must be used with care.

    • Structure

      @Experimental @NotNull public static <T extends Record> @NotNull Tag<T> Structure(@NotNull @NotNull String key, @NotNull @NotNull Class<T> type)
    • View

      @Experimental @NotNull public static <T extends Record> @NotNull Tag<T> View(@NotNull @NotNull Class<T> type)