Posted June 7, 201411 yr Hi, I've been searching all over the internet looking for how to do something when the item breaks but I can't find anything. I'm trying to make it so when my item breaks it gives me another item (by the way I'm modding on 1.7.2). Can anyone help? Thanks In Advance
June 7, 201411 yr It is easy. Just add setContainerItem(THE_ITEM_TO_CHANGE) in the constructor of your item. I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP) II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.
June 7, 201411 yr Hi, I've been searching all over the internet looking for how to do something when the item breaks but I can't find anything. I'm trying to make it so when my item breaks it gives me another item (by the way I'm modding on 1.7.2). Can anyone help? Thanks In Advance Not sure if this would work for you, but there is an event called PlayerDestroyItemEvent that might be what you need. Check out my tutorials here: http://jabelarminecraft.blogspot.com/
June 8, 201411 yr Author PlayerDestroyItemEvent doesn't work for me and this.setContainerItem(Whatever) doesn't work when the item breaks, any other idea's?
June 8, 201411 yr Author Could someone please tell me how to format them properly, that might be the problem. For "setContainerItem()" I tried putting |--- this.setContainerItem(SwordsMod.BrokenHilt); ---| and for "PlayerDestroyItemEvent" I tried |--- public void PlayerDestroyItemEvent(ItemStack itemstack, World world, EntityPlayer player) { player.inventory.addItemStackToInventory(new ItemStack(SwordsMod.BrokenHilt, 1)); } ---|
June 8, 201411 yr Oh then edit the Item#setDamage method. It would be called any time when the damage is changed. You may check if the damage is 0. I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP) II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.
June 8, 201411 yr http://www.minecraftforum.net/topic/1419836-forge-4x-events-howto/ That topic is a bit old. I've got most of a tutorial on events drafted as well, updated for 1.7.2 which may help some people. FireDragon, you can check it out here: http://jabelarminecraft.blogspot.com/p/minecraft-forge-172-event-handling.html Check out my tutorials here: http://jabelarminecraft.blogspot.com/
June 8, 201411 yr Author Could you give me an example of a way to give item on break? Here's the code for giving the item: public void WHATEVER_EVENT(EntityPlayer player) { player.inventory.addItemStackToInventory(new ItemStack(SwordsMod.BrokenHilt, 1)); } Also I'm completely confused about the Item#setDamage, could you show me an example of that?
June 8, 201411 yr Author Again, that is not how you listen for events. The Event is called PlayerDestroyItemEvent. I know the event's called PlayerDestroyItemEvent, the code I actually tried was(as stated in jabelars tutorial): public void onEvent(PlayerDestroyItemEvent event){ event.entityPlayer.inventory.addItemStackToInventory(new ItemStack(SwordsMod.BrokenHilt, 1)); } I typed WHATEVER_EVENT(EntityPlayer player) so nobody would get confused as to why it said player instead of EntityPlayer. The only reason it's there is to show how to add an item to inventory to make it easier to show me an example.
June 8, 201411 yr Did you do have the @SubscribeEvent annotation on the method? Did you register the handling class on the right event bus? Also, I usually put in a System.out.println("PlayerDestroyItemEvent handler called"); type of console message in the method to confirm whether the handler is actually being called. Check out my tutorials here: http://jabelarminecraft.blogspot.com/
June 8, 201411 yr Well, it is old, but the system still works the same. Generally, but the details are different. For example back then people used @ForgeSubscribe annotation, now it is @SubscribeEvent, also I think some of the actual available events are different. There is the FML bus now too, etc. Check out my tutorials here: http://jabelarminecraft.blogspot.com/
June 8, 201411 yr If you are not completely stupid it's easy to figure that out... You'd think. But there seem to be a lot of people asking questions without much knowledge of Java. You seem to have a lot of patience for noobs today but some of these threads make me laugh -- i see you tell them exactly what to do and they do something different then you tell them again and they do something different... Check out my tutorials here: http://jabelarminecraft.blogspot.com/
June 9, 201411 yr Author I made it give me an item when it breaks through TutEventHandler with this code: public class TutEventHandler { @SubscribeEvent public void onEvent(PlayerDestroyItemEvent event) { event.entityPlayer.inventory.addItemStackToInventory(new ItemStack(SwordsMod.BrokenHilt, 1)); } } I still need an 'if' statement to determine what item broke, any ideas for what 'if' statement I should use. Thanks for the help up until now
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.