From b3fb372e3b43eda8eff7e18e2db6f3a8286293f3 Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Sat, 12 Dec 2015 21:00:32 +0800 Subject: [PATCH] New animationsublime_text launch4jlinux.cpp --- HMCL/build.gradle | 3 +- .../hellominecraft/launcher/Main.java | 2 +- .../launcher/utils/CrashReporter.java | 35 ++++---- .../launcher/views/AnimatedPanel.java | 85 +++++++++++++++++++ .../launcher/views/GameSettingsPanel.form | 16 ++++ .../launcher/views/GameSettingsPanel.java | 23 ++--- .../launcher/views/InstallerPanel.java | 26 +++--- .../launcher/views/LauncherSettingsPanel.java | 2 +- .../launcher/views/MainFrame.java | 7 ++ .../launcher/views/MainPagePanel.java | 5 +- .../hellominecraft/tasks/TaskWindow.java | 3 +- .../hellominecraft/utils/SwingUtils.java | 2 +- .../hellominecraft/launcher/I18N.properties | 3 +- .../launcher/I18N_en.properties | 3 +- .../launcher/I18N_zh.properties | 3 +- .../launcher/I18N_zh_CN.properties | 3 +- 16 files changed, 169 insertions(+), 52 deletions(-) create mode 100644 HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/AnimatedPanel.java diff --git a/HMCL/build.gradle b/HMCL/build.gradle index 8fccbba1d..58e11892e 100644 --- a/HMCL/build.gradle +++ b/HMCL/build.gradle @@ -80,7 +80,8 @@ jar { } launch4j { - launch4jCmd = 'D:\\Develop\\Java\\Launch4j\\launch4j.exe' + //launch4jCmd = 'D:\\Develop\\Java\\Launch4j\\launch4j.exe' + launch4jCmd = '/home/huangyuhui/softwares/launch4j/launch4j' supportUrl = 'http://www.mcbbs.net/thread-142335-1-1.html' jreMinVersion = '1.6.0' 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 f59660cf2..175422b72 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/Main.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/Main.java @@ -104,7 +104,7 @@ public final class Main implements Runnable { } public static String launcherName = "Hello Minecraft! Launcher"; - public static byte firstVer = 2, secondVer = 3, thirdVer = 5, forthVer = 5; + public static byte firstVer = 2, secondVer = 3, thirdVer = 5, forthVer = 6; public static int minimumLauncherVersion = 16; //public static Proxy PROXY; 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 c3c434e77..91aff6a60 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 @@ -46,16 +46,16 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler { public boolean checkThrowable(Throwable e) { String s = StrUtils.getStackTrace(e); - if (s.contains("MessageBox") || s.contains("AWTError")) { + if (s.contains("MessageBox") || s.contains("AWTError")) return false; - } else if (s.contains("JFileChooser") || s.contains("JceSecurityManager")) { + else if (s.contains("JFileChooser") || s.contains("JceSecurityManager")) { System.out.println("Is not your operating system installed completely? "); return false; } if (s.contains("sun.awt.shell.Win32ShellFolder2") || s.contains("UnsatisfiedLinkError")) { System.out.println(C.i18n("crash.user_fault")); try { - MessageBox.Show(C.i18n("crash.user_fault")); + showMessage(C.i18n("crash.user_fault")); } catch (Throwable t) { t.printStackTrace(); } @@ -63,7 +63,7 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler { } else if (s.contains("java.awt.HeadlessException")) { System.out.println(C.i18n("crash.headless")); try { - MessageBox.Show(C.i18n("crash.headless")); + showMessage(C.i18n("crash.headless")); } catch (Throwable t) { t.printStackTrace(); } @@ -71,7 +71,7 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler { } else if (s.contains("java.lang.NoClassDefFoundError") || s.contains("java.lang.VerifyError") || s.contains("java.lang.NoSuchMethodError") || s.contains("java.lang.IncompatibleClassChangeError") || s.contains("java.lang.ClassFormatError")) { System.out.println(C.i18n("crash.NoClassDefFound")); try { - MessageBox.Show(C.i18n("crash.NoClassDefFound")); + showMessage(C.i18n("crash.NoClassDefFound")); } catch (Throwable t) { t.printStackTrace(); } @@ -110,25 +110,26 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler { reportToServer(text, s); } } catch (Throwable ex) { - try { - MessageBox.Show(e.getMessage() + "\n" + ex.getMessage(), "ERROR", MessageBox.ERROR_MESSAGE); - } catch (Throwable exx) { - System.out.println("Failed to catch exception thrown by " + t + " on " + Main.makeVersion() + "."); - exx.printStackTrace(); - } + showMessage(e.getMessage() + "\n" + ex.getMessage()); + ex.printStackTrace(); } } - - void showMessage() { - + + void showMessage(String s) { + try { + MessageBox.Show(s, "ERROR", MessageBox.ERROR_MESSAGE); + } catch (Throwable e) { + System.err.println("ERROR: " + s); + e.printStackTrace(); + } } - private static final HashSet throwableSet = new HashSet<>(); + private static final HashSet THROWABLE_SET = new HashSet<>(); void reportToServer(String text, String stacktrace) { - if (throwableSet.contains(stacktrace)) + if (THROWABLE_SET.contains(stacktrace)) return; - throwableSet.add(stacktrace); + THROWABLE_SET.add(stacktrace); new Thread(() -> { HashMap map = new HashMap<>(); map.put("CrashReport", text); diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/AnimatedPanel.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/AnimatedPanel.java new file mode 100644 index 000000000..f468d1728 --- /dev/null +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/AnimatedPanel.java @@ -0,0 +1,85 @@ +/* + * Hello Minecraft! Launcher. + * Copyright (C) 2013 huangyuhui + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see {http://www.gnu.org/licenses/}. + */ +package org.jackhuang.hellominecraft.launcher.views; + +import java.awt.AlphaComposite; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.image.BufferedImage; +import javax.swing.JPanel; +import javax.swing.SwingUtilities; +import javax.swing.Timer; + +/** + * + * @author huangyuhui + */ +public class AnimatedPanel extends JPanel { + + private static final int ANIMATION_LENGTH = 10; + + public AnimatedPanel() { + timer = new Timer(1, (e) -> { + SwingUtilities.invokeLater(() -> { + AnimatedPanel.this.repaint(); + offsetX += 0.15; + if (offsetX >= ANIMATION_LENGTH) { + timer.stop(); + AnimatedPanel.this.repaint(); + } + }); + }); + } + + double offsetX = ANIMATION_LENGTH; + + Timer timer; + + public void animate() { + offsetX = 0; + timer.start(); + } + + @Override + public void paint(Graphics g) { + double pgs = 1 - Math.sin(Math.PI / 2 / ANIMATION_LENGTH * offsetX); + if(Math.abs(ANIMATION_LENGTH - offsetX) < 0.1) { + super.paint(g); + return; + } + if (pgs > 1) + pgs = 1; + if (pgs < 0) + pgs = 0; + Graphics2D gg = (Graphics2D) g; + int width = this.getWidth(); + int height = this.getHeight(); + if (isOpaque()) { + g.setColor(getBackground()); + g.fillRect(0, 0, width, height); + } + BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); + Graphics2D g2d = image.createGraphics(); + g2d.translate((int) (pgs * 50), 0); + super.paint(g2d); + g2d.dispose(); + gg.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, (float) (1 - pgs))); + g.drawImage(image, 0, 0, this); + } +} 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 78e6e7139..9eb3dc676 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 @@ -5,6 +5,7 @@ + @@ -67,6 +68,9 @@ + + + @@ -337,6 +341,9 @@ + + + @@ -523,6 +530,9 @@ + + + @@ -654,6 +664,9 @@ + + + @@ -684,6 +697,9 @@ + + + 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 c96a71a6e..43a7fba66 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 @@ -66,13 +66,13 @@ import rx.concurrency.Schedulers; * * @author huangyuhui */ -public final class GameSettingsPanel extends javax.swing.JPanel implements DropTargetListener { +public final class GameSettingsPanel extends AnimatedPanel implements DropTargetListener { boolean isLoading = false; public MinecraftVersionRequest minecraftVersion; String mcVersion; - InstallerPanel installerPanels[] = new InstallerPanel[InstallerType.values().length]; + final InstallerPanel installerPanels[] = new InstallerPanel[InstallerType.values().length]; /** * Creates new form GameSettingsPanel @@ -206,6 +206,8 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT @Override public void stateChanged(ChangeEvent e) { + if (tabVersionEdit.getSelectedComponent() instanceof AnimatedPanel) + ((AnimatedPanel) tabVersionEdit.getSelectedComponent()).animate(); if (tabVersionEdit.getSelectedComponent() == pnlGameDownloads && !a) { a = true; refreshDownloads(); @@ -215,8 +217,8 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT } } }); - for (InstallerType type : InstallerType.values()) - tabInstallers.addTab(type.getLocalizedName(), new InstallerPanel(this, type)); + for (int i = 0; i < InstallerType.values().length; i++) + tabInstallers.addTab(InstallerType.values()[i].getLocalizedName(), installerPanels[i]); tabInstallers.addChangeListener(new ChangeListener() { boolean refreshed[] = new boolean[InstallerType.values().length]; @@ -242,7 +244,7 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT private void initComponents() { tabVersionEdit = new javax.swing.JTabbedPane(); - pnlSettings = new javax.swing.JPanel(); + pnlSettings = new AnimatedPanel(); lblGameDir = new javax.swing.JLabel(); txtGameDir = new javax.swing.JTextField(); lblDimension = new javax.swing.JLabel(); @@ -263,7 +265,7 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT btnChoosingJavaDir = new javax.swing.JButton(); cboJava = new javax.swing.JComboBox(); btnChoosingGameDir = new javax.swing.JButton(); - pnlAdvancedSettings = new javax.swing.JPanel(); + pnlAdvancedSettings = new AnimatedPanel(); chkDebug = new javax.swing.JCheckBox(); lblJavaArgs = new javax.swing.JLabel(); txtJavaArgs = new javax.swing.JTextField(); @@ -277,16 +279,16 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT txtPrecalledCommand = new javax.swing.JTextField(); lblServerIP = new javax.swing.JLabel(); txtServerIP = new javax.swing.JTextField(); - pnlModManagement = new javax.swing.JPanel(); + pnlModManagement = new AnimatedPanel(); pnlModManagementContent = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); lstExternalMods = new javax.swing.JTable(); btnAddMod = new javax.swing.JButton(); btnRemoveMod = new javax.swing.JButton(); lblModInfo = new javax.swing.JLabel(); - pnlAutoInstall = new javax.swing.JPanel(); + pnlAutoInstall = new AnimatedPanel(); tabInstallers = new javax.swing.JTabbedPane(); - pnlGameDownloads = new javax.swing.JPanel(); + pnlGameDownloads = new AnimatedPanel(); btnDownload = new javax.swing.JButton(); jScrollPane2 = new javax.swing.JScrollPane(); lstDownloads = new javax.swing.JTable(); @@ -310,6 +312,7 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT btnCleanGame = new javax.swing.JButton(); setBackground(new java.awt.Color(255, 255, 255)); + setOpaque(false); tabVersionEdit.setName("tabVersionEdit"); // NOI18N @@ -1350,7 +1353,7 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT @Override public void drop(DropTargetDropEvent dtde) { } - + private void refreshVersions() { getProfile().getMinecraftProvider().refreshVersions(); loadVersions(); diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/InstallerPanel.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/InstallerPanel.java index d02880b61..e66e923c5 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/InstallerPanel.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/InstallerPanel.java @@ -37,7 +37,7 @@ import org.jackhuang.hellominecraft.utils.SwingUtils; * * @author huangyuhui */ -public class InstallerPanel extends javax.swing.JPanel { +public class InstallerPanel extends AnimatedPanel { GameSettingsPanel gsp; @@ -50,10 +50,10 @@ public class InstallerPanel extends javax.swing.JPanel { public InstallerPanel(GameSettingsPanel gsp, InstallerType installerType) { initComponents(); + setOpaque(false); this.gsp = gsp; id = installerType; list = Settings.getInstance().getDownloadSource().getProvider().getInstallerByType(id); - ((DefaultTableModel) lstInstallers.getModel()).addRow(new Object[] {"hehe", "hehe"}); } /** @@ -138,7 +138,7 @@ public class InstallerPanel extends javax.swing.JPanel { void downloadSelectedRow() { int idx = lstInstallers.getSelectedRow(); - if (idx < 0 || idx >= versions.size()) { + if (versions == null || idx < 0 || idx >= versions.size()) { MessageBox.Show(C.i18n("install.not_refreshed")); return; } @@ -147,20 +147,18 @@ public class InstallerPanel extends javax.swing.JPanel { public void loadVersions() { SwingUtilities.invokeLater(() -> { - versions = loadVersions(list, lstInstallers); + synchronized (InstallerPanel.this) { + DefaultTableModel model = (DefaultTableModel) lstInstallers.getModel(); + String mcver = StrUtils.formatVersion(gsp.getMinecraftVersionFormatted()); + versions = list.getVersions(mcver); + SwingUtils.clearDefaultTable(lstInstallers); + if (versions != null) + for (InstallerVersionList.InstallerVersion v : versions) + model.addRow(new Object[] {v.selfVersion == null ? "null" : v.selfVersion, v.mcVersion == null ? "null" : v.mcVersion}); + } }); } - private List loadVersions(InstallerVersionList list, JTable table) { - DefaultTableModel model = (DefaultTableModel) table.getModel(); - String mcver = StrUtils.formatVersion(gsp.getMinecraftVersionFormatted()); - List ver = list.getVersions(mcver); - SwingUtils.clearDefaultTable(table); - if (ver != null) - for (InstallerVersionList.InstallerVersion v : ver) - model.addRow(new Object[] {v.selfVersion == null ? "null" : v.selfVersion, v.mcVersion == null ? "null" : v.mcVersion}); - return ver; - } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnInstall; diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/LauncherSettingsPanel.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/LauncherSettingsPanel.java index 6bc1275e2..fa125b163 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/LauncherSettingsPanel.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/LauncherSettingsPanel.java @@ -34,7 +34,7 @@ import rx.Observable; * * @author huangyuhui */ -public class LauncherSettingsPanel extends javax.swing.JPanel { +public class LauncherSettingsPanel extends AnimatedPanel { /** * Creates new form LancherSettingsPanel diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainFrame.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainFrame.java index 50cb99428..13a8980f9 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainFrame.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/views/MainFrame.java @@ -244,6 +244,7 @@ public final class MainFrame extends DraggableFrame { } public void selectTab(String tabName) { + boolean a = mainTab.isActive(), b = gameTab.isActive(), c = launcherTab.isActive(); this.mainTab.setIsActive(false); this.gameTab.setIsActive(false); this.launcherTab.setIsActive(false); @@ -255,6 +256,8 @@ public final class MainFrame extends DraggableFrame { } this.mainTab.setIsActive(true); this.mainPanel.onSelected(); + if (!a) + mainPanel.animate(); } else if (tabName.equalsIgnoreCase("game")) { if (gamePanel == null) { gamePanel = new GameSettingsPanel(); @@ -262,12 +265,16 @@ public final class MainFrame extends DraggableFrame { } this.gameTab.setIsActive(true); this.gamePanel.onSelected(); + if (!b) + gamePanel.animate(); } else if (tabName.equalsIgnoreCase("launcher")) { if (launcherPanel == null) { launcherPanel = new LauncherSettingsPanel(); launcherPanelWrapper.add(launcherPanel); } this.launcherTab.setIsActive(true); + if (!c) + launcherPanel.animate(); } this.infoLayout.show(this.infoSwap, tabName); 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 924f762fd..7d9de506a 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 @@ -47,7 +47,7 @@ import org.jackhuang.hellominecraft.utils.functions.Consumer; * * @author huangyuhui */ -public class MainPagePanel extends javax.swing.JPanel { +public class MainPagePanel extends AnimatedPanel { /** * Creates new form MainPagePanel @@ -336,6 +336,7 @@ public class MainPagePanel extends javax.swing.JPanel { if (l.isLoggedIn()) l.logout(); cl.first(pnlPassword); + pnlPassword.repaint(); }//GEN-LAST:event_btnLogoutActionPerformed private void txtPlayerNameKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtPlayerNameKeyPressed @@ -423,7 +424,7 @@ public class MainPagePanel extends javax.swing.JPanel { if (0 <= loginType && loginType < cboLoginMode.getItemCount()) { preparingAuth = false; - //cboLoginMode.setSelectedIndex(loginType); + cboLoginMode.setSelectedIndex(loginType); cboLoginModeItemStateChanged(null); } 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 168d65722..e1a8bbc40 100644 --- a/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/tasks/TaskWindow.java +++ b/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/tasks/TaskWindow.java @@ -175,7 +175,8 @@ public class TaskWindow extends javax.swing.JDialog tasks.clear(); if (!this.failReasons.isEmpty()) { - SwingUtilities.invokeLater(() -> MessageBox.Show(StrUtils.parseParams("", failReasons.toArray(), "\n"), C.i18n("message.error"), MessageBox.ERROR_MESSAGE)); + String str = StrUtils.parseParams("", failReasons.toArray(), "\n"); + SwingUtilities.invokeLater(() -> MessageBox.Show(str, C.i18n("message.error"), MessageBox.ERROR_MESSAGE)); failReasons.clear(); } diff --git a/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/utils/SwingUtils.java b/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/utils/SwingUtils.java index 889eec7d5..55cff9bdc 100644 --- a/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/utils/SwingUtils.java +++ b/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/utils/SwingUtils.java @@ -46,7 +46,7 @@ public class SwingUtils { * @return */ public static DefaultTableModel makeDefaultTableModel(String[] titleA, final Class[] typesA, final boolean[] canEditA) { - return new javax.swing.table.DefaultTableModel( + return new DefaultTableModel( new Object[][] {}, titleA) { Class[] types = typesA; diff --git a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N.properties b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N.properties index ad4d52aa9..a2df2e16e 100644 --- a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N.properties +++ b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N.properties @@ -57,6 +57,7 @@ install.mcversion=\u6e38\u620f\u7248\u672c install.time=\u65f6\u95f4 install.release_time=\u91ca\u653e\u65f6\u95f4 install.type=\u7c7b\u578b +install.please_refresh=\u5982\u9700\u4f7f\u7528\u81ea\u52a8\u5b89\u88c5\u8bf7\u70b9\u51fb\u53f3\u4fa7\u5237\u65b0\u6309\u94ae crash.launcher=\u542f\u52a8\u5668\u5d29\u6e83\u4e86\uff01 crash.minecraft=Minecraft\u5d29\u6e83\u4e86\uff01\u8bf7\u8ba4\u771f\u9605\u8bfb\u5efa\u8bae\u3002 @@ -204,7 +205,7 @@ settings.physical_memory=\u7269\u7406\u5185\u5b58\u5927\u5c0f settings.choose_javapath=\u9009\u62e9Java\u8def\u5f84 settings.default=\u9ed8\u8ba4 settings.custom=\u81ea\u5b9a\u4e49 -settings.choose_gamepath=\u9009\u62e9\u6e38\u620f\u8def\u5f84 +settings.choose_gamedir=\u9009\u62e9\u6e38\u620f\u8def\u5f84 settings.failed_load=\u8bbe\u7f6e\u6587\u4ef6\u52a0\u8f7d\u5931\u8d25\uff0c\u53ef\u80fd\u662f\u5347\u7ea7\u4e86\u542f\u52a8\u5668\u6216\u88ab\u4eba\u5de5\u4fee\u6539\u9020\u6210\u9519\u8bef\uff0c\u662f\u5426\u6e05\u9664\uff1f diff --git a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_en.properties b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_en.properties index 379d17f78..ab305f7ba 100644 --- a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_en.properties +++ b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_en.properties @@ -57,6 +57,7 @@ install.mcversion=Game Version install.time=Time install.release_time=Release Time install.type=Type +install.please_refresh=If you want to install something, please click "Refresh" button. crash.launcher=Launcher has crashed! crash.minecraft=Minecraft has crashed! @@ -204,7 +205,7 @@ settings.physical_memory=Physical Memory Size settings.choose_javapath=Choose Java Directory. settings.default=Default settings.custom=Custom -settings.choose_gamepath=Choose Game Directory +settings.choose_gamedir=Choose Game Directory settings.failed_load=Failed to load settings file. Remove it? diff --git a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_zh.properties b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_zh.properties index b55176df9..a09764ced 100644 --- a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_zh.properties +++ b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_zh.properties @@ -57,6 +57,7 @@ install.mcversion=\u904a\u6232\u7248\u672c install.time=\u6642\u9593 install.release_time=\u91cb\u653e\u6642\u9593 install.type=\u985e\u578b +install.please_refresh=\u5982\u9700\u4f7f\u7528\u81ea\u52a8\u5b89\u88c5\u8bf7\u70b9\u51fb\u53f3\u4fa7\u5237\u65b0\u6309\u94ae crash.launcher=\u555f\u52d5\u5668\u5d29\u6f70\u4e86\uff01 crash.minecraft=Minecraft\u5d29\u6f70\u4e86\uff01 @@ -204,7 +205,7 @@ settings.physical_memory=\u7269\u7406\u5185\u5b58\u5927\u5c0f settings.choose_javapath=\u9009\u62e9Java\u8def\u5f84 settings.default=\u9ed8\u8a8d settings.custom=\u81ea\u5b9a\u7fa9 -settings.choose_gamepath=\u9009\u62e9\u6e38\u620f\u8def\u5f84 +settings.choose_gamedir=\u9009\u62e9\u6e38\u620f\u8def\u5f84 settings.failed_load=\u8a2d\u5b9a\u6587\u4ef6\u52a0\u8f09\u5931\u6557\uff0c\u53ef\u80fd\u662f\u5347\u7d1a\u4e86\u555f\u52d5\u5668\u6216\u88ab\u4eba\u5de5\u4fee\u6539\u9020\u6210\u932f\u8aa4\uff0c\u662f\u5426\u6e05\u9664\uff1f diff --git a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_zh_CN.properties b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_zh_CN.properties index 651c5a6f9..a5686ef62 100644 --- a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_zh_CN.properties +++ b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/launcher/I18N_zh_CN.properties @@ -57,6 +57,7 @@ install.mcversion=\u6e38\u620f\u7248\u672c install.time=\u65f6\u95f4 install.release_time=\u91ca\u653e\u65f6\u95f4 install.type=\u7c7b\u578b +install.please_refresh=\u5982\u9700\u4f7f\u7528\u81ea\u52a8\u5b89\u88c5\u8bf7\u70b9\u51fb\u53f3\u4fa7\u5237\u65b0\u6309\u94ae crash.launcher=\u542f\u52a8\u5668\u5d29\u6e83\u4e86\uff01 crash.minecraft=Minecraft\u5d29\u6e83\u4e86\uff01\u8bf7\u8ba4\u771f\u9605\u8bfb\u5efa\u8bae\u3002 @@ -204,7 +205,7 @@ settings.physical_memory=\u7269\u7406\u5185\u5b58\u5927\u5c0f settings.choose_javapath=\u9009\u62e9Java\u8def\u5f84 settings.default=\u9ed8\u8ba4 settings.custom=\u81ea\u5b9a\u4e49 -settings.choose_gamepath=\u9009\u62e9\u6e38\u620f\u8def\u5f84 +settings.choose_gamedir=\u9009\u62e9\u6e38\u620f\u8def\u5f84 settings.failed_load=\u8bbe\u7f6e\u6587\u4ef6\u52a0\u8f7d\u5931\u8d25\uff0c\u53ef\u80fd\u662f\u5347\u7ea7\u4e86\u542f\u52a8\u5668\u6216\u88ab\u4eba\u5de5\u4fee\u6539\u9020\u6210\u9519\u8bef\uff0c\u662f\u5426\u6e05\u9664\uff1f