From 376c1d6f56991412c96f721284942dc166d5356a Mon Sep 17 00:00:00 2001 From: Finn Date: Wed, 10 Jul 2024 00:11:32 +0200 Subject: [PATCH] More bug fixes --- pom.xml | 2 +- .../finn/unlegitlibrary/event/EventManager.java | 16 +++++++++------- .../network/system/server/ClientHandler.java | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 6d73a8e..04f65f3 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.finn.unlegitlibrary unlegitlibrary - 1.1 + 1.2 21 diff --git a/src/main/java/me/finn/unlegitlibrary/event/EventManager.java b/src/main/java/me/finn/unlegitlibrary/event/EventManager.java index 53ca7af..3f7381f 100644 --- a/src/main/java/me/finn/unlegitlibrary/event/EventManager.java +++ b/src/main/java/me/finn/unlegitlibrary/event/EventManager.java @@ -54,15 +54,17 @@ public class EventManager extends DefaultMethodsOverrider { HashMap> priorityMap = registeredListener.get(eventClass); if (priorityMap != null) { - for (EventPriority priority : priorityMap.keySet()) { - HashMap listeners = priorityMap.get(priority); - if (listeners != null) { - listeners.remove(clazz); - if (listeners.isEmpty()) priorityMap.remove(priority); + 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); + } } } diff --git a/src/main/java/me/finn/unlegitlibrary/network/system/server/ClientHandler.java b/src/main/java/me/finn/unlegitlibrary/network/system/server/ClientHandler.java index 1d5010e..eaf55a4 100644 --- a/src/main/java/me/finn/unlegitlibrary/network/system/server/ClientHandler.java +++ b/src/main/java/me/finn/unlegitlibrary/network/system/server/ClientHandler.java @@ -97,7 +97,7 @@ public class ClientHandler { clientID = -1; receiveThread.interrupt(); - networkServer.getClientHandlers().remove(this); + synchronized (networkServer.getClientHandlers()) { networkServer.getClientHandlers().remove(this); } networkServer.getEventManager().executeEvent(new S_ClientStoppedEvent(this)); }