From cec8249b24ba13d4a1875d3483895841db094c96 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Thu, 1 Feb 2018 15:57:55 +0800 Subject: [PATCH] Removed -XstartOnFirstThread to fix freezed launched game. GH-257 --- .../org/jackhuang/hmcl/ui/AccountsPage.java | 9 ++++--- .../java/org/jackhuang/hmcl/ui/Decorator.java | 27 ++++++++++++------- .../hmcl/ui/InstallerController.java | 6 +++-- .../org/jackhuang/hmcl/ui/InstallerItem.java | 3 ++- .../java/org/jackhuang/hmcl/ui/LogWindow.java | 8 +++--- .../java/org/jackhuang/hmcl/ui/MainPage.java | 3 ++- .../org/jackhuang/hmcl/ui/ModController.java | 6 +++-- .../org/jackhuang/hmcl/ui/ProfilePage.java | 6 +++-- .../jackhuang/hmcl/ui/VersionListItem.java | 3 ++- .../org/jackhuang/hmcl/ui/VersionPage.java | 18 ++++++++----- .../hmcl/ui/VersionSettingsController.java | 9 ++++--- .../hmcl/ui/YggdrasilAccountLoginPane.java | 6 +++-- .../hmcl/ui/download/InstallersPage.java | 3 ++- .../hmcl/ui/download/ModpackPage.java | 6 +++-- .../ui/export/ModpackFileSelectionPage.java | 3 ++- .../hmcl/ui/export/ModpackInfoPage.java | 3 ++- .../ui/wizard/DefaultWizardDisplayer.java | 12 ++++++--- .../org/jackhuang/hmcl/game/Arguments.java | 1 - 18 files changed, 87 insertions(+), 45 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountsPage.java index 91bebcee9..2c0b7004c 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountsPage.java @@ -117,13 +117,15 @@ public final class AccountsPage extends StackPane implements DecoratorPage { return item; } - public void addNewAccount() { + @FXML + private void addNewAccount() { txtUsername.setText(""); txtPassword.setText(""); dialog.show(); } - public void onCreationAccept() { + @FXML + private void onCreationAccept() { int type = cboType.getSelectionModel().getSelectedIndex(); String username = txtUsername.getText(); String password = txtPassword.getText(); @@ -158,7 +160,8 @@ public final class AccountsPage extends StackPane implements DecoratorPage { }); } - public void onCreationCancel() { + @FXML + private void onCreationCancel() { dialog.close(); } 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 bb38f350e..2e6259660 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Decorator.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Decorator.java @@ -169,7 +169,8 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza FXUtils.setOverflowHidden(drawerWrapper); } - public void onMouseMoved(MouseEvent mouseEvent) { + @FXML + private void onMouseMoved(MouseEvent mouseEvent) { if (!primaryStage.isMaximized() && !primaryStage.isFullScreen() && !maximized) { if (!primaryStage.isResizable()) updateInitMouseValues(mouseEvent); @@ -210,11 +211,13 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza } } - public void onMouseReleased() { + @FXML + private void onMouseReleased() { isDragging = false; } - public void onMouseDragged(MouseEvent mouseEvent) { + @FXML + private void onMouseDragged(MouseEvent mouseEvent) { this.isDragging = true; if (mouseEvent.isPrimaryButtonDown() && (this.xOffset != -1.0 || this.yOffset != -1.0)) { if (!this.primaryStage.isFullScreen() && !mouseEvent.isStillSincePress() && !this.primaryStage.isMaximized() && !this.maximized) { @@ -278,11 +281,13 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza } } - public void onMin() { + @FXML + private void onMin() { primaryStage.setIconified(true); } - public void onMax() { + @FXML + private void onMax() { if (!max) return; if (!this.isCustomMaximize()) { this.primaryStage.setMaximized(!this.primaryStage.isMaximized()); @@ -320,7 +325,8 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza } } - public void onClose() { + @FXML + private void onClose() { onCloseButtonAction.get().run(); } @@ -473,16 +479,19 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza setContent(page, nav.getAnimation().getAnimationProducer()); } - public void onRefresh() { + @FXML + private void onRefresh() { ((Refreshable) contentPlaceHolder.getChildren().get(0)).refresh(); } - public void onCloseNav() { + @FXML + private void onCloseNav() { wizardController.onCancel(); showPage(null); } - public void onBack() { + @FXML + private void onBack() { wizardController.onPrev(true); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerController.java index 8a303cc9d..b6104f2f1 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerController.java @@ -43,7 +43,8 @@ public class InstallerController { private String liteLoader; private String optiFine; - public void initialize() { + @FXML + private void initialize() { FXUtils.smoothScrolling(scrollPane); } @@ -80,7 +81,8 @@ public class InstallerController { } } - public void onAdd() { + @FXML + private void onAdd() { String gameVersion = GameVersion.minecraftVersion(profile.getRepository().getVersionJar(version)); if (gameVersion == null) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java index a08ba9d7e..98da25790 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java @@ -47,7 +47,8 @@ public class InstallerItem extends BorderPane { lblInstallerVersion.setText(Main.i18n("archive.version") + ": " + version); } - public void onDelete() { + @FXML + private void onDelete() { deleteCallback.accept(this); } } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java index 8c8dc9234..f40794ee7 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java @@ -143,7 +143,7 @@ public final class LogWindow extends Stage { } } - private class LogWindowImpl extends StackPane { + public class LogWindowImpl extends StackPane { @FXML private WebView webView; @@ -225,11 +225,13 @@ public final class LogWindow extends Stage { engine.executeScript("specific([" + res + "])"); } - public void onTerminateGame() { + @FXML + private void onTerminateGame() { LauncherHelper.stopManagedProcesses(); } - public void onClear() { + @FXML + private void onClear() { engine.executeScript("clear()"); } } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java index 32e4c39f8..89af75449 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java @@ -189,7 +189,8 @@ public final class MainPage extends StackPane implements DecoratorPage { FXUtils.resetChildren(masonryPane, children); } - public void onVersionManagement() { + @FXML + private void onVersionManagement() { versionPopup.hide(); switch (versionList.getSelectionModel().getSelectedIndex()) { case 0: diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/ModController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/ModController.java index 5bcc8b3a7..ad3e3babf 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/ModController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/ModController.java @@ -57,7 +57,8 @@ public final class ModController { private ModManager modManager; private String versionId; - public void initialize() { + @FXML + private void initialize() { FXUtils.smoothScrolling(scrollPane); rootPane.setOnDragOver(event -> { @@ -135,7 +136,8 @@ public final class ModController { } - public void onAdd() { + @FXML + private void onAdd() { FileChooser chooser = new FileChooser(); chooser.setTitle(Main.i18n("mods.choose_mod")); chooser.getExtensionFilters().setAll(new FileChooser.ExtensionFilter(Main.i18n("extension.mod"), "*.jar", "*.zip", "*.litemod")); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/ProfilePage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/ProfilePage.java index 32bd56bdb..5465c780b 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/ProfilePage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/ProfilePage.java @@ -71,14 +71,16 @@ public final class ProfilePage extends StackPane implements DecoratorPage { btnDelete.setVisible(false); } - public void onDelete() { + @FXML + private void onDelete() { if (profile != null) { Settings.INSTANCE.deleteProfile(profile); Controllers.navigate(null); } } - public void onSave() { + @FXML + private void onSave() { if (profile != null) { profile.setName(txtProfileName.getText()); if (StringUtils.isNotBlank(getLocation())) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionListItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionListItem.java index d15afd7bc..4085d531e 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionListItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionListItem.java @@ -50,7 +50,8 @@ public final class VersionListItem extends StackPane { FXUtils.limitHeight(imageViewContainer, 32); } - public void onSettings() { + @FXML + private void onSettings() { handler.run(); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionPage.java index b6cf1cb04..e0661a183 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionPage.java @@ -99,25 +99,30 @@ public final class VersionPage extends StackPane implements DecoratorPage { installerController.loadVersion(profile, id); } - public void onBrowseMenu() { + @FXML + private void onBrowseMenu() { browseList.getSelectionModel().select(-1); browsePopup.show(btnBrowseMenu, JFXPopup.PopupVPosition.TOP, JFXPopup.PopupHPosition.RIGHT, -12, 15); } - public void onManagementMenu() { + @FXML + private void onManagementMenu() { managementList.getSelectionModel().select(-1); managementPopup.show(btnManagementMenu, JFXPopup.PopupVPosition.TOP, JFXPopup.PopupHPosition.RIGHT, -12, 15); } - public void onDelete() { + @FXML + private void onDelete() { deleteVersion(profile, version); } - public void onExport() { + @FXML + private void onExport() { exportVersion(profile, version); } - public void onBrowse() { + @FXML + private void onBrowse() { String sub; switch (browseList.getSelectionModel().getSelectedIndex()) { case 0: @@ -147,7 +152,8 @@ public final class VersionPage extends StackPane implements DecoratorPage { FXUtils.openFolder(new File(profile.getRepository().getRunDirectory(version), sub)); } - public void onManagement() { + @FXML + private void onManagement() { switch (managementList.getSelectionModel().getSelectedIndex()) { case 0: // rename a version renameVersion(profile, version); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionSettingsController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionSettingsController.java index e9668dda5..68ce718a4 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionSettingsController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionSettingsController.java @@ -77,7 +77,8 @@ public final class VersionSettingsController { @FXML private JFXButton btnIconSelection; @FXML private ImageView iconView; - public void initialize() { + @FXML + private void initialize() { lblPhysicalMemory.setText(Main.i18n("settings.physical_memory") + ": " + OperatingSystem.TOTAL_MEMORY + "MB"); FXUtils.smoothScrolling(scroll); @@ -245,14 +246,16 @@ public final class VersionSettingsController { gameDirItem.setSubtitle(profile.getRepository().getRunDirectory(versionId).getAbsolutePath()); } - public void onShowAdvanced() { + @FXML + private void onShowAdvanced() { if (!rootPane.getChildren().contains(advancedSettingsPane)) rootPane.getChildren().add(advancedSettingsPane); else rootPane.getChildren().remove(advancedSettingsPane); } - public void onExploreIcon() { + @FXML + private void onExploreIcon() { FileChooser chooser = new FileChooser(); chooser.getExtensionFilters().add(new FileChooser.ExtensionFilter(Main.i18n("extension.png"), "*.png")); File selectedFile = chooser.showOpenDialog(Controllers.getStage()); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/YggdrasilAccountLoginPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/YggdrasilAccountLoginPane.java index 2411907f9..c0f2672e2 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/YggdrasilAccountLoginPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/YggdrasilAccountLoginPane.java @@ -59,7 +59,8 @@ public class YggdrasilAccountLoginPane extends StackPane { txtPassword.setOnAction(e -> onAccept()); } - public void onAccept() { + @FXML + private void onAccept() { String username = oldAccount.getUsername(); String password = txtPassword.getText(); progressBar.setVisible(true); @@ -86,7 +87,8 @@ public class YggdrasilAccountLoginPane extends StackPane { }); } - public void onCancel() { + @FXML + private void onCancel() { failed.run(); dialog.close(); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java index 7eceb9950..8b69ad1db 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java @@ -128,7 +128,8 @@ public class InstallersPage extends StackPane implements WizardPage { settings.remove(INSTALLER_TYPE); } - public void onInstall() { + @FXML + private void onInstall() { controller.getSettings().put("name", txtName.getText()); controller.onFinish(); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackPage.java index b3f5eeda7..2d3de31fb 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackPage.java @@ -109,13 +109,15 @@ public final class ModpackPage extends StackPane implements WizardPage { settings.remove(MODPACK_FILE); } - public void onInstall() { + @FXML + private void onInstall() { if (!txtModpackName.validate()) return; controller.getSettings().put(MODPACK_NAME, txtModpackName.getText()); controller.onFinish(); } - public void onDescribe() { + @FXML + private void onDescribe() { if (manifest != null) { WebStage stage = new WebStage(); stage.getWebView().getEngine().loadContent(manifest.getDescription()); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java index 99f13eb16..ee0dbfcad 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java @@ -137,7 +137,8 @@ public final class ModpackFileSelectionPage extends StackPane implements WizardP controller.getSettings().remove(MODPACK_FILE_SELECTION); } - public void onNext() { + @FXML + private void onNext() { LinkedList list = new LinkedList<>(); getFilesNeeded(rootNode, "minecraft", list); controller.getSettings().put(MODPACK_FILE_SELECTION, list); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackInfoPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackInfoPage.java index 7e967fc2a..f235cbca6 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackInfoPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackInfoPage.java @@ -69,7 +69,8 @@ public final class ModpackInfoPage extends StackPane implements WizardPage { btnNext.setDisable(!txtModpackName.validate() || !txtModpackVersion.validate() || !txtModpackAuthor.validate()); } - public void onNext() { + @FXML + private void onNext() { FileChooser fileChooser = new FileChooser(); fileChooser.setTitle(Main.i18n("modpack.wizard.step.initialization.save")); fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter(Main.i18n("modpack"), "*.zip")); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/wizard/DefaultWizardDisplayer.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/wizard/DefaultWizardDisplayer.java index 993ebbf79..22f52ba36 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/wizard/DefaultWizardDisplayer.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/wizard/DefaultWizardDisplayer.java @@ -96,21 +96,25 @@ public class DefaultWizardDisplayer extends StackPane implements AbstractWizardD nowPage = page; } - public void initialize() { + @FXML + private void initialize() { transitionHandler = new TransitionHandler(root); wizardController.onStart(); } - public void back() { + @FXML + private void back() { wizardController.onPrev(true); } - public void close() { + @FXML + private void close() { wizardController.onCancel(); Controllers.navigate(null); } - public void refresh() { + @FXML + private void refresh() { ((Refreshable) nowPage).refresh(); } } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java index dd28189c1..305a4ab8d 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java @@ -92,7 +92,6 @@ public final class Arguments { static { List jvm = new LinkedList<>(); - jvm.add(new RuledArgument(Collections.singletonList(new CompatibilityRule(CompatibilityRule.Action.ALLOW, new OSRestriction(OperatingSystem.OSX))), Collections.singletonList("-XstartOnFirstThread"))); jvm.add(new RuledArgument(Collections.singletonList(new CompatibilityRule(CompatibilityRule.Action.ALLOW, new OSRestriction(OperatingSystem.WINDOWS))), Collections.singletonList("-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump"))); jvm.add(new RuledArgument(Collections.singletonList(new CompatibilityRule(CompatibilityRule.Action.ALLOW, new OSRestriction(OperatingSystem.WINDOWS, "^10\\."))), Arrays.asList("-Dos.name=Windows 10", "-Dos.version=10.0"))); jvm.add(new StringArgument("-Djava.library.path=${natives_directory}"));