diff --git a/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs b/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs index d1593bf61a..88ea331229 100644 --- a/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs @@ -979,12 +979,31 @@ public class VersionUpdateViewModel : Screen return CheckUpdateRetT.UnknownError; } - if (data["code"]?.ToString() != "0") + var errorCode = data["code"]?.ToObject() ?? Enums.MirrorChyanErrorCode.Undivided; + if (errorCode != Enums.MirrorChyanErrorCode.Success) { - var msg = data["msg"]?.ToString(); - if (!string.IsNullOrEmpty(msg)) + switch (errorCode) { - ToastNotification.ShowDirect(msg); + case Enums.MirrorChyanErrorCode.KeyExpired: + ToastNotification.ShowDirect(LocalizationHelper.GetString("MirrorChyanCdkExpired")); + break; + case Enums.MirrorChyanErrorCode.KeyInvalid: + ToastNotification.ShowDirect(LocalizationHelper.GetString("MirrorChyanCdkInvalid")); + break; + case Enums.MirrorChyanErrorCode.ResourceQuotaExhausted: + ToastNotification.ShowDirect(LocalizationHelper.GetString("MirrorChyanCdkQuotaExhausted")); + break; + case Enums.MirrorChyanErrorCode.KeyMismatched: + ToastNotification.ShowDirect(LocalizationHelper.GetString("MirrorChyanCdkMismatched")); + break; + case Enums.MirrorChyanErrorCode.InvalidParams: + case Enums.MirrorChyanErrorCode.ResourceNotFound: + case Enums.MirrorChyanErrorCode.InvalidOs: + case Enums.MirrorChyanErrorCode.InvalidArch: + case Enums.MirrorChyanErrorCode.InvalidChannel: + case Enums.MirrorChyanErrorCode.Undivided: + ToastNotification.ShowDirect(data["msg"]?.ToString() ?? LocalizationHelper.GetString("GameResourceFailed")); + break; } return CheckUpdateRetT.UnknownError;