diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Accounts.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Accounts.java index a60815fa5..d20bd6fbf 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Accounts.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Accounts.java @@ -489,6 +489,8 @@ public final class Accounts { return i18n("account.methods.microsoft.error.country_unavailable"); } else if (errorCode == MicrosoftService.XboxAuthorizationException.MISSING_XBOX_ACCOUNT) { return i18n("account.methods.microsoft.error.missing_xbox_account"); + } else if (errorCode == MicrosoftService.XboxAuthorizationException.BANNED) { + return i18n("account.methods.microsoft.error.banned"); } else { return i18n("account.methods.microsoft.error.unknown", errorCode); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java index b0480022e..ff04f3bba 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java @@ -348,7 +348,9 @@ public class CreateAccountPane extends JFXDialogLayout implements DialogAware { forgotpasswordLink.setExternalLink("https://account.live.com/ResetPassword.aspx"); JFXHyperlink createProfileLink = new JFXHyperlink(i18n("account.methods.microsoft.makegameidsettings")); createProfileLink.setExternalLink("https://www.minecraft.net/msaprofile/mygames/editprofile"); - box.getChildren().setAll(profileLink, birthLink, purchaseLink, deauthorizeLink, forgotpasswordLink, createProfileLink); + JFXHyperlink bannedQueryLink = new JFXHyperlink(i18n("account.methods.ban_query")); + bannedQueryLink.setExternalLink("https://enforcement.xbox.com/enforcement/showenforcementhistory"); + box.getChildren().setAll(profileLink, birthLink, purchaseLink, deauthorizeLink, forgotpasswordLink, createProfileLink, bannedQueryLink); GridPane.setColumnSpan(box, 2); if (!IntegrityChecker.isOfficial()) { diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index a2b48c032..22c0dc5af 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -106,6 +106,7 @@ account.methods.microsoft.error.add_family_probably=Please check if the age indi account.methods.microsoft.error.country_unavailable=Xbox Live is not available in your current country/region. account.methods.microsoft.error.missing_xbox_account=Your Microsoft account does not have a linked Xbox account yet. Please click "Create Profile / Edit Profile Name" to create one before continuing. account.methods.microsoft.error.no_character=Please ensure you have purchased Minecraft: Java Edition.\nIf you have already purchased the game, a profile may not have been created yet.\nClick "Create Profile / Edit Profile Name" to create it. +account.methods.microsoft.error.banned=Your account may have been banned by Xbox Live.\nYou can click on "Ban Query" above for more details. account.methods.microsoft.error.unknown=Failed to log in, error code: %d. account.methods.microsoft.error.wrong_verify_method=Please log in using your password on the Microsoft account login page, and do not use a verification code to log in. account.methods.microsoft.logging_in=Logging in... @@ -136,6 +137,7 @@ account.methods.offline.uuid.hint=UUID is a unique identifier for Minecraft play This option is for advanced users only. We do not recommend changing this option unless you know what you are doing. account.methods.offline.uuid.malformed=Invalid format. account.methods.forgot_password=Forgot Password +account.methods.ban_query=Ban Query account.missing=No Accounts account.missing.add=Click here to add one. account.move_to_global=Convert to Global Account\nThe account information will be saved in a config file of the current user directory of the system. diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties index ac6b5f7f0..e6c00e5a4 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties @@ -107,6 +107,7 @@ account.methods.microsoft.error.add_family_probably=請檢查你的帳戶設定 account.methods.microsoft.error.country_unavailable=你所在的國家或地區不受 Xbox Live 的支援。 account.methods.microsoft.error.missing_xbox_account=你的 Microsoft 帳戶尚未關聯 Xbox 帳戶,你必須先建立 Xbox 帳戶,才能登入遊戲。 account.methods.microsoft.error.no_character=該帳戶未包含 Minecraft: Java 版購買記錄。\n若已購買,則可能未建立遊戲檔案,請點擊上方連結建立。 +account.methods.microsoft.error.banned=你的帳戶可能被 Xbox Live 封禁。\n你可以點擊上方「查詢帳戶是否被封禁」查看帳戶狀態。 account.methods.microsoft.error.unknown=登入失敗,錯誤碼:%d account.methods.microsoft.error.wrong_verify_method=請在 Microsoft 帳戶登入頁面使用密碼登入,不要使用驗證碼登入。 account.methods.microsoft.logging_in=登入中…… @@ -126,6 +127,7 @@ account.methods.microsoft.manual=你的代碼為 %1$s,請點擊此處 account.methods.microsoft.profile=編輯帳戶配置檔 account.methods.microsoft.purchase=購買 Minecraft account.methods.forgot_password=忘記密碼 +account.methods.ban_query=查詢帳戶是否被封禁 account.methods.microsoft.snapshot=你正在使用第三方提供的 HMCL,請下載官方版本進行登入。 account.methods.microsoft.snapshot.website=官方網站 account.methods.offline=離線模式 diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties index a5f6676dc..b1e9fefe9 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -108,6 +108,7 @@ account.methods.microsoft.error.add_family_probably=请点击上方“编辑账 account.methods.microsoft.error.country_unavailable=你所在的国家或地区不受 Xbox Live 的支持。 account.methods.microsoft.error.missing_xbox_account=请点击上方“创建档案”关联 Xbox 账户。\n你可以点击右上角帮助按钮进行求助。 account.methods.microsoft.error.no_character=请确认你已经购买了 Minecraft: Java 版。\n若已购买,则可能未创建游戏档案,请点击上方“创建档案”以创建游戏档案。\n你可以点击右上角帮助按钮进行求助。 +account.methods.microsoft.error.banned=你的账户可能被 Xbox Live 封禁。\n你可以点击上方“检测账户是否被封禁”查看账户状态。 account.methods.microsoft.error.unknown=未知问题。错误码:%d。\n你可以点击右上角帮助按钮进行求助。 account.methods.microsoft.error.wrong_verify_method=请在微软账户登录页面使用密码登录,不要使用验证码登录。\n你可以点击右上角帮助按钮进行求助。 account.methods.microsoft.logging_in=登录中…… @@ -134,6 +135,7 @@ account.methods.microsoft.manual=你需要按照以下步骤添加:\n\ account.methods.microsoft.profile=编辑账户个人信息 account.methods.microsoft.purchase=购买 Minecraft account.methods.forgot_password=忘记密码 +account.methods.ban_query=检测账户是否被封禁 account.methods.microsoft.snapshot=你正在使用第三方提供的 HMCL,请下载官方版本来登录微软账户。 account.methods.microsoft.snapshot.website=官方网站 account.methods.offline=离线模式 diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/microsoft/MicrosoftService.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/microsoft/MicrosoftService.java index 335e074d0..b5e81f7e0 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/microsoft/MicrosoftService.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/microsoft/MicrosoftService.java @@ -315,6 +315,7 @@ public class MicrosoftService { return redirect; } + public static final long BANNED = 2148916227L; public static final long MISSING_XBOX_ACCOUNT = 2148916233L; public static final long COUNTRY_UNAVAILABLE = 2148916235L; public static final long ADD_FAMILY = 2148916238L;