Posted October 23, 20177 yr Ik, I am the worst for posting 2 questions in a day but, again newb I want to be able to chop the planks up with an axe and make it lose its durability. There isn't seem to be any tutorial on how to do it, so I came here Again, link to my code: https://github.com/WiseNoobCrusher/Extra-Additions/tree/master/src EDIT: I meant use it in a crafting recipe and make it lose durability, sorry for the confusion. Edited October 24, 20177 yr by WiseNoobCrusher
October 24, 20177 yr Ok so first dont be scared to ask, you can better ask then just stop with what you dont understand. First create a new class in your handlers package named "EventHandler" make it have the @EventBusSubscriber annonation Next up make a public static void method called: onBlockBreak make it have this parameter : BlockEvent.BreakEvent event put the @SubscribeEvent annonation before the method get those variables in your method: BlockPos pos = event.getPos(); World world = event.getWorld(); ItemStack stack = event.getPlayer().getHeldItem(event.getPlayer().getActiveHand()); Item item = stack.getItem(); finally paste in this bit of code to see if the block is broken by the tool you want and drop the item if (item == Items.WOODEN_AXE || item == Items.STONE_AXE || item == Items.IRON_AXE || item == Items.GOLDEN_AXE || item == Items.DIAMOND_AXE) { if (world.getBlockState(pos).getBlock() == Blocks.PLANKS) { event.setCanceled(true); world.setBlockToAir(pos); world.spawnEntity(new EntityItem(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.DIAMOND /* your item here*/))); event.getPlayer().getHeldItem(event.getPlayer().getActiveHand()).setItemDamage(stack.getItemDamage() + 1); }else { event.setCanceled(false); } }else { event.setCanceled(false); } It would look something like this package bte.util.handlers; import net.minecraft.entity.item.EntityItem; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.network.ForgeMessage; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @EventBusSubscriber public class EventHandler { @SubscribeEvent public static void onBlockBreak(BlockEvent.BreakEvent event) { BlockPos pos = event.getPos(); World world = event.getWorld(); System.out.println("LEL you broke a block"); ItemStack stack = event.getPlayer().getHeldItem(event.getPlayer().getActiveHand()); Item item = stack.getItem(); if (item == Items.WOODEN_AXE || item == items.dia) { if (world.getBlockState(pos).getBlock() == Blocks.PLANKS) { event.setCanceled(true); world.setBlockToAir(pos); world.spawnEntity(new EntityItem(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.DIAMOND /* your item here*/))); event.getPlayer().getHeldItem(event.getPlayer().getActiveHand()).setItemDamage(stack.getItemDamage() + 1); }else { event.setCanceled(false); } }else { event.setCanceled(false); } } } Edited October 24, 20177 yr by tebreca
October 24, 20177 yr 6 hours ago, tebreca said: if (item == Items.WOODEN_AXE || item == Items.STONE_AXE || item == Items.IRON_AXE || item == Items.GOLDEN_AXE || item == Items.DIAMOND_AXE) { if(item instanceof ItemAxe) { //now it works for mod axes too Edited October 24, 20177 yr by Draco18s Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
October 24, 20177 yr Author Well this post went off topic real quick Just want to know how to make an axe lose durability when using it in a crafting recipe. Edited October 24, 20177 yr by WiseNoobCrusher
October 24, 20177 yr 21 minutes ago, WiseNoobCrusher said: Well this post went off topic real quick Just want to know how to make an axe lose durability when using it in a crafting recipe. next time maybe explain what you want, i thought that you wanted to drop a special item when you break planks with an axe
October 24, 20177 yr 22 minutes ago, diesieben07 said: Bad Draco, no cookie. Item::getToolClasses(ItemStack).contains("axe"). Touche. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
October 24, 20177 yr Author 32 minutes ago, diesieben07 said: Nowhere in your original post did you mention crafting recipes. Override hasContainerItem and getContainerItem in your Item class. How am I to do that for a wood axe?
October 24, 20177 yr Author To be clear, I want when I put any axe (I am testing with the wood one) with a wood log (oak log for testing) in the crafting table, it will spit out 2 planks (oak planks for testing). Edited October 24, 20177 yr by WiseNoobCrusher
October 24, 20177 yr Author I currently have that dummy recipe but commented it out the line that it comes into play.
October 24, 20177 yr 1 minute ago, WiseNoobCrusher said: To be clear, I want when I put any axe (I am testing with the wood one) with a wood log (oak log for testing) in the crafting table, it will spit out 2 planks (oak planks for testing). im working on it, give me a minute
October 24, 20177 yr Author Just now, tebreca said: im working on it, give me a minute Ik, just making it clear before someone comments that I typed it wrong again
October 24, 20177 yr 23 minutes ago, WiseNoobCrusher said: I have a IRecipe class... i cant figure out right now, i can make that when you mine a log with an axe it drops 2 planks
October 24, 20177 yr Author Just now, tebreca said: i cant figure out right now, i can make that when you mine a log with an axe it drops 2 planks Ok, thanks anyway.
October 24, 20177 yr 1 minute ago, diesieben07 said: Ok...? i want to make a custom IRecipe class for supporting different types of axes to create more planks depending on the harvest level of the enum material
October 24, 20177 yr Just now, diesieben07 said: You are not even the original poster in this thread. What does this have to do with anything? its the only way i can think off doing it, but thats why i dont have the modder tag i guess
October 24, 20177 yr 1 minute ago, diesieben07 said: You said what you wanted to do...?! im sorry for my bad english ok =(
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.