Jump to content

[1.14.4] onBlockActivated not firing when sneaking + set to allow in event


JayZX535

Recommended Posts

Hey all,

Got a bit of a stumper.  I have a custom block that's supposed to run an interaction when clicked with a certain item.  That's fine and great, I got that part working.  However, because I'm using the onBlockActivated method, it doesn't fire when shift clicking  (which I want it to do because I want it to activate a different function when shift clicked with that item).  I looked it up and saw that this is an intended function, and that I need to override the PlayerInteractEvent.RightClickBlock event to make it allow the click.  Which I did.  Except no matter what I try, I can't get it to actually register the onBlockActivated event.  It works as intended with a normal click.  It's just shift clicking that's not working.  My code is as follows:

@SubscribeEvent
public static void playerRightClickBlock(PlayerInteractEvent.RightClickBlock event) {
       	if (event.getWorld().getBlockState(event.getPos()).getBlock() instanceof WCFoodBowlBlock)
       	{
       		if (WCFoodBowlTileEntity.isValidFood(event.getItemStack()))
       		{
       			System.out.println("Right Clicked on food bowl with valid item");
       			event.setUseBlock(Event.Result.ALLOW);
       		}
       	}
    }

That print statement does fire.  So the event is getting caught and running properly, and none of those if statements are throwing it off.  I can only assume I either got the wrong event somehow, am using the wrong function to make the onBlockActivated method fire even while sneaking, or Forge itself has a bug.  I'm using the latest stable version so if so, it must be something pretty recent...

Thank you for your time, and have a great day!

Link to comment
Share on other sites

Bump.  Issue still persists, not sure what's causing it.  Also worth noting, I'm checking if the function is running via a print statement in onBlockActivated within my block.  The ones here in the event run, but the one in that function does not.  Since there's no if statements or anything to interfere with onBlockActivated, I assume this issue has to be with the event either not being sent properly, or with me needing to use a different method or something.  Does PlayerInteractEvent.RightClickBlock actually call onBlockActivated?  Or do I have the wrong event/method?

Link to comment
Share on other sites

In this case, you can forget about Block#onBlockActivated and implement the entire behavior in the RightClickBlock event subscriber.

Some tips:

Spoiler

Modder Support:

Spoiler

1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code.

2. Always post your code.

3. Never copy and paste code. You won't learn anything from doing that.

4. 

Quote

Programming via Eclipse's hotfixes will get you nowhere

5. Learn to use your IDE, especially the debugger.

6.

Quote

The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it.

Support & Bug Reports:

Spoiler

1. Read the EAQ before asking for help. Remember to provide the appropriate log(s).

2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.

 

 

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.

Announcements



×
×
  • Create New...

Important Information

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