Class ItemStack

java.lang.Object
net.minecraft.item.ItemStack

public final class ItemStack extends Object
Represents a stack of items. This is a data container that holds the item count and the stack's NBT. Logics for items (such as the action for using it) are delegated to the stack's logic container, Item. Instances can be created using one of the constructors and are usually stored in an Inventory.

Item stacks should never be compared using == operator or equals method. This also means they cannot be used as a map key. To check if an item stack is of a certain item, use isOf(Item). To compare two item stacks, use

invalid @link
#areItemsEqual
to check the item only, or areEqual(net.minecraft.item.ItemStack, net.minecraft.item.ItemStack) to also check the item count and the NBT. Use isEmpty() to check if an item stack is empty instead of doing stack == ItemStack.EMPTY.

When storing an item stack in an inventory or other places, make sure that an instance is never stored in multiple places. When two inventories hold the same instance, it will duplicate the item stack (and become two instances) when one is saved and reloaded.

NBT operations

NBT serialization

An Item Stack can be serialized with writeNbt(NbtCompound), and deserialized with fromNbt(NbtCompound).
Serialized NBT Structure
KeyTypePurpose
idNbtStringThe identifier of the item.
CountNbtByteThe count of items in the stack.
tagNbtCompoundThe item stack's custom NBT.

Custom NBT

The item stack's custom NBT may be used to store extra information, like the block entity data for shulker boxes, or the damage of a damageable item, etc.

Various methods are available to interact with the custom NBT, some methods might refer to a "sub NBT", a sub NBT is a child element of the custom NBT.

