BetterEnd/src/main/java/ru/betterend/config/ConfigWriter.java
2020-09-22 17:10:04 +03:00

63 lines
1.5 KiB
Java

package ru.betterend.config;
import java.io.File;
import java.nio.file.Path;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import net.fabricmc.loader.api.FabricLoader;
import ru.betterend.BetterEnd;
import ru.betterend.util.JsonFactory;
public class ConfigWriter {
private final static Path GAME_CONFIG_DIR = FabricLoader.getInstance().getConfigDir();
public final static File MOD_CONFIG_DIR = new File(GAME_CONFIG_DIR.toFile(), BetterEnd.MOD_ID);
private final static File MAIN_CONFIG_FILE = new File(MOD_CONFIG_DIR, "settings.json");
private static JsonObject mainConfig;
private JsonObject configObject;
private File configFile;
public JsonObject loadConfig(File configFile) {
this.configFile = configFile;
if (configObject == null) {
configObject = load(configFile);
}
return configObject;
}
public void saveConfig() {
if (configFile == null || configObject == null) {
return;
}
save(configFile, configObject);
}
public static JsonObject load() {
if (mainConfig == null) {
mainConfig = load(MAIN_CONFIG_FILE);
}
return mainConfig;
}
public static JsonObject load(File configFile) {
return JsonFactory.getJsonObject(configFile);
}
public static void save() {
save(MAIN_CONFIG_FILE, mainConfig);
}
public static void save(JsonElement config) {
save(MAIN_CONFIG_FILE, config);
}
public static void save(File configFile, JsonElement config) {
JsonFactory.storeJson(configFile, config);
}
}