aboutsummaryrefslogtreecommitdiff
path: root/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-11-19 17:09:52 +0800
committershedaniel <daniel@shedaniel.me>2020-11-19 17:09:52 +0800
commit2a4cb0445d3dca1ef67bb8875ac93c2b04fa9b48 (patch)
tree1a2fd33cad1352b91d1b5689ca396b0823e9f386 /RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
parent883738ac49e261eb1b9cfbd68a14900cb4450cf2 (diff)
downloadRoughlyEnoughItems-2a4cb0445d3dca1ef67bb8875ac93c2b04fa9b48.tar.gz
RoughlyEnoughItems-2a4cb0445d3dca1ef67bb8875ac93c2b04fa9b48.tar.bz2
RoughlyEnoughItems-2a4cb0445d3dca1ef67bb8875ac93c2b04fa9b48.zip
Fix #442
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java')
-rw-r--r--RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java25
1 files changed, 18 insertions, 7 deletions
diff --git a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
index 27e9d44c7..517df76ba 100644
--- a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
+++ b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
@@ -48,10 +48,7 @@ import me.shedaniel.clothconfig2.api.ModifierKeyCode;
import me.shedaniel.clothconfig2.gui.entries.KeyCodeEntry;
import me.shedaniel.clothconfig2.impl.EasingMethod;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
-import me.shedaniel.rei.api.ConfigManager;
-import me.shedaniel.rei.api.EntryRegistry;
-import me.shedaniel.rei.api.EntryStack;
-import me.shedaniel.rei.api.REIHelper;
+import me.shedaniel.rei.api.*;
import me.shedaniel.rei.api.favorites.FavoriteEntry;
import me.shedaniel.rei.gui.ContainerScreenOverlay;
import me.shedaniel.rei.gui.TransformingScreen;
@@ -82,6 +79,7 @@ import net.minecraft.network.chat.TextComponent;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.util.Mth;
import net.minecraft.util.Tuple;
+import net.minecraft.world.InteractionResult;
import org.apache.commons.lang3.mutable.MutableLong;
import org.jetbrains.annotations.ApiStatus;
@@ -97,11 +95,13 @@ import static me.sargunvohra.mcmods.autoconfig1u.util.Utils.setUnsafely;
@ApiStatus.Internal
@Environment(EnvType.CLIENT)
public class ConfigManagerImpl implements ConfigManager {
-
+ private static ConfigManagerImpl instance;
private boolean craftableOnly;
private final Gson gson = new GsonBuilder().create();
+ private ConfigObjectImpl object;
public ConfigManagerImpl() {
+ ConfigManagerImpl.instance = this;
this.craftableOnly = false;
Jankson jankson = Jankson.builder().build();
AutoConfig.register(ConfigObjectImpl.class, (definition, configClass) -> new JanksonConfigSerializer<>(definition, configClass, Jankson.builder().registerPrimitiveTypeAdapter(InputConstants.Key.class, it -> {
@@ -178,6 +178,10 @@ public class ConfigManagerImpl implements ConfigManager {
RoughlyEnoughItemsCore.LOGGER.info("Config loaded.");
}
+ public static ConfigManagerImpl getInstance() {
+ return instance;
+ }
+
@Override
public void saveConfig() {
if (getConfig().getFavoriteEntries() != null)
@@ -191,12 +195,19 @@ public class ConfigManagerImpl implements ConfigManager {
if (getConfig().getFilteringRules().stream().noneMatch(filteringRule -> filteringRule instanceof ManualFilteringRule)) {
getConfig().getFilteringRules().add(new ManualFilteringRule());
}
- ((me.sargunvohra.mcmods.autoconfig1u.ConfigManager<ConfigObjectImpl>) AutoConfig.getConfigHolder(ConfigObjectImpl.class)).save();
+ AutoConfig.getConfigHolder(ConfigObjectImpl.class).save();
+ AutoConfig.getConfigHolder(ConfigObjectImpl.class).registerLoadListener((configHolder, configObject) -> {
+ object = configObject;
+ return InteractionResult.PASS;
+ });
}
@Override
public ConfigObjectImpl getConfig() {
- return AutoConfig.getConfigHolder(ConfigObjectImpl.class).getConfig();
+ if (object == null) {
+ object = AutoConfig.getConfigHolder(ConfigObjectImpl.class).getConfig();
+ }
+ return object;
}
@Override