aboutsummaryrefslogtreecommitdiff
path: root/src/main/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
commit4e1c5cc9e134d338b8b675eb9302a9841e5aeaed (patch)
tree928082ebf0d273bed60bd288192d813bd7646667 /src/main/java
parent87330e70a71b36ce9c9b59bc3f1b8e6670d0a385 (diff)
downloadRoughlyEnoughItems-4e1c5cc9e134d338b8b675eb9302a9841e5aeaed.tar.gz
RoughlyEnoughItems-4e1c5cc9e134d338b8b675eb9302a9841e5aeaed.tar.bz2
RoughlyEnoughItems-4e1c5cc9e134d338b8b675eb9302a9841e5aeaed.zip
Try to get a better config saver
Diffstat (limited to 'src/main/java')
-rwxr-xr-xsrc/main/java/me/shedaniel/Core.java36
-rw-r--r--src/main/java/me/shedaniel/config/REIConfig.java6
-rwxr-xr-xsrc/main/java/me/shedaniel/impl/REIRecipeManager.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/MixinDoneLoading.java2
4 files changed, 29 insertions, 17 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();
}
}
diff --git a/src/main/java/me/shedaniel/config/REIConfig.java b/src/main/java/me/shedaniel/config/REIConfig.java
index 94737118d..c3dad7b6f 100644
--- a/src/main/java/me/shedaniel/config/REIConfig.java
+++ b/src/main/java/me/shedaniel/config/REIConfig.java
@@ -7,7 +7,11 @@ import java.awt.event.KeyEvent;
public class REIConfig {
- public static Gson GSON = new GsonBuilder().setPrettyPrinting().create();
+ public static Gson GSON = new GsonBuilder()
+ .setPrettyPrinting()
+ .serializeNulls()
+ .disableHtmlEscaping()
+ .create();
public int recipeKeyBind = KeyEvent.VK_R;
public int usageKeyBind = KeyEvent.VK_U;
diff --git a/src/main/java/me/shedaniel/impl/REIRecipeManager.java b/src/main/java/me/shedaniel/impl/REIRecipeManager.java
index 78ff9c153..937e1cf6f 100755
--- a/src/main/java/me/shedaniel/impl/REIRecipeManager.java
+++ b/src/main/java/me/shedaniel/impl/REIRecipeManager.java
@@ -40,7 +40,7 @@ public class REIRecipeManager implements IRecipeManager {
public static REIRecipeManager instance() {
if (myInstance == null) {
- System.out.println("Newing me up.");
+ Core.LOGGER.info("Newing me up.");
myInstance = new REIRecipeManager();
}
return myInstance;
diff --git a/src/main/java/me/shedaniel/mixins/MixinDoneLoading.java b/src/main/java/me/shedaniel/mixins/MixinDoneLoading.java
index c3b4ff186..6d21e0d95 100755
--- a/src/main/java/me/shedaniel/mixins/MixinDoneLoading.java
+++ b/src/main/java/me/shedaniel/mixins/MixinDoneLoading.java
@@ -15,7 +15,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
public class MixinDoneLoading {
@Inject(method = "initialize", at = @At("RETURN"))
private static void onBootstrapRegister(CallbackInfo ci) {
- System.out.println("Done Loading");
+ Core.LOGGER.info("Done Loading");
Core.getListeners(DoneLoading.class).forEach(DoneLoading::onDoneLoading);
}
}