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); + } } } }