Jump to content

[1.12.2] Question on event listener callback ordering...


OreCruncher

Recommended Posts

I see that the list of listeners for an event is maintained in an ArrayList.  Assuming multiple listeners with the same priority it means that the listeners are invoked in order of registration.  My question is whether this is just happenstance because an ArrayList is used to track listeners, or can I be assume that this "in order" behavior is part of the event subscription contract?

Link to comment
Share on other sites

4 minutes ago, OreCruncher said:

question is whether this is just happenstance because an ArrayList is used to track listeners, or can I be assume that this "in order" behavior is part of the event subscription contract?

Well it will always be true at least as long as they use a List. And no one modifies the List. Does that answer your question?

Edited by Animefan8888

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

Based on your statement I will assume that it is by happenstance of the implementation rather than an intended design feature of the event system.  Thanks!

 

EDIT: A little more background as to why I asked the question.  I am reworking some of the implementation in my mod which resulted in a dependency ordering between some objects.  These objects were registered to listen on the event bus for the same modded events.  Because of design I couldn't just go in and change priorities of the event listeners.  I noticed the "in order" callback behavior of the event bus but was unsure if it was intentional or not.  As result of this post I need to go back and rework my design.  Yay.

Edited by OreCruncher
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.