分离玩家信息插件,以及更新检测
This commit is contained in:
@@ -125,17 +125,54 @@ namespace AnotherReplayReader
|
||||
InitializeComponent();
|
||||
Closing += (sender, eventArgs) =>
|
||||
{
|
||||
_cache.Save();
|
||||
_cache.Save().Wait();
|
||||
Application.Current.Shutdown();
|
||||
};
|
||||
}
|
||||
|
||||
private async void OnMainWindowLoaded(object sender, EventArgs e)
|
||||
private async void OnMainWindowLoaded(object sender, EventArgs eventArgs)
|
||||
{
|
||||
Debug.Initialize();
|
||||
await _cache.Initialization;
|
||||
ReplayAutoSaver.SpawnAutoSaveReplaysTask(_properties.RA3ReplayFolderPath);
|
||||
var token = _cancelLoadReplays.ResetAndGetToken(CancellationToken.None);
|
||||
await _taskQueue.Enqueue(() => LoadReplays(null, token), token);
|
||||
_ = _taskQueue.Enqueue(() => LoadReplays(null, token), token);
|
||||
|
||||
var wantUsePlugin = true;
|
||||
try
|
||||
{
|
||||
wantUsePlugin = await Plugin.LoadPlayerIdentityPlugin(_playerIdentity);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.Instance.DebugMessage += $"Failed to load plugin: {e}";
|
||||
MessageBox.Show(this, $"插件加载失败:{e.Message}");
|
||||
}
|
||||
|
||||
const string permissionKey = "questionAsked";
|
||||
if (!wantUsePlugin && _cache.GetOrDefault(permissionKey, false) is not true)
|
||||
{
|
||||
_cache.Set(permissionKey, true);
|
||||
var sb = new StringWriter();
|
||||
sb.WriteLine("要不要自动检查更新呢?");
|
||||
sb.WriteLine("之后也可以在“关于”窗口里,设置自动更新的选项");
|
||||
var choice = MessageBox.Show(this, sb.ToString(), App.Name, MessageBoxButton.YesNo);
|
||||
_cache.Set(UpdateChecker.CheckForUpdatesKey, choice is MessageBoxResult.Yes);
|
||||
await _cache.Save();
|
||||
}
|
||||
|
||||
_ = UpdateChecker.CheckForUpdates(_cache).ContinueWith(t => Dispatcher.InvokeAsync(() =>
|
||||
{
|
||||
var updateData = t.Result;
|
||||
if (updateData.IsNewVersion())
|
||||
{
|
||||
var about = new About(_cache, updateData)
|
||||
{
|
||||
Owner = this
|
||||
};
|
||||
about.ShowDialog();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
private async Task LoadReplays(string? nextSelected, CancellationToken cancelToken)
|
||||
@@ -318,6 +355,22 @@ namespace AnotherReplayReader
|
||||
{
|
||||
var token = _cancelLoadReplays.ResetAndGetToken(CancellationToken.None);
|
||||
await _taskQueue.Enqueue(() => LoadReplays(null, token), token);
|
||||
var text = _replayFolderPathBox.Text;
|
||||
const string assemblyMagic = "!DreamSign";
|
||||
const string jsonMagic = "!FantasySeal";
|
||||
switch (_replayFolderPathBox.Text)
|
||||
{
|
||||
case "!SpellCard":
|
||||
_replayDetailsBox.Text = $"{assemblyMagic}\r\n";
|
||||
_replayDetailsBox.Text += $"{jsonMagic}\r\n";
|
||||
break;
|
||||
case assemblyMagic:
|
||||
Plugin.Sign();
|
||||
break;
|
||||
case jsonMagic:
|
||||
UpdateChecker.Sign();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private async void OnReplaySelectionChanged(object sender, EventArgs e)
|
||||
@@ -334,7 +387,10 @@ namespace AnotherReplayReader
|
||||
|
||||
private void OnAboutButtonClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var aboutWindow = new About();
|
||||
var aboutWindow = new About(_cache)
|
||||
{
|
||||
Owner = this
|
||||
};
|
||||
aboutWindow.ShowDialog();
|
||||
}
|
||||
|
||||
@@ -348,7 +404,7 @@ namespace AnotherReplayReader
|
||||
InitialDirectory = _properties.ReplayFolderPath,
|
||||
};
|
||||
|
||||
var result = openFileDialog.ShowDialog();
|
||||
var result = openFileDialog.ShowDialog(this);
|
||||
if (result == true)
|
||||
{
|
||||
var fileName = openFileDialog.FileName;
|
||||
@@ -364,7 +420,10 @@ namespace AnotherReplayReader
|
||||
|
||||
private void OnDetailsButtonClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var detailsWindow = new ApmWindow(_properties.CurrentReplay!, _playerIdentity);
|
||||
var detailsWindow = new ApmWindow(_properties.CurrentReplay!, _playerIdentity)
|
||||
{
|
||||
Owner = this
|
||||
};
|
||||
detailsWindow.ShowDialog();
|
||||
}
|
||||
|
||||
@@ -399,7 +458,7 @@ namespace AnotherReplayReader
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MessageBox.Show($"无法修复录像:\r\n{exception}");
|
||||
MessageBox.Show(this, $"无法修复录像:\r\n{exception}");
|
||||
}
|
||||
|
||||
var token = _cancelLoadReplays.ResetAndGetToken(CancellationToken.None);
|
||||
|
||||
Reference in New Issue
Block a user