Commit 99325523 authored by KingRainbow44's avatar KingRainbow44
Browse files

Fix handler invocation

parent 0e514b90
...@@ -140,13 +140,19 @@ public final class PluginManager { ...@@ -140,13 +140,19 @@ public final class PluginManager {
* @param event The event to invoke. * @param event The event to invoke.
*/ */
public void invokeEvent(Event event) { public void invokeEvent(Event event) {
Stream<EventHandler> handlers = this.listeners.stream() EnumSet.allOf(HandlerPriority.class)
.filter(handler -> handler.handles().isInstance(event)); .forEach(priority -> this.checkAndFilter(event, priority));
handlers.filter(handler -> handler.getPriority() == HandlerPriority.HIGH) }
.toList().forEach(handler -> this.invokeHandler(event, handler));
handlers.filter(handler -> handler.getPriority() == HandlerPriority.NORMAL) /**
.toList().forEach(handler -> this.invokeHandler(event, handler)); * Check an event to handlers for the priority.
handlers.filter(handler -> handler.getPriority() == HandlerPriority.LOW) * @param event The event being called.
* @param priority The priority to call for.
*/
private void checkAndFilter(Event event, HandlerPriority priority) {
this.listeners.stream()
.filter(handler -> handler.handles().isInstance(event))
.filter(handler -> handler.getPriority() == priority)
.toList().forEach(handler -> this.invokeHandler(event, handler)); .toList().forEach(handler -> this.invokeHandler(event, handler));
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment