Class Item
- All Implemented Interfaces:
ItemConvertible,ToggleableFeature
- Direct Known Subclasses:
AirBlockItem,ArmorItem,ArmorStandItem,ArrowItem,BannerPatternItem,BlockItem,BoatItem,BoneMealItem,BookItem,BrushItem,BucketItem,BundleItem,ChorusFruitItem,CompassItem,DebugStickItem,DecorationItem,DiscFragmentItem,DyeItem,EggItem,ElytraItem,EnchantedBookItem,EnchantedGoldenAppleItem,EndCrystalItem,EnderEyeItem,EnderPearlItem,ExperienceBottleItem,FireChargeItem,FireworkRocketItem,FireworkStarItem,FishingRodItem,FlintAndSteelItem,GlassBottleItem,GlowInkSacItem,GoatHornItem,HoneyBottleItem,HoneycombItem,HorseArmorItem,InkSacItem,KnowledgeBookItem,LeadItem,MilkBucketItem,MinecartItem,MusicDiscItem,NameTagItem,NetherStarItem,NetworkSyncedItem,OnAStickItem,PotionItem,RangedWeaponItem,SaddleItem,ShearsItem,ShieldItem,SmithingTemplateItem,SnowballItem,SpawnEggItem,SpyglassItem,StewItem,SuspiciousStewItem,ToolItem,TridentItem,WritableBookItem,WrittenBookItem
Like Block, this class handles logics for a type of item, and does not
hold any data. Any data about a particular stack of item in a world, such as item count,
is held by an ItemStack which represents a stack of specific item. Therefore,
there is one - and only one - instance of Item for one item (like apples, oak planks, etc),
while there can be infinite amounts of ItemStack instances. This also means that
items themselves cannot hold NBT data.
Items with no custom behavior, like diamonds, can call the constructor of Item
directly. If a custom behavior is needed, this should be subclassed. Items also have
to be registered in the Registries.ITEM registry.
Many methods of this class are called on both the logical client and logical server,
so take caution when using those methods. The logical side can be checked using
World.isClient. See also
the Fabric Wiki article. It is also important that methods that take LivingEntity
as an argument can be called by non-players (such as foxes eating food), which causes
a crash if the code performs unchecked casting.
- See Also:
- Mappings:
Namespace Name official cfsintermediary net/minecraft/class_1792named net/minecraft/item/Item
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classItem settings configure behaviors common to all items, such as the stack's max count. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final UUIDprotected static final UUIDstatic final intstatic final intprivate final booleanprivate final @Nullable FoodComponentstatic final intprivate static final Loggerprivate final intprivate final intprivate final Rarityprivate final RegistryEntry.Reference<Item>private final FeatureSetFields inherited from interface net.minecraft.resource.featuretoggle.ToggleableFeature
FEATURE_ENABLED_REGISTRY_KEYS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidappendTooltip(ItemStack stack, @Nullable World world, List<Text> tooltip, TooltipContext context) Called by the client to append tooltips to an item.asItem()Gets this object in its item form.static ItembyRawId(int id) Returns the item from its raw ID.booleanbooleancanMine(BlockState state, World world, BlockPos pos, PlayerEntity miner) Returns whether a player can break a block while holding the item.booleanReturns whetherstackcan be repaired usingingredient.booleandamage(DamageSource source) Returns whether this item can be damaged by the givensource.finishUsing(ItemStack stack, World world, LivingEntity user) Called when an entity finishes using the item, such as eating food or drinking a potion.static ItemDeprecated.Returns the attribute modifiers the item provides.Returns the default stack for this item.Returns the sound for drinking the item.Returns the sound for eating the item.intGets the enchantability of an item.Returns this item'sFoodComponent, ornullif none was set.intgetItemBarColor(ItemStack stack) Returns the RGB color of the item bar, usually used for durability display.intgetItemBarStep(ItemStack stack) Returns the step, or the length of the colored area of the item bar, forstack.final intReturns the maximum stack count of any ItemStack with this item.final intReturns the maximum durability of this item.intgetMaxUseTime(ItemStack stack) Returns the maximum use (right-click) time of this item, in ticks.floatgetMiningSpeedMultiplier(ItemStack stack, BlockState state) Returns the multiplier applied to the mining speed ofstackwhen miningstate.getName()protected StringReturns this item's rarity, which changes the color of its name.static intReturns the raw ID ofitem, or 0 if passednull.Gets the remainder item that should be left behind when this item is used as a crafting ingredient.Deprecated.getTooltipData(ItemStack stack) Gets the translation key of this item.getTranslationKey(ItemStack stack) Gets the translation key of this item using the provided item stack for context.getUseAction(ItemStack stack) Returns the use action the item should perform.booleanChecks if the glint effect should be applied when the item is rendered.booleanChecks if this item has a remainder item that is left behind when used as a crafting ingredient.voidinventoryTick(ItemStack stack, World world, Entity entity, int slot, boolean selected) Called on both the client and the server every tick if the item is in the player's inventory.booleanReturns whether this item can lose durability.booleanisEnchantable(ItemStack stack) Returns whether the givenItemStackis enchantable.booleanReturns whether this item is immune to fire and lava damage.booleanisFood()Checks if this item is food and therefore is edible.booleanisItemBarVisible(ItemStack stack) Returns whether to show the item bar forstack.booleanChecks if an item should have its NBT data stored inItemStack.nbtsent to the client.booleanReturns whether the item needs to sync additional data to clients.booleanisSuitableFor(BlockState state) Determines whether this item can be used as a suitable tool for mining the specified block.booleanisUsedOnRelease(ItemStack stack) booleanonClicked(ItemStack stack, ItemStack otherStack, Slot slot, ClickType clickType, PlayerEntity player, StackReference cursorStackReference) Called when the item atslotgets clicked by the cursor holdingotherStack.voidonCraft(ItemStack stack, World world, PlayerEntity player) Called when a player acquires the item by crafting, smelting, smithing, etc.voidonItemEntityDestroyed(ItemEntity entity) Called on the server when anItemEntityholding this item gets destroyed.booleanonStackClicked(ItemStack stack, Slot slot, ClickType clickType, PlayerEntity player) Called when the item at the cursor is clicked atslot.voidonStoppedUsing(ItemStack stack, World world, LivingEntity user, int remainingUseTicks) Called on both the client and the server when an entity stops using an item before reaching the maximum use time.booleanpostHit(ItemStack stack, LivingEntity target, LivingEntity attacker) Called on the server when the item is used to hit an entity.booleanpostMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner) Called on the server when the item is used to break a block.voidProcesses the NBT applied to an item stack of this item.protected static BlockHitResultraycast(World world, PlayerEntity player, RaycastContext.FluidHandling fluidHandling) toString()voidusageTick(World world, LivingEntity user, ItemStack stack, int remainingUseTicks) Called on both the server and the client every tick while an entity uses the item.use(World world, PlayerEntity user, Hand hand) Called when the player uses (or starts using) the item.useOnBlock(ItemUsageContext context) Called when an item is used on a block.useOnEntity(ItemStack stack, PlayerEntity user, LivingEntity entity, Hand hand) Called on both the client and the server when a player uses the item on an entity.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface net.minecraft.resource.featuretoggle.ToggleableFeature
isEnabled
-
Field Details
-
LOGGER
- Mappings:
Namespace Name Mixin selector official aLcfs;a:Lorg/slf4j/Logger;intermediary field_27017Lnet/minecraft/class_1792;field_27017:Lorg/slf4j/Logger;named LOGGERLnet/minecraft/item/Item;LOGGER:Lorg/slf4j/Logger;
-
BLOCK_ITEMS
- Mappings:
Namespace Name Mixin selector official lLcfs;l:Ljava/util/Map;intermediary field_8003Lnet/minecraft/class_1792;field_8003:Ljava/util/Map;named BLOCK_ITEMSLnet/minecraft/item/Item;BLOCK_ITEMS:Ljava/util/Map;
-
ATTACK_DAMAGE_MODIFIER_ID
- Mappings:
Namespace Name Mixin selector official mLcfs;m:Ljava/util/UUID;intermediary field_8006Lnet/minecraft/class_1792;field_8006:Ljava/util/UUID;named ATTACK_DAMAGE_MODIFIER_IDLnet/minecraft/item/Item;ATTACK_DAMAGE_MODIFIER_ID:Ljava/util/UUID;
-
ATTACK_SPEED_MODIFIER_ID
- Mappings:
Namespace Name Mixin selector official nLcfs;n:Ljava/util/UUID;intermediary field_8001Lnet/minecraft/class_1792;field_8001:Ljava/util/UUID;named ATTACK_SPEED_MODIFIER_IDLnet/minecraft/item/Item;ATTACK_SPEED_MODIFIER_ID:Ljava/util/UUID;
-
DEFAULT_MAX_COUNT
public static final int DEFAULT_MAX_COUNT- See Also:
- Mappings:
Namespace Name Mixin selector official oLcfs;o:Iintermediary field_30887Lnet/minecraft/class_1792;field_30887:Inamed DEFAULT_MAX_COUNTLnet/minecraft/item/Item;DEFAULT_MAX_COUNT:I
-
DEFAULT_MAX_USE_TIME
public static final int DEFAULT_MAX_USE_TIME- See Also:
- Mappings:
Namespace Name Mixin selector official pLcfs;p:Iintermediary field_30888Lnet/minecraft/class_1792;field_30888:Inamed DEFAULT_MAX_USE_TIMELnet/minecraft/item/Item;DEFAULT_MAX_USE_TIME:I
-
ITEM_BAR_STEPS
public static final int ITEM_BAR_STEPS- See Also:
- Mappings:
Namespace Name Mixin selector official qLcfs;q:Iintermediary field_30889Lnet/minecraft/class_1792;field_30889:Inamed ITEM_BAR_STEPSLnet/minecraft/item/Item;ITEM_BAR_STEPS:I
-
registryEntry
- Mappings:
Namespace Name Mixin selector official bLcfs;b:Lhe$c;intermediary field_36401Lnet/minecraft/class_1792;field_36401:Lnet/minecraft/class_6880$class_6883;named registryEntryLnet/minecraft/item/Item;registryEntry:Lnet/minecraft/registry/entry/RegistryEntry$Reference;
-
rarity
- Mappings:
Namespace Name Mixin selector official cLcfs;c:Lcgo;intermediary field_8009Lnet/minecraft/class_1792;field_8009:Lnet/minecraft/class_1814;named rarityLnet/minecraft/item/Item;rarity:Lnet/minecraft/util/Rarity;
-
maxCount
private final int maxCount- Mappings:
Namespace Name Mixin selector official dLcfs;d:Iintermediary field_8013Lnet/minecraft/class_1792;field_8013:Inamed maxCountLnet/minecraft/item/Item;maxCount:I
-
maxDamage
private final int maxDamage- Mappings:
Namespace Name Mixin selector official eLcfs;e:Iintermediary field_8012Lnet/minecraft/class_1792;field_8012:Inamed maxDamageLnet/minecraft/item/Item;maxDamage:I
-
fireproof
private final boolean fireproof- Mappings:
Namespace Name Mixin selector official fLcfs;f:Zintermediary field_21979Lnet/minecraft/class_1792;field_21979:Znamed fireproofLnet/minecraft/item/Item;fireproof:Z
-
recipeRemainder
- Mappings:
Namespace Name Mixin selector official gLcfs;g:Lcfs;intermediary field_8008Lnet/minecraft/class_1792;field_8008:Lnet/minecraft/class_1792;named recipeRemainderLnet/minecraft/item/Item;recipeRemainder:Lnet/minecraft/item/Item;
-
translationKey
- Mappings:
Namespace Name Mixin selector official hLcfs;h:Ljava/lang/String;intermediary field_8014Lnet/minecraft/class_1792;field_8014:Ljava/lang/String;named translationKeyLnet/minecraft/item/Item;translationKey:Ljava/lang/String;
-
foodComponent
- Mappings:
Namespace Name Mixin selector official iLcfs;i:Lcba;intermediary field_18672Lnet/minecraft/class_1792;field_18672:Lnet/minecraft/class_4174;named foodComponentLnet/minecraft/item/Item;foodComponent:Lnet/minecraft/item/FoodComponent;
-
requiredFeatures
- Mappings:
Namespace Name Mixin selector official jLcfs;j:Lcau;intermediary field_40209Lnet/minecraft/class_1792;field_40209:Lnet/minecraft/class_7699;named requiredFeaturesLnet/minecraft/item/Item;requiredFeatures:Lnet/minecraft/resource/featuretoggle/FeatureSet;
-
-
Constructor Details
-
Item
- Mappings:
Namespace Name Mixin selector official <init>Lcfs;<init>(Lcfs$a;)Vintermediary <init>Lnet/minecraft/class_1792;<init>(Lnet/minecraft/class_1792$class_1793;)Vnamed <init>Lnet/minecraft/item/Item;<init>(Lnet/minecraft/item/Item$Settings;)V
-
-
Method Details
-
getRawId
Returns the raw ID ofitem, or 0 if passednull.- Returns:
- the raw ID of
item, or 0 if passednull - Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfs;)Iintermediary method_7880Lnet/minecraft/class_1792;method_7880(Lnet/minecraft/class_1792;)Inamed getRawIdLnet/minecraft/item/Item;getRawId(Lnet/minecraft/item/Item;)I
-
byRawId
Returns the item from its raw ID.- Returns:
- the item from its raw ID
- Mappings:
Namespace Name Mixin selector official bLcfs;b(I)Lcfs;intermediary method_7875Lnet/minecraft/class_1792;method_7875(I)Lnet/minecraft/class_1792;named byRawIdLnet/minecraft/item/Item;byRawId(I)Lnet/minecraft/item/Item;
-
fromBlock
Deprecated.Please useBlock.asItem()- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcpl;)Lcfs;intermediary method_7867Lnet/minecraft/class_1792;method_7867(Lnet/minecraft/class_2248;)Lnet/minecraft/class_1792;named fromBlockLnet/minecraft/item/Item;fromBlock(Lnet/minecraft/block/Block;)Lnet/minecraft/item/Item;
-
getRegistryEntry
Deprecated.- Mappings:
Namespace Name Mixin selector official jLcfs;j()Lhe$c;intermediary method_40131Lnet/minecraft/class_1792;method_40131()Lnet/minecraft/class_6880$class_6883;named getRegistryEntryLnet/minecraft/item/Item;getRegistryEntry()Lnet/minecraft/registry/entry/RegistryEntry$Reference;
-
usageTick
Called on both the server and the client every tick while an entity uses the item. Currently used byCrossbowItemto charge the crossbow. If this is overridden,getMaxUseTime(net.minecraft.item.ItemStack)should also be overridden to return a positive value.- Parameters:
remainingUseTicks- how long it's left until the entity finishes using the item, in ticks- See Also:
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcmk;Lbfx;Lcfx;I)Vintermediary method_7852Lnet/minecraft/class_1792;method_7852(Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;I)Vnamed usageTickLnet/minecraft/item/Item;usageTick(Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;I)V
-
onItemEntityDestroyed
Called on the server when anItemEntityholding this item gets destroyed. This can happen due to fire, lava, cactus, explosion, etc. Items that can hold other items should override this to drop its contents.- See Also:
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lbvf;)Vintermediary method_33261Lnet/minecraft/class_1792;method_33261(Lnet/minecraft/class_1542;)Vnamed onItemEntityDestroyedLnet/minecraft/item/Item;onItemEntityDestroyed(Lnet/minecraft/entity/ItemEntity;)V
-
postProcessNbt
Processes the NBT applied to an item stack of this item.This is only used in vanilla to process player head NBT data.
- Mappings:
Namespace Name Mixin selector official bLcfs;b(Lqr;)Vintermediary method_7860Lnet/minecraft/class_1792;method_7860(Lnet/minecraft/class_2487;)Vnamed postProcessNbtLnet/minecraft/item/Item;postProcessNbt(Lnet/minecraft/nbt/NbtCompound;)V
-
canMine
Returns whether a player can break a block while holding the item.This is to check whether the player can start breaking the block in the first place; this does not check if the item is a correct tool to mine the block. Melee weapons should override this to return
false, unless it is also intended to be used as a tool.- Returns:
- whether a player can break a block while holding the item
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Ldby;Lcmk;Lgu;Lbym;)Zintermediary method_7885Lnet/minecraft/class_1792;method_7885(Lnet/minecraft/class_2680;Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_1657;)Znamed canMineLnet/minecraft/item/Item;canMine(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/player/PlayerEntity;)Z
-
asItem
Gets this object in its item form.- Specified by:
asItemin interfaceItemConvertible- Mappings:
Namespace Name Mixin selector official kLcmj;k()Lcfs;intermediary method_8389Lnet/minecraft/class_1935;method_8389()Lnet/minecraft/class_1792;named asItemLnet/minecraft/item/ItemConvertible;asItem()Lnet/minecraft/item/Item;
-
useOnBlock
Called when an item is used on a block.This method is called on both the logical client and logical server, so take caution when using this method. The logical side can be checked using
context.getWorld().isClient().- Parameters:
context- the usage context- Returns:
- an action result that specifies if using the item on a block was successful.
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcih;)Lbdw;intermediary method_7884Lnet/minecraft/class_1792;method_7884(Lnet/minecraft/class_1838;)Lnet/minecraft/class_1269;named useOnBlockLnet/minecraft/item/Item;useOnBlock(Lnet/minecraft/item/ItemUsageContext;)Lnet/minecraft/util/ActionResult;
-
getMiningSpeedMultiplier
Returns the multiplier applied to the mining speed ofstackwhen miningstate.The default value is
1.0f. Returning larger integer will cause the block to be mined faster. Enchantments, status effects, and other effects that affect mining speed are instead handled inPlayerEntity.getBlockBreakingSpeed(net.minecraft.block.BlockState).- Returns:
- the multiplier applied to the mining speed of
stackwhen miningstate - See Also:
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Ldby;)Fintermediary method_7865Lnet/minecraft/class_1792;method_7865(Lnet/minecraft/class_1799;Lnet/minecraft/class_2680;)Fnamed getMiningSpeedMultiplierLnet/minecraft/item/Item;getMiningSpeedMultiplier(Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/BlockState;)F
-
use
Called when the player uses (or starts using) the item. The use action, by default, is bound to the right mouse button. This method checks the player's hunger when the item is a food, and will pass in all other cases by default.If the item can be used for multiple ticks, then this will only be called when the player starts using it. After that,
usageTick(net.minecraft.world.World, net.minecraft.entity.LivingEntity, net.minecraft.item.ItemStack, int)is called every tick until the player finishes using the item.This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using
world.isClient().- Parameters:
world- the world the item was used inuser- the player who used the itemhand- the hand used- Returns:
- a typed action result that specifies whether using the item was successful. The action result contains the new item stack that the player's hand will be set to.
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcmk;Lbym;Lbdv;)Lbdx;intermediary method_7836Lnet/minecraft/class_1792;method_7836(Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;Lnet/minecraft/class_1268;)Lnet/minecraft/class_1271;named useLnet/minecraft/item/Item;use(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/Hand;)Lnet/minecraft/util/TypedActionResult;
-
finishUsing
Called when an entity finishes using the item, such as eating food or drinking a potion. This method handles eating food by default.This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using
World.isClient.usermight not be a player in some cases. For example, this occurs when a fox eats food or when a wandering trader drinks milk.- Returns:
- the new item stack after using the item
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Lcmk;Lbfx;)Lcfx;intermediary method_7861Lnet/minecraft/class_1792;method_7861(Lnet/minecraft/class_1799;Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;)Lnet/minecraft/class_1799;named finishUsingLnet/minecraft/item/Item;finishUsing(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;)Lnet/minecraft/item/ItemStack;
-
getMaxCount
public final int getMaxCount()Returns the maximum stack count of any ItemStack with this item. Can be configured throughsettings.maxCount().- Returns:
- the maximum stack count of any ItemStack with this item
- Mappings:
Namespace Name Mixin selector official lLcfs;l()Iintermediary method_7882Lnet/minecraft/class_1792;method_7882()Inamed getMaxCountLnet/minecraft/item/Item;getMaxCount()I
-
getMaxDamage
public final int getMaxDamage()Returns the maximum durability of this item. Can be configured throughsettings.maxDamage().- Returns:
- the maximum durability of this item
- Mappings:
Namespace Name Mixin selector official nLcfs;n()Iintermediary method_7841Lnet/minecraft/class_1792;method_7841()Inamed getMaxDamageLnet/minecraft/item/Item;getMaxDamage()I
-
isDamageable
public boolean isDamageable()Returns whether this item can lose durability.- Returns:
- whether this item can lose durability
- Mappings:
Namespace Name Mixin selector official oLcfs;o()Zintermediary method_7846Lnet/minecraft/class_1792;method_7846()Znamed isDamageableLnet/minecraft/item/Item;isDamageable()Z
-
isItemBarVisible
Returns whether to show the item bar forstack.Item bar is usually used to display durability of the stack.
When overriding this,
getItemBarStep(net.minecraft.item.ItemStack)andgetItemBarColor(net.minecraft.item.ItemStack)should also be overridden.- Returns:
- whether to show the item bar for
stack - Mappings:
Namespace Name Mixin selector official eLcfs;e(Lcfx;)Zintermediary method_31567Lnet/minecraft/class_1792;method_31567(Lnet/minecraft/class_1799;)Znamed isItemBarVisibleLnet/minecraft/item/Item;isItemBarVisible(Lnet/minecraft/item/ItemStack;)Z
-
getItemBarStep
Returns the step, or the length of the colored area of the item bar, forstack.This is between
0.0fand {code 13.0f}. By default, this isdurability * 13.0f / maxDurability.When overriding this,
isItemBarVisible(net.minecraft.item.ItemStack)andgetItemBarColor(net.minecraft.item.ItemStack)should also be overridden.- Returns:
- the step, or the length of the colored area of the item bar, for
stack - Mappings:
Namespace Name Mixin selector official fLcfs;f(Lcfx;)Iintermediary method_31569Lnet/minecraft/class_1792;method_31569(Lnet/minecraft/class_1799;)Inamed getItemBarStepLnet/minecraft/item/Item;getItemBarStep(Lnet/minecraft/item/ItemStack;)I
-
getItemBarColor
Returns the RGB color of the item bar, usually used for durability display.When overriding this,
isItemBarVisible(net.minecraft.item.ItemStack)andgetItemBarStep(net.minecraft.item.ItemStack)should also be overridden.- Returns:
- the RGB color of the item bar, usually used for durability display
- Mappings:
Namespace Name Mixin selector official gLcfs;g(Lcfx;)Iintermediary method_31571Lnet/minecraft/class_1792;method_31571(Lnet/minecraft/class_1799;)Inamed getItemBarColorLnet/minecraft/item/Item;getItemBarColor(Lnet/minecraft/item/ItemStack;)I
-
onStackClicked
Called when the item at the cursor is clicked atslot.While this method is usually called on the logical server, it can also be called on the logical client, so take caution when overriding this method. The logical side can be checked using
World.isClient.For example, this is called on
BundleItemwhen the cursor holds a bundle and the player clicks on the slot.- Parameters:
stack- the stack the cursor holdsslot- the clicked slot- Returns:
- whether the action was successful
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Lccv;Lcbl;Lbym;)Zintermediary method_31565Lnet/minecraft/class_1792;method_31565(Lnet/minecraft/class_1799;Lnet/minecraft/class_1735;Lnet/minecraft/class_5536;Lnet/minecraft/class_1657;)Znamed onStackClickedLnet/minecraft/item/Item;onStackClicked(Lnet/minecraft/item/ItemStack;Lnet/minecraft/screen/slot/Slot;Lnet/minecraft/util/ClickType;Lnet/minecraft/entity/player/PlayerEntity;)Z
-
onClicked
public boolean onClicked(ItemStack stack, ItemStack otherStack, Slot slot, ClickType clickType, PlayerEntity player, StackReference cursorStackReference) Called when the item atslotgets clicked by the cursor holdingotherStack.While this method is usually called on the logical server, it can also be called on the logical client, so take caution when overriding this method. The logical side can be checked using
World.isClient.For example, this is called on
BundleItemwhen the cursor holds an item and the player clicks on the slot that has a bundle.- Parameters:
stack- the slot's stackotherStack- the stack the cursor holdsslot- the clicked slot- Returns:
- whether the action was successful
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Lcfx;Lccv;Lcbl;Lbym;Lbgq;)Zintermediary method_31566Lnet/minecraft/class_1792;method_31566(Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;Lnet/minecraft/class_1735;Lnet/minecraft/class_5536;Lnet/minecraft/class_1657;Lnet/minecraft/class_5630;)Znamed onClickedLnet/minecraft/item/Item;onClicked(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;Lnet/minecraft/screen/slot/Slot;Lnet/minecraft/util/ClickType;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/inventory/StackReference;)Z
-
postHit
Called on the server when the item is used to hit an entity.Tools and melee weapons should override this to damage the stack.
- Returns:
- whether the item's use stat should be incremented
- See Also:
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Lbfx;Lbfx;)Zintermediary method_7873Lnet/minecraft/class_1792;method_7873(Lnet/minecraft/class_1799;Lnet/minecraft/class_1309;Lnet/minecraft/class_1309;)Znamed postHitLnet/minecraft/item/Item;postHit(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/entity/LivingEntity;)Z
-
postMine
public boolean postMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner) Called on the server when the item is used to break a block.Tools and melee weapons should override this to damage the stack, after checking if the block's hardness is larger than
0.0f.- Returns:
- whether the item's use stat should be incremented
- See Also:
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Lcmk;Ldby;Lgu;Lbfx;)Zintermediary method_7879Lnet/minecraft/class_1792;method_7879(Lnet/minecraft/class_1799;Lnet/minecraft/class_1937;Lnet/minecraft/class_2680;Lnet/minecraft/class_2338;Lnet/minecraft/class_1309;)Znamed postMineLnet/minecraft/item/Item;postMine(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/LivingEntity;)Z
-
isSuitableFor
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.Note that this is not the only way to achieve "effectiveness" when mining. Other items, such as shears on string, may use their own logic and calls to this method might not return a value consistent to this rule for those items.
- Mappings:
Namespace Name Mixin selector official a_Lcfs;a_(Ldby;)Zintermediary method_7856Lnet/minecraft/class_1792;method_7856(Lnet/minecraft/class_2680;)Znamed isSuitableForLnet/minecraft/item/Item;isSuitableFor(Lnet/minecraft/block/BlockState;)Z
-
useOnEntity
Called on both the client and the server when a player uses the item on an entity.This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using
World.isClient.This should be used if the item can be used on multiple types of entities, such as name tags or saddles.
- Returns:
- the action result
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Lbym;Lbfx;Lbdv;)Lbdw;intermediary method_7847Lnet/minecraft/class_1792;method_7847(Lnet/minecraft/class_1799;Lnet/minecraft/class_1657;Lnet/minecraft/class_1309;Lnet/minecraft/class_1268;)Lnet/minecraft/class_1269;named useOnEntityLnet/minecraft/item/Item;useOnEntity(Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/util/Hand;)Lnet/minecraft/util/ActionResult;
-
getName
- Mappings:
Namespace Name Mixin selector official pLcfs;p()Lsw;intermediary method_7848Lnet/minecraft/class_1792;method_7848()Lnet/minecraft/class_2561;named getNameLnet/minecraft/item/Item;getName()Lnet/minecraft/text/Text;
-
toString
-
getOrCreateTranslationKey
- Mappings:
Namespace Name Mixin selector official qLcfs;q()Ljava/lang/String;intermediary method_7869Lnet/minecraft/class_1792;method_7869()Ljava/lang/String;named getOrCreateTranslationKeyLnet/minecraft/item/Item;getOrCreateTranslationKey()Ljava/lang/String;
-
getTranslationKey
Gets the translation key of this item.- Mappings:
Namespace Name Mixin selector official aLcfs;a()Ljava/lang/String;intermediary method_7876Lnet/minecraft/class_1792;method_7876()Ljava/lang/String;named getTranslationKeyLnet/minecraft/item/Item;getTranslationKey()Ljava/lang/String;
-
getTranslationKey
Gets the translation key of this item using the provided item stack for context.- Mappings:
Namespace Name Mixin selector official jLcfs;j(Lcfx;)Ljava/lang/String;intermediary method_7866Lnet/minecraft/class_1792;method_7866(Lnet/minecraft/class_1799;)Ljava/lang/String;named getTranslationKeyLnet/minecraft/item/Item;getTranslationKey(Lnet/minecraft/item/ItemStack;)Ljava/lang/String;
-
isNbtSynced
public boolean isNbtSynced()Checks if an item should have its NBT data stored inItemStack.nbtsent to the client.If an item is damageable, this method is ignored and data is always synced to client.
- Mappings:
Namespace Name Mixin selector official rLcfs;r()Zintermediary method_7887Lnet/minecraft/class_1792;method_7887()Znamed isNbtSyncedLnet/minecraft/item/Item;isNbtSynced()Z
-
getRecipeRemainder
Gets the remainder item that should be left behind when this item is used as a crafting ingredient.- Mappings:
Namespace Name Mixin selector official sLcfs;s()Lcfs;intermediary method_7858Lnet/minecraft/class_1792;method_7858()Lnet/minecraft/class_1792;named getRecipeRemainderLnet/minecraft/item/Item;getRecipeRemainder()Lnet/minecraft/item/Item;
-
hasRecipeRemainder
public boolean hasRecipeRemainder()Checks if this item has a remainder item that is left behind when used as a crafting ingredient.- Mappings:
Namespace Name Mixin selector official tLcfs;t()Zintermediary method_7857Lnet/minecraft/class_1792;method_7857()Znamed hasRecipeRemainderLnet/minecraft/item/Item;hasRecipeRemainder()Z
-
inventoryTick
Called on both the client and the server every tick if the item is in the player's inventory.This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using
World.isClient.- Parameters:
entity- the entity holding the item; usually a playerselected- whether the item is in the selected hotbar slot- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Lcmk;Lbfh;IZ)Vintermediary method_7888Lnet/minecraft/class_1792;method_7888(Lnet/minecraft/class_1799;Lnet/minecraft/class_1937;Lnet/minecraft/class_1297;IZ)Vnamed inventoryTickLnet/minecraft/item/Item;inventoryTick(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V
-
onCraft
Called when a player acquires the item by crafting, smelting, smithing, etc.- Mappings:
Namespace Name Mixin selector official bLcfs;b(Lcfx;Lcmk;Lbym;)Vintermediary method_7843Lnet/minecraft/class_1792;method_7843(Lnet/minecraft/class_1799;Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;)Vnamed onCraftLnet/minecraft/item/Item;onCraft(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;)V
-
isNetworkSynced
public boolean isNetworkSynced()Returns whether the item needs to sync additional data to clients.Items should ideally store all necessary information on the stack's NBT. However, this is not always possible for things like maps. In those cases, items can send a packet to the player holding it that syncs additional data. Such items must subclass
NetworkSyncedItem.- Returns:
- whether the item needs to sync additional data to clients
- See Also:
- Mappings:
Namespace Name Mixin selector official ac_Lcfs;ac_()Zintermediary method_16698Lnet/minecraft/class_1792;method_16698()Znamed isNetworkSyncedLnet/minecraft/item/Item;isNetworkSynced()Z
-
getUseAction
Returns the use action the item should perform.- Returns:
- the use action the item should perform
- Mappings:
Namespace Name Mixin selector official cLcfs;c(Lcfx;)Lchq;intermediary method_7853Lnet/minecraft/class_1792;method_7853(Lnet/minecraft/class_1799;)Lnet/minecraft/class_1839;named getUseActionLnet/minecraft/item/Item;getUseAction(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/util/UseAction;
-
getMaxUseTime
Returns the maximum use (right-click) time of this item, in ticks. Once a player has used an item for said number of ticks, they stop using it, andfinishUsing(net.minecraft.item.ItemStack, net.minecraft.world.World, net.minecraft.entity.LivingEntity)is called.- Returns:
- the maximum use (right-click) time of this item, in ticks
- Mappings:
Namespace Name Mixin selector official bLcfs;b(Lcfx;)Iintermediary method_7881Lnet/minecraft/class_1792;method_7881(Lnet/minecraft/class_1799;)Inamed getMaxUseTimeLnet/minecraft/item/Item;getMaxUseTime(Lnet/minecraft/item/ItemStack;)I
-
onStoppedUsing
Called on both the client and the server when an entity stops using an item before reaching the maximum use time. If the time was reached,finishUsing(net.minecraft.item.ItemStack, net.minecraft.world.World, net.minecraft.entity.LivingEntity)is called instead.This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using
World.isClient.usermight not be a player in some cases. For example, this occurs when an entity uses a crossbow.- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Lcmk;Lbfx;I)Vintermediary method_7840Lnet/minecraft/class_1792;method_7840(Lnet/minecraft/class_1799;Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;I)Vnamed onStoppedUsingLnet/minecraft/item/Item;onStoppedUsing(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;I)V
-
appendTooltip
public void appendTooltip(ItemStack stack, @Nullable @Nullable World world, List<Text> tooltip, TooltipContext context) Called by the client to append tooltips to an item. Subclasses can override this and add custom tooltips totooltiplist.- Parameters:
tooltip- the list of tooltips to show- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Lcmk;Ljava/util/List;Lcho;)Vintermediary method_7851Lnet/minecraft/class_1792;method_7851(Lnet/minecraft/class_1799;Lnet/minecraft/class_1937;Ljava/util/List;Lnet/minecraft/class_1836;)Vnamed appendTooltipLnet/minecraft/item/Item;appendTooltip(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/item/TooltipContext;)V
-
getTooltipData
- Mappings:
Namespace Name Mixin selector official hLcfs;h(Lcfx;)Ljava/util/Optional;intermediary method_32346Lnet/minecraft/class_1792;method_32346(Lnet/minecraft/class_1799;)Ljava/util/Optional;named getTooltipDataLnet/minecraft/item/Item;getTooltipData(Lnet/minecraft/item/ItemStack;)Ljava/util/Optional;
-
getName
- Mappings:
Namespace Name Mixin selector official mLcfs;m(Lcfx;)Lsw;intermediary method_7864Lnet/minecraft/class_1792;method_7864(Lnet/minecraft/class_1799;)Lnet/minecraft/class_2561;named getNameLnet/minecraft/item/Item;getName(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/text/Text;
-
hasGlint
Checks if the glint effect should be applied when the item is rendered.By default, returns true if the item has enchantments.
- Mappings:
Namespace Name Mixin selector official iLcfs;i(Lcfx;)Zintermediary method_7886Lnet/minecraft/class_1792;method_7886(Lnet/minecraft/class_1799;)Znamed hasGlintLnet/minecraft/item/Item;hasGlint(Lnet/minecraft/item/ItemStack;)Z
-
getRarity
Returns this item's rarity, which changes the color of its name.By default, if an item has an enchantment, its rarity is modified:
- Common and Uncommon -> Rare
- Rare -> Epic
- Returns:
- this item's rarity, which changes the color of its name
- Mappings:
Namespace Name Mixin selector official nLcfs;n(Lcfx;)Lcgo;intermediary method_7862Lnet/minecraft/class_1792;method_7862(Lnet/minecraft/class_1799;)Lnet/minecraft/class_1814;named getRarityLnet/minecraft/item/Item;getRarity(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/util/Rarity;
-
isEnchantable
Returns whether the givenItemStackis enchantable.By default, ItemStacks are enchantable if their max stack count is 1 and they can be damaged.
- Returns:
- whether the given
ItemStackis enchantable - Mappings:
Namespace Name Mixin selector official d_Lcfs;d_(Lcfx;)Zintermediary method_7870Lnet/minecraft/class_1792;method_7870(Lnet/minecraft/class_1799;)Znamed isEnchantableLnet/minecraft/item/Item;isEnchantable(Lnet/minecraft/item/ItemStack;)Z
-
raycast
protected static BlockHitResult raycast(World world, PlayerEntity player, RaycastContext.FluidHandling fluidHandling) - Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcmk;Lbym;Lclt$b;)Ledw;intermediary method_7872Lnet/minecraft/class_1792;method_7872(Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;Lnet/minecraft/class_3959$class_242;)Lnet/minecraft/class_3965;named raycastLnet/minecraft/item/Item;raycast(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/world/RaycastContext$FluidHandling;)Lnet/minecraft/util/hit/BlockHitResult;
-
getEnchantability
public int getEnchantability()Gets the enchantability of an item. This specifies the ability of an item to receive enchantments when enchanted using an enchanting table. As the value increases, the amount and level of enchantments applied increase.If the value of this method is 0, the item cannot be enchanted using an enchanting table.
- Mappings:
Namespace Name Mixin selector official cLcfs;c()Iintermediary method_7837Lnet/minecraft/class_1792;method_7837()Inamed getEnchantabilityLnet/minecraft/item/Item;getEnchantability()I
-
canRepair
Returns whetherstackcan be repaired usingingredient.This only handles repairing using the ingredient such as diamonds, and does not handle combining tools or armor.
- Returns:
- whether
stackcan be repaired usingingredient - Mappings:
Namespace Name Mixin selector official aLcfs;a(Lcfx;Lcfx;)Zintermediary method_7878Lnet/minecraft/class_1792;method_7878(Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Znamed canRepairLnet/minecraft/item/Item;canRepair(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z
-
getAttributeModifiers
Returns the attribute modifiers the item provides.Tools and armor should override this to specify the attack damage or armor points.
- Returns:
- the attribute modifiers the item provides
- Mappings:
Namespace Name Mixin selector official aLcfs;a(Lbfm;)Lcom/google/common/collect/Multimap;intermediary method_7844Lnet/minecraft/class_1792;method_7844(Lnet/minecraft/class_1304;)Lcom/google/common/collect/Multimap;named getAttributeModifiersLnet/minecraft/item/Item;getAttributeModifiers(Lnet/minecraft/entity/EquipmentSlot;)Lcom/google/common/collect/Multimap;
-
isUsedOnRelease
- Mappings:
Namespace Name Mixin selector official lLcfs;l(Lcfx;)Zintermediary method_7838Lnet/minecraft/class_1792;method_7838(Lnet/minecraft/class_1799;)Znamed isUsedOnReleaseLnet/minecraft/item/Item;isUsedOnRelease(Lnet/minecraft/item/ItemStack;)Z
-
getDefaultStack
Returns the default stack for this item.Items that expect certain NBT data in the item stack should override this method to return the stack with the NBT data.
- Returns:
- the default stack for this item
- Mappings:
Namespace Name Mixin selector official ad_Lcfs;ad_()Lcfx;intermediary method_7854Lnet/minecraft/class_1792;method_7854()Lnet/minecraft/class_1799;named getDefaultStackLnet/minecraft/item/Item;getDefaultStack()Lnet/minecraft/item/ItemStack;
-
isFood
public boolean isFood()Checks if this item is food and therefore is edible.- Mappings:
Namespace Name Mixin selector official uLcfs;u()Zintermediary method_19263Lnet/minecraft/class_1792;method_19263()Znamed isFoodLnet/minecraft/item/Item;isFood()Z
-
getFoodComponent
Returns this item'sFoodComponent, ornullif none was set.- Returns:
- this item's
FoodComponent, ornullif none was set - Mappings:
Namespace Name Mixin selector official vLcfs;v()Lcba;intermediary method_19264Lnet/minecraft/class_1792;method_19264()Lnet/minecraft/class_4174;named getFoodComponentLnet/minecraft/item/Item;getFoodComponent()Lnet/minecraft/item/FoodComponent;
-
getDrinkSound
Returns the sound for drinking the item.- Returns:
- the sound for drinking the item
- Mappings:
Namespace Name Mixin selector official ae_Lcfs;ae_()Lamg;intermediary method_21831Lnet/minecraft/class_1792;method_21831()Lnet/minecraft/class_3414;named getDrinkSoundLnet/minecraft/item/Item;getDrinkSound()Lnet/minecraft/sound/SoundEvent;
-
getEatSound
Returns the sound for eating the item.- Returns:
- the sound for eating the item
- Mappings:
Namespace Name Mixin selector official af_Lcfs;af_()Lamg;intermediary method_21830Lnet/minecraft/class_1792;method_21830()Lnet/minecraft/class_3414;named getEatSoundLnet/minecraft/item/Item;getEatSound()Lnet/minecraft/sound/SoundEvent;
-
isFireproof
public boolean isFireproof()Returns whether this item is immune to fire and lava damage.- Returns:
- whether this item is immune to fire and lava damage
- Mappings:
Namespace Name Mixin selector official wLcfs;w()Zintermediary method_24358Lnet/minecraft/class_1792;method_24358()Znamed isFireproofLnet/minecraft/item/Item;isFireproof()Z
-
damage
Returns whether this item can be damaged by the givensource.- Returns:
- whether this item can be damaged by the given
source - Mappings:
Namespace Name Mixin selector official aLcfs;a(Lbem;)Zintermediary method_24357Lnet/minecraft/class_1792;method_24357(Lnet/minecraft/class_1282;)Znamed damageLnet/minecraft/item/Item;damage(Lnet/minecraft/entity/damage/DamageSource;)Z
-
canBeNested
public boolean canBeNested()- Returns:
- true if the item can be placed inside of shulker boxes or bundles.
- Mappings:
Namespace Name Mixin selector official ag_Lcfs;ag_()Zintermediary method_31568Lnet/minecraft/class_1792;method_31568()Znamed canBeNestedLnet/minecraft/item/Item;canBeNested()Z
-
getRequiredFeatures
- Specified by:
getRequiredFeaturesin interfaceToggleableFeature- Mappings:
Namespace Name Mixin selector official mLcar;m()Lcau;intermediary method_45322Lnet/minecraft/class_7695;method_45322()Lnet/minecraft/class_7699;named getRequiredFeaturesLnet/minecraft/resource/featuretoggle/ToggleableFeature;getRequiredFeatures()Lnet/minecraft/resource/featuretoggle/FeatureSet;
-
Block.asItem()