From f17e615a9890fe9721bebf1470c730775cb31706 Mon Sep 17 00:00:00 2001 From: FalsePattern Date: Sat, 28 Dec 2024 15:48:16 +0100 Subject: [PATCH] fixed config gui not saving to disk --- .../impl/config/ConfigurationManagerImpl.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/ConfigurationManagerImpl.java b/src/main/java/com/falsepattern/lib/internal/impl/config/ConfigurationManagerImpl.java index aff731a..264b2fc 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/ConfigurationManagerImpl.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/ConfigurationManagerImpl.java @@ -69,6 +69,7 @@ import java.util.function.BiConsumer; @NoArgsConstructor(access = AccessLevel.PRIVATE) public final class ConfigurationManagerImpl { private static final Map configs = new HashMap<>(); + private static final Map>> modConfigs = new HashMap<>(); private static final Map>> configToClassMap = new HashMap<>(); private static final Map, ParsedConfiguration> parsedConfigMap = new HashMap<>(); private static final BiMap> serializedNames = HashBiMap.create(); @@ -82,6 +83,7 @@ public final class ConfigurationManagerImpl { configToClassMap.computeIfAbsent(parsedConfig.rawConfig, (ignored) -> new HashSet<>()).add(configClass); parsedConfigMap.put(configClass, parsedConfig); serializedNames.put(parsedConfig.modid + "$" + parsedConfig.category, configClass); + modConfigs.computeIfAbsent(parsedConfig.modid, (x) -> new HashSet<>()).add(configClass); } } @@ -286,14 +288,10 @@ public final class ConfigurationManagerImpl { public static void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) { init(); - val rawConfig = configs.get(event.modID); - if (rawConfig == null) { + val configs = modConfigs.get(event.modID); + if (configs == null) { return; } - val configClasses = configToClassMap.get(rawConfig); - for (val clazz : configClasses) { - val config = parsedConfigMap.get(clazz); - config.configChanged(); - } + configs.stream().map(parsedConfigMap::get).distinct().forEach(ParsedConfiguration::configChanged); } }