MSpace-Dev Posted December 19, 2017 Posted December 19, 2017 (edited) Hey everyone, I want to make a custom tool that loses durability when either, right-clicking a specific block, or breaking any block. (I can do basic block checks here) The main thing I'm struggling with is actually removing durability from the tool, and registering it correctly. I currently have a tool that extends ItemTool and have registered it. Just having trouble setting and removing durability. (I know this is probably super wrong what I'm tying to do here) Bottom code crashes immediately when breaking a block, a null pointer on something called getStrVsBlock() . Item Carving Tool: public class ItemCarvingTool extends ItemToolBase { public ItemCarvingTool(String name, float attackDamageIn, float attackSpeedIn, ToolMaterial materialIn, Set<Block> effectiveBlocksIn) { super(name, attackDamageIn, attackSpeedIn, materialIn, effectiveBlocksIn); setMaxStackSize(1); setMaxDamage(15); } @Override public boolean onBlockDestroyed(ItemStack stack, World worldIn, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) { stack.setItemDamage(stack.getItemDamage() - 1); return false; } } Item Tool Base: public class ItemToolBase extends ItemTool { public ItemToolBase(String name, float attackDamageIn, float attackSpeedIn, ToolMaterial materialIn, Set<Block> effectiveBlocksIn) { super(attackDamageIn, attackSpeedIn, materialIn, effectiveBlocksIn); this.setUnlocalizedName(name); this.setRegistryName(new ResourceLocation(Reference.MODID, name)); } } Register item: public static final Item carving_tool = new ItemCarvingTool("carving_tool", 2.0f, 2.0f, Item.ToolMaterial.IRON, null); Edited December 19, 2017 by MSpace-Dev 'final' wasn't copied Quote
Matryoshika Posted December 19, 2017 Posted December 19, 2017 To damage the itemstack, call ItemStack::damageItem instead. It automatically handles breaking when durability <= 0 & deals with statistics as well. You also need to provide an empty Set<Block> instead of null when instantiating your ItemCarvingTool. 1 Quote Also previously known as eAndPi. "Pi, is there a station coming up where we can board your train of thought?" -Kronnn Published Mods: Underworld Handy links: Vic_'s Forge events Own WIP Tutorials.
MSpace-Dev Posted December 19, 2017 Author Posted December 19, 2017 Ah, I see. Alright, gonna try that out Quote
MSpace-Dev Posted December 19, 2017 Author Posted December 19, 2017 Awesome, it is working perfectly. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.