60 lines
1.5 KiB
C#
60 lines
1.5 KiB
C#
using System.Linq;
|
|
using System.IO;
|
|
using Newtonsoft.Json;
|
|
using toast_mcl.Config;
|
|
|
|
namespace toast_mcl.Programs;
|
|
public static class ConfigUtils
|
|
{
|
|
public static ConfigSettings ?Settings { get; private set;}
|
|
|
|
private static readonly string ConfigFolderPath = Path.Combine(Base.AppDirectory, "toast_mc");
|
|
private static readonly string ConfigFilePath = Path.Combine(ConfigFolderPath, "config.json");
|
|
|
|
public static void Init()
|
|
{
|
|
if (!Directory.Exists(ConfigFolderPath))
|
|
{
|
|
Directory.CreateDirectory(ConfigFolderPath);
|
|
}
|
|
if (!File.Exists(ConfigFilePath))
|
|
{
|
|
CreateDefaultConfig();
|
|
}
|
|
}
|
|
private static void CreateDefaultConfig()
|
|
{
|
|
Settings = DefaultConfig.GetDefaultConfig();
|
|
SaveConfig();
|
|
}
|
|
public static void LoadConfig()
|
|
{
|
|
if (File.Exists(ConfigFilePath))
|
|
{
|
|
string configJson = File.ReadAllText(ConfigFilePath);
|
|
Settings = JsonConvert.DeserializeObject<ConfigSettings>(configJson);
|
|
}
|
|
else
|
|
{
|
|
CreateDefaultConfig();
|
|
}
|
|
|
|
var ConfigVersion = Settings?.AppSettings?.Version;
|
|
if (ConfigVersion != Base.Version)
|
|
{
|
|
var oldSettings = Settings;
|
|
UpdateConfig();
|
|
}
|
|
}
|
|
|
|
private static void UpdateConfig()
|
|
{
|
|
|
|
}
|
|
|
|
public static void SaveConfig()
|
|
{
|
|
string configJson = JsonConvert.SerializeObject(Settings, Formatting.Indented);
|
|
File.WriteAllText(ConfigFilePath, configJson);
|
|
}
|
|
} |