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(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); } }