Interface ItemVariant

All Superinterfaces:
TransferVariant<Item>

@Experimental @NonExtendable public interface ItemVariant extends TransferVariant<Item>
An immutable count-less ItemStack, i.e. an immutable association of an item and an optional NBT compound tag.

Do not implement, use the static of(...) functions instead.

Experimental feature, we reserve the right to remove or change it without further notice. The transfer API is a complex addition, and we want to be able to correct possible design mistakes.

  • Method Details

    • blank

      static ItemVariant blank()
      Retrieve a blank ItemVariant.
    • of

      static ItemVariant of(ItemStack stack)
      Retrieve an ItemVariant with the item and tag of a stack.
    • of

      static ItemVariant of(ItemConvertible item)
      Retrieve an ItemVariant with an item and without a tag.
    • of

      static ItemVariant of(ItemConvertible item, @Nullable @Nullable NbtCompound tag)
      Retrieve an ItemVariant with an item and an optional tag.
    • matches

      default boolean matches(ItemStack stack)
      Return true if the item and tag of this variant match those of the passed stack, and false otherwise.
    • getItem

      default Item getItem()
      Return the item of this variant.
    • toStack

      default ItemStack toStack()
      Create a new item stack with count 1 from this variant.
    • toStack

      default ItemStack toStack(int count)
      Create a new item stack from this variant.
      Parameters:
      count - The count of the returned stack. It may lead to counts higher than maximum stack size.
    • fromNbt

      static ItemVariant fromNbt(NbtCompound nbt)
      Deserialize a variant from an NBT compound tag, assuming it was serialized using TransferVariant.toNbt(). If an error occurs during deserialization, it will be logged with the DEBUG level, and a blank variant will be returned.
    • fromPacket

      static ItemVariant fromPacket(PacketByteBuf buf)
      Write a variant from a packet byte buffer, assuming it was serialized using TransferVariant.toPacket(net.minecraft.network.PacketByteBuf).