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 21b34bd8c..d909c071c 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
@@ -267,40 +267,49 @@ public class CreateAccountPane extends JFXDialogLayout implements DialogAware {
}
if (factory == Accounts.FACTORY_MICROSOFT) {
VBox vbox = new VBox(8);
- HintPane hintPane = new HintPane(MessageDialogPane.MessageType.INFO);
- FXUtils.onChangeAndOperate(deviceCode, deviceCode -> {
- if (deviceCode != null) {
- FXUtils.copyText(deviceCode.getUserCode());
- hintPane.setSegment(i18n("account.methods.microsoft.manual", deviceCode.getUserCode(), deviceCode.getVerificationUri()));
- } else {
- hintPane.setSegment(i18n("account.methods.microsoft.hint"));
- }
- });
- hintPane.setOnMouseClicked(e -> {
- if (deviceCode.get() != null) {
- FXUtils.copyText(deviceCode.get().getUserCode());
- }
- });
+ if (!Accounts.OAUTH_CALLBACK.getClientId().isEmpty()) {
+ HintPane hintPane = new HintPane(MessageDialogPane.MessageType.INFO);
+ FXUtils.onChangeAndOperate(deviceCode, deviceCode -> {
+ if (deviceCode != null) {
+ FXUtils.copyText(deviceCode.getUserCode());
+ hintPane.setSegment(i18n("account.methods.microsoft.manual", deviceCode.getUserCode(), deviceCode.getVerificationUri()));
+ } else {
+ hintPane.setSegment(i18n("account.methods.microsoft.hint"));
+ }
+ });
+ hintPane.setOnMouseClicked(e -> {
+ if (deviceCode.get() != null) {
+ FXUtils.copyText(deviceCode.get().getUserCode());
+ }
+ });
- holder.add(Accounts.OAUTH_CALLBACK.onGrantDeviceCode.registerWeak(value -> {
- runInFX(() -> deviceCode.set(value));
- }));
- HBox box = new HBox(8);
- JFXHyperlink birthLink = new JFXHyperlink(i18n("account.methods.microsoft.birth"));
- birthLink.setOnAction(e -> FXUtils.openLink("https://support.microsoft.com/account-billing/837badbc-999e-54d2-2617-d19206b9540a"));
- JFXHyperlink profileLink = new JFXHyperlink(i18n("account.methods.microsoft.profile"));
- profileLink.setOnAction(e -> FXUtils.openLink("https://account.live.com/editprof.aspx"));
- JFXHyperlink purchaseLink = new JFXHyperlink(i18n("account.methods.yggdrasil.purchase"));
- JFXHyperlink deauthorizeLink = new JFXHyperlink(i18n("account.methods.microsoft.deauthorize"));
- deauthorizeLink.setOnAction(e -> FXUtils.openLink("https://account.live.com/consent/Edit?client_id=000000004C794E0A"));
- purchaseLink.setOnAction(e -> FXUtils.openLink(YggdrasilService.PURCHASE_URL));
- box.getChildren().setAll(profileLink, birthLink, purchaseLink, deauthorizeLink);
- GridPane.setColumnSpan(box, 2);
+ holder.add(Accounts.OAUTH_CALLBACK.onGrantDeviceCode.registerWeak(value -> {
+ runInFX(() -> deviceCode.set(value));
+ }));
+ HBox box = new HBox(8);
+ JFXHyperlink birthLink = new JFXHyperlink(i18n("account.methods.microsoft.birth"));
+ birthLink.setOnAction(e -> FXUtils.openLink("https://support.microsoft.com/account-billing/837badbc-999e-54d2-2617-d19206b9540a"));
+ JFXHyperlink profileLink = new JFXHyperlink(i18n("account.methods.microsoft.profile"));
+ profileLink.setOnAction(e -> FXUtils.openLink("https://account.live.com/editprof.aspx"));
+ JFXHyperlink purchaseLink = new JFXHyperlink(i18n("account.methods.yggdrasil.purchase"));
+ JFXHyperlink deauthorizeLink = new JFXHyperlink(i18n("account.methods.microsoft.deauthorize"));
+ deauthorizeLink.setOnAction(e -> FXUtils.openLink("https://account.live.com/consent/Edit?client_id=000000004C794E0A"));
+ purchaseLink.setOnAction(e -> FXUtils.openLink(YggdrasilService.PURCHASE_URL));
+ box.getChildren().setAll(profileLink, birthLink, purchaseLink, deauthorizeLink);
+ GridPane.setColumnSpan(box, 2);
- vbox.getChildren().setAll(hintPane, box);
+ vbox.getChildren().setAll(hintPane, box);
+
+ btnAccept.setDisable(false);
+ } else {
+ HintPane hintPane = new HintPane(MessageDialogPane.MessageType.WARNING);
+ hintPane.setText(i18n("account.methods.microsoft.snapshot"));
+
+ vbox.getChildren().setAll(hintPane);
+ btnAccept.setDisable(true);
+ }
detailsPane = vbox;
- btnAccept.setDisable(false);
} else if (factory == Accounts.FACTORY_MOJANG) {
VBox vbox = new VBox(8);
HintPane hintPane = new HintPane(MessageDialogPane.MessageType.WARNING);
diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties
index e2ef1a0b4..c5a7dbdde 100644
--- a/HMCL/src/main/resources/assets/lang/I18N.properties
+++ b/HMCL/src/main/resources/assets/lang/I18N.properties
@@ -110,7 +110,7 @@ account.methods.microsoft.manual=Your device code is %1$s, please click h
\n\
If the token used to log in to the Microsoft account is leaked, you can click on "Unauthorize the account" to deauthorize it.
account.methods.microsoft.profile=Account Profile
-account.methods.microsoft.snapshot=HMCL Snapshot version does not support Microsoft login.
+account.methods.microsoft.snapshot=HMCL Snapshot version does not support Microsoft login, please use the stable version or beta version to log in.
account.methods.microsoft.waiting_browser=Waiting for login to complete in the opened window...
account.methods.offline=Offline
account.methods.offline.uuid=UUID
diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties
index 5cf7f8037..aa4f23fba 100644
--- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties
+++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties
@@ -102,7 +102,7 @@ account.methods.microsoft.logging_in=登入中...
account.methods.microsoft.hint=你需要按照以下步驟添加:\n1.點擊“登入”按鈕\n2.在網頁瀏覽器顯示的網站中輸入 HMCL 顯示的代碼(自動拷貝,直接粘貼即可),並點擊“下一步”\n3.按照網站的提示登入\n4.當網站顯示“ 是否允許此應用訪問你的信息?”的標識時,請點擊“是”\n5.當網站提示“大功告成”的標示時,及表示登入成功!然後等待賬戶完成添加即可!\n-若網站提示“出现错误”的標識,請嘗試重新按照以上步驟登入\n-若賬戶添加失敗,請嘗試重新按照以上步驟登入\n-若設備網絡環境不佳,可能登陸網站加載很慢甚至無法加載,此時請使用 VPN 或代理伺服器並重試\n-若登入微軟賬號的 Token 洩露,可點擊下方“解除帳戶授權”解除登入授權,然後等待 Token 過期
account.methods.microsoft.manual=你需要按照以下步驟添加:\n1.點擊“登入”按鈕\n2.在網頁瀏覽器顯示的網站中輸入該代碼:%1$s(已自動拷貝,請點此再次拷貝),並點擊“下一步”\n3.按照網站的提示登入\n4.當網站顯示“ 是否允許此應用訪問你的信息?”的標識時,請點擊“是”\n5.當網站提示“大功告成”的標示時,及表示登入成功!然後等待賬戶完成添加即可\n-若網站提示“出现错误”的標識,請嘗試重新按照以上步驟登入\n-若賬戶添加失敗,請嘗試重新按照以上步驟登入\n-若網站未能打開,請手動在網頁瀏覽器中打開:%2$s\n-若設備網絡環境不佳,可能登陸網站加載很慢甚至無法加載,此時請使用 VPN 或代理伺服器並重試\n-若登入微軟賬號的 Token 洩露,可點擊下方“解除帳戶授權”解除登入授權,然後等待 Token 過期
account.methods.microsoft.profile=帳戶設置頁
-account.methods.microsoft.snapshot=HMCL 快照版不支持微软登录
+account.methods.microsoft.snapshot=HMCL 快照版暫不提供微軟登入支持,請使用穩定版或測試版進行登入。
account.methods.microsoft.waiting_browser=等待在新打開的瀏覽器窗口中完成登入...
account.methods.offline=離線模式
account.methods.offline.uuid=UUID
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 cfc30f179..c27050580 100644
--- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties
+++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties
@@ -102,7 +102,7 @@ account.methods.microsoft.logging_in=登录中……
account.methods.microsoft.hint=你需要按照以下步骤添加:\n1.点击“登录”按钮\n2.在网页浏览器显示的网站中输入 HMCL 显示的代码(自动拷贝,直接粘贴即可),并点击“下一步”\n3.按照网站的提示登录\n4.当网站提示“是否允许此应用访问你的信息?”的标识时,请点击“是”\n5.当网站提示“大功告成”的标识时,及表示登录成功!然后等待账户完成添加即可!\n-若网站提示“出现错误”的标识时,请重新按照以上步骤重新添加\n-若账户添加失败,请重新按照以上步骤重新添加\n-若设备网络环境不佳,可能登录网站加载很慢甚至无法加载,此时请使用 VPN 或代理服务器并重试\n-若登录微软账户的 Token (不是密码)泄露,可点击下方“解除账户绑定”解除登录授权,然后等待 Token 过期
account.methods.microsoft.manual=你需要按照以下步骤添加:\n1.点击“登录”按钮\n2.在网页浏览器显示的网站中输入:%1$s(已自动拷贝,点此再次拷贝),并点击“下一步”\n3.按照网站的提示登录\n4.当网站提示“是否允许此应用访问你的信息?”的标识时,请点击“是”\n5.当网站提示“大功告成”的标识时,及表示登录成功!然后等待账户完成添加即可\n-若网站提示“出现错误”的标识时,请重新按照以上步骤重新添加\n-若账户添加失败,请重新按照以上步骤重新添加\n-若网站未能显示,请手动在网页浏览器中打开:%2$s\n-若设备网络环境不佳,可能登录网站加载很慢甚至无法加载,此时请使用 VPN 或代理服务器并重试\n-若登录微软账户的 Token (不是密码)泄露,可点击下方“解除账户绑定”解除登录授权,然后等待 Token 过期
account.methods.microsoft.profile=帐户设置页
-account.methods.microsoft.snapshot=HMCL 快照版不支持微软登录
+account.methods.microsoft.snapshot=HMCL 快照版暂不提供微软登录支持,请使用稳定版或测试版进行登录。
account.methods.microsoft.waiting_browser=等待在新打开的浏览器窗口中完成登录……
account.methods.offline=离线模式
account.methods.offline.uuid=UUID