From a88c8ed85f9bd58bb78e39d9d592291ea8606156 Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sun, 29 Jul 2018 19:03:49 +0800 Subject: [PATCH] Extract class Metadata --- .../java/org/jackhuang/hmcl/Launcher.java | 9 +---- .../java/org/jackhuang/hmcl/Metadata.java | 33 +++++++++++++++++++ .../jackhuang/hmcl/game/HMCLGameLauncher.java | 6 ++-- .../hmcl/setting/VersionSetting.java | 7 ++-- .../org/jackhuang/hmcl/ui/Controllers.java | 5 +-- .../org/jackhuang/hmcl/ui/CrashWindow.java | 4 +-- .../jackhuang/hmcl/util/CrashReporter.java | 7 ++-- 7 files changed, 50 insertions(+), 21 deletions(-) create mode 100644 HMCL/src/main/java/org/jackhuang/hmcl/Metadata.java diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java b/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java index 79374cc86..1bfe196fc 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java @@ -79,7 +79,7 @@ public final class Launcher extends Application { // NetworkUtils.setUserAgentSupplier(() -> "Hello Minecraft! Launcher"); Constants.UI_THREAD_SCHEDULER = Constants.JAVAFX_UI_THREAD_SCHEDULER; - LOG.info("*** " + TITLE + " ***"); + LOG.info("*** " + Metadata.TITLE + " ***"); LOG.info("Operating System: " + System.getProperty("os.name") + ' ' + OperatingSystem.SYSTEM_VERSION); LOG.info("Java Version: " + System.getProperty("java.version") + ", " + System.getProperty("java.vendor")); LOG.info("Java VM Version: " + System.getProperty("java.vm.name") + " (" + System.getProperty("java.vm.info") + "), " + System.getProperty("java.vm.vendor")); @@ -143,12 +143,5 @@ public final class Launcher extends Application { public static final File HMCL_DIRECTORY = OperatingSystem.getWorkingDirectory("hmcl"); public static final File LOG_DIRECTORY = new File(Launcher.HMCL_DIRECTORY, "logs"); - public static final String VERSION = System.getProperty("hmcl.version.override", "@HELLO_MINECRAFT_LAUNCHER_VERSION_FOR_GRADLE_REPLACING@"); - public static final String NAME = "HMCL"; - public static final String TITLE = NAME + " " + VERSION; public static final CrashReporter CRASH_REPORTER = new CrashReporter(); - - public static final String UPDATE_SERVER = "https://www.huangyuhui.net"; - public static final String CONTACT = UPDATE_SERVER + "/hmcl.php"; - public static final String PUBLISH = "http://www.mcbbs.net/thread-142335-1-1.html"; } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/Metadata.java b/HMCL/src/main/java/org/jackhuang/hmcl/Metadata.java new file mode 100644 index 000000000..c0a683140 --- /dev/null +++ b/HMCL/src/main/java/org/jackhuang/hmcl/Metadata.java @@ -0,0 +1,33 @@ +/* + * Hello Minecraft! Launcher. + * Copyright (C) 2018 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.hmcl; + +/** + * Stores metadata about this application. + */ +public final class Metadata { + private Metadata() {} + + public static final String VERSION = System.getProperty("hmcl.version.override", "@HELLO_MINECRAFT_LAUNCHER_VERSION_FOR_GRADLE_REPLACING@"); + public static final String NAME = "HMCL"; + public static final String TITLE = NAME + " " + VERSION; + + public static final String UPDATE_SERVER_URL = "https://www.huangyuhui.net"; + public static final String CONTACT_URL = UPDATE_SERVER_URL + "/hmcl.php"; + public static final String PUBLISH_URL = "http://www.mcbbs.net/thread-142335-1-1.html"; +} diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java index 5b793b618..bf7bf4036 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java @@ -17,7 +17,7 @@ */ package org.jackhuang.hmcl.game; -import org.jackhuang.hmcl.Launcher; +import org.jackhuang.hmcl.Metadata; import org.jackhuang.hmcl.auth.AuthInfo; import org.jackhuang.hmcl.launch.DefaultLauncher; import org.jackhuang.hmcl.launch.ProcessListener; @@ -46,8 +46,8 @@ public final class HMCLGameLauncher extends DefaultLauncher { @Override protected Map getConfigurations() { Map res = super.getConfigurations(); - res.put("${launcher_name}", Launcher.NAME); - res.put("${launcher_version}", Launcher.VERSION); + res.put("${launcher_name}", Metadata.NAME); + res.put("${launcher_version}", Metadata.VERSION); return res; } } 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 061639a6e..93aa40676 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/VersionSetting.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/VersionSetting.java @@ -19,7 +19,8 @@ package org.jackhuang.hmcl.setting; import com.google.gson.*; import javafx.beans.InvalidationListener; -import org.jackhuang.hmcl.Launcher; + +import org.jackhuang.hmcl.Metadata; import org.jackhuang.hmcl.game.LaunchOptions; import org.jackhuang.hmcl.util.*; @@ -503,8 +504,8 @@ public final class VersionSetting { return new LaunchOptions.Builder() .setGameDir(gameDir) .setJava(javaVersion) - .setVersionName(Launcher.TITLE) - .setProfileName(Launcher.TITLE) + .setVersionName(Metadata.TITLE) + .setProfileName(Metadata.TITLE) .setMinecraftArgs(getMinecraftArgs()) .setJavaArgs(getJavaArgs()) .setMaxMemory(getMaxMemory()) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java index 99fb168ba..504a24ec1 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java @@ -23,6 +23,7 @@ import javafx.scene.image.Image; import javafx.scene.layout.Region; import javafx.stage.Stage; import org.jackhuang.hmcl.Launcher; +import org.jackhuang.hmcl.Metadata; import org.jackhuang.hmcl.setting.Settings; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.task.TaskExecutor; @@ -98,7 +99,7 @@ public final class Controllers { stage.setOnCloseRequest(e -> Launcher.stopApplication()); - decorator = new Decorator(stage, getMainPage(), Launcher.TITLE, false, true); + decorator = new Decorator(stage, getMainPage(), Metadata.TITLE, false, true); decorator.showPage(null); leftPaneController = new LeftPaneController(decorator.getLeftPane()); @@ -115,7 +116,7 @@ public final class Controllers { stage.setMaxHeight(521); stage.getIcons().add(new Image("/assets/img/icon.png")); - stage.setTitle(Launcher.TITLE); + stage.setTitle(Metadata.TITLE); } public static void dialog(Region content) { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/CrashWindow.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/CrashWindow.java index 20137f15a..78e13b930 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/CrashWindow.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/CrashWindow.java @@ -30,7 +30,7 @@ import javafx.stage.Stage; import static org.jackhuang.hmcl.util.i18n.I18n.i18n; -import org.jackhuang.hmcl.Launcher; +import org.jackhuang.hmcl.Metadata; /** * @author huangyuhui @@ -51,7 +51,7 @@ public class CrashWindow extends Stage { Button btnContact = new Button(); btnContact.setText(i18n("launcher.contact")); - btnContact.setOnMouseClicked(event -> FXUtils.openLink(Launcher.CONTACT)); + btnContact.setOnMouseClicked(event -> FXUtils.openLink(Metadata.CONTACT_URL)); HBox box = new HBox(); box.setStyle("-fx-padding: 8px;"); box.getChildren().add(btnContact); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/util/CrashReporter.java b/HMCL/src/main/java/org/jackhuang/hmcl/util/CrashReporter.java index 21349498c..24f84e93b 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/util/CrashReporter.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/util/CrashReporter.java @@ -18,7 +18,8 @@ package org.jackhuang.hmcl.util; import javafx.application.Platform; -import org.jackhuang.hmcl.Launcher; + +import org.jackhuang.hmcl.Metadata; import org.jackhuang.hmcl.ui.CrashWindow; import org.jackhuang.hmcl.ui.construct.MessageBox; import static java.util.Collections.newSetFromMap; @@ -90,7 +91,7 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler { CAUGHT_EXCEPTIONS.add(stackTrace); String text = "---- Hello Minecraft! Crash Report ----\n" + - " Version: " + Launcher.VERSION + "\n" + + " Version: " + Metadata.VERSION + "\n" + " Time: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "\n" + " Thread: " + t.toString() + "\n" + "\n Content: \n " + @@ -117,7 +118,7 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler { Thread t = new Thread(() -> { HashMap map = new HashMap<>(); map.put("crash_report", text); - map.put("version", Launcher.VERSION); + map.put("version", Metadata.VERSION); map.put("log", Logging.getLogs()); try { String response = NetworkUtils.doPost(NetworkUtils.toURL("https://hmcl.huangyuhui.net/hmcl/crash.php"), map);