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