From dfa3067117e96aa630a88952f0e5d4535bee8bf3 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 12 Jan 2019 21:28:36 +0800 Subject: Basic Config --- .../java/me/shedaniel/rei/client/ConfigHelper.java | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/main/java/me/shedaniel/rei/client/ConfigHelper.java (limited to 'src/main/java/me/shedaniel/rei/client/ConfigHelper.java') diff --git a/src/main/java/me/shedaniel/rei/client/ConfigHelper.java b/src/main/java/me/shedaniel/rei/client/ConfigHelper.java new file mode 100644 index 000000000..90c789e4a --- /dev/null +++ b/src/main/java/me/shedaniel/rei/client/ConfigHelper.java @@ -0,0 +1,90 @@ +package me.shedaniel.rei.client; + +import me.shedaniel.rei.RoughlyEnoughItemsCore; +import net.fabricmc.loader.FabricLoader; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.file.Files; + +public class ConfigHelper { + + private final File configFile; + private REIConfig config; + private boolean craftableOnly; + + public ConfigHelper() { + 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; + } + + public boolean showCraftableOnlyButton() { + return config.enableCraftableOnlyButton; + } + + public void setShowCraftableOnlyButton(boolean enableCraftableOnlyButton) { + config.enableCraftableOnlyButton = enableCraftableOnlyButton; + } + + public boolean sideSearchField() { + return config.sideSearchField; + } + + public void setSideSearchField(boolean sideSearchField) { + config.sideSearchField = sideSearchField; + } + +} -- cgit