Posted July 28, 201411 yr 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
July 28, 201411 yr 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/
July 28, 201411 yr Any event posted to the bus will be seen by all mods, should they listen for it; are you sure you registered your event listener properly in the second mod? How do you know the 2nd mod doesn't receive the event? http://i.imgur.com/NdrFdld.png[/img]
July 28, 201411 yr Author 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
July 28, 201411 yr Author 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
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.