using Млаумчерб.Клиент.видимое; namespace Млаумчерб.Клиент; public record Настройки { public string имя_пользователя { get; set; } = ""; public int выделенная_память_мб { get; set; } = 4096; public bool открывать_на_весь_экран { get; set; } public string путь_к_кубачу { get; set; } = "."; public string путь_к_жабе { get; set; } = "java"; public bool скачать_жабу { get; set; } = true; public string? последняя_запущенная_версия; public static Настройки ЗагрузитьИзФайла(string имя_файла = "млаумчерб.настройки") { Главне.Логгер.LogInfo(nameof(Настройки), $"попытка загрузить настройки из файла '{имя_файла}'"); if(!File.Exists(имя_файла)) { Главне.Логгер.LogInfo(nameof(Настройки), "файл не существует"); return new Настройки(); } string текст = File.ReadAllText(имя_файла); Настройки? н = JsonConvert.DeserializeObject<Настройки>(текст); if (н == null) { File.Move(имя_файла, имя_файла + ".старые", true); н = new Настройки(); н.СохранитьВФайл(); Ошибки.ПоказатьСообщение("Настройки", $"Не удалось прочитать настройки.\n" + $"Сломанный файл настроек переименован в '{имя_файла}.старые'.\n" + $"Создан новый файл '{имя_файла}'."); } Главне.Логгер.LogInfo(nameof(Настройки), $"настройки загружены: {н}"); return н; } public void СохранитьВФайл(string имя_файла = "млаумчерб.настройки") { Главне.Логгер.LogInfo(nameof(Настройки), $"попытка сохранить настройки в файл '{имя_файла}'"); var текст = JsonConvert.SerializeObject(this, Formatting.Indented); File.WriteAllText(имя_файла, текст); Главне.Логгер.LogInfo(nameof(Настройки), $"настройки сохранены: {текст}"); } }