mirror of
https://github.com/wangdage12/Snap.Hutao.git
synced 2026-02-18 02:42:15 +08:00
修复工具异步加载问题、添加武器和角色id、提示版本号
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<Package
|
||||
Name="Snap.Hutao"
|
||||
Manufacturer="Millennium Science Technology R-D Inst"
|
||||
Version="1.18.1.0"
|
||||
Version="1.18.2.0"
|
||||
UpgradeCode="121203be-60cb-408f-92cc-7080f6598e68"
|
||||
Scope="perMachine">
|
||||
|
||||
|
||||
@@ -126,6 +126,9 @@ internal static class AvatarIds
|
||||
public static readonly AvatarId Nefer = 10000122;
|
||||
public static readonly AvatarId Durin = 10000123;
|
||||
public static readonly AvatarId Jahoda = 10000124;
|
||||
public static readonly AvatarId Columbina = 10000125;
|
||||
public static readonly AvatarId Zibai = 10000126;
|
||||
public static readonly AvatarId Illuga = 10000127;
|
||||
|
||||
private static readonly FrozenSet<AvatarId> StandardWishIds =
|
||||
[
|
||||
|
||||
@@ -22,9 +22,8 @@ internal static class WeaponIds
|
||||
11401U, 11402U, 11403U, 11405U,
|
||||
12401U, 12402U, 12403U, 12405U,
|
||||
13401U, 13407U,
|
||||
14401U, 14402U, 14403U, 14409U,
|
||||
15401U, 15402U, 15403U, 15405U,
|
||||
15434U
|
||||
14401U, 14402U, 14403U, 14409U, 14433U, 14434U,
|
||||
15401U, 15402U, 15403U, 15405U, 15434U
|
||||
];
|
||||
|
||||
public static readonly FrozenSet<WeaponId> OrangeStandardWishIds =
|
||||
@@ -34,7 +33,8 @@ internal static class WeaponIds
|
||||
13502U, 13505U,
|
||||
14501U, 14502U,
|
||||
15501U, 15502U,
|
||||
15515U, 11518U
|
||||
15515U, 11518U,
|
||||
14522U, 11519U
|
||||
];
|
||||
|
||||
public static bool IsOrangeStandardWish(in WeaponId weaponId)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<UseWinUI>true</UseWinUI>
|
||||
<UseWPF>False</UseWPF>
|
||||
<!-- 配置版本号 -->
|
||||
<Version>1.18.1.0</Version>
|
||||
<Version>1.18.2.0</Version>
|
||||
|
||||
<UseWindowsForms>False</UseWindowsForms>
|
||||
<ImplicitUsings>False</ImplicitUsings>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Copyright (c) Millennium-Science-Technology-R-D-Inst. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Snap.Hutao.Core.ExceptionService;
|
||||
@@ -129,12 +130,39 @@ internal sealed partial class LaunchGameViewModel : Abstraction.ViewModel, IView
|
||||
await HandleGamePathEntryChangeAsync().ConfigureAwait(false);
|
||||
Shared.ResumeLaunchExecutionAsync(this).SafeForget();
|
||||
|
||||
// 初始化第三方工具列表
|
||||
// 初始化第三方工具列表(不阻塞页面加载)
|
||||
_ = InitializeThirdPartyToolsInBackgroundAsync(token);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private async Task InitializeThirdPartyToolsInBackgroundAsync(CancellationToken token)
|
||||
{
|
||||
try
|
||||
{
|
||||
ImmutableArray<ToolInfo> tools = await InitializeThirdPartyToolsAsync().ConfigureAwait(false);
|
||||
SentrySdk.AddBreadcrumb($"Initialized {tools.Length} third party tools", category: "ThirdPartyTool");
|
||||
thirdPartyToolsField.Value = tools;
|
||||
// Yield to let navigation/UI finish first.
|
||||
await Task.Yield();
|
||||
|
||||
if (token.IsCancellationRequested || IsViewUnloaded.Value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ImmutableArray<ToolInfo> tools = await InitializeThirdPartyToolsAsync(token).ConfigureAwait(false);
|
||||
|
||||
if (token.IsCancellationRequested || IsViewUnloaded.Value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
await taskContext.SwitchToMainThreadAsync();
|
||||
if (!token.IsCancellationRequested && !IsViewUnloaded.Value)
|
||||
{
|
||||
thirdPartyToolsField.Value = tools;
|
||||
}
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -142,7 +170,8 @@ internal sealed partial class LaunchGameViewModel : Abstraction.ViewModel, IView
|
||||
SentrySdk.CaptureException(ex);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
|
||||
}
|
||||
|
||||
[Command("IdentifyMonitorsCommand")]
|
||||
@@ -337,19 +366,26 @@ internal sealed partial class LaunchGameViewModel : Abstraction.ViewModel, IView
|
||||
}
|
||||
}
|
||||
|
||||
private async ValueTask<ImmutableArray<ToolInfo>> InitializeThirdPartyToolsAsync()
|
||||
private async ValueTask<ImmutableArray<ToolInfo>> InitializeThirdPartyToolsAsync(CancellationToken token)
|
||||
{
|
||||
try
|
||||
{
|
||||
SentrySdk.AddBreadcrumb("Starting to initialize third party tools", category: "ThirdPartyTool");
|
||||
IThirdPartyToolService thirdPartyToolService = serviceProvider.GetRequiredService<IThirdPartyToolService>();
|
||||
SentrySdk.AddBreadcrumb("Got IThirdPartyToolService instance", category: "ThirdPartyTool");
|
||||
|
||||
|
||||
// Note: service API is not cancellable; we only honor cancellation before/after the call.
|
||||
token.ThrowIfCancellationRequested();
|
||||
ImmutableArray<ToolInfo> tools = await thirdPartyToolService.GetToolsAsync().ConfigureAwait(false);
|
||||
token.ThrowIfCancellationRequested();
|
||||
|
||||
SentrySdk.AddBreadcrumb($"Got {tools.Length} tools from service", category: "ThirdPartyTool");
|
||||
|
||||
return tools;
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
return ImmutableArray<ToolInfo>.Empty;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
SentrySdk.AddBreadcrumb($"Failed to initialize third party tools: {ex.Message}", category: "ThirdPartyTool");
|
||||
|
||||
Reference in New Issue
Block a user