StaffHandler

public abstract class StaffHandler(source)

Provides functionality for a staff, when an item is inserted into it.

Inheritors

Constructors

Link copied to clipboard

Types

Link copied to clipboard
public class Default extends StaffHandler

Handler of a staff with no item inserted into it.

Properties

Link copied to clipboard

Gets the attribute modifiers (damage, attack speed, etc.) of the staff when held.

Link copied to clipboard
private final Integer maxUseTime

The number of ticks the staff can be used for using the current item.

Functions

Link copied to clipboard
public Boolean allowComponentsUpdateAnimation(ItemStack oldStaffStack, ItemStack newStaffStack, PlayerEntity player, Hand hand)

Called on the client side by Fabric API, when the NBT of the held item gets updated.

Link copied to clipboard
public Boolean allowReequipAnimation(ItemStack oldStaffStack, ItemStack newStaffStack, Boolean selectedSlotChanged)

Called on the client side by Neo/Forge, when the NBT of the held item gets updated.

Link copied to clipboard
public Unit attack(ItemStack staffStack, World world, LivingEntity attacker, Hand hand)

Called on both the client by Architectury API and the server by Staff Mod, when an entity attacks thin air with a staff.

Link copied to clipboard
public EventResult attackBlock(ItemStack staffStack, World world, LivingEntity attacker, BlockPos target, Direction side, Hand hand)

Called on both the client and the server by Architectury API, when an entity attacks a block with a staff.

Link copied to clipboard
public EventResult attackEntity(ItemStack staffStack, World world, LivingEntity attacker, Entity target, Hand hand)

Called on both the client by Fabric/Neo/Forge API and the server by Fabric/Neo/Forge API, when an entity attacks an entity with a staff.

Link copied to clipboard
public Boolean canSwingHand(ItemStack staffStack, World world, LivingEntity holder, Hand hand)

Called on both the client and the server by Staff Mod on Fabric and Neo/Forge API on Neo/Forge, when an entity holding a staff tries to swing its hand.

Link copied to clipboard
public final static Boolean contains(Identifier staffItem)

Checks, if a staff item handler for the given item is registered.

Link copied to clipboard
public Boolean disablesShield(ItemStack staffStack, World world, LivingEntity attacker, Hand hand)

Returns if attacking with the staff should disable the target's shield.

Link copied to clipboard
public ItemStack finishUsing(ItemStack staffStack, World world, LivingEntity user)

Called on both the client and the server by Minecraft, when an entity finishes using the staff (usage ticks reach maxUseTime).

Link copied to clipboard
public final static StaffHandler get(Identifier staffItem)

Gets the registered staff item handler for the given item or null, if no staff item handler was registered.

Link copied to clipboard
Link copied to clipboard
public Unit onStoppedUsing(ItemStack staffStack, World world, LivingEntity user, Integer remainingUseTicks)

Called on both the client and the server by Minecraft, when an entity stops using the staff before being used for maxUseTime. If that time is reached, finishUsing will be called.

Link copied to clipboard
public final static Boolean register(Identifier staffItem, StaffHandler handler)

Registers a StaffHandler for the given item ID. Call this from your common mod initializer.

Link copied to clipboard
public Unit usageTick(ItemStack staffStack, World world, LivingEntity user, Integer remainingUseTicks)

Called on both the client and the server by Minecraft every tick an entity uses the staff.

Link copied to clipboard
public TypedActionResult<ItemStack> use(ItemStack staffStack, World world, PlayerEntity user, Hand hand)

Called on both the client and the server by Minecraft when the player uses the staff.

Link copied to clipboard
public ActionResult useOnBlock(ItemStack staffStack, World world, LivingEntity user, BlockPos target, Direction side, Hand hand)

Called on both the client and the server by Minecraft, when an entity uses the staff on a block. This method may not be called, if the block handles the use event (for example, a chest).

Link copied to clipboard
public ActionResult useOnEntity(ItemStack staffStack, World world, LivingEntity user, LivingEntity target, Hand hand)

Called on both the client and the server by Minecraft, when an entity uses the staff on an entity. This method may not be called, if the entity handles the use event (for example, a horse). This method will not be called, if the player is in spectator mode.