diff --git a/src/ST.Client.Desktop.Windows/Services/Implementation/SteamServiceImpl.cs b/src/ST.Client.Desktop.Windows/Services/Implementation/SteamServiceImpl.cs index 035b232ad..5456734d8 100644 --- a/src/ST.Client.Desktop.Windows/Services/Implementation/SteamServiceImpl.cs +++ b/src/ST.Client.Desktop.Windows/Services/Implementation/SteamServiceImpl.cs @@ -847,6 +847,7 @@ namespace System.Application.Services.Implementation static uint GetUInt32(dynamic value) { + if (value is null) return 0; if (value is VValue vvalue) return GetUInt32(vvalue.Value!); if (value is uint value2) return value2; if (value is IConvertible convertible) diff --git a/src/ST.Client/Models/Steam/SteamApp.cs b/src/ST.Client/Models/Steam/SteamApp.cs index e342f83d4..93d5f68bb 100644 --- a/src/ST.Client/Models/Steam/SteamApp.cs +++ b/src/ST.Client/Models/Steam/SteamApp.cs @@ -236,7 +236,9 @@ namespace System.Application.Models if (propertyValue2 != null) { _properties.SetPropertyValue(SteamAppPropertyType.Table, propertyValue2, NodeAppInfo, "steam_edit", "base_name_localized"); - _properties.RemoveProperty("name_localized"); + + //_properties.RemoveProperty(NodeAppInfo, NodeCommon, "name_localized"); + _properties.SetPropertyValue(SteamAppPropertyType.Table, new SteamAppPropertyTable(), NodeAppInfo, NodeCommon, "name_localized"); } _properties.SetPropertyValue(SteamAppPropertyType.String, appInfo.BaseName, NodeAppInfo, "steam_edit", "base_name"); diff --git a/src/ST.Client/Services/Mvvm/SteamConnectService.cs b/src/ST.Client/Services/Mvvm/SteamConnectService.cs index 485fe545d..d2a858d04 100644 --- a/src/ST.Client/Services/Mvvm/SteamConnectService.cs +++ b/src/ST.Client/Services/Mvvm/SteamConnectService.cs @@ -263,7 +263,7 @@ namespace System.Application.Services { IsDisposedClient = false; var id = swLocalService.GetSteamId64(); - if (id == SteamUser.UndefinedId) + if (id <= 0 || id == SteamUser.UndefinedId) { //该64位id的steamID3等于0,是steam未获取到当前登录用户的默认返回值,所以直接重新获取 DisposeSteamClient(); @@ -296,19 +296,26 @@ namespace System.Application.Services var applist = swLocalService.OwnsApps(await ISteamService.Instance.GetAppInfos()); if (!applist.Any_Nullable()) { + if (!IsDisposedClient) + DisposeSteamClient(); continue; } LoadGames(applist); InitializeDownloadGameList(); } + + if (!SteamUsers.Lookup(id).HasValue) + { + RefreshSteamUsers(); + } + //var mainViewModel = (IWindowService.Instance.MainWindow as WindowViewModel); //await mainViewModel.SteamAppPage.Initialize(); //await mainViewModel.AccountPage.Initialize(id); + #endregion if (!IsDisposedClient) - { DisposeSteamClient(); - } } } } @@ -469,7 +476,7 @@ namespace System.Application.Services IsLoadingGameList = false; DisposeSteamClient(); } - }, TaskCreationOptions.DenyChildAttach).Forget().ConfigureAwait(false); + }, TaskCreationOptions.DenyChildAttach).ConfigureAwait(false); } else { @@ -582,8 +589,8 @@ namespace System.Application.Services public void DisposeSteamClient() { - swLocalService.DisposeSteamClient(); IsDisposedClient = true; + swLocalService.DisposeSteamClient(); } public void Dispose()