CLASS net/minecraft/class_1799 net/minecraft/item/ItemStack COMMENT Represents a stack of items. This is a data container that holds the item count COMMENT and the stack's NBT. Logics for items (such as the action for using it) are delegated COMMENT to the stack's logic container, {@link Item}. Instances can be created using one of COMMENT the constructors and are usually stored in an {@link net.minecraft.inventory.Inventory}. COMMENT COMMENT

Item stacks should never be compared using {@code ==} operator or {@code equals} COMMENT method. This also means they cannot be used as a map key. To check if an item stack COMMENT is of a certain item, use {@link #isOf(Item)}. To compare two item stacks, use {@link COMMENT #areItemsEqual} to check the item only, or {@link #areEqual} to also check the item COMMENT count and the NBT. Use {@link #isEmpty} to check if an item stack is empty instead of COMMENT doing {@code stack == ItemStack.EMPTY}. COMMENT COMMENT

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

NBT operations

COMMENT COMMENT

NBT serialization

COMMENT COMMENT An Item Stack can be serialized with {@link #writeNbt(NbtCompound)}, and deserialized with {@link #fromNbt(NbtCompound)}. COMMENT COMMENT
COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT
Serialized NBT Structure
KeyTypePurpose
{@code id}{@link net.minecraft.nbt.NbtString}The identifier of the item.
{@code Count}{@link net.minecraft.nbt.NbtByte}The count of items in the stack.
{@code tag}{@link NbtCompound}The item stack's custom NBT.
COMMENT
COMMENT COMMENT

Custom NBT

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

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

COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT
Custom NBT operations
CategoryMethodSummary
Custom NBT{@link #hasNbt()}Returns whether the item stack has custom NBT.
Custom NBT{@link #getNbt()}Returns the custom NBT of the item stack.
Custom NBT{@link #getOrCreateNbt()}Returns the custom NBT of the item stack, or creates one if absent, mutating the stack.
Custom NBT{@link #setNbt(NbtCompound)}Sets the custom NBT of the item stack.
Sub Custom NBT{@link #getSubNbt(String)}Returns the sub NBT compound at the specified key.
Sub Custom NBT{@link #getOrCreateSubNbt(String)}Returns the sub NBT compound at the specified key, or create one if absent, mutating the stack.
Sub Custom NBT{@link #removeSubNbt(String)}Removes the sub NBT element at the specified key.
Sub Custom NBT{@link #setSubNbt(String, NbtElement)}Sets the sub NBT element at the specified key.
COMMENT
FIELD field_24092 LORE_STYLE Lnet/minecraft/class_2583; FIELD field_24093 holder Lnet/minecraft/class_1297; FIELD field_24671 CODEC Lcom/mojang/serialization/Codec; FIELD field_30890 ENCHANTMENTS_KEY Ljava/lang/String; COMMENT The key of the enchantments in an item stack's custom NBT, whose value is {@value}. FIELD field_30893 DISPLAY_KEY Ljava/lang/String; COMMENT The key of the display NBT in an item stack's custom NBT, whose value is {@value}. FIELD field_30894 NAME_KEY Ljava/lang/String; COMMENT The key of the item stack's name in the {@linkplain #DISPLAY_KEY display NBT}, whose value is {@value}. FIELD field_30895 LORE_KEY Ljava/lang/String; COMMENT The key of the item stack's lore in the {@linkplain #DISPLAY_KEY display NBT}, whose value is {@value}. FIELD field_30896 DAMAGE_KEY Ljava/lang/String; COMMENT The key of the damage in an item stack's custom NBT, whose value is {@value}. FIELD field_30897 COLOR_KEY Ljava/lang/String; COMMENT The key of the item's color in the {@linkplain #DISPLAY_KEY display NBT}, whose value is {@value}. FIELD field_30898 UNBREAKABLE_KEY Ljava/lang/String; COMMENT The key of the unbreakable boolean in an item stack's custom NBT, whose value is {@value}. FIELD field_30899 REPAIR_COST_KEY Ljava/lang/String; COMMENT The key of the repair cost in an item stack's custom NBT, whose value is {@value}. FIELD field_30900 CAN_DESTROY_KEY Ljava/lang/String; FIELD field_30901 CAN_PLACE_ON_KEY Ljava/lang/String; FIELD field_30902 HIDE_FLAGS_KEY Ljava/lang/String; FIELD field_34453 destroyChecker Lnet/minecraft/class_6538; FIELD field_34454 placeChecker Lnet/minecraft/class_6538; FIELD field_40211 DISABLED_TEXT Lnet/minecraft/class_2561; FIELD field_8029 MODIFIER_FORMAT Ljava/text/DecimalFormat; FIELD field_8030 bobbingAnimationTime I FIELD field_8031 count I FIELD field_8033 LOGGER Lorg/slf4j/Logger; FIELD field_8036 empty Z FIELD field_8037 EMPTY Lnet/minecraft/class_1799; COMMENT The empty item stack that holds no item. COMMENT COMMENT

This should never be mutated. COMMENT COMMENT @see ItemStack#isEmpty FIELD field_8038 item Lnet/minecraft/class_1792; FIELD field_8040 nbt Lnet/minecraft/class_2487; COMMENT Represents the item stack's custom NBT. COMMENT

COMMENT Stored at the key {@code tag} in the serialized item stack NBT. COMMENT COMMENT @see Item Stack NBT Operations METHOD (Lnet/minecraft/class_1935;)V ARG 1 item METHOD (Lnet/minecraft/class_1935;I)V ARG 1 item ARG 2 count METHOD (Lnet/minecraft/class_1935;ILjava/util/Optional;)V ARG 1 item ARG 2 count ARG 3 nbt METHOD (Lnet/minecraft/class_2487;)V ARG 1 nbt METHOD (Lnet/minecraft/class_6880;)V ARG 1 entry METHOD (Lnet/minecraft/class_6880;I)V ARG 1 itemEntry ARG 2 count METHOD method_17869 (Ljava/util/List;Lnet/minecraft/class_2487;Lnet/minecraft/class_1887;)V ARG 2 e METHOD method_17870 appendEnchantments (Ljava/util/List;Lnet/minecraft/class_2499;)V ARG 0 tooltip ARG 1 enchantments METHOD method_19267 isFood ()Z METHOD method_21832 getDrinkSound ()Lnet/minecraft/class_3414; METHOD method_21833 getEatSound ()Lnet/minecraft/class_3414; METHOD method_26963 (Ljava/text/DecimalFormat;)V ARG 0 decimalFormat METHOD method_27319 getHolder ()Lnet/minecraft/class_1297; COMMENT {@return the entity that holds the stack, or {@code null} if inapplicable} COMMENT COMMENT @see #isInFrame COMMENT @see #getFrame COMMENT @see #setHolder METHOD method_27320 setHolder (Lnet/minecraft/class_1297;)V COMMENT Sets the stack's holder to {@code holder}. COMMENT COMMENT

This is used by item frames and item entities, and does not need to be called COMMENT for other entities. COMMENT COMMENT @see #isInFrame COMMENT @see #getFrame COMMENT @see #getHolder ARG 1 holder METHOD method_28376 (Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App; ARG 0 instance METHOD method_28377 (Lnet/minecraft/class_1799;)Ljava/util/Optional; ARG 0 stack METHOD method_28378 (Lnet/minecraft/class_1799;)Ljava/lang/Integer; ARG 0 stack METHOD method_28379 (Lnet/minecraft/class_1799;)Lnet/minecraft/class_1792; ARG 0 stack METHOD method_30266 getHideFlags ()I METHOD method_30267 isSectionVisible (ILnet/minecraft/class_1799$class_5422;)Z COMMENT Determines whether the given tooltip section will be visible according to the given flags. ARG 0 flags ARG 1 tooltipSection METHOD method_30268 addHideFlag (Lnet/minecraft/class_1799$class_5422;)V ARG 1 tooltipSection METHOD method_31572 getEquipSound ()Lnet/minecraft/class_3414; METHOD method_31573 isIn (Lnet/minecraft/class_6862;)Z COMMENT {@return whether the item is in {@code tag}} ARG 1 tag METHOD method_31574 isOf (Lnet/minecraft/class_1792;)Z COMMENT {@return whether the item is {@code item}} ARG 1 item METHOD method_31575 onStackClicked (Lnet/minecraft/class_1735;Lnet/minecraft/class_5536;Lnet/minecraft/class_1657;)Z ARG 1 slot ARG 2 clickType ARG 3 player METHOD method_31576 onClicked (Lnet/minecraft/class_1799;Lnet/minecraft/class_1735;Lnet/minecraft/class_5536;Lnet/minecraft/class_1657;Lnet/minecraft/class_5630;)Z ARG 1 stack ARG 2 slot ARG 3 clickType ARG 4 player ARG 5 cursorStackReference METHOD method_31577 canCombine (Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Z COMMENT {@return whether the given item stacks' items and NBT are equal} COMMENT COMMENT

If this returns {@code true}, the two item stacks can be combined into one, COMMENT as long as the resulting item count does not exceed {@linkplain Item#getMaxCount COMMENT the maximum item count} COMMENT COMMENT @see #areEqual COMMENT @see #areItemsEqual ARG 0 stack ARG 1 otherStack METHOD method_31578 isItemBarVisible ()Z METHOD method_31579 getItemBarStep ()I COMMENT {@return the length of the filled section of the durability bar in pixels (out of 13)} METHOD method_31580 getItemBarColor ()I COMMENT {@return the color of the filled section of the durability bar} METHOD method_32347 getTooltipData ()Ljava/util/Optional; METHOD method_33262 onItemEntityDestroyed (Lnet/minecraft/class_1542;)V ARG 1 entity METHOD method_40133 streamTags ()Ljava/util/stream/Stream; COMMENT {@return a stream of all tags the item is in} COMMENT COMMENT @see #isIn(TagKey) METHOD method_41406 itemMatches (Lnet/minecraft/class_6880;)Z COMMENT {@return whether the item's registry entry matches {@code itemEntry}} COMMENT COMMENT @see #itemMatches(Predicate) COMMENT @see #isOf(Item) ARG 1 itemEntry METHOD method_41407 itemMatches (Ljava/util/function/Predicate;)Z COMMENT {@return whether the item's registry entry passes the {@code predicate}} COMMENT COMMENT @see #itemMatches(RegistryEntry) COMMENT @see #isOf(Item) ARG 1 predicate METHOD method_41409 getRegistryEntry ()Lnet/minecraft/class_6880; METHOD method_45435 isItemEnabled (Lnet/minecraft/class_7699;)Z ARG 1 enabledFeatures METHOD method_46651 copyWithCount (I)Lnet/minecraft/class_1799; ARG 1 count METHOD method_7909 getItem ()Lnet/minecraft/class_1792; COMMENT {@return the item of this stack} COMMENT COMMENT @see #isOf(Item) METHOD method_7910 finishUsing (Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;)Lnet/minecraft/class_1799; ARG 1 world ARG 2 user METHOD method_7911 getOrCreateSubNbt (Ljava/lang/String;)Lnet/minecraft/class_2487; COMMENT {@return the compound NBT at the specified key in this item stack's NBT, or a COMMENT new compound added to the stack if absent} COMMENT COMMENT

This should not be used when reading the NBT, as this can modify the item stack. COMMENT Use {@link #getSubNbt} with a check for {@code null} instead. COMMENT COMMENT @see Item Stack NBT Operations ARG 1 key METHOD method_7912 setBobbingAnimationTime (I)V ARG 1 bobbingAnimationTime METHOD method_7913 use (Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;Lnet/minecraft/class_1268;)Lnet/minecraft/class_1271; ARG 1 world ARG 2 user ARG 3 hand METHOD method_7914 getMaxCount ()I METHOD method_7915 fromNbt (Lnet/minecraft/class_2487;)Lnet/minecraft/class_1799; COMMENT {@return the item stack deserialized from the NBT, or {@link #EMPTY} if COMMENT it fails to deserialize} COMMENT COMMENT @see Item Stack NBT Operations ARG 0 nbt METHOD method_7916 addAttributeModifier (Lnet/minecraft/class_1320;Lnet/minecraft/class_1322;Lnet/minecraft/class_1304;)V COMMENT Adds an attribute modifier to this stack. COMMENT COMMENT @see #getAttributeModifiers ARG 1 attribute ARG 2 modifier ARG 3 slot METHOD method_7917 inventoryTick (Lnet/minecraft/class_1937;Lnet/minecraft/class_1297;IZ)V ARG 1 world ARG 2 entity ARG 3 slot ARG 4 selected METHOD method_7919 getDamage ()I COMMENT {@return the damage (lost durability) of the item stack} COMMENT COMMENT

The damage is stored in NBT under {@value #DAMAGE_KEY} key. Note that this method COMMENT does not check if the item is {@linkplain #isDamageable damageable}, unlike {@link COMMENT #isDamaged}. COMMENT COMMENT @see #isDamageable COMMENT @see #isDamaged COMMENT @see #setDamage METHOD method_7920 useOnEntity (Lnet/minecraft/class_1657;Lnet/minecraft/class_1309;Lnet/minecraft/class_1268;)Lnet/minecraft/class_1269; ARG 1 user ARG 2 entity ARG 3 hand METHOD method_7921 getEnchantments ()Lnet/minecraft/class_2499; COMMENT {@return an NBT list of enchantments} COMMENT COMMENT

This will return an empty list for enchanted books, as the book itself is not COMMENT enchanted and therefore does not store enchantments under {@value #ENCHANTMENTS_KEY} key. COMMENT COMMENT @see net.minecraft.enchantment.EnchantmentHelper#getLevel COMMENT @see #addEnchantment COMMENT @see #hasEnchantments METHOD method_7922 getTranslationKey ()Ljava/lang/String; METHOD method_7923 isEnchantable ()Z COMMENT {@return whether this item stack can be enchanted with an enchanting table} COMMENT COMMENT

This is not used for other methods of enchanting like anvils. METHOD method_7924 getMiningSpeedMultiplier (Lnet/minecraft/class_2680;)F ARG 1 state METHOD method_7925 removeCustomName ()V COMMENT Removes the custom name and other NBT compounds that are now empty after the COMMENT removal of the custom name from this item stack. COMMENT COMMENT @see #setCustomName COMMENT @see #hasCustomName METHOD method_7926 getAttributeModifiers (Lnet/minecraft/class_1304;)Lcom/google/common/collect/Multimap; COMMENT {@return a multimap of attribute modifiers for {@code slot}} COMMENT COMMENT

If a custom attribute modifier exists under the {@code AttributeModifiers} key, COMMENT this returns those modifiers only; otherwise, this returns the item's default COMMENT attribute modifier. COMMENT COMMENT @see Item#getAttributeModifiers COMMENT @see #addAttributeModifier ARG 1 slot METHOD method_7927 setRepairCost (I)V COMMENT Sets the stack's repair cost used in anvils to {@code repairCost}. COMMENT COMMENT

This is the the value of the {@value #REPAIR_COST_KEY} key in NBT. ARG 1 repairCost METHOD method_7928 getRepairCost ()I COMMENT {@return the stack's repair cost used in anvils} COMMENT COMMENT

This is the the value of the {@value #REPAIR_COST_KEY} key in NBT. METHOD method_7930 onStoppedUsing (Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;I)V ARG 1 world ARG 2 user ARG 3 remainingUseTicks METHOD method_7932 getRarity ()Lnet/minecraft/class_1814; METHOD method_7933 increment (I)V COMMENT Increments the count of items in this item stack. ARG 1 amount COMMENT the amount to increment METHOD method_7934 decrement (I)V COMMENT Decrements the count of items in this item stack. ARG 1 amount COMMENT the amount to decrement METHOD method_7935 getMaxUseTime ()I METHOD method_7936 getMaxDamage ()I METHOD method_7937 parseBlockTag (Ljava/lang/String;)Ljava/util/Collection; ARG 0 tag METHOD method_7938 hasCustomName ()Z COMMENT {@return whether this item stack has a custom name} COMMENT COMMENT @see #setCustomName COMMENT @see #removeCustomName METHOD method_7939 setCount (I)V COMMENT Sets the count of items in this item stack. ARG 1 count COMMENT the count of items METHOD method_7940 canDestroy (Lnet/minecraft/class_2378;Lnet/minecraft/class_2694;)Z ARG 1 blockRegistry ARG 2 pos METHOD method_7941 getSubNbt (Ljava/lang/String;)Lnet/minecraft/class_2487; COMMENT {@return the NBT compound at the specified key in this item stack's custom NBT, may be {@code null}} COMMENT COMMENT @see Item Stack NBT Operations ARG 1 key METHOD method_7942 hasEnchantments ()Z COMMENT {@return whether the item stack has any enchantments} COMMENT COMMENT

This will return {@code false} for enchanted books, as the book itself is not COMMENT enchanted and therefore does not store enchantments under {@value #ENCHANTMENTS_KEY} key. COMMENT COMMENT @see #getEnchantments METHOD method_7944 canPlaceOn (Lnet/minecraft/class_2378;Lnet/minecraft/class_2694;)Z ARG 1 blockRegistry ARG 2 pos METHOD method_7945 getFrame ()Lnet/minecraft/class_1533; COMMENT {@return the item frame that holds the stack, or {@code null} if inapplicable} COMMENT COMMENT @see #isInFrame COMMENT @see #setHolder COMMENT @see #getHolder METHOD method_7946 isStackable ()Z COMMENT {@return whether the item stack can have item count above {@code 1}} COMMENT COMMENT

Stackable items must have {@linkplain Item#getMaxCount the maximum count} that is more COMMENT than {@code 1} and cannot be damaged. METHOD method_7947 getCount ()I COMMENT {@return the count of items in this item stack} METHOD method_7948 getOrCreateNbt ()Lnet/minecraft/class_2487; COMMENT Returns the custom NBT of this item stack, or creates the custom NBT if the COMMENT item stack did not have a custom NBT previously, mutating the stack. COMMENT COMMENT

This should not be used when reading the NBT, as this can modify the item stack. COMMENT Use {@link #getNbt} with a check for {@code null} instead. COMMENT COMMENT @return the custom NBT of this item stack COMMENT COMMENT @see Item Stack NBT Operations METHOD method_7949 usageTick (Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;I)V ARG 1 world ARG 2 user ARG 3 remainingUseTicks METHOD method_7950 getTooltip (Lnet/minecraft/class_1657;Lnet/minecraft/class_1836;)Ljava/util/List; ARG 1 player ARG 2 context METHOD method_7951 isSuitableFor (Lnet/minecraft/class_2680;)Z COMMENT Determines whether this item can be used as a suitable tool for mining the specified block. COMMENT

COMMENT Depending on block implementation, when combined together, the correct item and block may achieve a better mining speed and yield COMMENT drops that would not be obtained when mining otherwise. COMMENT COMMENT @return values consistent with calls to {@link Item#isSuitableFor} COMMENT @see Item#isSuitableFor(BlockState) ARG 1 state METHOD method_7952 postMine (Lnet/minecraft/class_1937;Lnet/minecraft/class_2680;Lnet/minecraft/class_2338;Lnet/minecraft/class_1657;)V ARG 1 world ARG 2 state ARG 3 pos ARG 4 miner METHOD method_7953 writeNbt (Lnet/minecraft/class_2487;)Lnet/minecraft/class_2487; COMMENT Writes the serialized item stack into the given {@link NbtCompound}. COMMENT COMMENT @return the written NBT compound COMMENT @see Item Stack NBT Operations ARG 1 nbt COMMENT the NBT compound to write to METHOD method_7954 toHoverableText ()Lnet/minecraft/class_2561; COMMENT {@return a text consisting of the bracketed {@linkplain #getName stack name} that COMMENT can be hovered to show the item stack's tooltip} METHOD method_7956 damage (ILnet/minecraft/class_1309;Ljava/util/function/Consumer;)V COMMENT Damages this item stack. This method should be used when an entity, including a player, COMMENT damages the stack. This does not damage {@linkplain #isDamageable non-damageable} COMMENT stacks, and the {@linkplain net.minecraft.enchantment.UnbreakingEnchantment COMMENT unbreaking enchantment} is applied to {@code amount} before damaging. Additionally, COMMENT if {@code entity} is a player in creative mode, the stack will not be damaged. COMMENT COMMENT

If {@code entity} is a player, this triggers {@link COMMENT net.minecraft.advancement.criterion.Criteria#ITEM_DURABILITY_CHANGED}. COMMENT COMMENT

If the stack's damage is equal to or above {@linkplain Item#getMaxDamage the maximum COMMENT damage} (i.e. the item is "broken"), this will call {@code breakCallback}, decrement the COMMENT stack, and increment {@link net.minecraft.stat.Stats#BROKEN} if the stack is held COMMENT by a player. The callback should call {@link LivingEntity#sendEquipmentBreakStatus} COMMENT or {@link LivingEntity#sendToolBreakStatus}. ARG 1 amount ARG 2 entity COMMENT the entity that holds the stack to be damaged ARG 3 breakCallback COMMENT the callback that takes the entity holding the stack and is executed COMMENT when the item breaks METHOD method_7957 updateEmptyState ()V METHOD method_7958 hasGlint ()Z METHOD method_7959 setSubNbt (Ljava/lang/String;Lnet/minecraft/class_2520;)V COMMENT Sets the given NBT element in the item stack's custom NBT at the specified key. COMMENT COMMENT @see Item Stack NBT Operations ARG 1 key COMMENT the key where to put the given {@link NbtElement} ARG 2 element COMMENT the NBT element to put METHOD method_7960 isEmpty ()Z COMMENT {@return whether this item stack is empty} METHOD method_7961 isInFrame ()Z COMMENT {@return whether the item stack is in an item frame} COMMENT COMMENT @see #setHolder COMMENT @see #getFrame COMMENT @see #getHolder METHOD method_7962 isItemEqualIgnoreDamage (Lnet/minecraft/class_1799;)Z ARG 1 stack METHOD method_7963 isDamageable ()Z COMMENT {@return whether the item can be damaged (lose durability)} COMMENT COMMENT

Items with {@linkplain Item#getMaxDamage 0 max damage} or item stacks with {@value COMMENT #UNBREAKABLE_KEY} NBT set to {@code 1b} cannot be damaged. COMMENT COMMENT @see Item#getMaxDamage COMMENT @see #isDamaged COMMENT @see #getDamage METHOD method_7964 getName ()Lnet/minecraft/class_2561; COMMENT {@return the custom name of the stack if it exists, or the item's name} METHOD method_7965 getBobbingAnimationTime ()I METHOD method_7966 (Lnet/minecraft/class_2583;)Lnet/minecraft/class_2583; ARG 1 style METHOD method_7967 isUsedOnRelease ()Z METHOD method_7968 isEqual (Lnet/minecraft/class_1799;)Z COMMENT {@return whether this stack and {@code stack} are equal, including the item count and NBT} ARG 1 stack METHOD method_7969 getNbt ()Lnet/minecraft/class_2487; COMMENT {@return the custom NBT of this item stack, may be {@code null}} COMMENT COMMENT @see Item Stack NBT Operations METHOD method_7970 damage (ILnet/minecraft/class_5819;Lnet/minecraft/class_3222;)Z COMMENT Damages this item stack. This method should be used when a non-entity, such as a COMMENT dispenser, damages the stack. This does not damage {@linkplain #isDamageable non-damageable} COMMENT stacks, and the {@linkplain net.minecraft.enchantment.UnbreakingEnchantment COMMENT unbreaking enchantment} is applied to {@code amount} before damaging. COMMENT COMMENT

If {@code player} is not {@code null}, this triggers {@link COMMENT net.minecraft.advancement.criterion.Criteria#ITEM_DURABILITY_CHANGED}. COMMENT COMMENT

This method does not decrement the item count when the item "breaks". Callers should COMMENT check the returned value and decrement themselves. COMMENT COMMENT @return whether the stack's damage is equal to or above {@linkplain Item#getMaxDamage COMMENT the maximum damage} (i.e. whether the item is "broken") ARG 1 amount ARG 2 random ARG 3 player COMMENT the player that holds the stack to be damaged, or {@code null} if inapplicable METHOD method_7971 split (I)Lnet/minecraft/class_1799; COMMENT {@return the copy of the stack "split" from the current stack with item count COMMENT being at most {@code amount}} COMMENT COMMENT

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

{@code
		COMMENT ItemStack stack = new ItemStack(Items.APPLE, 64);
		COMMENT ItemStack newStack = stack.split(10);
		COMMENT // stack has 54 apples
		COMMENT // newStack has 10 apples
		COMMENT
		COMMENT ItemStack smallStack = new ItemStack(Items.APPLE, 4);
		COMMENT ItemStack newSmallStack = smallStack.split(10);
		COMMENT // smallStack is now empty
		COMMENT // newSmallStack has 4 apples
		COMMENT }
ARG 1 amount METHOD method_7972 copy ()Lnet/minecraft/class_1799; COMMENT {@return a copy of this item stack, including the item count, NBT, and COMMENT {@linkplain #getBobbingAnimationTime bobbing animation time}} METHOD method_7973 areEqual (Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Z COMMENT {@return whether the given item stacks are equal, including the item count and NBT} COMMENT COMMENT @see #areItemsEqual COMMENT @see #canCombine ARG 0 left ARG 1 right METHOD method_7974 setDamage (I)V COMMENT Sets the stack's damage to {@code damage}. COMMENT COMMENT

This does not break the item if the damage reaches {@linkplain Item#getMaxDamage COMMENT the maximum}, unlike {@link #damage(int, LivingEntity, Consumer)}. COMMENT COMMENT @see #getDamage COMMENT @see #damage(int, Random, ServerPlayerEntity) COMMENT @see #damage(int, LivingEntity, Consumer) ARG 1 damage METHOD method_7975 areNbtEqual (Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Z COMMENT {@return whether the given item stacks have equivalent NBT data} ARG 0 left ARG 1 right METHOD method_7976 getUseAction ()Lnet/minecraft/class_1839; METHOD method_7977 setCustomName (Lnet/minecraft/class_2561;)Lnet/minecraft/class_1799; COMMENT Sets the custom name of this item stack to {@code name}. If {@code null} is COMMENT passed, this will remove the custom name (but does not remove other NBT compounds COMMENT even if they are empty). COMMENT COMMENT @return this item stack COMMENT COMMENT @see #removeCustomName COMMENT @see #hasCustomName ARG 1 name METHOD method_7978 addEnchantment (Lnet/minecraft/class_1887;I)V COMMENT Enchants this item with the given enchantment and level. COMMENT COMMENT

This should not be used with enchanted books, as the book itself is not COMMENT enchanted and therefore does not store enchantments under {@value #ENCHANTMENTS_KEY} key. COMMENT COMMENT @see net.minecraft.enchantment.EnchantmentHelper ARG 1 enchantment ARG 2 level METHOD method_7979 postHit (Lnet/minecraft/class_1309;Lnet/minecraft/class_1657;)V ARG 1 target ARG 2 attacker METHOD method_7980 setNbt (Lnet/minecraft/class_2487;)V COMMENT Sets the custom NBT of this item stack. COMMENT COMMENT @see Item Stack NBT Operations ARG 1 nbt COMMENT the custom NBT compound, may be {@code null} to reset METHOD method_7981 useOnBlock (Lnet/minecraft/class_1838;)Lnet/minecraft/class_1269; ARG 1 context METHOD method_7982 onCraft (Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;I)V ARG 1 world ARG 2 player ARG 3 amount METHOD method_7983 removeSubNbt (Ljava/lang/String;)V COMMENT Removes the sub NBT element at the specified key in this item stack's custom NBT. COMMENT COMMENT @see Item Stack NBT Operations ARG 1 key METHOD method_7984 areItemsEqualIgnoreDamage (Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Z ARG 0 left ARG 1 right METHOD method_7985 hasNbt ()Z COMMENT {@return whether this item stack has custom NBT} COMMENT COMMENT @see Item Stack NBT Operations METHOD method_7986 isDamaged ()Z COMMENT {@return whether the item stack is {@linkplain #isDamageable damageable} and has damage} COMMENT COMMENT @see #isDamageable COMMENT @see #getDamage CLASS class_5422 TooltipSection FIELD field_25775 flag I METHOD method_30269 getFlag ()I