diff --git a/.travis.yml b/.travis.yml index 9dcc1df26..9002af3bb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,8 @@ before_deploy: - git push -q ${REPO} --tags deploy: provider: releases - api_key: ${DEPLOY_REPO} + api_key: + secure: T3u0BqnXQ1MYMNdNdT+SNGYWGyPivrZMKnUIbWPZQGs001kq18BpC5WLabhH4+EfZ1P9j1hRHLUHsEP7QDjPeNPEtWFLNq51z+vPKx18eb6d0yUHHCWHGknP8NXWF7+buaQKZeJ05AzwkegnADumUOm+mqY249KSnlt0gFRaTWIAXUY8KOZP32Rq+pCE1yS7GsO7se27HtQw31qB9TEyEQYMU00pY/THqV4wHvO+9QHyFiv9MtbuTX+e4PEdA/xQpPv8qMX9BegppzX+Vz9Lughe77XWWJuOTqlcwqbj6M2Dao1KIlE4fzBN0zgdIApmATDzVdx7vthZdIFip2eRODlw9YKz0lX+gj8cuDw5uUZ4JTw5P5mkH9X0EDTv3h2nQw2A0qkYy3MGFhsSIwLJBeDkKQrUa/pylsPaYNwQUCegM3Sj/2wdN2IcllDUs7p5OOf4yhGRUUYR1JTocsZ3XcyzVlOsBXO2RJs9E6DqY9KUiEZG4NlQEo0DpYQrHR15r2Qhv8WmmxPaqBOO6wv21IpLsmf1t54PHIoBeVUI2qvjKuOBWX6XrljFL5iIYhIAmgjigggUmetJRNp1qbJQYBk6tSpsosMDnXEFHxtJXnomcpiZj0pbGGjWFREHxIDBqh0uLPk+NyD5RnI2+nVladEXoSdWnQCfQ4dYZy73bdI= file: - HMCL/build/libs/HMCL-${HMCL_VERSION_ROOT}.${TRAVIS_BUILD_NUMBER}.jar - HMCL/build/libs/HMCL-${HMCL_VERSION_ROOT}.${TRAVIS_BUILD_NUMBER}.exe diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/forge/ForgeInstaller.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/forge/ForgeInstaller.java index b4a935d81..56a7e5eb3 100755 --- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/forge/ForgeInstaller.java +++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/forge/ForgeInstaller.java @@ -23,6 +23,8 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import org.jackhuang.hellominecraft.api.HMCAPI; +import org.jackhuang.hellominecraft.launcher.api.event.version.MinecraftLibraryPathEvent; import org.jackhuang.hellominecraft.util.C; import org.jackhuang.hellominecraft.util.log.HMCLog; import org.jackhuang.hellominecraft.launcher.core.service.IMinecraftService; @@ -30,6 +32,7 @@ import org.jackhuang.hellominecraft.util.task.Task; import org.jackhuang.hellominecraft.util.sys.FileUtils; import org.jackhuang.hellominecraft.launcher.core.version.MinecraftLibrary; import org.jackhuang.hellominecraft.util.MessageBox; +import org.jackhuang.hellominecraft.util.Wrapper; import org.jackhuang.hellominecraft.util.sys.IOUtils; /** @@ -66,19 +69,24 @@ public class ForgeInstaller extends Task { File to = new File(gameDir, "versions" + File.separator + profile.install.getTarget()); if (!FileUtils.makeDirectory(to)) HMCLog.warn("Failed to make new version folder " + to); - + HMCLog.log("Copying jar..." + profile.install.getMinecraft() + ".jar to " + profile.install.getTarget() + ".jar"); FileUtils.copyFile(new File(from, profile.install.getMinecraft() + ".jar"), - new File(to, profile.install.getTarget() + ".jar")); - + new File(to, profile.install.getTarget() + ".jar")); + HMCLog.log("Creating new version profile..." + profile.install.getTarget() + ".json"); FileUtils.write(new File(to, profile.install.getTarget() + ".json"), C.GSON.toJson(profile.versionInfo)); - + HMCLog.log("Extracting universal forge pack..." + profile.install.getFilePath()); entry = zipFile.getEntry(profile.install.getFilePath()); InputStream is = zipFile.getInputStream(entry); MinecraftLibrary forge = new MinecraftLibrary(profile.install.getPath()); - File file = new File(gameDir, "libraries/" + forge.getDownloadInfo().path); + + String path = "libraries/" + forge.getDownloadInfo().path; + MinecraftLibraryPathEvent event = new MinecraftLibraryPathEvent(this, path, new Wrapper<>(new File(gameDir, path))); + HMCAPI.EVENT_BUS.fireChannel(event); + File file = event.getFile().getValue(); + if (!FileUtils.makeDirectory(file.getParentFile())) HMCLog.warn("Failed to make library directory " + file.getParent()); try (FileOutputStream fos = FileUtils.openOutputStream(file)) { diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/liteloader/LiteLoaderInstaller.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/liteloader/LiteLoaderInstaller.java index b4e954345..e35ec4e82 100755 --- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/liteloader/LiteLoaderInstaller.java +++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/liteloader/LiteLoaderInstaller.java @@ -20,6 +20,8 @@ package org.jackhuang.hellominecraft.launcher.core.install.liteloader; import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import org.jackhuang.hellominecraft.api.HMCAPI; +import org.jackhuang.hellominecraft.launcher.api.event.version.MinecraftLibraryPathEvent; import org.jackhuang.hellominecraft.util.C; import org.jackhuang.hellominecraft.util.log.HMCLog; import org.jackhuang.hellominecraft.launcher.core.service.IMinecraftService; @@ -29,6 +31,7 @@ import org.jackhuang.hellominecraft.util.task.comm.PreviousResultRegistrar; import org.jackhuang.hellominecraft.util.sys.FileUtils; import org.jackhuang.hellominecraft.launcher.core.version.MinecraftLibrary; import org.jackhuang.hellominecraft.launcher.core.version.MinecraftVersion; +import org.jackhuang.hellominecraft.util.Wrapper; /** * @@ -68,7 +71,11 @@ public class LiteLoaderInstaller extends Task implements PreviousResultRegistrar MinecraftLibrary ml = new MinecraftLibrary("com.mumfrey:liteloader:" + version.selfVersion); //ml.url = "http://dl.liteloader.com/versions/com/mumfrey/liteloader/" + version.mcVersion + "/liteloader-" + version.selfVersion + ".jar"; mv.libraries.add(0, ml); - FileUtils.copyFile(installer, new File(service.baseDirectory(), "libraries/com/mumfrey/liteloader/" + version.selfVersion + "/liteloader-" + version.selfVersion + ".jar")); + + String path = "libraries/com/mumfrey/liteloader/" + version.selfVersion + "/liteloader-" + version.selfVersion + ".jar"; + MinecraftLibraryPathEvent event = new MinecraftLibraryPathEvent(this, path, new Wrapper<>(new File(service.baseDirectory(), path))); + HMCAPI.EVENT_BUS.fireChannel(event); + FileUtils.copyFile(installer, event.getFile().getValue()); mv.id += "-LiteLoader" + version.selfVersion; diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/optifine/OptiFineInstaller.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/optifine/OptiFineInstaller.java index 499f15446..19d392783 100755 --- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/optifine/OptiFineInstaller.java +++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/install/optifine/OptiFineInstaller.java @@ -20,15 +20,20 @@ package org.jackhuang.hellominecraft.launcher.core.install.optifine; import java.io.File; import java.util.ArrayList; import java.util.zip.ZipFile; +import org.jackhuang.hellominecraft.api.HMCAPI; +import org.jackhuang.hellominecraft.launcher.api.event.version.MinecraftLibraryPathEvent; import org.jackhuang.hellominecraft.util.C; import org.jackhuang.hellominecraft.launcher.core.install.InstallerVersionList; import org.jackhuang.hellominecraft.launcher.core.service.IMinecraftService; +import org.jackhuang.hellominecraft.launcher.core.version.LibrariesDownloadInfo; +import org.jackhuang.hellominecraft.launcher.core.version.LibraryDownloadInfo; import org.jackhuang.hellominecraft.util.task.Task; import org.jackhuang.hellominecraft.util.task.comm.PreviousResult; import org.jackhuang.hellominecraft.util.task.comm.PreviousResultRegistrar; import org.jackhuang.hellominecraft.util.sys.FileUtils; import org.jackhuang.hellominecraft.launcher.core.version.MinecraftLibrary; import org.jackhuang.hellominecraft.launcher.core.version.MinecraftVersion; +import org.jackhuang.hellominecraft.util.Wrapper; import org.jackhuang.hellominecraft.util.log.HMCLog; /** @@ -58,8 +63,18 @@ public class OptiFineInstaller extends Task implements PreviousResultRegistrar(new File(service.baseDirectory(), "libraries/" + library.downloads.artifact.path))); + HMCAPI.EVENT_BUS.fireChannel(event); + FileUtils.copyFile(installer, event.getFile().getValue()); mv.id += "-" + selfId; try (ZipFile zipFile = new ZipFile(installer)) { diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/GameDownloadInfo.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/GameDownloadInfo.java index 75b3ccb6d..84be2d46e 100644 --- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/GameDownloadInfo.java +++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/GameDownloadInfo.java @@ -31,7 +31,7 @@ public class GameDownloadInfo implements Cloneable { @SerializedName("size") public int size; @SerializedName("url") - protected String url; + public String url; /** * Ready for AssetIndexDownloadInfo, and GameDownloadInfo also need this. diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/LibrariesDownloadInfo.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/LibrariesDownloadInfo.java index 3830639b1..454633ced 100644 --- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/LibrariesDownloadInfo.java +++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/version/LibrariesDownloadInfo.java @@ -27,7 +27,7 @@ import java.util.Map; public class LibrariesDownloadInfo { @SerializedName("classifiers") - Map classifiers; + public Map classifiers; @SerializedName("artifact") - LibraryDownloadInfo artifact; + public LibraryDownloadInfo artifact; } diff --git a/HMCL/src/main/resources/org/jackhuang/hellominecraft/launcher/ui/Bundle.properties b/HMCL/src/main/resources/org/jackhuang/hellominecraft/launcher/ui/Bundle.properties deleted file mode 100644 index 4dc4c3428..000000000 --- a/HMCL/src/main/resources/org/jackhuang/hellominecraft/launcher/ui/Bundle.properties +++ /dev/null @@ -1,17 +0,0 @@ -/* - * 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/}. - */ diff --git a/HMCUtils/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh.lang b/HMCUtils/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh.lang index a92d322cb..ac6251b88 100755 --- a/HMCUtils/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh.lang +++ b/HMCUtils/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh.lang @@ -308,11 +308,14 @@ mainwindow.no_version=未找到任何版本,是否進入遊戲下載? launcher.about=預設背景圖感謝gamerteam提供。
關於作者:
百度ID:huanghongxun20
mcbbs:huanghongxun
Minecraft Forum ID: klkl6523
歡迎提交Bug哦
Copyright (c) 2013-2016 huangyuhui.
免責聲明:Minecraft軟體版權歸Mojang AB所有,遊戲由於誤操作本啟動器而丟失數據的概不負責。
本啟動器在GPLv3協議下開源:http://github.com/huanghongxun/HMCL/ ,感謝issues和pull requests貢獻者
本軟體使用了基於Apache License 2.0的Gson項目,感謝貢獻者。 launcher.download_source=下載源 launcher.background_location=背景地址 +launcher.common_location=公用資料夾 launcher.exit_failed=強制退出失敗,可能是Forge 1.7.10及更高版本導致的,無法解決。 launcher.versions_json_not_matched=版本%s格式不規範!該版本資料夾下有json:%s,是否更名這個資料來規範格式? launcher.versions_json_not_matched_cannot_auto_completion=版本%s缺失必要的版本資訊資料,是否刪除該版本? launcher.versions_json_not_formatted=版本%s資訊資料格式錯誤,是否重新下載? launcher.choose_bgpath=選擇背景路徑 +launcher.choose_commonpath=選擇公用路徑 +launcher.commpath_tooltip=啟動器將所有遊戲資源跟執行庫檔案放在此處集中管理。如果遊戲資料夾有現成的將不會使用公用庫檔案。 launcher.background_tooltip=啟動器預設使用自帶的背景
如果當前目錄有background.png,則會使用該資料作為背景
如果當前目錄有bg子目錄,則會隨機使用裡面的一張圖作為背景
如果該背景位址被修改,則會使用背景位址裡的一張圖作為背景
背景位址允許有多個位址,使用半形分號";"(不包含雙引號)分隔 launcher.update_launcher=檢查更新 launcher.enable_shadow=啟用窗口陰影 diff --git a/HMCUtils/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh.properties b/HMCUtils/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh.properties index d3bfa2c2d..59fdf6b95 100755 --- a/HMCUtils/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh.properties +++ b/HMCUtils/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh.properties @@ -308,11 +308,14 @@ mainwindow.no_version=\u672a\u627e\u5230\u4efb\u4f55\u7248\u672c\uff0c\u662f\u54 launcher.about=\u9810\u8a2d\u80cc\u666f\u5716\u611f\u8b1dgamerteam\u63d0\u4f9b\u3002
\u95dc\u65bc\u4f5c\u8005\uff1a
\u767e\u5ea6ID\uff1ahuanghongxun20
mcbbs\uff1ahuanghongxun
Minecraft Forum ID: klkl6523
\u6b61\u8fce\u63d0\u4ea4Bug\u54e6
Copyright (c) 2013-2016 huangyuhui.
\u514d\u8cac\u8072\u660e\uff1aMinecraft\u8edf\u9ad4\u7248\u6b0a\u6b78Mojang AB\u6240\u6709\uff0c\u904a\u6232\u7531\u65bc\u8aa4\u64cd\u4f5c\u672c\u555f\u52d5\u5668\u800c\u4e1f\u5931\u6578\u64da\u7684\u6982\u4e0d\u8ca0\u8cac\u3002
\u672c\u555f\u52d5\u5668\u5728GPLv3\u5354\u8b70\u4e0b\u958b\u6e90:http://github.com/huanghongxun/HMCL/ ,\u611f\u8b1dissues\u548cpull requests\u8ca2\u737b\u8005
\u672c\u8edf\u9ad4\u4f7f\u7528\u4e86\u57fa\u65bcApache License 2.0\u7684Gson\u9805\u76ee\uff0c\u611f\u8b1d\u8ca2\u737b\u8005\u3002 launcher.download_source=\u4e0b\u8f09\u6e90 launcher.background_location=\u80cc\u666f\u5730\u5740 +launcher.common_location=\u516c\u7528\u8cc7\u6599\u593e launcher.exit_failed=\u5f37\u5236\u9000\u51fa\u5931\u6557\uff0c\u53ef\u80fd\u662fForge 1.7.10\u53ca\u66f4\u9ad8\u7248\u672c\u5c0e\u81f4\u7684\uff0c\u7121\u6cd5\u89e3\u6c7a\u3002 launcher.versions_json_not_matched=\u7248\u672c%s\u683c\u5f0f\u4e0d\u898f\u7bc4\uff01\u8a72\u7248\u672c\u8cc7\u6599\u593e\u4e0b\u6709json:%s\uff0c\u662f\u5426\u66f4\u540d\u9019\u500b\u8cc7\u6599\u4f86\u898f\u7bc4\u683c\u5f0f\uff1f launcher.versions_json_not_matched_cannot_auto_completion=\u7248\u672c%s\u7f3a\u5931\u5fc5\u8981\u7684\u7248\u672c\u8cc7\u8a0a\u8cc7\u6599\uff0c\u662f\u5426\u522a\u9664\u8a72\u7248\u672c\uff1f launcher.versions_json_not_formatted=\u7248\u672c%s\u8cc7\u8a0a\u8cc7\u6599\u683c\u5f0f\u932f\u8aa4\uff0c\u662f\u5426\u91cd\u65b0\u4e0b\u8f09\uff1f launcher.choose_bgpath=\u9078\u64c7\u80cc\u666f\u8def\u5f91 +launcher.choose_commonpath=\u9078\u64c7\u516c\u7528\u8def\u5f91 +launcher.commpath_tooltip=\u555f\u52d5\u5668\u5c07\u6240\u6709\u904a\u6232\u8cc7\u6e90\u8ddf\u57f7\u884c\u5eab\u6a94\u6848\u653e\u5728\u6b64\u8655\u96c6\u4e2d\u7ba1\u7406\u3002\u5982\u679c\u904a\u6232\u8cc7\u6599\u593e\u6709\u73fe\u6210\u7684\u5c07\u4e0d\u6703\u4f7f\u7528\u516c\u7528\u5eab\u6a94\u6848\u3002 launcher.background_tooltip=\u555f\u52d5\u5668\u9810\u8a2d\u4f7f\u7528\u81ea\u5e36\u7684\u80cc\u666f
\u5982\u679c\u7576\u524d\u76ee\u9304\u6709background.png\uff0c\u5247\u6703\u4f7f\u7528\u8a72\u8cc7\u6599\u4f5c\u70ba\u80cc\u666f
\u5982\u679c\u7576\u524d\u76ee\u9304\u6709bg\u5b50\u76ee\u9304\uff0c\u5247\u6703\u96a8\u6a5f\u4f7f\u7528\u88e1\u9762\u7684\u4e00\u5f35\u5716\u4f5c\u70ba\u80cc\u666f
\u5982\u679c\u8a72\u80cc\u666f\u4f4d\u5740\u88ab\u4fee\u6539\uff0c\u5247\u6703\u4f7f\u7528\u80cc\u666f\u4f4d\u5740\u88e1\u7684\u4e00\u5f35\u5716\u4f5c\u70ba\u80cc\u666f
\u80cc\u666f\u4f4d\u5740\u5141\u8a31\u6709\u591a\u500b\u4f4d\u5740\uff0c\u4f7f\u7528\u534a\u5f62\u5206\u865f";"(\u4e0d\u5305\u542b\u96d9\u5f15\u865f)\u5206\u9694 launcher.update_launcher=\u6aa2\u67e5\u66f4\u65b0 launcher.enable_shadow=\u555f\u7528\u7a97\u53e3\u9670\u5f71