Fix #628
This commit is contained in:
@@ -18,6 +18,9 @@
|
|||||||
package org.jackhuang.hmcl.setting;
|
package org.jackhuang.hmcl.setting;
|
||||||
|
|
||||||
import com.google.gson.JsonParseException;
|
import com.google.gson.JsonParseException;
|
||||||
|
import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorServer;
|
||||||
|
import org.jackhuang.hmcl.task.Schedulers;
|
||||||
|
import org.jackhuang.hmcl.task.Task;
|
||||||
import org.jackhuang.hmcl.util.gson.JsonUtils;
|
import org.jackhuang.hmcl.util.gson.JsonUtils;
|
||||||
import org.jackhuang.hmcl.util.gson.Validation;
|
import org.jackhuang.hmcl.util.gson.Validation;
|
||||||
import org.jackhuang.hmcl.util.io.FileUtils;
|
import org.jackhuang.hmcl.util.io.FileUtils;
|
||||||
@@ -30,6 +33,7 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import static org.jackhuang.hmcl.setting.ConfigHolder.config;
|
||||||
import static org.jackhuang.hmcl.util.Logging.LOG;
|
import static org.jackhuang.hmcl.util.Logging.LOG;
|
||||||
|
|
||||||
public class AuthlibInjectorServers implements Validation {
|
public class AuthlibInjectorServers implements Validation {
|
||||||
@@ -70,6 +74,15 @@ public class AuthlibInjectorServers implements Validation {
|
|||||||
LOG.log(Level.WARNING, "Malformed authlib-injectors.json", e);
|
LOG.log(Level.WARNING, "Malformed authlib-injectors.json", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ConfigHolder.isNewlyCreated() && !AuthlibInjectorServers.getConfigInstance().getUrls().isEmpty()) {
|
||||||
|
config().setPreferredLoginType(Accounts.getLoginType(Accounts.FACTORY_AUTHLIB_INJECTOR));
|
||||||
|
for (String url : AuthlibInjectorServers.getConfigInstance().getUrls()) {
|
||||||
|
Task.supplyAsync(Schedulers.io(), () -> AuthlibInjectorServer.locateServer(url))
|
||||||
|
.thenAcceptAsync(Schedulers.javafx(), server -> config().getAuthlibInjectorServers().add(server))
|
||||||
|
.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AuthlibInjectorServers getConfigInstance() {
|
public static AuthlibInjectorServers getConfigInstance() {
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ package org.jackhuang.hmcl.setting;
|
|||||||
|
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
import org.jackhuang.hmcl.Metadata;
|
import org.jackhuang.hmcl.Metadata;
|
||||||
import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorServer;
|
|
||||||
import org.jackhuang.hmcl.game.HMCLCacheRepository;
|
import org.jackhuang.hmcl.game.HMCLCacheRepository;
|
||||||
import org.jackhuang.hmcl.util.CacheRepository;
|
import org.jackhuang.hmcl.util.CacheRepository;
|
||||||
import org.jackhuang.hmcl.util.io.FileUtils;
|
import org.jackhuang.hmcl.util.io.FileUtils;
|
||||||
@@ -45,19 +44,11 @@ public class Settings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Settings() {
|
private Settings() {
|
||||||
AuthlibInjectorServers.init();
|
|
||||||
|
|
||||||
if (ConfigHolder.isNewlyCreated() && !AuthlibInjectorServers.getConfigInstance().getUrls().isEmpty()) {
|
|
||||||
config().setPreferredLoginType(Accounts.getLoginType(Accounts.FACTORY_AUTHLIB_INJECTOR));
|
|
||||||
AuthlibInjectorServers.getConfigInstance().getUrls().stream()
|
|
||||||
.map(AuthlibInjectorServer::new)
|
|
||||||
.forEach(config().getAuthlibInjectorServers()::add);
|
|
||||||
}
|
|
||||||
|
|
||||||
DownloadProviders.init();
|
DownloadProviders.init();
|
||||||
ProxyManager.init();
|
ProxyManager.init();
|
||||||
Accounts.init();
|
Accounts.init();
|
||||||
Profiles.init();
|
Profiles.init();
|
||||||
|
AuthlibInjectorServers.init();
|
||||||
|
|
||||||
CacheRepository.setInstance(HMCLCacheRepository.REPOSITORY);
|
CacheRepository.setInstance(HMCLCacheRepository.REPOSITORY);
|
||||||
HMCLCacheRepository.REPOSITORY.directoryProperty().bind(Bindings.createStringBinding(() -> {
|
HMCLCacheRepository.REPOSITORY.directoryProperty().bind(Bindings.createStringBinding(() -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user