Files
DanhengServer-OpenSource/Common/Util/ConfigManager.cs
2024-08-26 13:05:20 +08:00

48 lines
1.4 KiB
C#

using EggLink.DanhengServer.Configuration;
using Newtonsoft.Json;
namespace EggLink.DanhengServer.Util;
public static class ConfigManager
{
public static Logger Logger = new("ConfigManager");
public static ConfigContainer Config { get; private set; } = new();
public static void LoadConfig()
{
var file = new FileInfo("config.json");
if (!file.Exists)
{
Logger.Warn("Config file not found, creating a new one");
Config = new ConfigContainer
{
MuipServer =
{
AdminKey = Guid.NewGuid().ToString()
},
ServerOption =
{
Language = UtilTools.GetCurrentLanguage()
}
};
Logger.Info("Current Language is " + Config.ServerOption.Language);
Logger.Info("Muipserver Admin key: " + Config.MuipServer.AdminKey);
SaveConfig();
}
using var reader = new StreamReader(file.OpenRead());
var json = reader.ReadToEnd();
Config = JsonConvert.DeserializeObject<ConfigContainer>(json)!;
// save it again to make sure all fields are present
reader.Close();
SaveConfig();
}
public static void SaveConfig()
{
var json = JsonConvert.SerializeObject(Config, Formatting.Indented);
File.WriteAllText("config.json", json);
}
}