Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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

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.

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/

  • 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));

} ---|

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.

  • 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?

  • 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.

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/

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/

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/

  • 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  :D

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.