aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/Core.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-07 12:43:17 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-07 12:43:17 +0800
commit1eefa6a30341086d50858aa4faa88eade408149a (patch)
tree928082ebf0d273bed60bd288192d813bd7646667 /src/main/java/me/shedaniel/Core.java
parent8622811b9b8cd1447d08f5ee1654d18e01098536 (diff)
downloadRoughlyEnoughItems-1eefa6a30341086d50858aa4faa88eade408149a.tar.gz
RoughlyEnoughItems-1eefa6a30341086d50858aa4faa88eade408149a.tar.bz2
RoughlyEnoughItems-1eefa6a30341086d50858aa4faa88eade408149a.zip
Try to get a better config saver
Diffstat (limited to 'src/main/java/me/shedaniel/Core.java')
-rwxr-xr-xsrc/main/java/me/shedaniel/Core.java36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/main/java/me/shedaniel/Core.java b/src/main/java/me/shedaniel/Core.java
index 3a1029097..f8dd78e71 100755
--- a/src/main/java/me/shedaniel/Core.java
+++ b/src/main/java/me/shedaniel/Core.java
@@ -11,8 +11,13 @@ import net.fabricmc.fabric.events.client.ClientTickEvent;
import net.fabricmc.loader.FabricLoader;
import net.minecraft.client.MinecraftClient;
import net.minecraft.item.ItemStack;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
-import java.io.*;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.LinkedList;
@@ -28,6 +33,7 @@ public class Core implements ClientModInitializer {
public static REIConfig config;
public static ClientListener clientListener;
public static boolean centreSearchBox;
+ public static Logger LOGGER = LogManager.getFormatterLogger("REI");
@Override
public void onInitializeClient() {
@@ -73,33 +79,35 @@ public class Core implements ClientModInitializer {
}
public static void loadConfig() throws IOException {
- if (!configFile.exists())
- loadDefaultConfig();
+ if (!configFile.exists() || !configFile.canRead()) {
+ config = new REIConfig();
+ saveConfig();
+ return;
+ }
boolean failed = false;
try {
- InputStream in = Files.newInputStream(configFile.toPath());
- config = REIConfig.GSON.fromJson(new InputStreamReader(in), REIConfig.class);
+ config = REIConfig.GSON.fromJson(new InputStreamReader(Files.newInputStream(configFile.toPath())), REIConfig.class);
} catch (Exception e) {
failed = true;
}
if (failed || config == null) {
- System.out.println("[REI] Failed to load config! Overwriting with default config.");
+ Core.LOGGER.error("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)) {
+ if (!configFile.exists() && !configFile.createNewFile()) {
+ Core.LOGGER.error("Failed to save config! Overwriting with default config.");
+ config = new REIConfig();
+ return;
+ }
+ FileWriter writer = new FileWriter(configFile, false);
+ try {
REIConfig.GSON.toJson(config, writer);
+ } finally {
writer.close();
}
}