From 1eefa6a30341086d50858aa4faa88eade408149a Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 7 Jan 2019 12:43:17 +0800 Subject: Try to get a better config saver --- src/main/java/me/shedaniel/Core.java | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) (limited to 'src/main/java/me/shedaniel/Core.java') 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(); } } -- cgit