From 63e2fdf56dc95a005cec61504cbc908affad5040 Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Sat, 25 Apr 2020 19:55:42 +0800 Subject: [PATCH] alt: show authlib injector server name in main screen. --- .../ui/account/AccountAdvancedListItem.java | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountAdvancedListItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountAdvancedListItem.java index a6491f4dc..b39bba5c2 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountAdvancedListItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountAdvancedListItem.java @@ -18,12 +18,12 @@ package org.jackhuang.hmcl.ui.account; import javafx.beans.binding.Bindings; -import javafx.beans.property.ObjectProperty; -import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.*; import javafx.collections.ObservableList; import javafx.scene.control.Tooltip; import org.jackhuang.hmcl.auth.Account; -import org.jackhuang.hmcl.auth.offline.OfflineAccount; +import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorAccount; +import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorServer; import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount; import org.jackhuang.hmcl.game.TexturesLoader; import org.jackhuang.hmcl.setting.Accounts; @@ -54,7 +54,7 @@ public class AccountAdvancedListItem extends AdvancedListItem { titleProperty().bind(Bindings.createStringBinding(account::getCharacter, account)); setSubtitle(accountSubtitle(account)); imageProperty().bind(TexturesLoader.fxAvatarBinding(account, 32)); - tooltip.setText(account.getCharacter() + " " + accountSubtitle(account)); + tooltip.setText(account.getCharacter() + " " + accountTooltip(account)); } } }; @@ -83,11 +83,22 @@ public class AccountAdvancedListItem extends AdvancedListItem { } private static String accountSubtitle(Account account) { - if (account instanceof OfflineAccount) - return i18n("account.methods.offline"); - else if (account instanceof YggdrasilAccount) + String loginTypeName = Accounts.getLocalizedLoginTypeName(Accounts.getAccountFactory(account)); + if (account instanceof AuthlibInjectorAccount) { + return ((AuthlibInjectorAccount) account).getServer().getName(); + } else { + return loginTypeName; + } + } + + private static String accountTooltip(Account account) { + if (account instanceof AuthlibInjectorAccount) { + AuthlibInjectorServer server = ((AuthlibInjectorAccount) account).getServer(); + return account.getUsername() + ", " + i18n("account.injector.server") + ": " + server.getName(); + } else if (account instanceof YggdrasilAccount) { return account.getUsername(); - else + } else { return ""; + } } }