Custom NBT operations
CategoryMethodSummary
Custom NBThasNbt()Returns whether the item stack has custom NBT.
Custom NBTgetNbt()Returns the custom NBT of the item stack.
Custom NBTgetOrCreateNbt()Returns the custom NBT of the item stack, or creates one if absent, mutating the stack.
Custom NBTsetNbt(NbtCompound)Sets the custom NBT of the item stack.
Sub Custom NBTgetSubNbt(String)Returns the sub NBT compound at the specified key.
Sub Custom NBTgetOrCreateSubNbt(String)Returns the sub NBT compound at the specified key, or create one if absent, mutating the stack.
Sub Custom NBTremoveSubNbt(String)Removes the sub NBT element at the specified key.
Sub Custom NBTsetSubNbt(String, NbtElement)Sets the sub NBT element at the specified key.
Mappings:
Namespace Name
official cdt
intermediary net/minecraft/class_1799
named net/minecraft/item/ItemStack
  • Field Details

    • CODEC

      public static final com.mojang.serialization.Codec<ItemStack> CODEC
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a:Lcom/mojang/serialization/Codec;
      intermediary field_24671 Lnet/minecraft/class_1799;field_24671:Lcom/mojang/serialization/Codec;
      named CODEC Lnet/minecraft/item/ItemStack;CODEC:Lcom/mojang/serialization/Codec;
    • LOGGER

      private static final Logger LOGGER
      Mappings:
      Namespace Name Mixin selector
      official j Lcdt;j:Lorg/slf4j/Logger;
      intermediary field_8033 Lnet/minecraft/class_1799;field_8033:Lorg/slf4j/Logger;
      named LOGGER Lnet/minecraft/item/ItemStack;LOGGER:Lorg/slf4j/Logger;
    • EMPTY

      public static final ItemStack EMPTY
      The empty item stack that holds no item.

      This should never be mutated.

      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Lcdt;b:Lcdt;
      intermediary field_8037 Lnet/minecraft/class_1799;field_8037:Lnet/minecraft/class_1799;
      named EMPTY Lnet/minecraft/item/ItemStack;EMPTY:Lnet/minecraft/item/ItemStack;
    • MODIFIER_FORMAT

      public static final DecimalFormat MODIFIER_FORMAT
      Mappings:
      Namespace Name Mixin selector
      official c Lcdt;c:Ljava/text/DecimalFormat;
      intermediary field_8029 Lnet/minecraft/class_1799;field_8029:Ljava/text/DecimalFormat;
      named MODIFIER_FORMAT Lnet/minecraft/item/ItemStack;MODIFIER_FORMAT:Ljava/text/DecimalFormat;
    • ENCHANTMENTS_KEY

      public static final String ENCHANTMENTS_KEY
      The key of the enchantments in an item stack's custom NBT, whose value is "Enchantments".
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official d Lcdt;d:Ljava/lang/String;
      intermediary field_30890 Lnet/minecraft/class_1799;field_30890:Ljava/lang/String;
      named ENCHANTMENTS_KEY Lnet/minecraft/item/ItemStack;ENCHANTMENTS_KEY:Ljava/lang/String;
    • DISPLAY_KEY

      public static final String DISPLAY_KEY
      The key of the display NBT in an item stack's custom NBT, whose value is "display".
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official e Lcdt;e:Ljava/lang/String;
      intermediary field_30893 Lnet/minecraft/class_1799;field_30893:Ljava/lang/String;
      named DISPLAY_KEY Lnet/minecraft/item/ItemStack;DISPLAY_KEY:Ljava/lang/String;
    • NAME_KEY

      public static final String NAME_KEY
      The key of the item stack's name in the display NBT, whose value is "Name".
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official f Lcdt;f:Ljava/lang/String;
      intermediary field_30894 Lnet/minecraft/class_1799;field_30894:Ljava/lang/String;
      named NAME_KEY Lnet/minecraft/item/ItemStack;NAME_KEY:Ljava/lang/String;
    • LORE_KEY

      public static final String LORE_KEY
      The key of the item stack's lore in the display NBT, whose value is "Lore".
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official g Lcdt;g:Ljava/lang/String;
      intermediary field_30895 Lnet/minecraft/class_1799;field_30895:Ljava/lang/String;
      named LORE_KEY Lnet/minecraft/item/ItemStack;LORE_KEY:Ljava/lang/String;
    • DAMAGE_KEY

      public static final String DAMAGE_KEY
      The key of the damage in an item stack's custom NBT, whose value is "Damage".
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official h Lcdt;h:Ljava/lang/String;
      intermediary field_30896 Lnet/minecraft/class_1799;field_30896:Ljava/lang/String;
      named DAMAGE_KEY Lnet/minecraft/item/ItemStack;DAMAGE_KEY:Ljava/lang/String;
    • COLOR_KEY

      public static final String COLOR_KEY
      The key of the item's color in the display NBT, whose value is "color".
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official i Lcdt;i:Ljava/lang/String;
      intermediary field_30897 Lnet/minecraft/class_1799;field_30897:Ljava/lang/String;
      named COLOR_KEY Lnet/minecraft/item/ItemStack;COLOR_KEY:Ljava/lang/String;
    • UNBREAKABLE_KEY

      private static final String UNBREAKABLE_KEY
      The key of the unbreakable boolean in an item stack's custom NBT, whose value is "Unbreakable".
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official k Lcdt;k:Ljava/lang/String;
      intermediary field_30898 Lnet/minecraft/class_1799;field_30898:Ljava/lang/String;
      named UNBREAKABLE_KEY Lnet/minecraft/item/ItemStack;UNBREAKABLE_KEY:Ljava/lang/String;
    • REPAIR_COST_KEY

      private static final String REPAIR_COST_KEY
      The key of the repair cost in an item stack's custom NBT, whose value is "RepairCost".
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official l Lcdt;l:Ljava/lang/String;
      intermediary field_30899 Lnet/minecraft/class_1799;field_30899:Ljava/lang/String;
      named REPAIR_COST_KEY Lnet/minecraft/item/ItemStack;REPAIR_COST_KEY:Ljava/lang/String;
    • CAN_DESTROY_KEY

      private static final String CAN_DESTROY_KEY
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official m Lcdt;m:Ljava/lang/String;
      intermediary field_30900 Lnet/minecraft/class_1799;field_30900:Ljava/lang/String;
      named CAN_DESTROY_KEY Lnet/minecraft/item/ItemStack;CAN_DESTROY_KEY:Ljava/lang/String;
    • CAN_PLACE_ON_KEY

      private static final String CAN_PLACE_ON_KEY
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official n Lcdt;n:Ljava/lang/String;
      intermediary field_30901 Lnet/minecraft/class_1799;field_30901:Ljava/lang/String;
      named CAN_PLACE_ON_KEY Lnet/minecraft/item/ItemStack;CAN_PLACE_ON_KEY:Ljava/lang/String;
    • HIDE_FLAGS_KEY

      private static final String HIDE_FLAGS_KEY
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official o Lcdt;o:Ljava/lang/String;
      intermediary field_30902 Lnet/minecraft/class_1799;field_30902:Ljava/lang/String;
      named HIDE_FLAGS_KEY Lnet/minecraft/item/ItemStack;HIDE_FLAGS_KEY:Ljava/lang/String;
    • DISABLED_TEXT

      private static final Text DISABLED_TEXT
      Mappings:
      Namespace Name Mixin selector
      official p Lcdt;p:Lss;
      intermediary field_40211 Lnet/minecraft/class_1799;field_40211:Lnet/minecraft/class_2561;
      named DISABLED_TEXT Lnet/minecraft/item/ItemStack;DISABLED_TEXT:Lnet/minecraft/text/Text;
    • field_30903

      private static final int field_30903
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official q Lcdt;q:I
      intermediary field_30903 Lnet/minecraft/class_1799;field_30903:I
      named field_30903 Lnet/minecraft/item/ItemStack;field_30903:I
    • LORE_STYLE

      private static final Style LORE_STYLE
      Mappings:
      Namespace Name Mixin selector
      official r Lcdt;r:Lto;
      intermediary field_24092 Lnet/minecraft/class_1799;field_24092:Lnet/minecraft/class_2583;
      named LORE_STYLE Lnet/minecraft/item/ItemStack;LORE_STYLE:Lnet/minecraft/text/Style;
    • count

      private int count
      Mappings:
      Namespace Name Mixin selector
      official s Lcdt;s:I
      intermediary field_8031 Lnet/minecraft/class_1799;field_8031:I
      named count Lnet/minecraft/item/ItemStack;count:I
    • bobbingAnimationTime

      private int bobbingAnimationTime
      Mappings:
      Namespace Name Mixin selector
      official t Lcdt;t:I
      intermediary field_8030 Lnet/minecraft/class_1799;field_8030:I
      named bobbingAnimationTime Lnet/minecraft/item/ItemStack;bobbingAnimationTime:I
    • item

      @Deprecated private final Item item
      Deprecated.
      Mappings:
      Namespace Name Mixin selector
      official u Lcdt;u:Lcdp;
      intermediary field_8038 Lnet/minecraft/class_1799;field_8038:Lnet/minecraft/class_1792;
      named item Lnet/minecraft/item/ItemStack;item:Lnet/minecraft/item/Item;
    • nbt

      Represents the item stack's custom NBT.

      Stored at the key tag in the serialized item stack NBT.

      See Also:
      Mappings:
      Namespace Name Mixin selector
      official v Lcdt;v:Lqp;
      intermediary field_8040 Lnet/minecraft/class_1799;field_8040:Lnet/minecraft/class_2487;
      named nbt Lnet/minecraft/item/ItemStack;nbt:Lnet/minecraft/nbt/NbtCompound;
    • empty

      private boolean empty
      Mappings:
      Namespace Name Mixin selector
      official w Lcdt;w:Z
      intermediary field_8036 Lnet/minecraft/class_1799;field_8036:Z
      named empty Lnet/minecraft/item/ItemStack;empty:Z
    • holder

      @Nullable private @Nullable Entity holder
      Mappings:
      Namespace Name Mixin selector
      official x Lcdt;x:Lbdr;
      intermediary field_24093 Lnet/minecraft/class_1799;field_24093:Lnet/minecraft/class_1297;
      named holder Lnet/minecraft/item/ItemStack;holder:Lnet/minecraft/entity/Entity;
    • destroyChecker

      @Nullable private @Nullable BlockPredicatesChecker destroyChecker
      Mappings:
      Namespace Name Mixin selector
      official y Lcdt;y:Lcbg;
      intermediary field_34453 Lnet/minecraft/class_1799;field_34453:Lnet/minecraft/class_6538;
      named destroyChecker Lnet/minecraft/item/ItemStack;destroyChecker:Lnet/minecraft/item/BlockPredicatesChecker;
    • placeChecker

      Mappings:
      Namespace Name Mixin selector
      official z Lcdt;z:Lcbg;
      intermediary field_34454 Lnet/minecraft/class_1799;field_34454:Lnet/minecraft/class_6538;
      named placeChecker Lnet/minecraft/item/ItemStack;placeChecker:Lnet/minecraft/item/BlockPredicatesChecker;
  • Constructor Details

    • ItemStack

      public ItemStack(ItemConvertible item)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcdt;<init>(Lcjv;)V
      intermediary <init> Lnet/minecraft/class_1799;<init>(Lnet/minecraft/class_1935;)V
      named <init> Lnet/minecraft/item/ItemStack;<init>(Lnet/minecraft/item/ItemConvertible;)V
    • ItemStack

      public ItemStack(RegistryEntry<Item> entry)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcdt;<init>(Lgz;)V
      intermediary <init> Lnet/minecraft/class_1799;<init>(Lnet/minecraft/class_6880;)V
      named <init> Lnet/minecraft/item/ItemStack;<init>(Lnet/minecraft/registry/entry/RegistryEntry;)V
    • ItemStack

      private ItemStack(ItemConvertible item, int count, Optional<NbtCompound> nbt)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcdt;<init>(Lcjv;ILjava/util/Optional;)V
      intermediary <init> Lnet/minecraft/class_1799;<init>(Lnet/minecraft/class_1935;ILjava/util/Optional;)V
      named <init> Lnet/minecraft/item/ItemStack;<init>(Lnet/minecraft/item/ItemConvertible;ILjava/util/Optional;)V
    • ItemStack

      public ItemStack(RegistryEntry<Item> itemEntry, int count)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcdt;<init>(Lgz;I)V
      intermediary <init> Lnet/minecraft/class_1799;<init>(Lnet/minecraft/class_6880;I)V
      named <init> Lnet/minecraft/item/ItemStack;<init>(Lnet/minecraft/registry/entry/RegistryEntry;I)V
    • ItemStack

      public ItemStack(ItemConvertible item, int count)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcdt;<init>(Lcjv;I)V
      intermediary <init> Lnet/minecraft/class_1799;<init>(Lnet/minecraft/class_1935;I)V
      named <init> Lnet/minecraft/item/ItemStack;<init>(Lnet/minecraft/item/ItemConvertible;I)V
    • ItemStack

      private ItemStack(NbtCompound nbt)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcdt;<init>(Lqp;)V
      intermediary <init> Lnet/minecraft/class_1799;<init>(Lnet/minecraft/class_2487;)V
      named <init> Lnet/minecraft/item/ItemStack;<init>(Lnet/minecraft/nbt/NbtCompound;)V
  • Method Details

    • getTooltipData

      public Optional<TooltipData> getTooltipData()
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a()Ljava/util/Optional;
      intermediary method_32347 Lnet/minecraft/class_1799;method_32347()Ljava/util/Optional;
      named getTooltipData Lnet/minecraft/item/ItemStack;getTooltipData()Ljava/util/Optional;
    • updateEmptyState

      private void updateEmptyState()
      Mappings:
      Namespace Name Mixin selector
      official P Lcdt;P()V
      intermediary method_7957 Lnet/minecraft/class_1799;method_7957()V
      named updateEmptyState Lnet/minecraft/item/ItemStack;updateEmptyState()V
    • fromNbt

      public static ItemStack fromNbt(NbtCompound nbt)
      Returns the item stack deserialized from the NBT, or EMPTY if it fails to deserialize.
      Returns:
      the item stack deserialized from the NBT, or EMPTY if it fails to deserialize
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lqp;)Lcdt;
      intermediary method_7915 Lnet/minecraft/class_1799;method_7915(Lnet/minecraft/class_2487;)Lnet/minecraft/class_1799;
      named fromNbt Lnet/minecraft/item/ItemStack;fromNbt(Lnet/minecraft/nbt/NbtCompound;)Lnet/minecraft/item/ItemStack;
    • isEmpty

      public boolean isEmpty()
      Returns whether this item stack is empty.
      Returns:
      whether this item stack is empty
      Mappings:
      Namespace Name Mixin selector
      official b Lcdt;b()Z
      intermediary method_7960 Lnet/minecraft/class_1799;method_7960()Z
      named isEmpty Lnet/minecraft/item/ItemStack;isEmpty()Z
    • isItemEnabled

      public boolean isItemEnabled(FeatureSet enabledFeatures)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lbyx;)Z
      intermediary method_45435 Lnet/minecraft/class_1799;method_45435(Lnet/minecraft/class_7699;)Z
      named isItemEnabled Lnet/minecraft/item/ItemStack;isItemEnabled(Lnet/minecraft/resource/featuretoggle/FeatureSet;)Z
    • split

      public ItemStack split(int amount)
      Returns the copy of the stack "split" from the current stack with item count being at most amount.

      Splitting an item stack mutates this stack so that the sum of the stacks' item counts does not change. See the example below:

      
       ItemStack stack = new ItemStack(Items.APPLE, 64);
       ItemStack newStack = stack.split(10);
       // stack has 54 apples
       // newStack has 10 apples
      
       ItemStack smallStack = new ItemStack(Items.APPLE, 4);
       ItemStack newSmallStack = smallStack.split(10);
       // smallStack is now empty
       // newSmallStack has 4 apples
       
      Returns:
      the copy of the stack "split" from the current stack with item count being at most amount
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(I)Lcdt;
      intermediary method_7971 Lnet/minecraft/class_1799;method_7971(I)Lnet/minecraft/class_1799;
      named split Lnet/minecraft/item/ItemStack;split(I)Lnet/minecraft/item/ItemStack;
    • getItem

      public Item getItem()
      Returns the item of this stack.
      Returns:
      the item of this stack
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official c Lcdt;c()Lcdp;
      intermediary method_7909 Lnet/minecraft/class_1799;method_7909()Lnet/minecraft/class_1792;
      named getItem Lnet/minecraft/item/ItemStack;getItem()Lnet/minecraft/item/Item;
    • getRegistryEntry

      public RegistryEntry<Item> getRegistryEntry()
      Mappings:
      Namespace Name Mixin selector
      official d Lcdt;d()Lgz;
      intermediary method_41409 Lnet/minecraft/class_1799;method_41409()Lnet/minecraft/class_6880;
      named getRegistryEntry Lnet/minecraft/item/ItemStack;getRegistryEntry()Lnet/minecraft/registry/entry/RegistryEntry;
    • isIn

      public boolean isIn(TagKey<Item> tag)
      Returns whether the item is in tag.
      Returns:
      whether the item is in tag
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lamr;)Z
      intermediary method_31573 Lnet/minecraft/class_1799;method_31573(Lnet/minecraft/class_6862;)Z
      named isIn Lnet/minecraft/item/ItemStack;isIn(Lnet/minecraft/registry/tag/TagKey;)Z
    • isOf

      public boolean isOf(Item item)
      Returns whether the item is item.
      Returns:
      whether the item is item
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcdp;)Z
      intermediary method_31574 Lnet/minecraft/class_1799;method_31574(Lnet/minecraft/class_1792;)Z
      named isOf Lnet/minecraft/item/ItemStack;isOf(Lnet/minecraft/item/Item;)Z
    • itemMatches

      public boolean itemMatches(Predicate<RegistryEntry<Item>> predicate)
      Returns whether the item's registry entry passes the predicate.
      Returns:
      whether the item's registry entry passes the predicate
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Ljava/util/function/Predicate;)Z
      intermediary method_41407 Lnet/minecraft/class_1799;method_41407(Ljava/util/function/Predicate;)Z
      named itemMatches Lnet/minecraft/item/ItemStack;itemMatches(Ljava/util/function/Predicate;)Z
    • itemMatches

      public boolean itemMatches(RegistryEntry<Item> itemEntry)
      Returns whether the item's registry entry matches itemEntry.
      Returns:
      whether the item's registry entry matches itemEntry
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lgz;)Z
      intermediary method_41406 Lnet/minecraft/class_1799;method_41406(Lnet/minecraft/class_6880;)Z
      named itemMatches Lnet/minecraft/item/ItemStack;itemMatches(Lnet/minecraft/registry/entry/RegistryEntry;)Z
    • streamTags

      public Stream<TagKey<Item>> streamTags()
      Returns a stream of all tags the item is in.
      Returns:
      a stream of all tags the item is in
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official e Lcdt;e()Ljava/util/stream/Stream;
      intermediary method_40133 Lnet/minecraft/class_1799;method_40133()Ljava/util/stream/Stream;
      named streamTags Lnet/minecraft/item/ItemStack;streamTags()Ljava/util/stream/Stream;
    • useOnBlock

      public ActionResult useOnBlock(ItemUsageContext context)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcfw;)Lbcm;
      intermediary method_7981 Lnet/minecraft/class_1799;method_7981(Lnet/minecraft/class_1838;)Lnet/minecraft/class_1269;
      named useOnBlock Lnet/minecraft/item/ItemStack;useOnBlock(Lnet/minecraft/item/ItemUsageContext;)Lnet/minecraft/util/ActionResult;
    • getMiningSpeedMultiplier

      public float getMiningSpeedMultiplier(BlockState state)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcyt;)F
      intermediary method_7924 Lnet/minecraft/class_1799;method_7924(Lnet/minecraft/class_2680;)F
      named getMiningSpeedMultiplier Lnet/minecraft/item/ItemStack;getMiningSpeedMultiplier(Lnet/minecraft/block/BlockState;)F
    • use

      public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcjw;Lbwp;Lbcl;)Lbcn;
      intermediary method_7913 Lnet/minecraft/class_1799;method_7913(Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;Lnet/minecraft/class_1268;)Lnet/minecraft/class_1271;
      named use Lnet/minecraft/item/ItemStack;use(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/Hand;)Lnet/minecraft/util/TypedActionResult;
    • finishUsing

      public ItemStack finishUsing(World world, LivingEntity user)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcjw;Lbeg;)Lcdt;
      intermediary method_7910 Lnet/minecraft/class_1799;method_7910(Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;)Lnet/minecraft/class_1799;
      named finishUsing Lnet/minecraft/item/ItemStack;finishUsing(Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;)Lnet/minecraft/item/ItemStack;
    • writeNbt

      public NbtCompound writeNbt(NbtCompound nbt)
      Writes the serialized item stack into the given NbtCompound.
      Parameters:
      nbt - the NBT compound to write to
      Returns:
      the written NBT compound
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Lcdt;b(Lqp;)Lqp;
      intermediary method_7953 Lnet/minecraft/class_1799;method_7953(Lnet/minecraft/class_2487;)Lnet/minecraft/class_2487;
      named writeNbt Lnet/minecraft/item/ItemStack;writeNbt(Lnet/minecraft/nbt/NbtCompound;)Lnet/minecraft/nbt/NbtCompound;
    • getMaxCount

      public int getMaxCount()
      Mappings:
      Namespace Name Mixin selector
      official f Lcdt;f()I
      intermediary method_7914 Lnet/minecraft/class_1799;method_7914()I
      named getMaxCount Lnet/minecraft/item/ItemStack;getMaxCount()I
    • isStackable

      public boolean isStackable()
      Returns whether the item stack can have item count above 1.

      Stackable items must have the maximum count that is more than 1 and cannot be damaged.

      Returns:
      whether the item stack can have item count above 1
      Mappings:
      Namespace Name Mixin selector
      official g Lcdt;g()Z
      intermediary method_7946 Lnet/minecraft/class_1799;method_7946()Z
      named isStackable Lnet/minecraft/item/ItemStack;isStackable()Z
    • isDamageable

      public boolean isDamageable()
      Returns whether the item can be damaged (lose durability).

      Items with 0 max damage or item stacks with "Unbreakable" NBT set to 1b cannot be damaged.

      Returns:
      whether the item can be damaged (lose durability)
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official h Lcdt;h()Z
      intermediary method_7963 Lnet/minecraft/class_1799;method_7963()Z
      named isDamageable Lnet/minecraft/item/ItemStack;isDamageable()Z
    • isDamaged

      public boolean isDamaged()
      Returns whether the item stack is damageable and has damage.
      Returns:
      whether the item stack is damageable and has damage
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official i Lcdt;i()Z
      intermediary method_7986 Lnet/minecraft/class_1799;method_7986()Z
      named isDamaged Lnet/minecraft/item/ItemStack;isDamaged()Z
    • getDamage

      public int getDamage()
      Returns the damage (lost durability) of the item stack.

      The damage is stored in NBT under "Damage" key. Note that this method does not check if the item is damageable, unlike isDamaged().

      Returns:
      the damage (lost durability) of the item stack
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official j Lcdt;j()I
      intermediary method_7919 Lnet/minecraft/class_1799;method_7919()I
      named getDamage Lnet/minecraft/item/ItemStack;getDamage()I
    • setDamage

      public void setDamage(int damage)
      Sets the stack's damage to damage.

      This does not break the item if the damage reaches the maximum, unlike damage(int, LivingEntity, Consumer).

      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Lcdt;b(I)V
      intermediary method_7974 Lnet/minecraft/class_1799;method_7974(I)V
      named setDamage Lnet/minecraft/item/ItemStack;setDamage(I)V
    • getMaxDamage

      public int getMaxDamage()
      Mappings:
      Namespace Name Mixin selector
      official k Lcdt;k()I
      intermediary method_7936 Lnet/minecraft/class_1799;method_7936()I
      named getMaxDamage Lnet/minecraft/item/ItemStack;getMaxDamage()I
    • damage

      public boolean damage(int amount, Random random, @Nullable @Nullable ServerPlayerEntity player)
      Damages this item stack. This method should be used when a non-entity, such as a dispenser, damages the stack. This does not damage non-damageable stacks, and the unbreaking enchantment is applied to amount before damaging.

      If player is not null, this triggers Criteria.ITEM_DURABILITY_CHANGED.

      This method does not decrement the item count when the item "breaks". Callers should check the returned value and decrement themselves.

      Parameters:
      player - the player that holds the stack to be damaged, or null if inapplicable
      Returns:
      whether the stack's damage is equal to or above the maximum damage (i.e. whether the item is "broken")
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(ILaoh;Lahn;)Z
      intermediary method_7970 Lnet/minecraft/class_1799;method_7970(ILnet/minecraft/class_5819;Lnet/minecraft/class_3222;)Z
      named damage Lnet/minecraft/item/ItemStack;damage(ILnet/minecraft/util/math/random/Random;Lnet/minecraft/server/network/ServerPlayerEntity;)Z
    • damage

      public <T extends LivingEntity> void damage(int amount, T entity, Consumer<T> breakCallback)
      Damages this item stack. This method should be used when an entity, including a player, damages the stack. This does not damage non-damageable stacks, and the unbreaking enchantment is applied to amount before damaging. Additionally, if entity is a player in creative mode, the stack will not be damaged.

      If entity is a player, this triggers Criteria.ITEM_DURABILITY_CHANGED.

      If the stack's damage is equal to or above the maximum damage (i.e. the item is "broken"), this will call breakCallback, decrement the stack, and increment Stats.BROKEN if the stack is held by a player. The callback should call LivingEntity.sendEquipmentBreakStatus(net.minecraft.entity.EquipmentSlot) or LivingEntity.sendToolBreakStatus(net.minecraft.util.Hand).

      Parameters:
      entity - the entity that holds the stack to be damaged
      breakCallback - the callback that takes the entity holding the stack and is executed when the item breaks
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(ILbeg;Ljava/util/function/Consumer;)V
      intermediary method_7956 Lnet/minecraft/class_1799;method_7956(ILnet/minecraft/class_1309;Ljava/util/function/Consumer;)V
      named damage Lnet/minecraft/item/ItemStack;damage(ILnet/minecraft/entity/LivingEntity;Ljava/util/function/Consumer;)V
    • isItemBarVisible

      public boolean isItemBarVisible()
      Mappings:
      Namespace Name Mixin selector
      official l Lcdt;l()Z
      intermediary method_31578 Lnet/minecraft/class_1799;method_31578()Z
      named isItemBarVisible Lnet/minecraft/item/ItemStack;isItemBarVisible()Z
    • getItemBarStep

      public int getItemBarStep()
      Returns the length of the filled section of the durability bar in pixels (out of 13).
      Returns:
      the length of the filled section of the durability bar in pixels (out of 13)
      Mappings:
      Namespace Name Mixin selector
      official m Lcdt;m()I
      intermediary method_31579 Lnet/minecraft/class_1799;method_31579()I
      named getItemBarStep Lnet/minecraft/item/ItemStack;getItemBarStep()I
    • getItemBarColor

      public int getItemBarColor()
      Returns the color of the filled section of the durability bar.
      Returns:
      the color of the filled section of the durability bar
      Mappings:
      Namespace Name Mixin selector
      official n Lcdt;n()I
      intermediary method_31580 Lnet/minecraft/class_1799;method_31580()I
      named getItemBarColor Lnet/minecraft/item/ItemStack;getItemBarColor()I
    • onStackClicked

      public boolean onStackClicked(Slot slot, ClickType clickType, PlayerEntity player)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcax;Lbzo;Lbwp;)Z
      intermediary method_31575 Lnet/minecraft/class_1799;method_31575(Lnet/minecraft/class_1735;Lnet/minecraft/class_5536;Lnet/minecraft/class_1657;)Z
      named onStackClicked Lnet/minecraft/item/ItemStack;onStackClicked(Lnet/minecraft/screen/slot/Slot;Lnet/minecraft/util/ClickType;Lnet/minecraft/entity/player/PlayerEntity;)Z
    • onClicked

      public boolean onClicked(ItemStack stack, Slot slot, ClickType clickType, PlayerEntity player, StackReference cursorStackReference)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcdt;Lcax;Lbzo;Lbwp;Lbey;)Z
      intermediary method_31576 Lnet/minecraft/class_1799;method_31576(Lnet/minecraft/class_1799;Lnet/minecraft/class_1735;Lnet/minecraft/class_5536;Lnet/minecraft/class_1657;Lnet/minecraft/class_5630;)Z
      named onClicked Lnet/minecraft/item/ItemStack;onClicked(Lnet/minecraft/item/ItemStack;Lnet/minecraft/screen/slot/Slot;Lnet/minecraft/util/ClickType;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/inventory/StackReference;)Z
    • postHit

      public void postHit(LivingEntity target, PlayerEntity attacker)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lbeg;Lbwp;)V
      intermediary method_7979 Lnet/minecraft/class_1799;method_7979(Lnet/minecraft/class_1309;Lnet/minecraft/class_1657;)V
      named postHit Lnet/minecraft/item/ItemStack;postHit(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/entity/player/PlayerEntity;)V
    • postMine

      public void postMine(World world, BlockState state, BlockPos pos, PlayerEntity miner)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcjw;Lcyt;Lgp;Lbwp;)V
      intermediary method_7952 Lnet/minecraft/class_1799;method_7952(Lnet/minecraft/class_1937;Lnet/minecraft/class_2680;Lnet/minecraft/class_2338;Lnet/minecraft/class_1657;)V
      named postMine Lnet/minecraft/item/ItemStack;postMine(Lnet/minecraft/world/World;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/player/PlayerEntity;)V
    • isSuitableFor

      public boolean isSuitableFor(BlockState state)
      Determines whether this item can be used as a suitable tool for mining the specified block.

      Depending on block implementation, when combined together, the correct item and block may achieve a better mining speed and yield drops that would not be obtained when mining otherwise.

      Returns:
      values consistent with calls to Item.isSuitableFor(net.minecraft.block.BlockState)
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Lcdt;b(Lcyt;)Z
      intermediary method_7951 Lnet/minecraft/class_1799;method_7951(Lnet/minecraft/class_2680;)Z
      named isSuitableFor Lnet/minecraft/item/ItemStack;isSuitableFor(Lnet/minecraft/block/BlockState;)Z
    • useOnEntity

      public ActionResult useOnEntity(PlayerEntity user, LivingEntity entity, Hand hand)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lbwp;Lbeg;Lbcl;)Lbcm;
      intermediary method_7920 Lnet/minecraft/class_1799;method_7920(Lnet/minecraft/class_1657;Lnet/minecraft/class_1309;Lnet/minecraft/class_1268;)Lnet/minecraft/class_1269;
      named useOnEntity Lnet/minecraft/item/ItemStack;useOnEntity(Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/util/Hand;)Lnet/minecraft/util/ActionResult;
    • copy

      public ItemStack copy()
      Returns a copy of this item stack, including the item count, NBT, and bobbing animation time.
      Returns:
      a copy of this item stack, including the item count, NBT, and bobbing animation time
      Mappings:
      Namespace Name Mixin selector
      official o Lcdt;o()Lcdt;
      intermediary method_7972 Lnet/minecraft/class_1799;method_7972()Lnet/minecraft/class_1799;
      named copy Lnet/minecraft/item/ItemStack;copy()Lnet/minecraft/item/ItemStack;
    • copyWithCount

      public ItemStack copyWithCount(int count)
      Mappings:
      Namespace Name Mixin selector
      official c Lcdt;c(I)Lcdt;
      intermediary method_46651 Lnet/minecraft/class_1799;method_46651(I)Lnet/minecraft/class_1799;
      named copyWithCount Lnet/minecraft/item/ItemStack;copyWithCount(I)Lnet/minecraft/item/ItemStack;
    • areNbtEqual

      public static boolean areNbtEqual(ItemStack left, ItemStack right)
      Returns whether the given item stacks have equivalent NBT data.
      Returns:
      whether the given item stacks have equivalent NBT data
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcdt;Lcdt;)Z
      intermediary method_7975 Lnet/minecraft/class_1799;method_7975(Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Z
      named areNbtEqual Lnet/minecraft/item/ItemStack;areNbtEqual(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z
    • areEqual

      public static boolean areEqual(ItemStack left, ItemStack right)
      Returns whether the given item stacks are equal, including the item count and NBT.
      Returns:
      whether the given item stacks are equal, including the item count and NBT
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Lcdt;b(Lcdt;Lcdt;)Z
      intermediary method_7973 Lnet/minecraft/class_1799;method_7973(Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Z
      named areEqual Lnet/minecraft/item/ItemStack;areEqual(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z
    • isEqual

      private boolean isEqual(ItemStack stack)
      Returns whether this stack and stack are equal, including the item count and NBT.
      Returns:
      whether this stack and stack are equal, including the item count and NBT
      Mappings:
      Namespace Name Mixin selector
      official b Lcdt;b(Lcdt;)Z
      intermediary method_7968 Lnet/minecraft/class_1799;method_7968(Lnet/minecraft/class_1799;)Z
      named isEqual Lnet/minecraft/item/ItemStack;isEqual(Lnet/minecraft/item/ItemStack;)Z
    • areItemsEqualIgnoreDamage

      public static boolean areItemsEqualIgnoreDamage(ItemStack left, ItemStack right)
      Mappings:
      Namespace Name Mixin selector
      official c Lcdt;c(Lcdt;Lcdt;)Z
      intermediary method_7984 Lnet/minecraft/class_1799;method_7984(Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Z
      named areItemsEqualIgnoreDamage Lnet/minecraft/item/ItemStack;areItemsEqualIgnoreDamage(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z
    • isItemEqualIgnoreDamage

      public boolean isItemEqualIgnoreDamage(ItemStack stack)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcdt;)Z
      intermediary method_7962 Lnet/minecraft/class_1799;method_7962(Lnet/minecraft/class_1799;)Z
      named isItemEqualIgnoreDamage Lnet/minecraft/item/ItemStack;isItemEqualIgnoreDamage(Lnet/minecraft/item/ItemStack;)Z
    • canCombine

      public static boolean canCombine(ItemStack stack, ItemStack otherStack)
      Returns whether the given item stacks' items and NBT are equal.

      If this returns true, the two item stacks can be combined into one, as long as the resulting item count does not exceed the maximum item count

      Returns:
      whether the given item stacks' items and NBT are equal
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official d Lcdt;d(Lcdt;Lcdt;)Z
      intermediary method_31577 Lnet/minecraft/class_1799;method_31577(Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Z
      named canCombine Lnet/minecraft/item/ItemStack;canCombine(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z
    • getTranslationKey

      public String getTranslationKey()
      Mappings:
      Namespace Name Mixin selector
      official p Lcdt;p()Ljava/lang/String;
      intermediary method_7922 Lnet/minecraft/class_1799;method_7922()Ljava/lang/String;
      named getTranslationKey Lnet/minecraft/item/ItemStack;getTranslationKey()Ljava/lang/String;
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • inventoryTick

      public void inventoryTick(World world, Entity entity, int slot, boolean selected)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcjw;Lbdr;IZ)V
      intermediary method_7917 Lnet/minecraft/class_1799;method_7917(Lnet/minecraft/class_1937;Lnet/minecraft/class_1297;IZ)V
      named inventoryTick Lnet/minecraft/item/ItemStack;inventoryTick(Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V
    • onCraft

      public void onCraft(World world, PlayerEntity player, int amount)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcjw;Lbwp;I)V
      intermediary method_7982 Lnet/minecraft/class_1799;method_7982(Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;I)V
      named onCraft Lnet/minecraft/item/ItemStack;onCraft(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;I)V
    • getMaxUseTime

      public int getMaxUseTime()
      Mappings:
      Namespace Name Mixin selector
      official q Lcdt;q()I
      intermediary method_7935 Lnet/minecraft/class_1799;method_7935()I
      named getMaxUseTime Lnet/minecraft/item/ItemStack;getMaxUseTime()I
    • getUseAction

      public UseAction getUseAction()
      Mappings:
      Namespace Name Mixin selector
      official r Lcdt;r()Lcfk;
      intermediary method_7976 Lnet/minecraft/class_1799;method_7976()Lnet/minecraft/class_1839;
      named getUseAction Lnet/minecraft/item/ItemStack;getUseAction()Lnet/minecraft/util/UseAction;
    • onStoppedUsing

      public void onStoppedUsing(World world, LivingEntity user, int remainingUseTicks)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcjw;Lbeg;I)V
      intermediary method_7930 Lnet/minecraft/class_1799;method_7930(Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;I)V
      named onStoppedUsing Lnet/minecraft/item/ItemStack;onStoppedUsing(Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;I)V
    • isUsedOnRelease

      public boolean isUsedOnRelease()
      Mappings:
      Namespace Name Mixin selector
      official s Lcdt;s()Z
      intermediary method_7967 Lnet/minecraft/class_1799;method_7967()Z
      named isUsedOnRelease Lnet/minecraft/item/ItemStack;isUsedOnRelease()Z
    • hasNbt

      public boolean hasNbt()
      Returns whether this item stack has custom NBT.
      Returns:
      whether this item stack has custom NBT
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official t Lcdt;t()Z
      intermediary method_7985 Lnet/minecraft/class_1799;method_7985()Z
      named hasNbt Lnet/minecraft/item/ItemStack;hasNbt()Z
    • getNbt

      @Nullable public @Nullable NbtCompound getNbt()
      Returns the custom NBT of this item stack, may be null.
      Returns:
      the custom NBT of this item stack, may be null
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official u Lcdt;u()Lqp;
      intermediary method_7969 Lnet/minecraft/class_1799;method_7969()Lnet/minecraft/class_2487;
      named getNbt Lnet/minecraft/item/ItemStack;getNbt()Lnet/minecraft/nbt/NbtCompound;
    • getOrCreateNbt

      public NbtCompound getOrCreateNbt()
      Returns the custom NBT of this item stack, or creates the custom NBT if the item stack did not have a custom NBT previously, mutating the stack.

      This should not be used when reading the NBT, as this can modify the item stack. Use getNbt() with a check for null instead.

      Returns:
      the custom NBT of this item stack
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official v Lcdt;v()Lqp;
      intermediary method_7948 Lnet/minecraft/class_1799;method_7948()Lnet/minecraft/class_2487;
      named getOrCreateNbt Lnet/minecraft/item/ItemStack;getOrCreateNbt()Lnet/minecraft/nbt/NbtCompound;
    • getOrCreateSubNbt

      public NbtCompound getOrCreateSubNbt(String key)
      Returns the compound NBT at the specified key in this item stack's NBT, or a new compound added to the stack if absent.

      This should not be used when reading the NBT, as this can modify the item stack. Use getSubNbt(java.lang.String) with a check for null instead.

      Returns:
      the compound NBT at the specified key in this item stack's NBT, or a new compound added to the stack if absent
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Ljava/lang/String;)Lqp;
      intermediary method_7911 Lnet/minecraft/class_1799;method_7911(Ljava/lang/String;)Lnet/minecraft/class_2487;
      named getOrCreateSubNbt Lnet/minecraft/item/ItemStack;getOrCreateSubNbt(Ljava/lang/String;)Lnet/minecraft/nbt/NbtCompound;
    • getSubNbt

      @Nullable public @Nullable NbtCompound getSubNbt(String key)
      Returns the NBT compound at the specified key in this item stack's custom NBT, may be null.
      Returns:
      the NBT compound at the specified key in this item stack's custom NBT, may be null
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Lcdt;b(Ljava/lang/String;)Lqp;
      intermediary method_7941 Lnet/minecraft/class_1799;method_7941(Ljava/lang/String;)Lnet/minecraft/class_2487;
      named getSubNbt Lnet/minecraft/item/ItemStack;getSubNbt(Ljava/lang/String;)Lnet/minecraft/nbt/NbtCompound;
    • removeSubNbt

      public void removeSubNbt(String key)
      Removes the sub NBT element at the specified key in this item stack's custom NBT.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official c Lcdt;c(Ljava/lang/String;)V
      intermediary method_7983 Lnet/minecraft/class_1799;method_7983(Ljava/lang/String;)V
      named removeSubNbt Lnet/minecraft/item/ItemStack;removeSubNbt(Ljava/lang/String;)V
    • getEnchantments

      public NbtList getEnchantments()
      Returns an NBT list of enchantments.

      This will return an empty list for enchanted books, as the book itself is not enchanted and therefore does not store enchantments under "Enchantments" key.

      Returns:
      an NBT list of enchantments
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official w Lcdt;w()Lqv;
      intermediary method_7921 Lnet/minecraft/class_1799;method_7921()Lnet/minecraft/class_2499;
      named getEnchantments Lnet/minecraft/item/ItemStack;getEnchantments()Lnet/minecraft/nbt/NbtList;
    • setNbt

      public void setNbt(@Nullable @Nullable NbtCompound nbt)
      Sets the custom NBT of this item stack.
      Parameters:
      nbt - the custom NBT compound, may be null to reset
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official c Lcdt;c(Lqp;)V
      intermediary method_7980 Lnet/minecraft/class_1799;method_7980(Lnet/minecraft/class_2487;)V
      named setNbt Lnet/minecraft/item/ItemStack;setNbt(Lnet/minecraft/nbt/NbtCompound;)V
    • getName

      public Text getName()
      Returns the custom name of the stack if it exists, or the item's name.
      Returns:
      the custom name of the stack if it exists, or the item's name
      Mappings:
      Namespace Name Mixin selector
      official x Lcdt;x()Lss;
      intermediary method_7964 Lnet/minecraft/class_1799;method_7964()Lnet/minecraft/class_2561;
      named getName Lnet/minecraft/item/ItemStack;getName()Lnet/minecraft/text/Text;
    • setCustomName

      public ItemStack setCustomName(@Nullable @Nullable Text name)
      Sets the custom name of this item stack to name. If null is passed, this will remove the custom name (but does not remove other NBT compounds even if they are empty).
      Returns:
      this item stack
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lss;)Lcdt;
      intermediary method_7977 Lnet/minecraft/class_1799;method_7977(Lnet/minecraft/class_2561;)Lnet/minecraft/class_1799;
      named setCustomName Lnet/minecraft/item/ItemStack;setCustomName(Lnet/minecraft/text/Text;)Lnet/minecraft/item/ItemStack;
    • removeCustomName

      public void removeCustomName()
      Removes the custom name and other NBT compounds that are now empty after the removal of the custom name from this item stack.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official y Lcdt;y()V
      intermediary method_7925 Lnet/minecraft/class_1799;method_7925()V
      named removeCustomName Lnet/minecraft/item/ItemStack;removeCustomName()V
    • hasCustomName

      public boolean hasCustomName()
      Returns whether this item stack has a custom name.
      Returns:
      whether this item stack has a custom name
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official z Lcdt;z()Z
      intermediary method_7938 Lnet/minecraft/class_1799;method_7938()Z
      named hasCustomName Lnet/minecraft/item/ItemStack;hasCustomName()Z
    • getTooltip

      public List<Text> getTooltip(@Nullable @Nullable PlayerEntity player, TooltipContext context)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lbwp;Lcfi;)Ljava/util/List;
      intermediary method_7950 Lnet/minecraft/class_1799;method_7950(Lnet/minecraft/class_1657;Lnet/minecraft/class_1836;)Ljava/util/List;
      named getTooltip Lnet/minecraft/item/ItemStack;getTooltip(Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/client/item/TooltipContext;)Ljava/util/List;
    • isSectionVisible

      private static boolean isSectionVisible(int flags, ItemStack.TooltipSection tooltipSection)
      Determines whether the given tooltip section will be visible according to the given flags.
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(ILcdt$a;)Z
      intermediary method_30267 Lnet/minecraft/class_1799;method_30267(ILnet/minecraft/class_1799$class_5422;)Z
      named isSectionVisible Lnet/minecraft/item/ItemStack;isSectionVisible(ILnet/minecraft/item/ItemStack$TooltipSection;)Z
    • getHideFlags

      private int getHideFlags()
      Mappings:
      Namespace Name Mixin selector
      official Q Lcdt;Q()I
      intermediary method_30266 Lnet/minecraft/class_1799;method_30266()I
      named getHideFlags Lnet/minecraft/item/ItemStack;getHideFlags()I
    • addHideFlag

      public void addHideFlag(ItemStack.TooltipSection tooltipSection)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lcdt$a;)V
      intermediary method_30268 Lnet/minecraft/class_1799;method_30268(Lnet/minecraft/class_1799$class_5422;)V
      named addHideFlag Lnet/minecraft/item/ItemStack;addHideFlag(Lnet/minecraft/item/ItemStack$TooltipSection;)V
    • appendEnchantments

      public static void appendEnchantments(List<Text> tooltip, NbtList enchantments)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Ljava/util/List;Lqv;)V
      intermediary method_17870 Lnet/minecraft/class_1799;method_17870(Ljava/util/List;Lnet/minecraft/class_2499;)V
      named appendEnchantments Lnet/minecraft/item/ItemStack;appendEnchantments(Ljava/util/List;Lnet/minecraft/nbt/NbtList;)V
    • parseBlockTag

      private static Collection<Text> parseBlockTag(String tag)
      Mappings:
      Namespace Name Mixin selector
      official d Lcdt;d(Ljava/lang/String;)Ljava/util/Collection;
      intermediary method_7937 Lnet/minecraft/class_1799;method_7937(Ljava/lang/String;)Ljava/util/Collection;
      named parseBlockTag Lnet/minecraft/item/ItemStack;parseBlockTag(Ljava/lang/String;)Ljava/util/Collection;
    • hasGlint

      public boolean hasGlint()
      Mappings:
      Namespace Name Mixin selector
      official A Lcdt;A()Z
      intermediary method_7958 Lnet/minecraft/class_1799;method_7958()Z
      named hasGlint Lnet/minecraft/item/ItemStack;hasGlint()Z
    • getRarity

      public Rarity getRarity()
      Mappings:
      Namespace Name Mixin selector
      official B Lcdt;B()Lcek;
      intermediary method_7932 Lnet/minecraft/class_1799;method_7932()Lnet/minecraft/class_1814;
      named getRarity Lnet/minecraft/item/ItemStack;getRarity()Lnet/minecraft/util/Rarity;
    • isEnchantable

      public boolean isEnchantable()
      Returns whether this item stack can be enchanted with an enchanting table.

      This is not used for other methods of enchanting like anvils.

      Returns:
      whether this item stack can be enchanted with an enchanting table
      Mappings:
      Namespace Name Mixin selector
      official C Lcdt;C()Z
      intermediary method_7923 Lnet/minecraft/class_1799;method_7923()Z
      named isEnchantable Lnet/minecraft/item/ItemStack;isEnchantable()Z
    • addEnchantment

      public void addEnchantment(Enchantment enchantment, int level)
      Enchants this item with the given enchantment and level.

      This should not be used with enchanted books, as the book itself is not enchanted and therefore does not store enchantments under "Enchantments" key.

      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lchq;I)V
      intermediary method_7978 Lnet/minecraft/class_1799;method_7978(Lnet/minecraft/class_1887;I)V
      named addEnchantment Lnet/minecraft/item/ItemStack;addEnchantment(Lnet/minecraft/enchantment/Enchantment;I)V
    • hasEnchantments

      public boolean hasEnchantments()
      Returns whether the item stack has any enchantments.

      This will return false for enchanted books, as the book itself is not enchanted and therefore does not store enchantments under "Enchantments" key.

      Returns:
      whether the item stack has any enchantments
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official D Lcdt;D()Z
      intermediary method_7942 Lnet/minecraft/class_1799;method_7942()Z
      named hasEnchantments Lnet/minecraft/item/ItemStack;hasEnchantments()Z
    • setSubNbt

      public void setSubNbt(String key, NbtElement element)
      Sets the given NBT element in the item stack's custom NBT at the specified key.
      Parameters:
      key - the key where to put the given NbtElement
      element - the NBT element to put
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Ljava/lang/String;Lri;)V
      intermediary method_7959 Lnet/minecraft/class_1799;method_7959(Ljava/lang/String;Lnet/minecraft/class_2520;)V
      named setSubNbt Lnet/minecraft/item/ItemStack;setSubNbt(Ljava/lang/String;Lnet/minecraft/nbt/NbtElement;)V
    • isInFrame

      public boolean isInFrame()
      Returns whether the item stack is in an item frame.
      Returns:
      whether the item stack is in an item frame
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official E Lcdt;E()Z
      intermediary method_7961 Lnet/minecraft/class_1799;method_7961()Z
      named isInFrame Lnet/minecraft/item/ItemStack;isInFrame()Z
    • setHolder

      public void setHolder(@Nullable @Nullable Entity holder)
      Sets the stack's holder to holder.

      This is used by item frames and item entities, and does not need to be called for other entities.

      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lbdr;)V
      intermediary method_27320 Lnet/minecraft/class_1799;method_27320(Lnet/minecraft/class_1297;)V
      named setHolder Lnet/minecraft/item/ItemStack;setHolder(Lnet/minecraft/entity/Entity;)V
    • getFrame

      @Nullable public @Nullable ItemFrameEntity getFrame()
      Returns the item frame that holds the stack, or null if inapplicable.
      Returns:
      the item frame that holds the stack, or null if inapplicable
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official F Lcdt;F()Lbtb;
      intermediary method_7945 Lnet/minecraft/class_1799;method_7945()Lnet/minecraft/class_1533;
      named getFrame Lnet/minecraft/item/ItemStack;getFrame()Lnet/minecraft/entity/decoration/ItemFrameEntity;
    • getHolder

      @Nullable public @Nullable Entity getHolder()
      Returns the entity that holds the stack, or null if inapplicable.
      Returns:
      the entity that holds the stack, or null if inapplicable
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official G Lcdt;G()Lbdr;
      intermediary method_27319 Lnet/minecraft/class_1799;method_27319()Lnet/minecraft/class_1297;
      named getHolder Lnet/minecraft/item/ItemStack;getHolder()Lnet/minecraft/entity/Entity;
    • getRepairCost

      public int getRepairCost()
      Returns the stack's repair cost used in anvils.

      This is the the value of the "RepairCost" key in NBT.

      Returns:
      the stack's repair cost used in anvils
      Mappings:
      Namespace Name Mixin selector
      official H Lcdt;H()I
      intermediary method_7928 Lnet/minecraft/class_1799;method_7928()I
      named getRepairCost Lnet/minecraft/item/ItemStack;getRepairCost()I
    • setRepairCost

      public void setRepairCost(int repairCost)
      Sets the stack's repair cost used in anvils to repairCost.

      This is the the value of the "RepairCost" key in NBT.

      Mappings:
      Namespace Name Mixin selector
      official d Lcdt;d(I)V
      intermediary method_7927 Lnet/minecraft/class_1799;method_7927(I)V
      named setRepairCost Lnet/minecraft/item/ItemStack;setRepairCost(I)V
    • getAttributeModifiers

      public Multimap<EntityAttribute,EntityAttributeModifier> getAttributeModifiers(EquipmentSlot slot)
      Returns a multimap of attribute modifiers for slot.

      If a custom attribute modifier exists under the AttributeModifiers key, this returns those modifiers only; otherwise, this returns the item's default attribute modifier.

      Returns:
      a multimap of attribute modifiers for slot
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lbdw;)Lcom/google/common/collect/Multimap;
      intermediary method_7926 Lnet/minecraft/class_1799;method_7926(Lnet/minecraft/class_1304;)Lcom/google/common/collect/Multimap;
      named getAttributeModifiers Lnet/minecraft/item/ItemStack;getAttributeModifiers(Lnet/minecraft/entity/EquipmentSlot;)Lcom/google/common/collect/Multimap;
    • addAttributeModifier

      public void addAttributeModifier(EntityAttribute attribute, EntityAttributeModifier modifier, @Nullable @Nullable EquipmentSlot slot)
      Adds an attribute modifier to this stack.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lbfe;Lbfh;Lbdw;)V
      intermediary method_7916 Lnet/minecraft/class_1799;method_7916(Lnet/minecraft/class_1320;Lnet/minecraft/class_1322;Lnet/minecraft/class_1304;)V
      named addAttributeModifier Lnet/minecraft/item/ItemStack;addAttributeModifier(Lnet/minecraft/entity/attribute/EntityAttribute;Lnet/minecraft/entity/attribute/EntityAttributeModifier;Lnet/minecraft/entity/EquipmentSlot;)V
    • toHoverableText

      public Text toHoverableText()
      Returns a text consisting of the bracketed stack name that can be hovered to show the item stack's tooltip.
      Returns:
      a text consisting of the bracketed stack name that can be hovered to show the item stack's tooltip
      Mappings:
      Namespace Name Mixin selector
      official I Lcdt;I()Lss;
      intermediary method_7954 Lnet/minecraft/class_1799;method_7954()Lnet/minecraft/class_2561;
      named toHoverableText Lnet/minecraft/item/ItemStack;toHoverableText()Lnet/minecraft/text/Text;
    • canPlaceOn

      public boolean canPlaceOn(Registry<Block> blockRegistry, CachedBlockPosition pos)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lhm;Lcyx;)Z
      intermediary method_7944 Lnet/minecraft/class_1799;method_7944(Lnet/minecraft/class_2378;Lnet/minecraft/class_2694;)Z
      named canPlaceOn Lnet/minecraft/item/ItemStack;canPlaceOn(Lnet/minecraft/registry/Registry;Lnet/minecraft/block/pattern/CachedBlockPosition;)Z
    • canDestroy

      public boolean canDestroy(Registry<Block> blockRegistry, CachedBlockPosition pos)
      Mappings:
      Namespace Name Mixin selector
      official b Lcdt;b(Lhm;Lcyx;)Z
      intermediary method_7940 Lnet/minecraft/class_1799;method_7940(Lnet/minecraft/class_2378;Lnet/minecraft/class_2694;)Z
      named canDestroy Lnet/minecraft/item/ItemStack;canDestroy(Lnet/minecraft/registry/Registry;Lnet/minecraft/block/pattern/CachedBlockPosition;)Z
    • getBobbingAnimationTime

      public int getBobbingAnimationTime()
      Mappings:
      Namespace Name Mixin selector
      official J Lcdt;J()I
      intermediary method_7965 Lnet/minecraft/class_1799;method_7965()I
      named getBobbingAnimationTime Lnet/minecraft/item/ItemStack;getBobbingAnimationTime()I
    • setBobbingAnimationTime

      public void setBobbingAnimationTime(int bobbingAnimationTime)
      Mappings:
      Namespace Name Mixin selector
      official e Lcdt;e(I)V
      intermediary method_7912 Lnet/minecraft/class_1799;method_7912(I)V
      named setBobbingAnimationTime Lnet/minecraft/item/ItemStack;setBobbingAnimationTime(I)V
    • getCount

      public int getCount()
      Returns the count of items in this item stack.
      Returns:
      the count of items in this item stack
      Mappings:
      Namespace Name Mixin selector
      official K Lcdt;K()I
      intermediary method_7947 Lnet/minecraft/class_1799;method_7947()I
      named getCount Lnet/minecraft/item/ItemStack;getCount()I
    • setCount

      public void setCount(int count)
      Sets the count of items in this item stack.
      Parameters:
      count - the count of items
      Mappings:
      Namespace Name Mixin selector
      official f Lcdt;f(I)V
      intermediary method_7939 Lnet/minecraft/class_1799;method_7939(I)V
      named setCount Lnet/minecraft/item/ItemStack;setCount(I)V
    • increment

      public void increment(int amount)
      Increments the count of items in this item stack.
      Parameters:
      amount - the amount to increment
      Mappings:
      Namespace Name Mixin selector
      official g Lcdt;g(I)V
      intermediary method_7933 Lnet/minecraft/class_1799;method_7933(I)V
      named increment Lnet/minecraft/item/ItemStack;increment(I)V
    • decrement

      public void decrement(int amount)
      Decrements the count of items in this item stack.
      Parameters:
      amount - the amount to decrement
      Mappings:
      Namespace Name Mixin selector
      official h Lcdt;h(I)V
      intermediary method_7934 Lnet/minecraft/class_1799;method_7934(I)V
      named decrement Lnet/minecraft/item/ItemStack;decrement(I)V
    • usageTick

      public void usageTick(World world, LivingEntity user, int remainingUseTicks)
      Mappings:
      Namespace Name Mixin selector
      official b Lcdt;b(Lcjw;Lbeg;I)V
      intermediary method_7949 Lnet/minecraft/class_1799;method_7949(Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;I)V
      named usageTick Lnet/minecraft/item/ItemStack;usageTick(Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;I)V
    • onItemEntityDestroyed

      public void onItemEntityDestroyed(ItemEntity entity)
      Mappings:
      Namespace Name Mixin selector
      official a Lcdt;a(Lbti;)V
      intermediary method_33262 Lnet/minecraft/class_1799;method_33262(Lnet/minecraft/class_1542;)V
      named onItemEntityDestroyed Lnet/minecraft/item/ItemStack;onItemEntityDestroyed(Lnet/minecraft/entity/ItemEntity;)V
    • isFood

      public boolean isFood()
      Mappings:
      Namespace Name Mixin selector
      official L Lcdt;L()Z
      intermediary method_19267 Lnet/minecraft/class_1799;method_19267()Z
      named isFood Lnet/minecraft/item/ItemStack;isFood()Z
    • getDrinkSound

      public SoundEvent getDrinkSound()
      Mappings:
      Namespace Name Mixin selector
      official M Lcdt;M()Laln;
      intermediary method_21832 Lnet/minecraft/class_1799;method_21832()Lnet/minecraft/class_3414;
      named getDrinkSound Lnet/minecraft/item/ItemStack;getDrinkSound()Lnet/minecraft/sound/SoundEvent;
    • getEatSound

      public SoundEvent getEatSound()
      Mappings:
      Namespace Name Mixin selector
      official N Lcdt;N()Laln;
      intermediary method_21833 Lnet/minecraft/class_1799;method_21833()Lnet/minecraft/class_3414;
      named getEatSound Lnet/minecraft/item/ItemStack;getEatSound()Lnet/minecraft/sound/SoundEvent;
    • getEquipSound

      @Nullable public @Nullable SoundEvent getEquipSound()
      Mappings:
      Namespace Name Mixin selector
      official O Lcdt;O()Laln;
      intermediary method_31572 Lnet/minecraft/class_1799;method_31572()Lnet/minecraft/class_3414;
      named getEquipSound Lnet/minecraft/item/ItemStack;getEquipSound()Lnet/minecraft/sound/SoundEvent;