Fetch authlib-injector metadata on startup
This commit is contained in:
@@ -38,6 +38,7 @@ import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount;
|
|||||||
import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccountFactory;
|
import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccountFactory;
|
||||||
import org.jackhuang.hmcl.task.Schedulers;
|
import org.jackhuang.hmcl.task.Schedulers;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
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<Account> getAccounts() {
|
public static ObservableList<Account> getAccounts() {
|
||||||
|
|||||||
@@ -218,6 +218,11 @@ public class AuthlibInjectorServer implements Observable {
|
|||||||
return this.url.equals(another.url);
|
return this.url.equals(another.url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return name == null ? url : url + " (" + name + ")";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(InvalidationListener listener) {
|
public void addListener(InvalidationListener listener) {
|
||||||
helper.addListener(listener);
|
helper.addListener(listener);
|
||||||
|
|||||||
Reference in New Issue
Block a user