- All Superinterfaces:
DataComponent.Holder
,HoverEventSource<HoverEvent.ShowItem>
,TagReadable
public sealed interface ItemStack
extends TagReadable, DataComponent.Holder, HoverEventSource<HoverEvent.ShowItem>
Represents an immutable item to be placed inside
PlayerInventory
,
Inventory
or even on the ground ItemEntity
.
An item stack cannot be null, AIR
should be used instead.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interface
static interface
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ItemStack
Constant AIR item.static final NetworkBuffer.Type
<ItemStack> static final NetworkBuffer.Type
<ItemStack> static final NetworkBuffer.Type
<ItemStack> -
Method Summary
Modifier and TypeMethodDescriptionint
amount()
default HoverEvent
<HoverEvent.ShowItem> builder()
Converts this itemstack back into a builder (starting from the current state).static ItemStack.Builder
consume
(int amount) static ItemStack
copyWithOperator
(ItemStack itemStack, UnaryOperator<Component> operator) damage
(int amount) static ItemStack
fromItemNBT
(net.kyori.adventure.nbt.CompoundBinaryTag nbtCompound) Converts this item to an NBT tag containing the id (material), count (amount), and components.default <T> @UnknownNullability T
Reads the specified tag.default boolean
isAir()
boolean
material()
default int
static ItemStack
static ItemStack
static ItemStack
of
(Material material, int amount, DataComponentMap components) static ItemStack
of
(Material material, DataComponentMap components) static Collection
<Component> textComponents
(ItemStack itemStack) net.kyori.adventure.nbt.CompoundBinaryTag
Converts this item to an NBT tag containing the id (material), count (amount), and components (diff)with
(Consumer<ItemStack.Builder> consumer) default ItemStack
with
(DataComponent<Unit> component) Returns a new ItemStack with the givenUnit
component applied.default <T> ItemStack
with
(DataComponent<T> component, UnaryOperator<T> operator) Applies a transformation to the value of a component, only if present.<T> ItemStack
with
(DataComponent<T> component, T value) Returns a new ItemStack with the given component set to the given value.withAmount
(int amount) default ItemStack
withAmount
(IntUnaryOperator intUnaryOperator) default ItemStack
withCustomModelData
(List<Float> floats, List<Boolean> flags, List<String> strings, List<RGBLike> colors) default ItemStack
withCustomName
(Component customName) default ItemStack
withGlowing
(boolean glowing) default ItemStack
withItemModel
(String model) default ItemStack
default ItemStack
withMaterial
(Material material) default ItemStack
withMaxStackSize
(int maxStackSize) without
(DataComponent<?> component) Removes the given component from this item.default ItemStack
default <T> ItemStack
Methods inherited from interface net.minestom.server.component.DataComponent.Holder
get, get, has
Methods inherited from interface net.kyori.adventure.text.event.HoverEventSource
asHoverEvent
Methods inherited from interface net.minestom.server.tag.TagReadable
hasTag
-
Field Details
-
NETWORK_TYPE
-
UNTRUSTED_NETWORK_TYPE
-
STRICT_NETWORK_TYPE
-
CODEC
-
AIR
Constant AIR item. Should be used instead of 'null'.
-
-
Method Details
-
builder
-
of
-
of
-
of
@Contract(value="_ ,_ -> new", pure=true) static ItemStack of(Material material, DataComponentMap components) -
of
@Contract(value="_ ,_, _ -> new", pure=true) static ItemStack of(Material material, int amount, DataComponentMap components) -
fromItemNBT
Converts this item to an NBT tag containing the id (material), count (amount), and components.- Parameters:
nbtCompound
- The nbt representation of the item
-
material
-
amount
@Contract(pure=true) int amount() -
componentPatch
-
with
-
withMaterial
-
withAmount
-
withAmount
@Contract(value="_, -> new", pure=true) default ItemStack withAmount(IntUnaryOperator intUnaryOperator) -
with
Returns a new ItemStack with the given component set to the given value.
Note: this should not be used to remove components, see
without(DataComponent)
. -
with
Returns a new ItemStack with the givenUnit
component applied.- Parameters:
component
- The unit component to apply- Returns:
- A new ItemStack with the given component applied
-
with
Applies a transformation to the value of a component, only if present.- Type Parameters:
T
- The component type- Parameters:
component
- The component type to modifyoperator
- The transformation function- Returns:
- A new ItemStack if the component was transformed, otherwise this.
-
without
Removes the given component from this item. This will explicitly remove the component from the item, as opposed to reverting back to the default.
For example, if
DataComponents.FOOD
is applied to an apple, and then this method is called, the resulting itemstack will not be a food item at all, as opposed to returning to the default apple food type. Likewise, if this method is called on a default apple, it will no longer be a food item.- Parameters:
component
- The component to remove- Returns:
- A new ItemStack without the given component
-
withCustomName
-
withLore
-
withLore
-
withItemModel
-
withCustomModelData
-
withGlowing
-
withoutExtraTooltip
-
maxStackSize
@Contract(pure=true) default int maxStackSize() -
withMaxStackSize
-
withTag
-
getTag
Description copied from interface:TagReadable
Reads the specified tag.- Specified by:
getTag
in interfaceTagReadable
- Type Parameters:
T
- the tag type- Parameters:
tag
- the tag to read- Returns:
- the read tag, null if not present
-
consume
-
damage
-
isAir
@Contract(pure=true) default boolean isAir() -
isSimilar
-
builder
ItemStack.Builder builder()Converts this itemstack back into a builder (starting from the current state).- Returns:
- this itemstack, as a builder.
-
toItemNBT
net.kyori.adventure.nbt.CompoundBinaryTag toItemNBT()Converts this item to an NBT tag containing the id (material), count (amount), and components (diff)- Returns:
- The nbt representation of the item
-
asHoverEvent
- Specified by:
asHoverEvent
in interfaceHoverEventSource<HoverEvent.ShowItem>
-
textComponents
-
copyWithOperator
-