From 97e3ebfc209efb1bcd6b4eaa75ba5f8fc38e341c Mon Sep 17 00:00:00 2001 From: RMBGAME Date: Wed, 27 Apr 2022 14:09:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dsteam=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=B8=B8=E6=88=8F=E5=9C=A8steam=E8=B4=A6=E5=8F=B7=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=90=8E=E8=87=AA=E5=8A=A8=E5=88=B7=E6=96=B0=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98=20=E4=BF=AE=E5=A4=8Dsteam?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B8=B8=E6=88=8F=E7=BC=96=E8=BE=91=E5=B8=A6?= =?UTF-8?q?=E6=9C=89=E6=9C=AC=E5=9C=B0=E5=8C=96=E5=90=8D=E7=A7=B0=E7=9A=84?= =?UTF-8?q?=E6=B8=B8=E6=88=8F=E6=97=A0=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Implementation/SteamServiceImpl.cs | 1 + src/ST.Client/Models/Steam/SteamApp.cs | 4 +++- .../Services/Mvvm/SteamConnectService.cs | 17 ++++++++++++----- 3 files changed, 16 insertions(+), 6 deletions(-) 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()