Posted July 18, 201411 yr Hi, My blocks are instantly breaking with any tool and i want them to only break with my pick. I have this in my block class: this.setHarvestLevel("pickaxe", 4); And this is the material my pick is "made" from: public static Item.ToolMaterial DungeonMaterial = EnumHelper.addToolMaterial("DungeonMaterial", 4, 3122, 14.0F, 3.0F, 17); With a diamond pick the blocks break instantly but don't drop the item. With my pick they break instantly and the blocks do drop. Help me make my block only break with my pickaxe and drop! Thanks - Tixal
July 19, 201411 yr Author Nobody? Well is this even possible? I can post more code if needed. Thanks - Tixal
July 19, 201411 yr I'm not sure what you mean exactly. Do you want your block to be completely unbreakable (like bedrock) unless someone uses your pickaxe, in which case it breaks normally? If so you can just not worry about setting the harvest level of the block, and use the BlockEvent.BreakEvent, check if the block that's being harvested is your block, check if the item that is being used is your pickaxe, and if not cancel the event. Something like @SubscribeEvent public void onBlockBroken(BlockEvent.BreakEvent event) { if(event.block instanceof YourBlockType && !(event.getPlayer().inventory.getCurrentItem().getItem() instanceof YourPickaxe) { event.setCancelled(true); } } EDIT: I forgot to mention, you'd also want to check that event.getPlayer().getCurrentItem() != null before calling geItem() because I believe if the player is using an empty hand getItem() on null throws a NPE. BEFORE ASKING FOR HELP READ THE EAQ! I'll help if I can. Apologies if I do something obviously stupid. If you don't know basic Java yet, go and follow these tutorials.
July 19, 201411 yr Author Do you want your block to be completely unbreakable (like bedrock) unless someone uses your pickaxe, in which case it breaks normally? Yes that is exactly what I want. I will go and try your solution now Thanks - Tixal
July 19, 201411 yr Author Hi, I have no idea how in use that code snip-it im a bit of a newb, I changed it so it will work with my blocks and tool and has no errors but it does nothing, Im guessing I did it wrong I added the code to my main class, I have never used events properly before so im not sure how to use it. My full project can be found here:https://github.com/Tixal/Mythical-Items if that helps you help me Thanks - Tixal
July 19, 201411 yr Just a question, did you set the hardness of the block in its constructor? View my website at -> http://www.xelitexirish.com/ You can nearly always contact me on my twitter (XeliteXirish)
July 20, 201411 yr Create a class for your event handling, then register that class using MinecraftForge.EVENT_BUS.register(InstanceOfYourEventHandlerClass); In that class create a method like the one I posted earlier. BEFORE ASKING FOR HELP READ THE EAQ! I'll help if I can. Apologies if I do something obviously stupid. If you don't know basic Java yet, go and follow these tutorials.
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.