From 01aaf39f3aac3d5bc6dd2821898fdece5203fe33 Mon Sep 17 00:00:00 2001 From: balugaq <129668183+balugaq@users.noreply.github.com> Date: Sat, 2 Nov 2024 15:32:19 +0800 Subject: [PATCH] fix --- pom.xml | 2 +- .../github/sefiraat/networks/NetworkStorage.java | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 32c0b647..f1bbd18a 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 4.0.0 com.ytdd9527.networksexpansion NetworksExpansion - 2.1-Alpha-3 + 2.1-Alpha-4 diff --git a/src/main/java/io/github/sefiraat/networks/NetworkStorage.java b/src/main/java/io/github/sefiraat/networks/NetworkStorage.java index beef3d2f..d2052525 100644 --- a/src/main/java/io/github/sefiraat/networks/NetworkStorage.java +++ b/src/main/java/io/github/sefiraat/networks/NetworkStorage.java @@ -7,15 +7,16 @@ import org.bukkit.Chunk; import org.bukkit.Location; -import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; @UtilityClass public class NetworkStorage { - private static final Map> ALL_NETWORK_OBJECTS_BY_CHUNK = new HashMap<>(); - private static final Map ALL_NETWORK_OBJECTS = new HashMap<>(); + private static final Map> ALL_NETWORK_OBJECTS_BY_CHUNK = new ConcurrentHashMap<>(); + private static final Map ALL_NETWORK_OBJECTS = new ConcurrentHashMap<>(); public static void removeNode(Location location) { final NodeDefinition nodeDefinition = ALL_NETWORK_OBJECTS.remove(location); @@ -57,8 +58,13 @@ public static void unregisterChunk(Chunk chunk) { if (locations == null) { return; } - for (Location location : locations) { + Iterator iterator = locations.iterator(); + while (iterator.hasNext()) { + Location location = iterator.next(); removeNode(location); + iterator.remove(); } + ALL_NETWORK_OBJECTS_BY_CHUNK.remove(chunkPosition); } + }