diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-01-07 12:43:17 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-01-07 12:43:17 +0800 |
| commit | 4e1c5cc9e134d338b8b675eb9302a9841e5aeaed (patch) | |
| tree | 928082ebf0d273bed60bd288192d813bd7646667 /src/main/java | |
| parent | 87330e70a71b36ce9c9b59bc3f1b8e6670d0a385 (diff) | |
| download | RoughlyEnoughItems-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-x | src/main/java/me/shedaniel/Core.java | 36 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/config/REIConfig.java | 6 | ||||
| -rwxr-xr-x | src/main/java/me/shedaniel/impl/REIRecipeManager.java | 2 | ||||
| -rwxr-xr-x | src/main/java/me/shedaniel/mixins/MixinDoneLoading.java | 2 |
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); } } |
