using Avalonia; using Castle.Core.Logging; using Newtonsoft.Json; using Pilz; using Pilz.Configuration; namespace ModpackUpdater.Apps.Client.Gui; public static class Program { public const string UpdateUrl = "https://git.pilzinsel64.de/litw-refined/minecraft-modpack-updater/-/snippets/3/raw/main/updates-new.json"; private static readonly SettingsManager settingsManager; public static ISettings Settings => settingsManager.Instance; public static ILogger Log { get; } = new ConsoleLogger(); static Program() { settingsManager = new(GetSettingsPath(2), true); } [STAThread] internal static void Main(string[] args) { BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); } public static AppBuilder BuildAvaloniaApp() { return AppBuilder.Configure() .UsePlatformDetect() .WithInterFont() .LogToTrace(); } private static string GetSettingsPath(int? settingsVersion = 3) { const string appDataDirectoryName = "MinecraftModpackUpdater"; var fileNamePostfix = settingsVersion == null ? string.Empty : $"V{settingsVersion}"; var settingsFileName = $"Settings{fileNamePostfix}.json"; var settingsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), appDataDirectoryName); Directory.CreateDirectory(settingsPath); settingsPath = Path.Combine(settingsPath, settingsFileName); return settingsPath; } }