Class ToolManager

java.lang.Object
net.fabricmc.fabric.api.tool.attribute.v1.ToolManager

public final class ToolManager
extends Object
API facing part to register tool handlers and get information about how tools are handled. Implement DynamicAttributeTool to change the mining level or speed of your tool depending on the ItemStack.
  • Method Summary

    Modifier and Type Method Description
    static float handleBreakingSpeed​(net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user)
    Handles the breaking speed breaking a block.
    static float handleBreakingSpeedIgnoresVanilla​(net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user)
    Handles the breaking speed breaking a block, ignores vanilla tools on vanilla blocks.
    static boolean handleIsEffectiveOn​(net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user)
    Handles if the tool is effective on a block.
    static boolean handleIsEffectiveOnIgnoresVanilla​(net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user)
    Handles if the tool is effective on a block, ignores vanilla tools on vanilla blocks.
    static boolean handleIsEffectiveOnIgnoresVanilla​(net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable net.minecraft.entity.LivingEntity user, boolean vanillaResult)
    Handles if the tool is effective on a block, ignores vanilla tools on vanilla blocks.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • handleIsEffectiveOn

      public static boolean handleIsEffectiveOn​(net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user)
      Handles if the tool is effective on a block.
      Parameters:
      state - the block state to break
      stack - the item stack involved with breaking the block
      user - the user involved in breaking the block, null if not applicable.
      Returns:
      whether the tool is effective
    • handleIsEffectiveOnIgnoresVanilla

      public static boolean handleIsEffectiveOnIgnoresVanilla​(net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user, boolean vanillaResult)
      Handles if the tool is effective on a block, ignores vanilla tools on vanilla blocks.
      Parameters:
      state - the block state to break
      stack - the item stack involved with breaking the block
      user - the user involved in breaking the block, null if not applicable.
      vanillaResult - whether the tool is considered effective by vanilla
      Returns:
      whether the tool is effective
    • handleIsEffectiveOnIgnoresVanilla

      public static boolean handleIsEffectiveOnIgnoresVanilla​(net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user)
      Handles if the tool is effective on a block, ignores vanilla tools on vanilla blocks.
      Parameters:
      state - the block state to break
      stack - the item stack involved with breaking the block
      user - the user involved in breaking the block, null if not applicable.
      Returns:
      whether the tool is effective
    • handleBreakingSpeed

      public static float handleBreakingSpeed​(net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user)
      Handles the breaking speed breaking a block.
      Parameters:
      state - the block state to break
      stack - the item stack involved with breaking the block
      user - the user involved in breaking the block, null if not applicable.
      Returns:
      the speed multiplier in breaking the block, 1.0 if no change.
    • handleBreakingSpeedIgnoresVanilla

      public static float handleBreakingSpeedIgnoresVanilla​(net.minecraft.block.BlockState state, net.minecraft.item.ItemStack stack, @Nullable @Nullable net.minecraft.entity.LivingEntity user)
      Handles the breaking speed breaking a block, ignores vanilla tools on vanilla blocks.
      Parameters:
      state - the block state to break
      stack - the item stack involved with breaking the block
      user - the user involved in breaking the block, null if not applicable.
      Returns:
      the speed multiplier in breaking the block, 1.0 if no change.