63 lines
1.5 KiB
Java
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);
|
|
}
|
|
}
|