From 6cc8e23e079b854b549c953910a5adeca180b6e4 Mon Sep 17 00:00:00 2001 From: Finn Date: Wed, 10 Jul 2024 00:20:57 +0200 Subject: [PATCH] More bug fixes --- .../unlegitlibrary/event/EventManager.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/me/finn/unlegitlibrary/event/EventManager.java b/src/main/java/me/finn/unlegitlibrary/event/EventManager.java index 3f7381f..9489da5 100644 --- a/src/main/java/me/finn/unlegitlibrary/event/EventManager.java +++ b/src/main/java/me/finn/unlegitlibrary/event/EventManager.java @@ -50,20 +50,22 @@ public class EventManager extends DefaultMethodsOverrider { Object clazz = eventListeners.get(listenerClass); - for (Class eventClass : registeredListener.keySet()) { - HashMap> priorityMap = registeredListener.get(eventClass); + synchronized (registeredListener) { + for (Class eventClass : registeredListener.keySet()) { + HashMap> priorityMap = registeredListener.get(eventClass); - if (priorityMap != null) { - synchronized (priorityMap) { - for (EventPriority priority : priorityMap.keySet()) { - HashMap listeners = priorityMap.get(priority); - if (listeners != null) { - listeners.remove(clazz); - if (listeners.isEmpty()) priorityMap.remove(priority); + if (priorityMap != null) { + synchronized (priorityMap) { + for (EventPriority priority : priorityMap.keySet()) { + HashMap listeners = priorityMap.get(priority); + if (listeners != null) { + listeners.remove(clazz); + if (listeners.isEmpty()) priorityMap.remove(priority); + } } - } - if (priorityMap.isEmpty()) registeredListener.remove(eventClass); + if (priorityMap.isEmpty()) registeredListener.remove(eventClass); + } } } }