diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameDownloadTask.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameDownloadTask.java index ad3217fad..7a7f2e31c 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameDownloadTask.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameDownloadTask.java @@ -59,7 +59,7 @@ public class HMCLGameDownloadTask extends Task { public void execute() { File jar = profile.getRepository().getVersionJar(version); - File cache = new File(CONFIG.commonDirectory.get(), "jars/" + gameVersion + ".jar"); + File cache = new File(CONFIG.getCommonDirectory(), "jars/" + gameVersion + ".jar"); if (cache.exists()) try { FileUtils.copyFile(cache, jar); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java index 37867a3da..2aff2a527 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java @@ -61,7 +61,7 @@ public class HMCLGameRepository extends DefaultGameRepository { if (useSelf(version, assetId)) return super.getAssetDirectory(version, assetId); else - return new File(CONFIG.commonDirectory.get(), "assets"); + return new File(CONFIG.getCommonDirectory(), "assets"); } @Override @@ -86,7 +86,7 @@ public class HMCLGameRepository extends DefaultGameRepository { if (self.exists() || vs.isNoCommon()) return self; else - return new File(CONFIG.commonDirectory.get(), "libraries/" + lib.getPath()); + return new File(CONFIG.getCommonDirectory(), "libraries/" + lib.getPath()); } 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 30d16ca3b..427b8de49 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Accounts.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Accounts.java @@ -72,7 +72,7 @@ public final class Accounts { } private static AuthlibInjectorServer getOrCreateAuthlibInjectorServer(String url) { - return CONFIG.authlibInjectorServers.stream() + return CONFIG.getAuthlibInjectorServers().stream() .filter(server -> url.equals(server.getUrl())) .findFirst() .orElseGet(() -> { @@ -86,7 +86,7 @@ public final class Accounts { LOG.log(Level.WARNING, "Failed to migrate authlib injector server " + url, e); } - CONFIG.authlibInjectorServers.add(server); + CONFIG.getAuthlibInjectorServers().add(server); return server; }); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java index 960c314a3..6c0b60e8d 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java @@ -80,69 +80,70 @@ public final class Config implements Cloneable, Observable { } @SerializedName("last") - public final StringProperty selectedProfile = new SimpleStringProperty(""); + private StringProperty selectedProfile = new SimpleStringProperty(""); @SerializedName("backgroundType") - public final ObjectProperty backgroundImageType = new SimpleObjectProperty<>(EnumBackgroundImage.DEFAULT); + private ObjectProperty backgroundImageType = new SimpleObjectProperty<>(EnumBackgroundImage.DEFAULT); @SerializedName("bgpath") - public final StringProperty backgroundImage = new SimpleStringProperty(); + private StringProperty backgroundImage = new SimpleStringProperty(); @SerializedName("commonpath") - public final StringProperty commonDirectory = new SimpleStringProperty(Launcher.MINECRAFT_DIRECTORY.getAbsolutePath()); + private StringProperty commonDirectory = new SimpleStringProperty(Launcher.MINECRAFT_DIRECTORY.getAbsolutePath()); @SerializedName("hasProxy") - public final BooleanProperty hasProxy = new SimpleBooleanProperty(); + private BooleanProperty hasProxy = new SimpleBooleanProperty(); @SerializedName("hasProxyAuth") - public final BooleanProperty hasProxyAuth = new SimpleBooleanProperty(); + private BooleanProperty hasProxyAuth = new SimpleBooleanProperty(); @SerializedName("proxyType") - public final ObjectProperty proxyType = new SimpleObjectProperty<>(Proxy.Type.DIRECT); + private ObjectProperty proxyType = new SimpleObjectProperty<>(Proxy.Type.DIRECT); @SerializedName("proxyHost") - public final StringProperty proxyHost = new SimpleStringProperty(); + private StringProperty proxyHost = new SimpleStringProperty(); @SerializedName("proxyPort") - public final StringProperty proxyPort = new SimpleStringProperty(); + private StringProperty proxyPort = new SimpleStringProperty(); @SerializedName("proxyUserName") - public final StringProperty proxyUser = new SimpleStringProperty(); + private StringProperty proxyUser = new SimpleStringProperty(); @SerializedName("proxyPassword") - public final StringProperty proxyPass = new SimpleStringProperty(); + private StringProperty proxyPass = new SimpleStringProperty(); @SerializedName("theme") - public final StringProperty theme = new SimpleStringProperty(); + private StringProperty theme = new SimpleStringProperty(); @SerializedName("localization") - public final StringProperty localization = new SimpleStringProperty(); + private StringProperty localization = new SimpleStringProperty(); @SerializedName("downloadtype") - public final IntegerProperty downloadType = new SimpleIntegerProperty(1); + private IntegerProperty downloadType = new SimpleIntegerProperty(1); @SerializedName("configurations") - public final ObservableMap configurations = FXCollections.observableMap(new TreeMap<>()); + private ObservableMap configurations = FXCollections.observableMap(new TreeMap<>()); @SerializedName("accounts") - public final ObservableList> accounts = FXCollections.observableArrayList(); + private ObservableList> accounts = FXCollections.observableArrayList(); @SerializedName("selectedAccount") - public final StringProperty selectedAccount = new SimpleStringProperty(""); + private StringProperty selectedAccount = new SimpleStringProperty(""); @SerializedName("fontFamily") - public final StringProperty fontFamily = new SimpleStringProperty("Consolas"); + private StringProperty fontFamily = new SimpleStringProperty("Consolas"); @SerializedName("fontSize") - public final DoubleProperty fontSize = new SimpleDoubleProperty(12); + private DoubleProperty fontSize = new SimpleDoubleProperty(12); @SerializedName("logLines") - public final IntegerProperty logLines = new SimpleIntegerProperty(100); + private IntegerProperty logLines = new SimpleIntegerProperty(100); @SerializedName("firstLaunch") - public final BooleanProperty firstLaunch = new SimpleBooleanProperty(true); + private BooleanProperty firstLaunch = new SimpleBooleanProperty(true); - public final ObservableList authlibInjectorServers = FXCollections.observableArrayList(); + @SerializedName("authlibInjectorServers") + private ObservableList authlibInjectorServers = FXCollections.observableArrayList(); private transient ObservableHelper helper = new ObservableHelper(this); @@ -151,10 +152,10 @@ public final class Config implements Cloneable, Observable { } private void addListenerToProperties() { - Stream.of(getClass().getFields()) + Stream.of(getClass().getDeclaredFields()) .filter(it -> { int modifiers = it.getModifiers(); - return Modifier.isPublic(modifiers) && !Modifier.isStatic(modifiers); + return !Modifier.isTransient(modifiers) && !Modifier.isStatic(modifiers); }) .filter(it -> Observable.class.isAssignableFrom(it.getType())) .map(it -> { @@ -185,4 +186,246 @@ public final class Config implements Cloneable, Observable { public Config clone() { return fromJson(this.toJson()); } + + // Getters & Setters & Properties + public String getSelectedProfile() { + return selectedProfile.get(); + } + + public void setSelectedProfile(String selectedProfile) { + this.selectedProfile.set(selectedProfile); + } + + public StringProperty selectedProfileProperty() { + return selectedProfile; + } + + public EnumBackgroundImage getBackgroundImageType() { + return backgroundImageType.get(); + } + + public void setBackgroundImageType(EnumBackgroundImage backgroundImageType) { + this.backgroundImageType.set(backgroundImageType); + } + + public ObjectProperty backgroundImageTypeProperty() { + return backgroundImageType; + } + + public String getBackgroundImage() { + return backgroundImage.get(); + } + + public void setBackgroundImage(String backgroundImage) { + this.backgroundImage.set(backgroundImage); + } + + public StringProperty backgroundImageProperty() { + return backgroundImage; + } + + public String getCommonDirectory() { + return commonDirectory.get(); + } + + public void setCommonDirectory(String commonDirectory) { + this.commonDirectory.set(commonDirectory); + } + + public StringProperty commonDirectoryProperty() { + return commonDirectory; + } + + public boolean hasProxy() { + return hasProxy.get(); + } + + public void setHasProxy(boolean hasProxy) { + this.hasProxy.set(hasProxy); + } + + public BooleanProperty hasProxyProperty() { + return hasProxy; + } + + public boolean hasProxyAuth() { + return hasProxyAuth.get(); + } + + public void setHasProxyAuth(boolean hasProxyAuth) { + this.hasProxyAuth.set(hasProxyAuth); + } + + public BooleanProperty hasProxyAuthProperty() { + return hasProxyAuth; + } + + public Proxy.Type getProxyType() { + return proxyType.get(); + } + + public void setProxyType(Proxy.Type proxyType) { + this.proxyType.set(proxyType); + } + + public ObjectProperty proxyTypeProperty() { + return proxyType; + } + + public String getProxyHost() { + return proxyHost.get(); + } + + public void setProxyHost(String proxyHost) { + this.proxyHost.set(proxyHost); + } + + public StringProperty proxyHostProperty() { + return proxyHost; + } + + public String getProxyPort() { + return proxyPort.get(); + } + + public void setProxyPort(String proxyPort) { + this.proxyPort.set(proxyPort); + } + + public StringProperty proxyPortProperty() { + return proxyPort; + } + + public String getProxyUser() { + return proxyUser.get(); + } + + public void setProxyUser(String proxyUser) { + this.proxyUser.set(proxyUser); + } + + public StringProperty proxyUserProperty() { + return proxyUser; + } + + public String getProxyPass() { + return proxyPass.get(); + } + + public void setProxyPass(String proxyPass) { + this.proxyPass.set(proxyPass); + } + + public StringProperty proxyPassProperty() { + return proxyPass; + } + + public String getTheme() { + return theme.get(); + } + + public void setTheme(String theme) { + this.theme.set(theme); + } + + public StringProperty themeProperty() { + return theme; + } + + public String getLocalization() { + return localization.get(); + } + + public void setLocalization(String localization) { + this.localization.set(localization); + } + + public StringProperty localizationProperty() { + return localization; + } + + public int getDownloadType() { + return downloadType.get(); + } + + public void setDownloadType(int downloadType) { + this.downloadType.set(downloadType); + } + + public IntegerProperty downloadTypeProperty() { + return downloadType; + } + + public ObservableMap getConfigurations() { + return configurations; + } + + public ObservableList> getAccounts() { + return accounts; + } + + public String getSelectedAccount() { + return selectedAccount.get(); + } + + public void setSelectedAccount(String selectedAccount) { + this.selectedAccount.set(selectedAccount); + } + + public StringProperty selectedAccountProperty() { + return selectedAccount; + } + + public String getFontFamily() { + return fontFamily.get(); + } + + public void setFontFamily(String fontFamily) { + this.fontFamily.set(fontFamily); + } + + public StringProperty fontFamilyProperty() { + return fontFamily; + } + + public double getFontSize() { + return fontSize.get(); + } + + public void setFontSize(double fontSize) { + this.fontSize.set(fontSize); + } + + public DoubleProperty fontSizeProperty() { + return fontSize; + } + + public int getLogLines() { + return logLines.get(); + } + + public void setLogLines(int logLines) { + this.logLines.set(logLines); + } + + public IntegerProperty logLinesProperty() { + return logLines; + } + + public boolean isFirstLaunch() { + return firstLaunch.get(); + } + + public void setFirstLaunch(boolean firstLaunch) { + this.firstLaunch.set(firstLaunch); + } + + public BooleanProperty firstLaunchProperty() { + return firstLaunch; + } + + public ObservableList getAuthlibInjectorServers() { + return authlibInjectorServers; + } + } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/ProxyManager.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/ProxyManager.java index 5f4687a29..12822e15f 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/ProxyManager.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/ProxyManager.java @@ -37,18 +37,18 @@ public final class ProxyManager { public static final ObjectBinding proxyProperty = Bindings.createObjectBinding( () -> { - String host = CONFIG.proxyHost.get(); - Integer port = Lang.toIntOrNull(CONFIG.proxyPort.get()); - if (!CONFIG.hasProxy.get() || StringUtils.isBlank(host) || port == null || CONFIG.proxyType.get() == Proxy.Type.DIRECT) { + String host = CONFIG.getProxyHost(); + Integer port = Lang.toIntOrNull(CONFIG.getProxyPort()); + if (!CONFIG.hasProxy() || StringUtils.isBlank(host) || port == null || CONFIG.getProxyType() == Proxy.Type.DIRECT) { return Proxy.NO_PROXY; } else { - return new Proxy(CONFIG.proxyType.get(), new InetSocketAddress(host, port)); + return new Proxy(CONFIG.getProxyType(), new InetSocketAddress(host, port)); } }, - CONFIG.proxyType, - CONFIG.proxyHost, - CONFIG.proxyPort, - CONFIG.hasProxy); + CONFIG.proxyTypeProperty(), + CONFIG.proxyHostProperty(), + CONFIG.proxyPortProperty(), + CONFIG.hasProxyProperty()); public static Proxy getProxy() { return proxyProperty.get(); @@ -67,9 +67,9 @@ public final class ProxyManager { @Override protected PasswordAuthentication getPasswordAuthentication() { - if (CONFIG.hasProxyAuth.get()) { - String username = CONFIG.proxyUser.get(); - String password = CONFIG.proxyPass.get(); + if (CONFIG.hasProxyAuth()) { + String username = CONFIG.getProxyUser(); + String password = CONFIG.getProxyPass(); if (username != null && password != null) { return new PasswordAuthentication(username, password.toCharArray()); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java index 9ff4d67a2..a375a8ee6 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java @@ -53,7 +53,7 @@ public class Settings { private final boolean firstLaunch; private InvalidationListener accountChangeListener = - source -> CONFIG.accounts.setAll( + source -> CONFIG.getAccounts().setAll( accounts.values().stream() .map(account -> { Map storage = account.toStorage(); @@ -63,12 +63,12 @@ public class Settings { .collect(toList())); private Settings() { - firstLaunch = CONFIG.firstLaunch.get(); - CONFIG.firstLaunch.set(false); + firstLaunch = CONFIG.isFirstLaunch(); + CONFIG.setFirstLaunch(false); ProxyManager.getProxy(); // init ProxyManager - for (Iterator> iterator = CONFIG.accounts.iterator(); iterator.hasNext();) { + for (Iterator> iterator = CONFIG.getAccounts().iterator(); iterator.hasNext();) { Map settings = iterator.next(); AccountFactory factory = Accounts.ACCOUNT_FACTORY.get(tryCast(settings.get("type"), String.class).orElse("")); if (factory == null) { @@ -90,9 +90,9 @@ public class Settings { account.addListener(accountChangeListener); } - CONFIG.authlibInjectorServers.addListener(onInvalidating(this::removeDanglingAuthlibInjectorAccounts)); + CONFIG.getAuthlibInjectorServers().addListener(onInvalidating(this::removeDanglingAuthlibInjectorAccounts)); - this.selectedAccount.set(accounts.get(CONFIG.selectedAccount.get())); + this.selectedAccount.set(accounts.get(CONFIG.getSelectedAccount())); checkProfileMap(); @@ -117,7 +117,7 @@ public class Settings { return firstLaunch; } - private Locales.SupportedLocale locale = Locales.getLocaleByName(CONFIG.localization.get()); + private Locales.SupportedLocale locale = Locales.getLocaleByName(CONFIG.getLocalization()); public Locales.SupportedLocale getLocale() { return locale; @@ -125,24 +125,24 @@ public class Settings { public void setLocale(Locales.SupportedLocale locale) { this.locale = locale; - CONFIG.localization.set(Locales.getNameByLocale(locale)); + CONFIG.setLocalization(Locales.getNameByLocale(locale)); } public Font getFont() { - return Font.font(CONFIG.fontFamily.get(), CONFIG.fontSize.get()); + return Font.font(CONFIG.getFontFamily(), CONFIG.getFontSize()); } public void setFont(Font font) { - CONFIG.fontFamily.set(font.getFamily()); - CONFIG.fontSize.set(font.getSize()); + CONFIG.setFontFamily(font.getFamily()); + CONFIG.setFontSize(font.getSize()); } public int getLogLines() { - return Math.max(CONFIG.logLines.get(), 100); + return Math.max(CONFIG.getLogLines(), 100); } public void setLogLines(int logLines) { - CONFIG.logLines.set(logLines); + CONFIG.setLogLines(logLines); } /**************************************** @@ -157,7 +157,7 @@ public class Settings { private void removeDanglingAuthlibInjectorAccounts() { accounts.values().stream() .filter(AuthlibInjectorAccount.class::isInstance) - .filter(it -> !CONFIG.authlibInjectorServers.contains(((AuthlibInjectorAccount) it).getServer())) + .filter(it -> !CONFIG.getAuthlibInjectorServers().contains(((AuthlibInjectorAccount) it).getServer())) .collect(toList()) .forEach(this::deleteAccount); } @@ -167,14 +167,14 @@ public class Settings { ****************************************/ public DownloadProvider getDownloadProvider() { - return DownloadProviders.getDownloadProvider(CONFIG.downloadType.get()); + return DownloadProviders.getDownloadProvider(CONFIG.getDownloadType()); } public void setDownloadProvider(DownloadProvider downloadProvider) { int index = DownloadProviders.DOWNLOAD_PROVIDERS.indexOf(downloadProvider); if (index == -1) throw new IllegalArgumentException("Unknown download provider: " + downloadProvider); - CONFIG.downloadType.set(index); + CONFIG.setDownloadType(index); } /**************************************** @@ -203,7 +203,7 @@ public class Settings { public void invalidated() { super.invalidated(); - CONFIG.selectedAccount.set(getValue() == null ? "" : Accounts.getAccountId(getValue())); + CONFIG.setSelectedAccount(getValue() == null ? "" : Accounts.getAccountId(getValue())); } }; @@ -261,12 +261,12 @@ public class Settings { * THEME * ****************************************/ - private final ImmediateObjectProperty theme = new ImmediateObjectProperty(this, "theme", Theme.getTheme(CONFIG.theme.get()).orElse(Theme.BLUE)) { + private final ImmediateObjectProperty theme = new ImmediateObjectProperty(this, "theme", Theme.getTheme(CONFIG.getTheme()).orElse(Theme.BLUE)) { @Override public void invalidated() { super.invalidated(); - CONFIG.theme.set(get().getName().toLowerCase()); + CONFIG.setTheme(get().getName().toLowerCase()); } }; @@ -289,18 +289,18 @@ public class Settings { public Profile getSelectedProfile() { checkProfileMap(); - if (!hasProfile(CONFIG.selectedProfile.get())) { + if (!hasProfile(CONFIG.getSelectedProfile())) { getProfileMap().keySet().stream().findFirst().ifPresent(selectedProfile -> { - CONFIG.selectedProfile.set(selectedProfile); + CONFIG.setSelectedProfile(selectedProfile); }); Schedulers.computation().schedule(this::onProfileChanged); } - return getProfile(CONFIG.selectedProfile.get()); + return getProfile(CONFIG.getSelectedProfile()); } public void setSelectedProfile(Profile selectedProfile) { - if (hasProfile(selectedProfile.getName()) && !Objects.equals(selectedProfile.getName(), CONFIG.selectedProfile.get())) { - CONFIG.selectedProfile.set(selectedProfile.getName()); + if (hasProfile(selectedProfile.getName()) && !Objects.equals(selectedProfile.getName(), CONFIG.getSelectedProfile())) { + CONFIG.setSelectedProfile(selectedProfile.getName()); Schedulers.computation().schedule(this::onProfileChanged); } } @@ -317,7 +317,7 @@ public class Settings { } public Map getProfileMap() { - return CONFIG.configurations; + return CONFIG.getConfigurations(); } public Collection getProfiles() { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/VersionSetting.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/VersionSetting.java index 8fb343cc9..c8e9ddf34 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/VersionSetting.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/VersionSetting.java @@ -519,10 +519,10 @@ public final class VersionSetting { .setFullscreen(isFullscreen()) .setServerIp(getServerIp()) .setWrapper(getWrapper()) - .setProxyHost(CONFIG.proxyHost.get()) - .setProxyPort(CONFIG.proxyPort.get()) - .setProxyUser(CONFIG.proxyUser.get()) - .setProxyPass(CONFIG.proxyPass.get()) + .setProxyHost(CONFIG.getProxyHost()) + .setProxyPort(CONFIG.getProxyPort()) + .setProxyUser(CONFIG.getProxyUser()) + .setProxyPass(CONFIG.getProxyPass()) .setPrecalledCommand(getPreLaunchCommand()) .setNoGeneratedJVMArgs(isNoJVMArgs()) .create(); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAccountPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAccountPane.java index ce5e13d0c..92bf69814 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAccountPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAccountPane.java @@ -82,7 +82,7 @@ public class AddAccountPane extends StackPane { cboServers.setCellFactory(jfxListCellFactory(server -> new TwoLineListItem(server.getName(), server.getUrl()))); cboServers.setConverter(stringConverter(AuthlibInjectorServer::getName)); - Bindings.bindContent(cboServers.getItems(), CONFIG.authlibInjectorServers); + Bindings.bindContent(cboServers.getItems(), CONFIG.getAuthlibInjectorServers()); cboServers.getItems().addListener(onInvalidating(this::selectDefaultServer)); selectDefaultServer(); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAuthlibInjectorServerPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAuthlibInjectorServerPane.java index c723348b1..2fbf48b94 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAuthlibInjectorServerPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AddAuthlibInjectorServerPane.java @@ -133,8 +133,8 @@ public class AddAuthlibInjectorServerPane extends StackPane { @FXML private void onAddFinish() { - if (!CONFIG.authlibInjectorServers.contains(serverBeingAdded)) { - CONFIG.authlibInjectorServers.add(serverBeingAdded); + if (!CONFIG.getAuthlibInjectorServers().contains(serverBeingAdded)) { + CONFIG.getAuthlibInjectorServers().add(serverBeingAdded); } fireEvent(new DialogCloseEvent()); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AuthlibInjectorServersPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AuthlibInjectorServersPage.java index ddaeb113e..3cdc611bb 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AuthlibInjectorServersPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AuthlibInjectorServersPage.java @@ -49,15 +49,15 @@ public class AuthlibInjectorServersPage extends StackPane implements DecoratorPa smoothScrolling(scrollPane); serversListener = observable -> updateServersList(); - CONFIG.authlibInjectorServers.addListener(new WeakInvalidationListener(serversListener)); + CONFIG.getAuthlibInjectorServers().addListener(new WeakInvalidationListener(serversListener)); updateServersList(); } private void updateServersList() { listPane.getChildren().setAll( - CONFIG.authlibInjectorServers.stream() + CONFIG.getAuthlibInjectorServers().stream() .map(server -> new AuthlibInjectorServerItem(server, - item -> CONFIG.authlibInjectorServers.remove(item.getServer()))) + item -> CONFIG.getAuthlibInjectorServers().remove(item.getServer()))) .collect(toList())); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Decorator.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Decorator.java index 4595550e0..91bb9ae33 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Decorator.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Decorator.java @@ -221,10 +221,10 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza try { Image background; - if (CONFIG.backgroundImageType.get() == EnumBackgroundImage.DEFAULT) + if (CONFIG.getBackgroundImageType() == EnumBackgroundImage.DEFAULT) background = searchBackgroundImage(new Image("/assets/img/background.jpg"), ""); else - background = searchBackgroundImage(new Image("/assets/img/background.jpg"), CONFIG.backgroundImage.get()); + background = searchBackgroundImage(new Image("/assets/img/background.jpg"), CONFIG.getBackgroundImage()); drawerWrapper.setBackground(new Background(new BackgroundImage(background, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT, new BackgroundSize(800, 480, false, false, true, true)))); } catch (IllegalArgumentException ignore) { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java index 7123bd80e..45f1b9126 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java @@ -106,10 +106,10 @@ public final class SettingsPage extends StackPane implements DecoratorPage { FXUtils.smoothScrolling(scroll); - txtProxyHost.textProperty().bindBidirectional(CONFIG.proxyHost); - txtProxyPort.textProperty().bindBidirectional(CONFIG.proxyPort); - txtProxyUsername.textProperty().bindBidirectional(CONFIG.proxyUser); - txtProxyPassword.textProperty().bindBidirectional(CONFIG.proxyPass); + txtProxyHost.textProperty().bindBidirectional(CONFIG.proxyHostProperty()); + txtProxyPort.textProperty().bindBidirectional(CONFIG.proxyPortProperty()); + txtProxyUsername.textProperty().bindBidirectional(CONFIG.proxyUserProperty()); + txtProxyPassword.textProperty().bindBidirectional(CONFIG.proxyPassProperty()); cboDownloadSource.getSelectionModel().select(DownloadProviders.DOWNLOAD_PROVIDERS.indexOf(Settings.INSTANCE.getDownloadProvider())); cboDownloadSource.getSelectionModel().selectedIndexProperty().addListener((a, b, newValue) -> Settings.INSTANCE.setDownloadProvider(DownloadProviders.getDownloadProvider(newValue.intValue()))); @@ -149,28 +149,28 @@ public final class SettingsPage extends StackPane implements DecoratorPage { chkProxySocks.setToggleGroup(proxyConfigurationGroup); for (Toggle toggle : proxyConfigurationGroup.getToggles()) - if (toggle.getUserData() == CONFIG.proxyType.get()) + if (toggle.getUserData() == CONFIG.getProxyType()) toggle.setSelected(true); ToggleGroup hasProxyGroup = new ToggleGroup(); chkNoProxy.setToggleGroup(hasProxyGroup); chkManualProxy.setToggleGroup(hasProxyGroup); - if (!CONFIG.hasProxy.get()) + if (!CONFIG.hasProxy()) chkNoProxy.setSelected(true); else chkManualProxy.setSelected(true); proxyPane.disableProperty().bind(chkNoProxy.selectedProperty()); hasProxyGroup.selectedToggleProperty().addListener((a, b, newValue) -> - CONFIG.hasProxy.set(newValue != chkNoProxy)); + CONFIG.setHasProxy(newValue != chkNoProxy)); proxyConfigurationGroup.selectedToggleProperty().addListener((a, b, newValue) -> - CONFIG.proxyType.set((Proxy.Type) newValue.getUserData())); + CONFIG.setProxyType((Proxy.Type) newValue.getUserData())); - chkProxyAuthentication.selectedProperty().bindBidirectional(CONFIG.hasProxyAuth); + chkProxyAuthentication.selectedProperty().bindBidirectional(CONFIG.hasProxyAuthProperty()); authPane.disableProperty().bind(chkProxyAuthentication.selectedProperty().not()); - fileCommonLocation.pathProperty().bindBidirectional(CONFIG.commonDirectory); + fileCommonLocation.pathProperty().bindBidirectional(CONFIG.commonDirectoryProperty()); FXUtils.installTooltip(btnUpdate, i18n("update.tooltip")); checkUpdate(); @@ -180,17 +180,17 @@ public final class SettingsPage extends StackPane implements DecoratorPage { backgroundItem.createChildren(i18n("launcher.background.default"), EnumBackgroundImage.DEFAULT) )); - FXUtils.bindString(backgroundItem.getTxtCustom(), CONFIG.backgroundImage); + FXUtils.bindString(backgroundItem.getTxtCustom(), CONFIG.backgroundImageProperty()); backgroundItem.setCustomUserData(EnumBackgroundImage.CUSTOM); - backgroundItem.getGroup().getToggles().stream().filter(it -> it.getUserData() == CONFIG.backgroundImageType.get()).findFirst().ifPresent(it -> it.setSelected(true)); + backgroundItem.getGroup().getToggles().stream().filter(it -> it.getUserData() == CONFIG.getBackgroundImageType()).findFirst().ifPresent(it -> it.setSelected(true)); - CONFIG.backgroundImage.addListener(onInvalidating(this::initBackgroundItemSubtitle)); - CONFIG.backgroundImageType.addListener(onInvalidating(this::initBackgroundItemSubtitle)); + CONFIG.backgroundImageProperty().addListener(onInvalidating(this::initBackgroundItemSubtitle)); + CONFIG.backgroundImageTypeProperty().addListener(onInvalidating(this::initBackgroundItemSubtitle)); initBackgroundItemSubtitle(); backgroundItem.setToggleSelectedListener(newValue -> - CONFIG.backgroundImageType.set((EnumBackgroundImage) newValue.getUserData())); + CONFIG.setBackgroundImageType((EnumBackgroundImage) newValue.getUserData())); // theme JFXColorPicker picker = new JFXColorPicker(Color.web(Settings.INSTANCE.getTheme().getColor()), null); @@ -207,12 +207,12 @@ public final class SettingsPage extends StackPane implements DecoratorPage { } private void initBackgroundItemSubtitle() { - switch (CONFIG.backgroundImageType.get()) { + switch (CONFIG.getBackgroundImageType()) { case DEFAULT: backgroundItem.setSubtitle(i18n("launcher.background.default")); break; case CUSTOM: - backgroundItem.setSubtitle(CONFIG.backgroundImage.get()); + backgroundItem.setSubtitle(CONFIG.getBackgroundImage()); break; } } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java index 8e1aa4933..65520fb8b 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java @@ -25,7 +25,6 @@ import org.jackhuang.hmcl.mod.Modpack; import org.jackhuang.hmcl.setting.Config; import org.jackhuang.hmcl.setting.ConfigHolder; import org.jackhuang.hmcl.setting.Profile; -import org.jackhuang.hmcl.setting.Settings; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.ui.wizard.WizardController; import org.jackhuang.hmcl.ui.wizard.WizardProvider; @@ -83,16 +82,16 @@ public final class ExportWizardProvider implements WizardProvider { try (ZipEngine zip = new ZipEngine(modpackFile)) { Config config = ConfigHolder.CONFIG.clone(); - config.hasProxy.set(false); - config.selectedProfile.set(""); - config.commonDirectory.set(null); - config.fontFamily.set("Consolas"); - config.fontSize.set(12); - config.localization.set(null); - config.accounts.clear(); - config.selectedAccount.set(""); - config.logLines.set(100); - config.configurations.clear(); + config.setHasProxy(false); + config.setSelectedProfile(""); + config.setCommonDirectory(null); + config.setFontFamily("Consolas"); + config.setFontSize(12); + config.setLocalization(null); + config.getAccounts().clear(); + config.setSelectedAccount(""); + config.setLogLines(100); + config.getConfigurations().clear(); zip.putTextFile(config.toJson(), ConfigHolder.CONFIG_FILENAME); zip.putFile(tempModpack, "modpack.zip");