aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2019-11-23 17:28:16 +0800
committershedaniel <daniel@shedaniel.me>2019-11-23 17:28:16 +0800
commitf8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd (patch)
tree0a838a2d32528e535117615d440e2b7dd1609efd /src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
parentf1980316ccd614258d98d8b7f906809c12a2c217 (diff)
downloadRoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.tar.gz
RoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.tar.bz2
RoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.zip
3.2.10
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java')
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java77
1 files changed, 16 insertions, 61 deletions
diff --git a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
index 212284db9..c270166fc 100644
--- a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
+++ b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
@@ -5,87 +5,40 @@
package me.shedaniel.rei.impl;
+import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
+import me.sargunvohra.mcmods.autoconfig1u.gui.ConfigScreenProvider;
+import me.sargunvohra.mcmods.autoconfig1u.serializer.JanksonConfigSerializer;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.api.ConfigManager;
import me.shedaniel.rei.api.ConfigObject;
import me.shedaniel.rei.api.annotations.Internal;
-import me.zeroeightsix.fiber.JanksonSettings;
-import me.zeroeightsix.fiber.exception.FiberException;
-import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.LiteralText;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
import java.util.List;
@Deprecated
@Internal
public class ConfigManagerImpl implements ConfigManager {
- private final File configFile;
- private ConfigObject config;
private boolean craftableOnly;
public ConfigManagerImpl() {
- this.configFile = new File(FabricLoader.getInstance().getConfigDirectory(), "roughlyenoughitems/config.json5");
this.craftableOnly = false;
- try {
- loadConfig();
- RoughlyEnoughItemsCore.LOGGER.info("[REI] Config is loaded.");
- } catch (IOException | FiberException e) {
- e.printStackTrace();
- }
+ AutoConfig.register(ConfigObjectImpl.class, JanksonConfigSerializer::new);
+ RoughlyEnoughItemsCore.LOGGER.info("[REI] Config is loaded.");
}
@Override
- public void saveConfig() throws IOException, FiberException {
- configFile.getParentFile().mkdirs();
- if (!configFile.exists() && !configFile.createNewFile()) {
- RoughlyEnoughItemsCore.LOGGER.error("[REI] Failed to save config! Overwriting with default config.");
- config = new OldConfigObjectImpl();
- return;
- }
- try {
- new JanksonSettings().serialize(config.getConfigNode(), Files.newOutputStream(configFile.toPath()), false);
- } catch (Exception e) {
- e.printStackTrace();
- RoughlyEnoughItemsCore.LOGGER.error("[REI] Failed to save config! Overwriting with default config.");
- config = new OldConfigObjectImpl();
- return;
- }
- }
-
- @Override
- public void loadConfig() throws IOException, FiberException {
- configFile.getParentFile().mkdirs();
- if (!configFile.exists() || !configFile.canRead()) {
- RoughlyEnoughItemsCore.LOGGER.warn("[REI] Config not found! Creating one.");
- config = new OldConfigObjectImpl();
- saveConfig();
- return;
- }
- boolean failed = false;
- try {
- config = new OldConfigObjectImpl();
- new JanksonSettings().deserialize(config.getConfigNode(), Files.newInputStream(configFile.toPath()));
- } catch (Exception e) {
- e.printStackTrace();
- failed = true;
- }
- if (failed || config == null) {
- RoughlyEnoughItemsCore.LOGGER.error("[REI] Failed to load config! Overwriting with default config.");
- config = new OldConfigObjectImpl();
- }
- saveConfig();
+ public void saveConfig() {
+ ((me.sargunvohra.mcmods.autoconfig1u.ConfigManager<ConfigObjectImpl>) AutoConfig.getConfigHolder(ConfigObjectImpl.class)).save();
}
@Override
public ConfigObject getConfig() {
- return config;
+ return AutoConfig.getConfigHolder(ConfigObjectImpl.class).getConfig();
}
@Override
@@ -105,12 +58,14 @@ public class ConfigManagerImpl implements ConfigManager {
@Override
public Screen getConfigScreen(Screen parent) {
- if (FabricLoader.getInstance().isModLoaded("cloth-config2")) {
- try {
- return Screen.class.cast(Class.forName("me.shedaniel.rei.utils.ClothScreenRegistry").getDeclaredMethod("getConfigScreen", Screen.class).invoke(null, parent));
- } catch (Exception e) {
- e.printStackTrace();
- }
+ try {
+ ConfigScreenProvider<ConfigObjectImpl> provider = (ConfigScreenProvider<ConfigObjectImpl>) AutoConfig.getConfigScreen(ConfigObjectImpl.class, parent);
+ provider.setI13nFunction(manager -> "config.roughlyenoughitems");
+ provider.setOptionFunction((baseI13n, field) -> field.isAnnotationPresent(ConfigObject.DontApplyFieldName.class) ? baseI13n : String.format("%s.%s", baseI13n, field.getName()));
+ provider.setCategoryFunction((baseI13n, categoryName) -> String.format("%s.%s", baseI13n, categoryName));
+ return provider.get();
+ } catch (Exception e) {
+ e.printStackTrace();
}
return new Screen(new LiteralText("")) {
@Override