Jump to content

Advice on Forge events


Blockhead2

Recommended Posts

Hi folks. I'm a relative forge newbie but done a couple of complex bukkit server plugins and am looking for some guidance from more experienced forge moders.

 

I've had a good look through the source but can't find a handy way to intercept (and possibly cancel) what bukkit would call block break, block place and craft item events.

 

I cobbled together some block place and break control using PlayerInteractEvent and BreakSpeed but my attempts were a little clumsy. I found lots of cool hooks for controlling this on new blocks I've created, but I'd like to be able to manage any in-game block too (without changing net.minecraft).

 

My gut tells me most things should be possible with the level of server and client control in minecraftforge. I even thought about splitting the mod into two sections, one Forge and one Bukkit and sharing the server side data somehow. That has to be mad, right?

 

  @ForgeSubscribe
  public void onBreakSpeed(BreakSpeed event) {
    if(event.block.blockID == Block.torchWood.blockID) {
      if(event.isCancelable()) {
        event.setCanceled(true);
      }
    }
  }  
  
  @ForgeSubscribe
  public void onPlayerInteract(PlayerInteractEvent event) {
    EntityPlayer p = event.entityPlayer;
    if(event.action != Action.LEFT_CLICK_BLOCK) {
      ItemStack s = p.inventory.getCurrentItem();
      if(s.itemID == Block.torchWood.blockID) {
        // Difficult to get the coordinates for where the new block would have
        // been placed.
        if(event.isCancelable()) {
          event.setCanceled(true);
        }
      }
    }
  }

 

 

Link to comment
Share on other sites

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

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