diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-01-10 23:37:34 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-01-10 23:37:34 +0800 |
| commit | ff3c2799a766babb69d772f15958d7a0bf50868c (patch) | |
| tree | 38d045d36135a79ca32011dfae7d011333ad7804 /src/main/java/me/shedaniel/rei/client/ConfigManager.java | |
| parent | 9644c27ae7b344a6dbe3cc77cd6f567525f1c711 (diff) | |
| download | RoughlyEnoughItems-ff3c2799a766babb69d772f15958d7a0bf50868c.tar.gz RoughlyEnoughItems-ff3c2799a766babb69d772f15958d7a0bf50868c.tar.bz2 RoughlyEnoughItems-ff3c2799a766babb69d772f15958d7a0bf50868c.zip | |
Basic Searching Works
Diffstat (limited to 'src/main/java/me/shedaniel/rei/client/ConfigManager.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/client/ConfigManager.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/client/ConfigManager.java b/src/main/java/me/shedaniel/rei/client/ConfigManager.java new file mode 100644 index 000000000..a2d4d9890 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/client/ConfigManager.java @@ -0,0 +1,75 @@ +package me.shedaniel.rei.client; + +import me.shedaniel.rei.RoughlyEnoughItemsCore; +import net.fabricmc.loader.FabricLoader; +import org.apache.logging.log4j.core.Core; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.file.Files; + +public class ConfigManager { + + private final File configFile; + private REIConfig config; + private boolean craftableOnly; + + public ConfigManager() { + this.configFile = new File(FabricLoader.INSTANCE.getConfigDirectory(), "rei.json"); + this.craftableOnly = false; + try { + loadConfig(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void saveConfig() throws IOException { + configFile.getParentFile().mkdirs(); + if (!configFile.exists() && !configFile.createNewFile()) { + RoughlyEnoughItemsCore.LOGGER.error("REI: 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(); + } + } + + public void loadConfig() throws IOException { + if (!configFile.exists() || !configFile.canRead()) { + config = new REIConfig(); + saveConfig(); + return; + } + boolean failed = false; + try { + config = REIConfig.GSON.fromJson(new InputStreamReader(Files.newInputStream(configFile.toPath())), REIConfig.class); + } catch (Exception e) { + failed = true; + } + if (failed || config == null) { + RoughlyEnoughItemsCore.LOGGER.error("REI: Failed to load config! Overwriting with default config."); + config = new REIConfig(); + } + saveConfig(); + } + + public REIItemListOrdering getItemListOrdering() { + return config.itemListOrdering; + } + + public boolean isAscending() { + return config.isAscending; + } + + public boolean craftableOnly() { + return craftableOnly && config.enableCraftableOnlyButton; + } + +} |
