This commit is contained in:
2025-01-06 01:01:34 +05:00
parent da58c11e59
commit cbfd5f8da8
7 changed files with 154 additions and 0 deletions

View File

@@ -2,6 +2,9 @@ using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Mlaumcherb.Client.Avalonia.классы;
using Mlaumcherb.Client.Avalonia.сеть;
using Mlaumcherb.Client.Avalonia.сеть.Update;
using Mlaumcherb.Client.Avalonia.холопы;
namespace Mlaumcherb.Client.Avalonia.зримое;
@@ -17,6 +20,8 @@ public class LauncherApp : Application
Config = Config.LoadFromFile();
Logger.DebugLogEnabled = Config.debug;
AvaloniaXamlLoader.Load(this);
Update();
// some file required by forge installer
if (!File.Exists("launcher_profiles.json"))
@@ -27,6 +32,27 @@ public class LauncherApp : Application
InstalledVersionCatalog = InstalledVersionCatalog.Load();
}
private async void Update()
{
try
{
Logger.LogInfo(nameof(LauncherApp), "checking for updates...");
var upd = new UpdateHelper(Config.gitea);
upd.DeleteBackupFiles();
if (await upd.IsUpdateAvailable())
{
Logger.LogInfo(nameof(LauncherApp), "downloading update...");
await upd.UpdateSelf();
Logger.LogInfo(nameof(LauncherApp), "restarting...");
upd.RestartSelf();
}
}
catch (Exception e)
{
ErrorHelper.ShowMessageBox(nameof(LauncherApp), e);
}
}
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)

View File

@@ -178,6 +178,7 @@
<Button Classes="menu_button button_no_border" Click="ОткрытьФайлЛогов">лог-файл</Button>
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Name="LauncherVersionTextBox"/>
<Button Classes="menu_button button_no_border" Click="ОткрытьРепозиторий">исходный код</Button>
<gif:GifImage
Width="30" Height="30" Stretch="Uniform"

View File

@@ -1,3 +1,4 @@
using System.Reflection;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Data;
@@ -70,6 +71,7 @@ public partial class MainWindow : Window
try
{
LauncherApp.Logger.OnLogMessage += GuiLogMessage;
LauncherVersionTextBox.Text = $"v {Assembly.GetExecutingAssembly().GetName().Version}";
PlayerName = LauncherApp.Config.player_name;
MemoryLimit = LauncherApp.Config.max_memory;