From 37186439cb3f76d1d96a0ea50fcccdfffa95acce Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Fri, 23 Nov 2018 23:29:41 +0800 Subject: [PATCH] Fetch authlib-injector metadata on startup --- .../java/org/jackhuang/hmcl/setting/Accounts.java | 13 +++++++++++++ .../auth/authlibinjector/AuthlibInjectorServer.java | 5 +++++ 2 files changed, 18 insertions(+) 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 befd09941..a3d2f8ee6 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Accounts.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Accounts.java @@ -38,6 +38,7 @@ import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount; import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccountFactory; import org.jackhuang.hmcl.task.Schedulers; +import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Optional; @@ -204,6 +205,18 @@ public final class Accounts { } }); } + + for (AuthlibInjectorServer server : config().getAuthlibInjectorServers()) { + if (selected instanceof AuthlibInjectorAccount && ((AuthlibInjectorAccount) selected).getServer() == server) + continue; + Schedulers.io().schedule(() -> { + try { + server.fetchMetadataResponse(); + } catch (IOException e) { + LOG.log(Level.WARNING, "Failed to fetch authlib-injector server metdata: " + server, e); + } + }); + } } public static ObservableList getAccounts() { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/authlibinjector/AuthlibInjectorServer.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/authlibinjector/AuthlibInjectorServer.java index 5777d25b4..f5b1fd890 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/authlibinjector/AuthlibInjectorServer.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/authlibinjector/AuthlibInjectorServer.java @@ -218,6 +218,11 @@ public class AuthlibInjectorServer implements Observable { return this.url.equals(another.url); } + @Override + public String toString() { + return name == null ? url : url + " (" + name + ")"; + } + @Override public void addListener(InvalidationListener listener) { helper.addListener(listener);