aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/Core.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-01 13:37:19 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-01 13:37:19 +0800
commit6b6176dff58866e461172606fafb842fa2ebfa6a (patch)
tree5b5a186dd65552bdd5a38d0f4fa7505660064d02 /src/main/java/me/shedaniel/Core.java
parentaf7b8a3bf6ae85f4fdc6e0e5b7e0a7990a6a056a (diff)
downloadRoughlyEnoughItems-6b6176dff58866e461172606fafb842fa2ebfa6a.tar.gz
RoughlyEnoughItems-6b6176dff58866e461172606fafb842fa2ebfa6a.tar.bz2
RoughlyEnoughItems-6b6176dff58866e461172606fafb842fa2ebfa6a.zip
Config Draft
Diffstat (limited to 'src/main/java/me/shedaniel/Core.java')
-rwxr-xr-xsrc/main/java/me/shedaniel/Core.java51
1 files changed, 44 insertions, 7 deletions
diff --git a/src/main/java/me/shedaniel/Core.java b/src/main/java/me/shedaniel/Core.java
index f2f5c5541..55a7c879f 100755
--- a/src/main/java/me/shedaniel/Core.java
+++ b/src/main/java/me/shedaniel/Core.java
@@ -1,8 +1,7 @@
package me.shedaniel;
-import me.shedaniel.library.KeyBindManager;
+import me.shedaniel.config.REIConfig;
import me.shedaniel.listenerdefinitions.IEvent;
-import me.shedaniel.listenerdefinitions.KeybindHandler;
import me.shedaniel.listenerdefinitions.PacketAdder;
import me.shedaniel.listeners.DrawContainerListener;
import me.shedaniel.listeners.ResizeListener;
@@ -10,13 +9,11 @@ import me.shedaniel.network.CheatPacket;
import me.shedaniel.network.DeletePacket;
import me.shedaniel.plugin.VanillaPlugin;
import net.fabricmc.api.ClientModInitializer;
-import net.fabricmc.api.ModInitializer;
-import net.fabricmc.fabric.events.client.SpriteEvent;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.settings.KeyBinding;
+import net.fabricmc.loader.FabricLoader;
import net.minecraft.network.NetworkSide;
-import org.apache.commons.lang3.ArrayUtils;
+import java.io.*;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
@@ -46,10 +43,17 @@ public class Core implements PacketAdder, ClientModInitializer {
}
private static List<IEvent> events = new LinkedList<>();
+ public static final File configFile = new File(FabricLoader.INSTANCE.getConfigDirectory(), "rei.json");
+ public static REIConfig config;
@Override
public void onInitializeClient() {
registerEvents();
+ try {
+ loadConfig();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
private void registerEvents() {
@@ -71,4 +75,37 @@ public class Core implements PacketAdder, ClientModInitializer {
});
return list;
}
+
+ public static void loadConfig() throws IOException {
+ if (!configFile.exists())
+ loadDefaultConfig();
+ boolean failed = false;
+ try {
+ InputStream in = Files.newInputStream(configFile.toPath());
+ config = REIConfig.GSON.fromJson(new InputStreamReader(in), REIConfig.class);
+ } catch (Exception e){
+ failed = true;
+ }
+ if (failed || config == null) {
+ System.out.println("[REI] Failed to load config! Overwriting with default config.");
+ config = new REIConfig();
+ }
+ saveConfig();
+ }
+
+ public static void loadDefaultConfig() throws IOException {
+ config = new REIConfig();
+ saveConfig();
+ }
+
+ public static void saveConfig() throws IOException {
+ configFile.getParentFile().mkdirs();
+ if (configFile.exists())
+ configFile.delete();
+ try (PrintWriter writer = new PrintWriter(configFile)) {
+ REIConfig.GSON.toJson(config, writer);
+ writer.close();
+ }
+ }
+
}