diff --git a/xplat/src/main/java/lgbt/greenhouse/config/impl/GreenhouseConfigImpl.java b/xplat/src/main/java/lgbt/greenhouse/config/impl/GreenhouseConfigImpl.java index 6f322d4..25a48e9 100644 --- a/xplat/src/main/java/lgbt/greenhouse/config/impl/GreenhouseConfigImpl.java +++ b/xplat/src/main/java/lgbt/greenhouse/config/impl/GreenhouseConfigImpl.java @@ -95,7 +95,7 @@ public class GreenhouseConfigImpl { NetworkData networkData) { Object config = ((AbstractGreenhouseConfigHolderImpl) resolvedHolder).getConfig(localData, networkData); if (config instanceof MergedConfigValue(Object common, Object sided)) { - GreenhouseConfigHolderImpl impl = (GreenhouseConfigHolderImpl) holder; + AbstractGreenhouseConfigHolderImpl impl = (AbstractGreenhouseConfigHolderImpl) holder; if (impl.getSide() == GreenhouseConfigSide.COMMON) { return (Config) common; } @@ -144,8 +144,8 @@ public class GreenhouseConfigImpl { //noinspection unchecked AbstractGreenhouseConfigHolderImpl holderImpl = (AbstractGreenhouseConfigHolderImpl) resolvedHolder; - Object localData = holderImpl.getLocalData(config); - Object networkData = holderImpl.getNetworkData(config); + var localData = holderImpl.getLocalData(config); + var networkData = holderImpl.getNetworkData(config); if (LOCAL_CONFIGS.containsKey(resolvedHolder)) { LOCAL_CONFIGS.put(resolvedHolder, localData); @@ -161,7 +161,12 @@ public class GreenhouseConfigImpl { } public static void saveConfig(GreenhouseConfigHolder holder) { - saveConfig(holder, getLocalConfig(holder)); + GreenhouseConfigHolder mergedHolder = (GreenhouseConfigHolder) resolveMergedConfigHolder(holder); + + var localData = getLocalData(mergedHolder); + var networkData = getNetworkData(mergedHolder); + + saveConfig(mergedHolder, ((AbstractGreenhouseConfigHolderImpl)mergedHolder).getConfig(localData, networkData)); } public static void saveConfig(GreenhouseConfigHolder holder, Config value) { @@ -175,7 +180,7 @@ public class GreenhouseConfigImpl { .resolve(holderImpl.getModId() + "." + holderImpl.getConfigLang().getFileExtension()) .toFile(); GreenhouseConfigLangExecutor executor = (GreenhouseConfigLangExecutor) EXECUTORS - .computeIfAbsent(holderImpl, configHolder -> new GreenhouseConfigLangExecutor<>(lang)); + .computeIfAbsent(holderImpl, _ -> new GreenhouseConfigLangExecutor<>(lang)); try { saveConfigInternal(holderImpl, executor, value, file); @@ -263,7 +268,10 @@ public class GreenhouseConfigImpl { continue; } - saveConfig(casted, getLocalConfig(casted)); + var localData = getLocalData(holder); + var networkData = getNetworkData(holder); + + saveConfig(casted, ((AbstractGreenhouseConfigHolderImpl) holder).getConfig(localData, networkData)); writeSchemaVersion(GreenhouseConfigConstants.getPlatformHelper() .getConfigDir() .resolve(impl.getModId() + "." + impl.getConfigLang().getFileExtension()), diff --git a/xplat/src/main/java/lgbt/greenhouse/config/impl/client/GreenhouseConfigClientImpl.java b/xplat/src/main/java/lgbt/greenhouse/config/impl/client/GreenhouseConfigClientImpl.java index b8ec748..2dfee8b 100644 --- a/xplat/src/main/java/lgbt/greenhouse/config/impl/client/GreenhouseConfigClientImpl.java +++ b/xplat/src/main/java/lgbt/greenhouse/config/impl/client/GreenhouseConfigClientImpl.java @@ -18,7 +18,6 @@ public class GreenhouseConfigClientImpl { SYNCED_CONFIGS.put(holder, networkData); } - @SuppressWarnings("unchecked") public static Config getConfig(GreenhouseConfigHolder holder, boolean local) { // Resolve to the merged config. var resolvedHolder = GreenhouseConfigImpl.resolveMergedConfigHolder(holder);