Interface ItemVariant

All Superinterfaces:
TransferVariant<Item>

@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.

  • 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).