Improved event handling in preparation of #193
Continuation of my refactor attempt in c5782562f6e2fe739f58f92ac1e57237fad0e906 , which I postponed at the time
Changes
Firing events
Added a single fireEvent() method that takes the class of the event to fire as a parameter
and removed the fire methods in each individual event.
Registering event listeners
Instead of the registry just being one big list with all event listeners, the registry is now a hasmap of arraylists.
This is to avoid iterating over the entire list, to find which event listeners listens for the event that is being fired.
By using the Event.class as a key during registering, EVENTLISTENER_REGISTRY.get() returns the list of listeners that do actually implement the event.
Registering lambdas
Coincidentally, it is now possible to register lambdas as event listeners.
Misc
Moved CompactPacketHandler to server package as that it where it actually belongs
Improved event handling in preparation of #193 Continuation of my refactor attempt in c5782562f6e2fe739f58f92ac1e57237fad0e906 , which I postponed at the time
Changes
Firing events
Added a single
fireEvent()
method that takes the class of the event to fire as a parameterand removed the
fire
methods in each individual event.Registering event listeners
Instead of the registry just being one big list with all event listeners, the registry is now a hasmap of arraylists.
This is to avoid iterating over the entire list, to find which event listeners listens for the event that is being fired.
By using the Event.class as a key during registering, EVENTLISTENER_REGISTRY.get() returns the list of listeners that do actually implement the event.
Registering lambdas
Coincidentally, it is now possible to register lambdas as event listeners.
Misc
Moved CompactPacketHandler to
server
package as that it where it actually belongs