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

is there any kind of event listener in some hidden part of forge that will pop up when a block is broken ?

i've checked in the world events and in the entity , entity living , and entity player , but the closest thing is the start to break , witch i dont want to use cause it'd cause lots of exploding guns.

 

now just to clarify i don't want the event to be on a block , cause i'm checking if an item the player has is in their hand when they break it , not ,for example, if should the block explode if not harvested properly.

 

what i want to do is make it so if some one breaks a block with a gun , the next time the gun is used it will explode in their hands.

Put your check in func_77660_a (I don't know it's non obfuscated name, it has that name in my de-obfuscated code) for the gun. That method is what damages the tool when it finishes destroying a block.

 

    public boolean func_77660_a(ItemStack par1ItemStack, World par2World, int par3, int par4, int par5, int par6, EntityLiving par7EntityLiving)
    {
       //Returns true when a block is broken
       boolean result = super.func_77660_a(par1ItemStack, par2World, par3, par4, par5, par6, par7EntityLiving);
       if(result == true)
       {
           this.setGunToExplode();
       }
       return result;
    }

 

 

You can also make it happen on hit by putting your check in getStrVsBlock code for the gun.

    public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block)
    {
        if(par2Block != null)
        {
              //We are hitting against a block
              if(par2Block.blockMaterial != Material.colth)
              {
                     //If we hit any material other than ones that are cloth based, set the explode flag.
                     this.setGunToExplode();
              }
        }
        return 1.0F;
    }

  • Author

TY , the func_77660_a works =D

but not how you had it set up , cause that function always returns false , so with a quick tweak i got my exploding guns ^_^

  • Author

didnt see that but i fixed it when typing it in any ways

the problem is the super.func_77660_a() always returns false

its hard coded that way in the parent . so i just made it so when ever it calls that function to make the gun be set to explode

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.