fix: change EventBus registration behaviour

This commit is contained in:
cattyn
2026-05-30 03:01:45 +03:00
committed by GitHub
@@ -45,8 +45,10 @@ public class EventBus {
Class<?> eventType = params[0]; Class<?> eventType = params[0];
Listener listener = Listener.of(host, subscribe.priority(), method); Listener listener = Listener.of(host, subscribe.priority(), method);
List<Listener> registry = listeners.computeIfAbsent(eventType, List<Listener> registry = listeners.computeIfAbsent(
k -> new CopyOnWriteArrayList<>()); eventType,
k -> new CopyOnWriteArrayList<>()
);
register(registry, listener); register(registry, listener);
} }
@@ -58,10 +60,15 @@ public class EventBus {
private void register(List<Listener> registry, Listener target) { private void register(List<Listener> registry, Listener target) {
int i = 0; int i = 0;
for (Listener listener : registry) { for (Listener listener : registry) {
if (target.priority() > listener.priority()) {
break;
}
i++; i++;
if (target.priority() > listener.priority()) break;
} }
registry.add(i, target); registry.add(i, target);
} }
} }