Replace Settings.INSTANCE with Settings.instance()
This commit is contained in:
@@ -63,7 +63,7 @@ public class HMCLGameDownloadTask extends Task {
|
|||||||
|
|
||||||
// Force using common directory will not affect the behaviour that repository acts
|
// Force using common directory will not affect the behaviour that repository acts
|
||||||
// Since we always copy the downloaded jar to .minecraft/versions/<version>/
|
// Since we always copy the downloaded jar to .minecraft/versions/<version>/
|
||||||
File cache = new File(Optional.ofNullable(Settings.INSTANCE.getCommonDirectory())
|
File cache = new File(Optional.ofNullable(Settings.instance().getCommonDirectory())
|
||||||
.orElse(Settings.getDefaultCommonDirectory()),
|
.orElse(Settings.getDefaultCommonDirectory()),
|
||||||
"jars/" + gameVersion + ".jar");
|
"jars/" + gameVersion + ".jar");
|
||||||
if (cache.exists())
|
if (cache.exists())
|
||||||
|
|||||||
@@ -58,10 +58,10 @@ public class HMCLGameRepository extends DefaultGameRepository {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public File getAssetDirectory(String version, String assetId) {
|
public File getAssetDirectory(String version, String assetId) {
|
||||||
if (Settings.INSTANCE.isCommonDirectoryDisabled() || useSelf(assetId))
|
if (Settings.instance().isCommonDirectoryDisabled() || useSelf(assetId))
|
||||||
return super.getAssetDirectory(version, assetId);
|
return super.getAssetDirectory(version, assetId);
|
||||||
else
|
else
|
||||||
return new File(Settings.INSTANCE.getCommonDirectory(), "assets");
|
return new File(Settings.instance().getCommonDirectory(), "assets");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -83,10 +83,10 @@ public class HMCLGameRepository extends DefaultGameRepository {
|
|||||||
public File getLibraryFile(Version version, Library lib) {
|
public File getLibraryFile(Version version, Library lib) {
|
||||||
VersionSetting vs = profile.getVersionSetting(version.getId());
|
VersionSetting vs = profile.getVersionSetting(version.getId());
|
||||||
File self = super.getLibraryFile(version, lib);
|
File self = super.getLibraryFile(version, lib);
|
||||||
if (Settings.INSTANCE.isCommonDirectoryDisabled() || self.exists())
|
if (Settings.instance().isCommonDirectoryDisabled() || self.exists())
|
||||||
return self;
|
return self;
|
||||||
else
|
else
|
||||||
return new File(Settings.INSTANCE.getCommonDirectory(), "libraries/" + lib.getPath());
|
return new File(Settings.instance().getCommonDirectory(), "libraries/" + lib.getPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -378,7 +378,7 @@ public final class LauncherHelper {
|
|||||||
System.out.print(log);
|
System.out.print(log);
|
||||||
|
|
||||||
logs.add(pair(log, level));
|
logs.add(pair(log, level));
|
||||||
if (logs.size() > Settings.INSTANCE.getLogLines())
|
if (logs.size() > Settings.instance().getLogLines())
|
||||||
logs.removeFirst();
|
logs.removeFirst();
|
||||||
|
|
||||||
if (setting.isShowLogs()) {
|
if (setting.isShowLogs()) {
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public final class Accounts {
|
|||||||
public static final OfflineAccountFactory FACTORY_OFFLINE = OfflineAccountFactory.INSTANCE;
|
public static final OfflineAccountFactory FACTORY_OFFLINE = OfflineAccountFactory.INSTANCE;
|
||||||
public static final YggdrasilAccountFactory FACTORY_YGGDRASIL = new YggdrasilAccountFactory(MojangYggdrasilProvider.INSTANCE);
|
public static final YggdrasilAccountFactory FACTORY_YGGDRASIL = new YggdrasilAccountFactory(MojangYggdrasilProvider.INSTANCE);
|
||||||
public static final AuthlibInjectorAccountFactory FACTORY_AUTHLIB_INJECTOR = new AuthlibInjectorAccountFactory(
|
public static final AuthlibInjectorAccountFactory FACTORY_AUTHLIB_INJECTOR = new AuthlibInjectorAccountFactory(
|
||||||
new AuthlibInjectorDownloader(Launcher.HMCL_DIRECTORY.toPath(), () -> Settings.INSTANCE.getDownloadProvider())::getArtifactInfo,
|
new AuthlibInjectorDownloader(Launcher.HMCL_DIRECTORY.toPath(), () -> Settings.instance().getDownloadProvider())::getArtifactInfo,
|
||||||
Accounts::getOrCreateAuthlibInjectorServer);
|
Accounts::getOrCreateAuthlibInjectorServer);
|
||||||
|
|
||||||
private static final String TYPE_OFFLINE = "offline";
|
private static final String TYPE_OFFLINE = "offline";
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ public final class Profile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public HMCLDependencyManager getDependency() {
|
public HMCLDependencyManager getDependency() {
|
||||||
return new HMCLDependencyManager(this, Settings.INSTANCE.getDownloadProvider());
|
return new HMCLDependencyManager(this, Settings.instance().getDownloadProvider());
|
||||||
}
|
}
|
||||||
|
|
||||||
public VersionSetting getVersionSetting(String id) {
|
public VersionSetting getVersionSetting(String id) {
|
||||||
|
|||||||
@@ -34,7 +34,11 @@ import static org.jackhuang.hmcl.setting.ConfigHolder.config;
|
|||||||
|
|
||||||
public class Settings {
|
public class Settings {
|
||||||
|
|
||||||
public static final Settings INSTANCE = new Settings();
|
private static Settings instance = new Settings();
|
||||||
|
|
||||||
|
public static Settings instance() {
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
private final boolean firstLaunch;
|
private final boolean firstLaunch;
|
||||||
|
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public final class Controllers {
|
|||||||
decorator.showPage(null);
|
decorator.showPage(null);
|
||||||
leftPaneController = new LeftPaneController(decorator.getLeftPane());
|
leftPaneController = new LeftPaneController(decorator.getLeftPane());
|
||||||
|
|
||||||
Settings.INSTANCE.onProfileLoading();
|
Settings.instance().onProfileLoading();
|
||||||
Task.of(JavaVersion::initialize).start();
|
Task.of(JavaVersion::initialize).start();
|
||||||
|
|
||||||
decorator.setCustomMaximize(false);
|
decorator.setCustomMaximize(false);
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza
|
|||||||
);
|
);
|
||||||
nowAnimation.play();
|
nowAnimation.play();
|
||||||
});
|
});
|
||||||
if (!Settings.INSTANCE.isFirstLaunch() || Settings.INSTANCE.getLocale().getLocale() != Locale.CHINA)
|
if (!Settings.instance().isFirstLaunch() || Settings.instance().getLocale().getLocale() != Locale.CHINA)
|
||||||
drawerWrapper.getChildren().remove(welcomeView);
|
drawerWrapper.getChildren().remove(welcomeView);
|
||||||
|
|
||||||
if (!min) buttonsContainer.getChildren().remove(btnMin);
|
if (!min) buttonsContainer.getChildren().remove(btnMin);
|
||||||
|
|||||||
@@ -216,11 +216,11 @@ public final class LeftPaneController {
|
|||||||
|
|
||||||
private void onProfilesLoading() {
|
private void onProfilesLoading() {
|
||||||
LinkedList<RipplerContainer> list = new LinkedList<>();
|
LinkedList<RipplerContainer> list = new LinkedList<>();
|
||||||
for (Profile profile : Settings.INSTANCE.getProfiles()) {
|
for (Profile profile : Settings.instance().getProfiles()) {
|
||||||
VersionListItem item = new VersionListItem(Profiles.getProfileDisplayName(profile));
|
VersionListItem item = new VersionListItem(Profiles.getProfileDisplayName(profile));
|
||||||
RipplerContainer ripplerContainer = new RipplerContainer(item);
|
RipplerContainer ripplerContainer = new RipplerContainer(item);
|
||||||
item.setOnSettingsButtonClicked(e -> Controllers.getDecorator().showPage(new ProfilePage(profile)));
|
item.setOnSettingsButtonClicked(e -> Controllers.getDecorator().showPage(new ProfilePage(profile)));
|
||||||
ripplerContainer.setOnMouseClicked(e -> Settings.INSTANCE.setSelectedProfile(profile));
|
ripplerContainer.setOnMouseClicked(e -> Settings.instance().setSelectedProfile(profile));
|
||||||
ripplerContainer.getProperties().put("profile", profile.getName());
|
ripplerContainer.getProperties().put("profile", profile.getName());
|
||||||
ripplerContainer.maxWidthProperty().bind(leftPane.widthProperty());
|
ripplerContainer.maxWidthProperty().bind(leftPane.widthProperty());
|
||||||
list.add(ripplerContainer);
|
list.add(ripplerContainer);
|
||||||
|
|||||||
@@ -177,12 +177,12 @@ public final class LogWindow extends Stage {
|
|||||||
|
|
||||||
engine = webView.getEngine();
|
engine = webView.getEngine();
|
||||||
engine.loadContent(Lang.ignoringException(() -> IOUtils.readFullyAsString(getClass().getResourceAsStream("/assets/log-window-content.html")))
|
engine.loadContent(Lang.ignoringException(() -> IOUtils.readFullyAsString(getClass().getResourceAsStream("/assets/log-window-content.html")))
|
||||||
.replace("${FONT}", Settings.INSTANCE.getFont().getSize() + "px \"" + Settings.INSTANCE.getFont().getFamily() + "\""));
|
.replace("${FONT}", Settings.instance().getFont().getSize() + "px \"" + Settings.instance().getFont().getFamily() + "\""));
|
||||||
engine.getLoadWorker().stateProperty().addListener((a, b, newValue) -> {
|
engine.getLoadWorker().stateProperty().addListener((a, b, newValue) -> {
|
||||||
if (newValue == Worker.State.SUCCEEDED) {
|
if (newValue == Worker.State.SUCCEEDED) {
|
||||||
document = engine.getDocument();
|
document = engine.getDocument();
|
||||||
body = document.getElementsByTagName("body").item(0);
|
body = document.getElementsByTagName("body").item(0);
|
||||||
engine.executeScript("limitedLogs=" + Settings.INSTANCE.getLogLines());
|
engine.executeScript("limitedLogs=" + Settings.instance().getLogLines());
|
||||||
latch.countDown();
|
latch.countDown();
|
||||||
onDone.fireEvent(new Event(LogWindow.this));
|
onDone.fireEvent(new Event(LogWindow.this));
|
||||||
}
|
}
|
||||||
@@ -190,14 +190,14 @@ public final class LogWindow extends Stage {
|
|||||||
|
|
||||||
boolean flag = false;
|
boolean flag = false;
|
||||||
for (String i : cboLines.getItems())
|
for (String i : cboLines.getItems())
|
||||||
if (Integer.toString(Settings.INSTANCE.getLogLines()).equals(i)) {
|
if (Integer.toString(Settings.instance().getLogLines()).equals(i)) {
|
||||||
cboLines.getSelectionModel().select(i);
|
cboLines.getSelectionModel().select(i);
|
||||||
flag = true;
|
flag = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
cboLines.getSelectionModel().selectedItemProperty().addListener((a, b, newValue) -> {
|
cboLines.getSelectionModel().selectedItemProperty().addListener((a, b, newValue) -> {
|
||||||
Settings.INSTANCE.setLogLines(newValue == null ? 100 : Integer.parseInt(newValue));
|
Settings.instance().setLogLines(newValue == null ? 100 : Integer.parseInt(newValue));
|
||||||
engine.executeScript("limitedLogs=" + Settings.INSTANCE.getLogLines());
|
engine.executeScript("limitedLogs=" + Settings.instance().getLogLines());
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!flag)
|
if (!flag)
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ public final class MainPage extends StackPane implements DecoratorPage {
|
|||||||
|
|
||||||
btnAdd.setOnMouseClicked(e -> Controllers.getDecorator().startWizard(new DownloadWizardProvider(), i18n("install")));
|
btnAdd.setOnMouseClicked(e -> Controllers.getDecorator().startWizard(new DownloadWizardProvider(), i18n("install")));
|
||||||
FXUtils.installTooltip(btnAdd, i18n("install"));
|
FXUtils.installTooltip(btnAdd, i18n("install"));
|
||||||
btnRefresh.setOnMouseClicked(e -> Settings.INSTANCE.getSelectedProfile().getRepository().refreshVersionsAsync().start());
|
btnRefresh.setOnMouseClicked(e -> Settings.instance().getSelectedProfile().getRepository().refreshVersionsAsync().start());
|
||||||
FXUtils.installTooltip(btnRefresh, i18n("button.refresh"));
|
FXUtils.installTooltip(btnRefresh, i18n("button.refresh"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public final class ProfilePage extends StackPane implements DecoratorPage {
|
|||||||
@FXML
|
@FXML
|
||||||
private void onDelete() {
|
private void onDelete() {
|
||||||
if (profile != null) {
|
if (profile != null) {
|
||||||
Settings.INSTANCE.deleteProfile(profile);
|
Settings.instance().deleteProfile(profile);
|
||||||
Controllers.navigate(null);
|
Controllers.navigate(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,10 +99,10 @@ public final class ProfilePage extends StackPane implements DecoratorPage {
|
|||||||
}
|
}
|
||||||
Profile newProfile = new Profile(txtProfileName.getText(), new File(getLocation()));
|
Profile newProfile = new Profile(txtProfileName.getText(), new File(getLocation()));
|
||||||
newProfile.setUseRelativePath(toggleUseRelativePath.isSelected());
|
newProfile.setUseRelativePath(toggleUseRelativePath.isSelected());
|
||||||
Settings.INSTANCE.putProfile(newProfile);
|
Settings.instance().putProfile(newProfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings.INSTANCE.onProfileLoading();
|
Settings.instance().onProfileLoading();
|
||||||
Controllers.navigate(null);
|
Controllers.navigate(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -111,35 +111,35 @@ public final class SettingsPage extends StackPane implements DecoratorPage {
|
|||||||
|
|
||||||
FXUtils.smoothScrolling(scroll);
|
FXUtils.smoothScrolling(scroll);
|
||||||
|
|
||||||
cboDownloadSource.getSelectionModel().select(DownloadProviders.DOWNLOAD_PROVIDERS.indexOf(Settings.INSTANCE.getDownloadProvider()));
|
cboDownloadSource.getSelectionModel().select(DownloadProviders.DOWNLOAD_PROVIDERS.indexOf(Settings.instance().getDownloadProvider()));
|
||||||
cboDownloadSource.getSelectionModel().selectedIndexProperty().addListener((a, b, newValue) -> Settings.INSTANCE.setDownloadProvider(DownloadProviders.getDownloadProvider(newValue.intValue())));
|
cboDownloadSource.getSelectionModel().selectedIndexProperty().addListener((a, b, newValue) -> Settings.instance().setDownloadProvider(DownloadProviders.getDownloadProvider(newValue.intValue())));
|
||||||
|
|
||||||
cboFont.getSelectionModel().select(Settings.INSTANCE.getFont().getFamily());
|
cboFont.getSelectionModel().select(Settings.instance().getFont().getFamily());
|
||||||
cboFont.valueProperty().addListener((a, b, newValue) -> {
|
cboFont.valueProperty().addListener((a, b, newValue) -> {
|
||||||
Font font = Font.font(newValue, Settings.INSTANCE.getFont().getSize());
|
Font font = Font.font(newValue, Settings.instance().getFont().getSize());
|
||||||
Settings.INSTANCE.setFont(font);
|
Settings.instance().setFont(font);
|
||||||
lblDisplay.setStyle("-fx-font: " + font.getSize() + " \"" + font.getFamily() + "\";");
|
lblDisplay.setStyle("-fx-font: " + font.getSize() + " \"" + font.getFamily() + "\";");
|
||||||
});
|
});
|
||||||
|
|
||||||
txtFontSize.setText(Double.toString(Settings.INSTANCE.getFont().getSize()));
|
txtFontSize.setText(Double.toString(Settings.instance().getFont().getSize()));
|
||||||
txtFontSize.getValidators().add(new Validator(it -> Lang.toDoubleOrNull(it) != null));
|
txtFontSize.getValidators().add(new Validator(it -> Lang.toDoubleOrNull(it) != null));
|
||||||
txtFontSize.textProperty().addListener((a, b, newValue) -> {
|
txtFontSize.textProperty().addListener((a, b, newValue) -> {
|
||||||
if (txtFontSize.validate()) {
|
if (txtFontSize.validate()) {
|
||||||
Font font = Font.font(Settings.INSTANCE.getFont().getFamily(), Double.parseDouble(newValue));
|
Font font = Font.font(Settings.instance().getFont().getFamily(), Double.parseDouble(newValue));
|
||||||
Settings.INSTANCE.setFont(font);
|
Settings.instance().setFont(font);
|
||||||
lblDisplay.setStyle("-fx-font: " + font.getSize() + " \"" + font.getFamily() + "\";");
|
lblDisplay.setStyle("-fx-font: " + font.getSize() + " \"" + font.getFamily() + "\";");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
lblDisplay.setStyle("-fx-font: " + Settings.INSTANCE.getFont().getSize() + " \"" + Settings.INSTANCE.getFont().getFamily() + "\";");
|
lblDisplay.setStyle("-fx-font: " + Settings.instance().getFont().getSize() + " \"" + Settings.instance().getFont().getFamily() + "\";");
|
||||||
|
|
||||||
ObservableList<Label> list = FXCollections.observableArrayList();
|
ObservableList<Label> list = FXCollections.observableArrayList();
|
||||||
for (Locales.SupportedLocale locale : Locales.LOCALES)
|
for (Locales.SupportedLocale locale : Locales.LOCALES)
|
||||||
list.add(new Label(locale.getName(Settings.INSTANCE.getLocale().getResourceBundle())));
|
list.add(new Label(locale.getName(Settings.instance().getLocale().getResourceBundle())));
|
||||||
|
|
||||||
cboLanguage.setItems(list);
|
cboLanguage.setItems(list);
|
||||||
cboLanguage.getSelectionModel().select(Locales.LOCALES.indexOf(Settings.INSTANCE.getLocale()));
|
cboLanguage.getSelectionModel().select(Locales.LOCALES.indexOf(Settings.instance().getLocale()));
|
||||||
cboLanguage.getSelectionModel().selectedIndexProperty().addListener((a, b, newValue) -> Settings.INSTANCE.setLocale(Locales.getLocale(newValue.intValue())));
|
cboLanguage.getSelectionModel().selectedIndexProperty().addListener((a, b, newValue) -> Settings.instance().setLocale(Locales.getLocale(newValue.intValue())));
|
||||||
|
|
||||||
// ==== Proxy ====
|
// ==== Proxy ====
|
||||||
txtProxyHost.textProperty().bindBidirectional(config().proxyHostProperty());
|
txtProxyHost.textProperty().bindBidirectional(config().proxyHostProperty());
|
||||||
@@ -191,7 +191,7 @@ public final class SettingsPage extends StackPane implements DecoratorPage {
|
|||||||
fileCommonLocation.selectedDataProperty().bindBidirectional(config().commonDirTypeProperty());
|
fileCommonLocation.selectedDataProperty().bindBidirectional(config().commonDirTypeProperty());
|
||||||
fileCommonLocation.customTextProperty().bindBidirectional(config().commonDirectoryProperty());
|
fileCommonLocation.customTextProperty().bindBidirectional(config().commonDirectoryProperty());
|
||||||
fileCommonLocation.subtitleProperty().bind(
|
fileCommonLocation.subtitleProperty().bind(
|
||||||
Bindings.createObjectBinding(() -> Optional.ofNullable(Settings.INSTANCE.getCommonDirectory())
|
Bindings.createObjectBinding(() -> Optional.ofNullable(Settings.instance().getCommonDirectory())
|
||||||
.orElse(i18n("launcher.common_directory.disabled")),
|
.orElse(i18n("launcher.common_directory.disabled")),
|
||||||
config().commonDirectoryProperty(), config().commonDirTypeProperty()));
|
config().commonDirectoryProperty(), config().commonDirTypeProperty()));
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public final class DownloadWizardProvider implements WizardProvider {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start(Map<String, Object> settings) {
|
public void start(Map<String, Object> settings) {
|
||||||
profile = Settings.INSTANCE.getSelectedProfile();
|
profile = Settings.instance().getSelectedProfile();
|
||||||
settings.put(PROFILE, profile);
|
settings.put(PROFILE, profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public final class I18n {
|
|||||||
|
|
||||||
static {
|
static {
|
||||||
try {
|
try {
|
||||||
RESOURCE_BUNDLE = Settings.INSTANCE.getLocale().getResourceBundle();
|
RESOURCE_BUNDLE = Settings.instance().getLocale().getResourceBundle();
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
LOG.log(Level.SEVERE, "Settings cannot be initialized", e);
|
LOG.log(Level.SEVERE, "Settings cannot be initialized", e);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user