From 8f9d10180135106f7ff2b1f3142a70099a3856cd Mon Sep 17 00:00:00 2001 From: Finn Date: Mon, 19 Jan 2026 22:27:20 +0100 Subject: [PATCH] Bug fixes --- pom.xml | 2 +- .../unlegitlibrary/event/EventManager.java | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 6a99b27..f8b6b7c 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ dev.unlegitdqrk unlegitlibrary - 1.7.0 + 1.7.1 https://unlegitdqrk.dev/ Just a big library diff --git a/src/main/java/dev/unlegitdqrk/unlegitlibrary/event/EventManager.java b/src/main/java/dev/unlegitdqrk/unlegitlibrary/event/EventManager.java index f871410..3d3b9d0 100644 --- a/src/main/java/dev/unlegitdqrk/unlegitlibrary/event/EventManager.java +++ b/src/main/java/dev/unlegitdqrk/unlegitlibrary/event/EventManager.java @@ -18,9 +18,20 @@ public final class EventManager extends DefaultMethodsOverrider { public void registerListener(Class listenerClass) throws Exception { if (isListenerRegistered(listenerClass)) return; - Object instance = listenerClass.getDeclaredConstructor().newInstance(); + EventListener instance = listenerClass.getDeclaredConstructor().newInstance(); + registerListenerInstance(instance); + } - for (Method method : listenerClass.getDeclaredMethods()) { + public void registerListener(EventListener listenerInstance) { + if (listenerInstance == null) throw new IllegalArgumentException("Listener instance cannot be null"); + Class listenerClass = listenerInstance.getClass(); + if (isListenerRegistered(listenerClass)) return; + + registerListenerInstance(listenerInstance); + } + + private void registerListenerInstance(Object instance) { + for (Method method : instance.getClass().getDeclaredMethods()) { Listener listenerAnnotation = method.getAnnotation(Listener.class); if (listenerAnnotation == null || method.getParameterCount() != 1) continue; @@ -37,7 +48,7 @@ public final class EventManager extends DefaultMethodsOverrider { .put(instance, method); } - eventListeners.put(listenerClass, instance); + eventListeners.put((Class) instance.getClass(), instance); } public synchronized void unregisterListener(Class listenerClass) { @@ -51,7 +62,6 @@ public final class EventManager extends DefaultMethodsOverrider { } } - // Clean up empty entries registeredListener.entrySet().removeIf(e -> e.getValue().values().stream().allMatch(Map::isEmpty));