From fa1ab905794f09604894daef8f04cbe62789b5da Mon Sep 17 00:00:00 2001 From: Helvetica Volubi Date: Sun, 30 Nov 2025 15:50:11 +0800 Subject: [PATCH] fix a ConcurrentModificationException caused by ServuxStructuresProtocol Update Luminol --- gradle.properties | 2 +- .../luminol-patches/features/0001-Rebrand-to-Lophine.patch | 4 ++-- .../leaves/protocol/servux/ServuxStructuresProtocol.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 924564f..a04fa2f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ mcVersion=1.21.8 release=2 # 0 for skip release, 1 for pre-release, 2 for release -luminolRef=1f72de21ac9002070bea969d73f16d8e23c9c745 +luminolRef=ae1af655f57cd8666c2ae913fa53d3606019bf7b org.gradle.configuration-cache=true org.gradle.caching=true diff --git a/lophine-server/luminol-patches/features/0001-Rebrand-to-Lophine.patch b/lophine-server/luminol-patches/features/0001-Rebrand-to-Lophine.patch index 265b17c..ba0bd66 100644 --- a/lophine-server/luminol-patches/features/0001-Rebrand-to-Lophine.patch +++ b/lophine-server/luminol-patches/features/0001-Rebrand-to-Lophine.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Rebrand to Lophine diff --git a/src/main/java/me/earthme/luminol/config/ConfigManager.java b/src/main/java/me/earthme/luminol/config/ConfigManager.java -index a5208f5426ea2e5d8f50c51fe17718ea1d63eef5..c80c578f1a3786bd7413c9a7af8ae125fe7975bb 100644 +index 0bebc2cc87fb9c1c526e4de4f3bc157552307a72..cb1657939b86c039fcfe6403d3f202c2c5879e88 100644 --- a/src/main/java/me/earthme/luminol/config/ConfigManager.java +++ b/src/main/java/me/earthme/luminol/config/ConfigManager.java -@@ -21,6 +21,7 @@ public class ConfigManager { +@@ -23,6 +23,7 @@ public class ConfigManager { public static void initConfigs() { configfiles.put("luminol", ConfigsInstance.of("luminol", "me.earthme.luminol.config.modules")); diff --git a/lophine-server/src/main/java/org/leavesmc/leaves/protocol/servux/ServuxStructuresProtocol.java b/lophine-server/src/main/java/org/leavesmc/leaves/protocol/servux/ServuxStructuresProtocol.java index 76c6c06..33045a2 100644 --- a/lophine-server/src/main/java/org/leavesmc/leaves/protocol/servux/ServuxStructuresProtocol.java +++ b/lophine-server/src/main/java/org/leavesmc/leaves/protocol/servux/ServuxStructuresProtocol.java @@ -103,7 +103,7 @@ public class ServuxStructuresProtocol implements LeavesProtocol { final ChunkPos pos = chunk.getPos(); if (chunkHasStructureReferences(pos.x, pos.z, chunk.getLevel())) { - final Map map = timeouts.computeIfAbsent(uuid, (u) -> new HashMap<>()); + final Map map = timeouts.computeIfAbsent(uuid, (u) -> new ConcurrentHashMap<>()); map.computeIfAbsent(pos, (p) -> new Timeout(tickCounter - ServuxProtocolConfig.maxDelay)); } } @@ -304,7 +304,7 @@ public class ServuxStructuresProtocol implements LeavesProtocol { } public static void addOrRefreshTimeouts(final UUID uuid, final Map references, final long tickCounter) { - Map map = timeouts.computeIfAbsent(uuid, (u) -> new HashMap<>()); + Map map = timeouts.computeIfAbsent(uuid, (u) -> new ConcurrentHashMap<>()); for (LongSet chunks : references.values()) { for (Long chunkPosLong : chunks) {