package net.minecraft.world.item; import net.minecraft.core.component.DataComponents; import net.minecraft.tags.TagKey; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.EquipmentSlotGroup; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.item.component.ItemAttributeModifiers; import net.minecraft.world.level.block.Block; public class DiggerItem extends TieredItem { protected DiggerItem(Tier tier, TagKey blocks, Item.Properties properties) { super(tier, properties.component(DataComponents.TOOL, tier.createToolProperties(blocks))); } public static ItemAttributeModifiers createAttributes(Tier tier, float attackDamage, float attackSpeed) { return ItemAttributeModifiers.builder() .add( Attributes.ATTACK_DAMAGE, new AttributeModifier(BASE_ATTACK_DAMAGE_ID, attackDamage + tier.getAttackDamageBonus(), AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND ) .add(Attributes.ATTACK_SPEED, new AttributeModifier(BASE_ATTACK_SPEED_ID, attackSpeed, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) .build(); } @Override public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { return true; } @Override public void postHurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { stack.hurtAndBreak(2, attacker, EquipmentSlot.MAINHAND); } }