Interface IItemStackExtension
- All Known Implementing Classes:
ItemStack
-
Method Summary
Modifier and TypeMethodDescriptiondefault booleancanDisableShield(ItemStack shield, LivingEntity entity, LivingEntity attacker) Can this Item disable a shielddefault booleancanEquip(EquipmentSlot armorType, LivingEntity entity) Determines if the specific ItemStack can be placed in the specified armor slot, for the entity.default booleanReturns true if the given ItemStack can be put into a grindstone to be repaired and/or stripped of its enchantments.default booleancanPerformAction(ItemAbility itemAbility) Queries if an item can perform the given action.default booleancanWalkOnPowderedSnow(LivingEntity wearer) Called by the powdered snow block to check if a living entity wearing this can walk on the snow, granting the same behavior as leather boots.default booleandoesSneakBypassUse(LevelReader level, BlockPos pos, Player player) Should this item, when held, allow sneak-clicks to pass through to the underlying block?default ItemEnchantmentsGets the gameplay level of all enchantments on this stack.default ItemAttributeModifiersComputes the gameplay attribute modifiers for this item stack.default intgetBurnTime(@Nullable RecipeType<?> recipeType, FuelValues fuelValues) Returns the fuel burn time for this item stack.default <T,C extends @Nullable Object>
TgetCapability(ItemCapability<T, C> capability, C context) default <T> TgetCapability(ItemCapability<T, @Nullable Void> capability) default ItemStackItemStack sensitive version ofItem.getCraftingRemainder().default intgetEnchantmentLevel(Holder<Enchantment> enchantment) Gets the gameplay level of the target enchantment on this stack.default intgetEntityLifespan(Level level) Retrieves the normal 'lifespan' of this item when it is dropped on the ground as a EntityItem.default @Nullable EquipmentSlotOverride this to set a non-default armor slot for an ItemStack, but do not use this to get the armor slot of said stack; for that, useLivingEntity.getEquipmentSlotForItem(ItemStack).default ComponentgetHighlightTip(Component displayName) Allow the item one last chance to modify its name used for the tool highlight useful for adding something extra that can't be removed by a user in the displayed name, such as a mode of operation.default AABBgetSweepHitBox(Player player, Entity target) Get a bounding box (AABB) of a sweep attack.default floatDetermines the amount of durability the mending enchantment will repair, on average, per point of experience.default booleanisBookEnchantable(ItemStack book) Allow or forbid the specific book/item combination as an anvil enchantdefault booleanDetermines if an item is repairable by combining, used by Repair recipes and Grindstone.default booleanisGazeDisguise(Player player, @Nullable LivingEntity entity) Whether thisItemcan be used to hide player's gaze from Endermen and Creakings.default booleanisNotReplaceableByPickAction(Player player, int inventorySlot) Whether this stack should be excluded (if possible) when selecting the target hotbar slot of a "pick" action.default booleanCalled by Piglins when checking to see if they will give an item or something in exchange for this item.default booleanisPrimaryItemFor(Holder<Enchantment> enchantment) default booleanmakesPiglinsNeutral(LivingEntity wearer) Called by Piglins to check if a given item prevents hostility on sight.default voidonAnimalArmorTick(Level level, Mob horse) Called every tick when this item is equippedby a horseinvalid reference
as an armor item
that can wear armor}.invalid reference
Mob#canWearBodyArmor()
default voidonDestroyed(ItemEntity itemEntity, DamageSource damageSource) Called when an item entity for this stack is destroyed.default booleanonDroppedByPlayer(Player player) Called when a player drops the item into the world, returning false from this will prevent the item from being removed from the players inventory and spawning in the worlddefault booleanonEntityItemUpdate(ItemEntity entity) Called by the default implemetation of EntityItem's onUpdate method, allowing for cleaner control over the update of the item without having to write a subclass.default booleanonEntitySwing(LivingEntity entity, InteractionHand hand) Called when a entity tries to play the 'swing' animation.default InteractionResultonItemUseFirst(UseOnContext context) default voidonStopUsing(LivingEntity entity, int count) Called when an entity stops using an item item for any reason.private ItemStackself()default booleanshouldCauseBlockBreakReset(ItemStack newStack) Called when the player is mining a block and the item in his hand changes.default booleansupportsEnchantment(Holder<Enchantment> enchantment)
-
Method Details
-
self
-
getCraftingRemainder
ItemStack sensitive version ofItem.getCraftingRemainder(). Returns a full ItemStack instance of the result.- Returns:
- The resulting ItemStack
-
getBurnTime
Returns the fuel burn time for this item stack. If it is zero, this item is not a fuel.Will never return a negative value.
- Returns:
- the fuel burn time for this item stack in a furnace.
-
onItemUseFirst
-
canPerformAction
Queries if an item can perform the given action. SeeItemAbilitiesfor a description of each stock action- Parameters:
itemAbility- The action being queried- Returns:
- True if the stack can perform the action
-
shouldCauseBlockBreakReset
Called when the player is mining a block and the item in his hand changes. Allows to not reset blockbreaking if only NBT or similar changes.- Parameters:
newStack- The new stack- Returns:
- True to reset block break progress
-
isPrimaryItemFor
-
supportsEnchantment
-
getEnchantmentLevel
Gets the gameplay level of the target enchantment on this stack.Use in place of
EnchantmentHelper.getTagEnchantmentLevel(net.minecraft.core.Holder<net.minecraft.world.item.enchantment.Enchantment>, net.minecraft.world.item.ItemStack)for gameplay logic.Use
EnchantmentHelper.getEnchantmentsForCrafting(net.minecraft.world.item.ItemStack)andEnchantmentHelper.setEnchantments(net.minecraft.world.item.ItemStack, net.minecraft.world.item.enchantment.ItemEnchantments)when modifying the item's enchantments.- Parameters:
enchantment- The enchantment being checked for.- Returns:
- The level of the enchantment, or 0 if not present.
-
getAllEnchantments
Gets the gameplay level of all enchantments on this stack.Use in place of
ItemStack.getTagEnchantments()for gameplay logic.Use
EnchantmentHelper.getEnchantmentsForCrafting(net.minecraft.world.item.ItemStack)andEnchantmentHelper.setEnchantments(net.minecraft.world.item.ItemStack, net.minecraft.world.item.enchantment.ItemEnchantments)when modifying the item's enchantments.- Returns:
- Map of all enchantments on the stack, or an empty map if no enchantments are present.
-
getEquipmentSlot
Override this to set a non-default armor slot for an ItemStack, but do not use this to get the armor slot of said stack; for that, useLivingEntity.getEquipmentSlotForItem(ItemStack).- Returns:
- the armor slot of the ItemStack, or
nullto let the default vanilla logic as perLivingEntity.getSlotForItemStack(stack)decide
-
canDisableShield
Can this Item disable a shield- Parameters:
shield- The shield in questionentity- The LivingEntity holding the shieldattacker- The LivingEntity holding the ItemStack- Returns:
- True if this ItemStack can disable the shield in question.
-
onEntitySwing
Called when a entity tries to play the 'swing' animation.- Parameters:
entity- The entity swinging the item.hand- The hand the item is held in.- Returns:
- True to cancel any further processing by
LivingEntity
-
onStopUsing
Called when an entity stops using an item item for any reason.- Parameters:
entity- The entity using the item, typically a playercount- The amount of time in tick the item has been used for continuously
-
getEntityLifespan
Retrieves the normal 'lifespan' of this item when it is dropped on the ground as a EntityItem. This is in ticks, standard result is 6000, or 5 mins.- Parameters:
level- The level the entity is in- Returns:
- The normal lifespan in ticks.
-
onEntityItemUpdate
Called by the default implemetation of EntityItem's onUpdate method, allowing for cleaner control over the update of the item without having to write a subclass.- Parameters:
entity- The entity Item- Returns:
- Return true to skip any further update code.
-
getXpRepairRatio
default float getXpRepairRatio()Determines the amount of durability the mending enchantment will repair, on average, per point of experience. -
onAnimalArmorTick
Called every tick when this item is equippedby a horseinvalid reference
as an armor item
that can wear armor}.invalid reference
Mob#canWearBodyArmor()
In vanilla, only horses and wolves can wear armor, and they can only equip items that extend
AnimalArmorItem.- Parameters:
level- The level the horse is inhorse- The horse wearing this item
-
canEquip
Determines if the specific ItemStack can be placed in the specified armor slot, for the entity.- Parameters:
armorType- Armor slot to be verified.entity- The entity trying to equip the armor- Returns:
- True if the given ItemStack can be inserted in the slot
-
isBookEnchantable
Allow or forbid the specific book/item combination as an anvil enchant- Parameters:
book- The book- Returns:
- if the enchantment is allowed
-
onDroppedByPlayer
Called when a player drops the item into the world, returning false from this will prevent the item from being removed from the players inventory and spawning in the world- Parameters:
player- The player that dropped the item
-
getHighlightTip
Allow the item one last chance to modify its name used for the tool highlight useful for adding something extra that can't be removed by a user in the displayed name, such as a mode of operation.- Parameters:
displayName- the name that will be displayed unless it is changed in this method.
-
doesSneakBypassUse
Should this item, when held, allow sneak-clicks to pass through to the underlying block?- Parameters:
level- The levelpos- Block position in levelplayer- The Player that is wielding the item
-
isCombineRepairable
default boolean isCombineRepairable()Determines if an item is repairable by combining, used by Repair recipes and Grindstone.- Returns:
- True if repairable by combining
-
isPiglinCurrency
default boolean isPiglinCurrency()Called by Piglins when checking to see if they will give an item or something in exchange for this item.- Returns:
- True if this item can be used as "currency" by piglins
-
makesPiglinsNeutral
Called by Piglins to check if a given item prevents hostility on sight. If this is true the Piglins will be neutral to the entity wearing this item, and will not attack on sight. Note: This does not prevent Piglins from becoming hostile due to other actions, nor does it make Piglins that are already hostile stop being so.- Parameters:
wearer- The entity wearing this ItemStack- Returns:
- True if piglins are neutral to players wearing this item in an armor slot
-
isGazeDisguise
Whether thisItemcan be used to hide player's gaze from Endermen and Creakings.- Parameters:
player- The player watching the entityentity- The entity the player is looking at, may be null- Returns:
- true if this
Itemhides the player's gaze from the given entity
-
canWalkOnPowderedSnow
Called by the powdered snow block to check if a living entity wearing this can walk on the snow, granting the same behavior as leather boots. Only affects items worn in the boots slot.- Parameters:
wearer- The entity wearing this ItemStack- Returns:
- True if the entity can walk on powdered snow
-
getSweepHitBox
Get a bounding box (AABB) of a sweep attack.- Parameters:
player- the performing the attack the attack.target- the entity targeted by the attack.- Returns:
- the bounding box.
-
onDestroyed
Called when an item entity for this stack is destroyed. Note: TheItemStackcan be retrieved from the item entity.- Parameters:
itemEntity- The item entity that was destroyed.damageSource- Damage source that caused the item entity to "die".
-
isNotReplaceableByPickAction
Whether this stack should be excluded (if possible) when selecting the target hotbar slot of a "pick" action. By default, this returns true for enchanted stacks.- Parameters:
player- the player performing the pickinginventorySlot- the inventory slot of the item being up for replacement- Returns:
- true to leave this stack in the hotbar if possible
- See Also:
-
canGrindstoneRepair
default boolean canGrindstoneRepair()Returns true if the given ItemStack can be put into a grindstone to be repaired and/or stripped of its enchantments.- Returns:
- true if the given ItemStack can be put into a grindstone to be repaired and/or stripped of its enchantments
-
getCapability
@Nullable default <T,C extends @Nullable Object> T getCapability(ItemCapability<T, C> capability, C context) -
getCapability
-
getAttributeModifiers
Computes the gameplay attribute modifiers for this item stack. Used in place of direct access toorinvalid reference
DataComponents.ATTRIBUTE_MODIFIERSIItemExtension.getDefaultAttributeModifiers(ItemStack)when querying attributes for gameplay purposes.This method first computes the default modifiers, using
if present, otherwise falling back toinvalid reference
DataComponents.ATTRIBUTE_MODIFIERSIItemExtension.getDefaultAttributeModifiers(ItemStack).The
is then fired to allow external adjustments.invalid reference
ItemAttributeModifiersEvent
-