Interface DynamicAttributeTool


public interface DynamicAttributeTool
Interface for adding various tool attributes to items.
  • Field Summary

    Fields
    Modifier and Type Field Description
    static Multimap<net.minecraft.entity.attribute.EntityAttribute,​net.minecraft.entity.attribute.EntityAttributeModifier> EMPTY  
  • Method Summary

    Modifier and Type Method Description
    default Multimap<net.minecraft.entity.attribute.EntityAttribute,​net.minecraft.entity.attribute.EntityAttributeModifier> getDynamicModifiers​(net.minecraft.entity.EquipmentSlot slot, net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user)
    Add modifiers for any EntityAttributes your item should give when equipped, based on the stack.
    default int getMiningLevel​(net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user)
    Deprecated.
    default int getMiningLevel​(net.minecraft.tag.Tag<net.minecraft.item.Item> tag, net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user)
    Determines the mining level of the passed stack, which is used for calculating what blocks this tool is allowed to break.
    default float getMiningSpeedMultiplier​(net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user)
    default float getMiningSpeedMultiplier​(net.minecraft.tag.Tag<net.minecraft.item.Item> tag, net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user)
    Determines the mining speed multiplier of the passed stack, which is one factor in overall mining speed.
    default float postProcessMiningSpeed​(net.minecraft.tag.Tag<net.minecraft.item.Item> tag, net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user, float currentSpeed, boolean isEffective)
    Post process the mining speed, this takes place after the mining speed has been calculated.
  • Field Details

    • EMPTY

      static final Multimap<net.minecraft.entity.attribute.EntityAttribute,​net.minecraft.entity.attribute.EntityAttributeModifier> EMPTY
  • Method Details

    • getMiningLevel

      @Deprecated default int getMiningLevel​(net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user)
      Deprecated.
      Determines the mining level of the passed stack, which is used for calculating what blocks this tool is allowed to break.
      Parameters:
      stack - The item stack being used to mine the block
      user - The current user of the tool, or null if there isn't any
      Returns:
      The mining level of the item. 3 is equal to a diamond pick.
    • getMiningLevel

      default int getMiningLevel​(net.minecraft.tag.Tag<net.minecraft.item.Item> tag, net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user)
      Determines the mining level of the passed stack, which is used for calculating what blocks this tool is allowed to break.
      Parameters:
      tag - The tool tag the item stack is being compared to
      state - The block to mine
      stack - The item stack being used to mine the block
      user - The current user of the tool, or null if there isn't any
      Returns:
      The mining level of the item. 3 is equal to a diamond pick.
    • getMiningSpeedMultiplier

      @Deprecated default float getMiningSpeedMultiplier​(net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user)
      Determines the mining speed multiplier of the passed stack, which is one factor in overall mining speed.
      Parameters:
      stack - The item stack being used to mine the block
      user - The current user of the tool, or null if there isn't any
      Returns:
      The mining speed multiplier of the item. 8.0 is equal to a diamond pick.
    • getMiningSpeedMultiplier

      default float getMiningSpeedMultiplier​(net.minecraft.tag.Tag<net.minecraft.item.Item> tag, net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user)
      Determines the mining speed multiplier of the passed stack, which is one factor in overall mining speed.
      Parameters:
      tag - The tool tag the item stack is being compared to
      state - The block to mine
      stack - The item stack being used to mine the block
      user - The current user of the tool, or null if there isn't any
      Returns:
      The mining speed multiplier of the item. 8.0 is equal to a diamond pick.
    • postProcessMiningSpeed

      default float postProcessMiningSpeed​(net.minecraft.tag.Tag<net.minecraft.item.Item> tag, net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user, float currentSpeed, boolean isEffective)
      Post process the mining speed, this takes place after the mining speed has been calculated.

      This allows bypassing the regular computation formula.

      Parameters:
      tag - The tool tag the item stack is handled by
      state - The block to mine
      stack - The item stack being used to mine the block
      user - The current user of the tool, or null if there isn't any
      currentSpeed - The mining speed before post process
      isEffective - whether the tool has been handled
      Returns:
      the speed after post processing
    • getDynamicModifiers

      default Multimap<net.minecraft.entity.attribute.EntityAttribute,​net.minecraft.entity.attribute.EntityAttributeModifier> getDynamicModifiers​(net.minecraft.entity.EquipmentSlot slot, net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user)
      Add modifiers for any EntityAttributes your item should give when equipped, based on the stack.

      Appends to either attribute modifier NBT or the result from Item.getAttributeModifiers(EquipmentSlot).

      Parameters:
      slot - The equipment slot this item is equipped in.
      stack - The stack that's equipped.
      user - The current user of the tool, or none if there isn't any
      Returns:
      The dynamic modifiers to add on top of other modifiers on this stack. If none, return EMPTY.