Jump to content

[1.7.2] LivingSetAttackTargetEvent on different Mods


delpi

Recommended Posts

I'm not sure if this is intentional or not, hoping someone can help me out.

 

For the purposes of this question, I have two different mods.

 

For a custom entity that does target selection in a unique way I have at the end of its routine the statement.

 

            ForgeHooks.onLivingSetAttackTarget(this, targetLiving);

 

I wanted it to call this event so that I could process it in the 2nd mod.

 

The problem I was having is the 2nd mod never saw it.

 

After some troubleshooting, Mod 1 where the custom NPC is, does see that event.  Mod 2 never does.

 

So, Is this a feature or a bug?  If it is a feature, how do I go about specifying it so mod 2 can see it?

Long time Bukkit & Forge Programmer

Happy to try and help

Link to comment
Share on other sites

Is anything canceling the event?  You may want to set the handler priority in your "2nd" mod to highest, and also maybe set receiveCanceled to true.  Basically you augment the @SubscribeEvent like this:

@SubscribeEvent(priority=EventPriority.HIGHEST, receiveCanceled=true)

 

If it still doesn't get it, that seems weird.  However, one thing I'm not sure about is how event buses get cleared.  I assume it is a queue and the events stay there until handled, but there may be a subtlety where if mod 1 actually fires it after the mod 2 event handler is checked maybe the event somehow gets stuck -- like maybe it has to be handled in same tick that it is posted or it might be lost.  Not sure, just a thought.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

I checked, it is registered because I can see it firing for normal entities. I have a print statement as the 1st thing in both mods for this event so I can see which one fires.

 

This event isn't cancellable, so that takes that out of the equation.

 

I'll try the priority and see what that does.

 

What order and getting stuck might be something.  But my understanding was when the event fired, it cycled through all the mods registered to until interupted.  Since this one isn't cancellable, I don't think that would happen.

 

This is very odd.

 

 

 

Long time Bukkit & Forge Programmer

Happy to try and help

Link to comment
Share on other sites

Nevermind, I screwed that one up. 

 

I went back and inspected one more time and spotted that my print statement was not the first line.  I was checking for a null to avoid and endless loop and I fatfingered a == vs a !=.

 

Sigh.

 

 

Thanks for the help guys.

Long time Bukkit & Forge Programmer

Happy to try and help

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.