diff --git a/HMCL/build.gradle b/HMCL/build.gradle index fced2d90c..ef6b7a05d 100644 --- a/HMCL/build.gradle +++ b/HMCL/build.gradle @@ -25,7 +25,7 @@ if (!hasProperty('mainClass')) { ext.mainClass = 'org.jackhuang.hellominecraft.launcher.Main' } -def buildnumber = System.getenv("BUILD_NUMBER") == null ? ".1" : "."+System.getenv("BUILD_NUMBER") +def buildnumber = System.getenv("BUILD_NUMBER") == null ? ".2" : "."+System.getenv("BUILD_NUMBER") String mavenGroupId = 'HMCL' String mavenVersion = '2.3.5' + buildnumber diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/Main.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/Main.java index bf05901b4..e792b7bf8 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/Main.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/Main.java @@ -100,7 +100,7 @@ public final class Main implements Runnable { } public static String launcherName = "Hello Minecraft! Launcher"; - public static byte firstVer = 2, secondVer = 3, thirdVer = 5, forthVer = 1; + public static byte firstVer = 2, secondVer = 3, thirdVer = 5, forthVer = 2; public static int minimumLauncherVersion = 16; /** diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/CrashReporter.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/CrashReporter.java index d2d576b93..57ae50505 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/CrashReporter.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/utils/CrashReporter.java @@ -89,7 +89,7 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler { if (enableLogger) HMCLog.err(text); else System.out.println(text); - if (!checkThrowable(e)) { + if (checkThrowable(e)) { SwingUtilities.invokeLater(() -> LogWindow.instance.showAsCrashWindow(UpdateChecker.OUT_DATED)); if (!UpdateChecker.OUT_DATED) reportToServer(text, s); diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/GameSettingsPanel.form b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/GameSettingsPanel.form index 7b4cdba42..84d0966db 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/GameSettingsPanel.form +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/GameSettingsPanel.form @@ -22,12 +22,22 @@ - + + + + + + + + + + + + + + - - - @@ -37,7 +47,12 @@ - + + + + + + @@ -91,7 +106,7 @@ - + @@ -535,7 +550,7 @@ - + @@ -672,7 +687,7 @@ - + @@ -752,7 +767,7 @@ - + @@ -832,7 +847,7 @@ - + @@ -918,7 +933,7 @@ - + @@ -1211,5 +1226,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/GameSettingsPanel.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/GameSettingsPanel.java index b737122b7..43075d8c3 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/GameSettingsPanel.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/GameSettingsPanel.java @@ -80,6 +80,7 @@ import org.jackhuang.hellominecraft.utils.system.FileUtils; import org.jackhuang.hellominecraft.utils.system.Java; import org.jackhuang.hellominecraft.version.MinecraftRemoteVersion; import org.jackhuang.hellominecraft.version.MinecraftRemoteVersions; +import org.jackhuang.hellominecraft.views.LogWindow; import org.jackhuang.hellominecraft.views.Selector; /** @@ -338,6 +339,9 @@ public class GameSettingsPanel extends javax.swing.JPanel implements DropTargetL btnRemoveProfile = new javax.swing.JButton(); btnExplore = new javax.swing.JButton(); btnIncludeMinecraft = new javax.swing.JButton(); + btnMakeLaunchScript = new javax.swing.JButton(); + btnShowLog = new javax.swing.JButton(); + btnCleanGame = new javax.swing.JButton(); setBackground(new java.awt.Color(255, 255, 255)); @@ -468,7 +472,7 @@ public class GameSettingsPanel extends javax.swing.JPanel implements DropTargetL .addComponent(jLabel9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtHeight, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 320, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 306, Short.MAX_VALUE) .addComponent(chkFullscreen)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel22Layout.createSequentialGroup() .addComponent(txtMaxMemory) @@ -692,7 +696,7 @@ public class GameSettingsPanel extends javax.swing.JPanel implements DropTargetL jPanel7Layout.setHorizontalGroup( jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup() - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 606, Short.MAX_VALUE) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 592, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(btnRemoveMod) @@ -756,7 +760,7 @@ public class GameSettingsPanel extends javax.swing.JPanel implements DropTargetL jPanel16Layout.setHorizontalGroup( jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel16Layout.createSequentialGroup() - .addComponent(jScrollPane11, javax.swing.GroupLayout.DEFAULT_SIZE, 601, Short.MAX_VALUE) + .addComponent(jScrollPane11, javax.swing.GroupLayout.DEFAULT_SIZE, 587, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(btnDownloadForge, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -799,7 +803,7 @@ btnRefreshOptifine.addActionListener(new java.awt.event.ActionListener() { pnlOptifineLayout.setHorizontalGroup( pnlOptifineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlOptifineLayout.createSequentialGroup() - .addComponent(jScrollPane13, javax.swing.GroupLayout.DEFAULT_SIZE, 601, Short.MAX_VALUE) + .addComponent(jScrollPane13, javax.swing.GroupLayout.DEFAULT_SIZE, 587, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlOptifineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(btnDownloadOptifine, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -842,7 +846,7 @@ btnRefreshLiteLoader.addActionListener(new java.awt.event.ActionListener() { jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() - .addComponent(jScrollPane12, javax.swing.GroupLayout.DEFAULT_SIZE, 601, Short.MAX_VALUE) + .addComponent(jScrollPane12, javax.swing.GroupLayout.DEFAULT_SIZE, 587, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(btnInstallLiteLoader, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -898,7 +902,7 @@ btnRefreshLiteLoader.addActionListener(new java.awt.event.ActionListener() { pnlGameDownloadsLayout.setHorizontalGroup( pnlGameDownloadsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlGameDownloadsLayout.createSequentialGroup() - .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 606, Short.MAX_VALUE) + .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 592, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlGameDownloadsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(btnRefreshGameDownloads, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -1062,16 +1066,45 @@ btnRefreshLiteLoader.addActionListener(new java.awt.event.ActionListener() { } }); + btnMakeLaunchScript.setText(bundle.getString("mainwindow.make_launch_script")); // NOI18N + btnMakeLaunchScript.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnMakeLaunchScriptActionPerformed(evt); + } + }); + + btnShowLog.setText(bundle.getString("mainwindow.show_log")); // NOI18N + btnShowLog.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnShowLogActionPerformed(evt); + } + }); + + btnCleanGame.setText("清理游戏文件"); + btnCleanGame.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnCleanGameActionPerformed(evt); + } + }); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(btnIncludeMinecraft) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(tabVersionEdit) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(btnIncludeMinecraft) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnCleanGame) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnShowLog) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnMakeLaunchScript)) + .addComponent(tabVersionEdit)) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1080,7 +1113,11 @@ btnRefreshLiteLoader.addActionListener(new java.awt.event.ActionListener() { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(tabVersionEdit) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnIncludeMinecraft) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btnIncludeMinecraft) + .addComponent(btnMakeLaunchScript) + .addComponent(btnShowLog) + .addComponent(btnCleanGame)) .addContainerGap()) ); }// //GEN-END:initComponents @@ -1163,14 +1200,15 @@ btnRefreshLiteLoader.addActionListener(new java.awt.event.ActionListener() { } InstallerVersion v = optifine.getVersion(idx); File filepath = IOUtils.tryGetCanonicalFile(IOUtils.currentDirWithSeparator() + "optifine-installer.jar"); - if (v.installer != null) { - OptiFineDownloadFormatter task = new OptiFineDownloadFormatter(v.installer); - TaskWindow.getInstance().addTask(task) - .addTask(new FileDownloadTask(filepath).registerPreviousResult(task).setTag("optifine")) - .addTask(new OptiFineInstaller(profile, v.selfVersion, filepath)) - .start(); - refreshVersions(); - } + if (v.installer != null) + SwingUtilities.invokeLater(() -> { + OptiFineDownloadFormatter task = new OptiFineDownloadFormatter(v.installer); + TaskWindow.getInstance().addTask(task) + .addTask(new FileDownloadTask(filepath).registerPreviousResult(task).setTag("optifine")) + .addTask(new OptiFineInstaller(profile, v.selfVersion, filepath)) + .start(); + refreshVersions(); + }); }//GEN-LAST:event_btnDownloadOptifineActionPerformed private void btnInstallLiteLoaderActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnInstallLiteLoaderActionPerformed @@ -1431,6 +1469,24 @@ btnRefreshLiteLoader.addActionListener(new java.awt.event.ActionListener() { } }//GEN-LAST:event_btnChoosingGameDirActionPerformed + private void btnMakeLaunchScriptActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMakeLaunchScriptActionPerformed + MainFrame.instance.mainPanel.btnMakeLaunchCodeActionPerformed(); + }//GEN-LAST:event_btnMakeLaunchScriptActionPerformed + + private void btnShowLogActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnShowLogActionPerformed + LogWindow.instance.setVisible(true); + }//GEN-LAST:event_btnShowLogActionPerformed + + private void btnCleanGameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCleanGameActionPerformed + File f = getProfile().getMinecraftProvider().getRunDirectory(mcVersion); + String[] dir = { "logs", "asm", "NVIDIA", "crash-reports", "server-resource-packs", "natives", "native" }; + for (String s : dir) FileUtils.deleteDirectoryQuietly(new File(f, s)); + String[] files = {"output-client.log", "usercache.json", "usernamecache.json", "hmclmc.log"}; + for (String s : files) new File(f, s).delete(); + for (MinecraftVersion s : getProfile().getMinecraftProvider().getVersions()) + FileUtils.deleteDirectoryQuietly(new File(getProfile().getGameDirFile(), "versions" + File.separator + s.id + File.separator + s.id + "-natives")); + }//GEN-LAST:event_btnCleanGameActionPerformed + // // private void loadProfiles() { @@ -1751,6 +1807,7 @@ btnRefreshLiteLoader.addActionListener(new java.awt.event.ActionListener() { private javax.swing.JButton btnAddMod; private javax.swing.JButton btnChoosingGameDir; private javax.swing.JButton btnChoosingJavaDir; + private javax.swing.JButton btnCleanGame; private javax.swing.JButton btnDownload; private javax.swing.JButton btnDownloadAllAssets; private javax.swing.JButton btnDownloadForge; @@ -1758,6 +1815,7 @@ btnRefreshLiteLoader.addActionListener(new java.awt.event.ActionListener() { private javax.swing.JButton btnExplore; private javax.swing.JButton btnIncludeMinecraft; private javax.swing.JButton btnInstallLiteLoader; + private javax.swing.JButton btnMakeLaunchScript; private javax.swing.JButton btnModify; private javax.swing.JButton btnNewProfile; private javax.swing.JButton btnRefreshForge; @@ -1767,6 +1825,7 @@ btnRefreshLiteLoader.addActionListener(new java.awt.event.ActionListener() { private javax.swing.JButton btnRefreshVersions; private javax.swing.JButton btnRemoveMod; private javax.swing.JButton btnRemoveProfile; + private javax.swing.JButton btnShowLog; private javax.swing.JComboBox cboGameDirType; private javax.swing.JComboBox cboJava; private javax.swing.JComboBox cboLauncherVisibility; diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainPagePanel.form b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainPagePanel.form index cdb1053bf..bd0cc1262 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainPagePanel.form +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainPagePanel.form @@ -49,8 +49,6 @@ - - @@ -92,11 +90,7 @@ - - - - - + @@ -254,26 +248,6 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainPagePanel.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainPagePanel.java index a4989432c..1e9992644 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainPagePanel.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainPagePanel.java @@ -39,7 +39,6 @@ import org.jackhuang.hellominecraft.launcher.launch.LaunchScriptFinisher; import org.jackhuang.hellominecraft.launcher.settings.Settings; import org.jackhuang.hellominecraft.lookandfeel.GraphicsUtils; import org.jackhuang.hellominecraft.utils.Event; -import org.jackhuang.hellominecraft.views.LogWindow; import org.jackhuang.hellominecraft.lookandfeel.components.ConstomButton; import org.jackhuang.hellominecraft.utils.functions.Consumer; @@ -58,8 +57,9 @@ public class MainPagePanel extends javax.swing.JPanel { pnlButtons = new javax.swing.JPanel(); pnlButtons.setLayout(null); + int w = 150, h = 50; btnRun = new ConstomButton(); - btnRun.setBounds(0, 0, 150, 50); + btnRun.setBounds(0, 0, w, h); Font font = btnRun.getFont(); Font newFont = new Font(font.getName(), font.getStyle(), 15); pnlButtons.add(btnRun); @@ -69,7 +69,7 @@ public class MainPagePanel extends javax.swing.JPanel { btnRun.addActionListener(e -> btnRunActionPerformed()); this.add(pnlButtons); - pnlButtons.setBounds(0, 0, 150, 50); + pnlButtons.setBounds(0, 0, w, h); this.setSize(new Dimension(deWidth, deHeight)); this.pnlButtons.setLocation(deWidth - pnlButtons.getWidth() - 25, deHeight - pnlButtons.getHeight() - 25); @@ -104,8 +104,6 @@ public class MainPagePanel extends javax.swing.JPanel { txtPassword = new javax.swing.JPasswordField(); jPanel3 = new javax.swing.JPanel(); btnLogout = new javax.swing.JButton(); - btnShowLog = new javax.swing.JButton(); - btnMakeLaunchScript = new javax.swing.JButton(); setLayout(null); @@ -214,20 +212,6 @@ public class MainPagePanel extends javax.swing.JPanel { pnlPassword.add(jPanel3, "card3"); - btnShowLog.setText(bundle.getString("mainwindow.show_log")); // NOI18N - btnShowLog.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnShowLogActionPerformed(evt); - } - }); - - btnMakeLaunchScript.setText(bundle.getString("mainwindow.make_launch_script")); // NOI18N - btnMakeLaunchScript.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnMakeLaunchScriptActionPerformed(evt); - } - }); - javax.swing.GroupLayout pnlMoreLayout = new javax.swing.GroupLayout(pnlMore); pnlMore.setLayout(pnlMoreLayout); pnlMoreLayout.setHorizontalGroup( @@ -244,8 +228,6 @@ public class MainPagePanel extends javax.swing.JPanel { .addGroup(pnlMoreLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(cboProfiles, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(cboVersions, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addComponent(btnMakeLaunchScript, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(btnShowLog, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(pnlMoreLayout.createSequentialGroup() .addGroup(pnlMoreLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(lblUserName) @@ -277,11 +259,7 @@ public class MainPagePanel extends javax.swing.JPanel { .addComponent(txtPlayerName, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 254, Short.MAX_VALUE) - .addComponent(btnShowLog) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnMakeLaunchScript) - .addContainerGap()) + .addContainerGap(316, Short.MAX_VALUE)) ); add(pnlMore); @@ -352,18 +330,6 @@ public class MainPagePanel extends javax.swing.JPanel { cl.first(pnlPassword); }//GEN-LAST:event_btnLogoutActionPerformed - private void btnShowLogActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnShowLogActionPerformed - LogWindow.instance.setVisible(true); - }//GEN-LAST:event_btnShowLogActionPerformed - - private void btnMakeLaunchScriptActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMakeLaunchScriptActionPerformed - MainFrame.instance.showMessage(C.i18n("ui.message.launching")); - genLaunchCode(value -> { - value.successEvent.register(new LaunchScriptFinisher()); - value.successEvent.register(new PrepareAuthDoneListener()); - }); - }//GEN-LAST:event_btnMakeLaunchScriptActionPerformed - private void txtPlayerNameKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtPlayerNameKeyPressed if (evt.getKeyCode() == KeyEvent.VK_ENTER) { int index = cboLoginMode.getSelectedIndex(); @@ -523,6 +489,14 @@ public class MainPagePanel extends javax.swing.JPanel { value.successEvent.register(new PrepareAuthDoneListener()); }); } + + public void btnMakeLaunchCodeActionPerformed() { + MainFrame.instance.showMessage(C.i18n("ui.message.launching")); + genLaunchCode(value -> { + value.successEvent.register(new LaunchScriptFinisher()); + value.successEvent.register(new PrepareAuthDoneListener()); + }); + } public void onShow(boolean showLeft) { if (showLeft) @@ -544,8 +518,6 @@ public class MainPagePanel extends javax.swing.JPanel { // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnLogout; - private javax.swing.JButton btnMakeLaunchScript; - private javax.swing.JButton btnShowLog; private javax.swing.JComboBox cboLoginMode; private javax.swing.JComboBox cboProfiles; private javax.swing.JComboBox cboVersions; diff --git a/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/tasks/TaskWindow.java b/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/tasks/TaskWindow.java index 5f0497d37..4d59231f9 100644 --- a/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/tasks/TaskWindow.java +++ b/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/tasks/TaskWindow.java @@ -32,7 +32,7 @@ public class TaskWindow extends javax.swing.JDialog implements ProgressProviderListener, Runnable, DoingDoneListener { private static final TaskWindow instance = new TaskWindow(); - + public static TaskWindow getInstance() { instance.clean(); return instance; @@ -67,8 +67,7 @@ public class TaskWindow extends javax.swing.JDialog } public void clean() { - if (isVisible()) - throw new RuntimeException("This error should not appear, please contact the author."); + if (isVisible()) return; taskList = null; taskList = new TaskList(); taskList.addTaskListener(this); @@ -163,6 +162,7 @@ public class TaskWindow extends javax.swing.JDialog }//GEN-LAST:event_btnCancelActionPerformed private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed + if(taskList == null) return; tasks.clear(); if (!this.failReasons.isEmpty()) { @@ -171,8 +171,7 @@ public class TaskWindow extends javax.swing.JDialog } if (!suc) { - if (taskList != null) - SwingUtilities.invokeLater(taskList::abort); + SwingUtilities.invokeLater(taskList::abort); HMCLog.log("Tasks have been canceled by user."); } }//GEN-LAST:event_formWindowClosed diff --git a/MetroLookAndFeel/src/main/java/org/jackhuang/hellominecraft/lookandfeel/components/ConstomButton.java b/MetroLookAndFeel/src/main/java/org/jackhuang/hellominecraft/lookandfeel/components/ConstomButton.java index f4ac074b4..b6ff22bf0 100644 --- a/MetroLookAndFeel/src/main/java/org/jackhuang/hellominecraft/lookandfeel/components/ConstomButton.java +++ b/MetroLookAndFeel/src/main/java/org/jackhuang/hellominecraft/lookandfeel/components/ConstomButton.java @@ -24,7 +24,7 @@ import org.jackhuang.hellominecraft.lookandfeel.GraphicsUtils; * @author huangyuhui */ public class ConstomButton extends javax.swing.JButton { - public Color normalFg = GraphicsUtils.getWebColorWithAlpha("DDDDDD3F"), normalBg = GraphicsUtils.getWebColorWithAlpha("DDDDDD3F"), + public Color normalFg = GraphicsUtils.getWebColorWithAlpha("DDDDDD6F"), normalBg = GraphicsUtils.getWebColorWithAlpha("DDDDDD6F"), prelightFg = GraphicsUtils.getWebColorWithAlpha("FFFFFF7F"), prelightBg = GraphicsUtils.getWebColorWithAlpha("FFFFFF7F"), activeFg = GraphicsUtils.getWebColorWithAlpha("EAEDF83F"), activeBg = GraphicsUtils.getWebColorWithAlpha("EAEDF83F"); public int drawPercent = 0;