From 7d42c0f581ce4ffb667539237861750c61561c61 Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Thu, 20 Dec 2018 19:30:35 +0800 Subject: [PATCH] Change "redownload asset index" to "Update game asset files" --- .../org/jackhuang/hmcl/ui/Controllers.java | 4 ++ .../jackhuang/hmcl/ui/LeftPaneController.java | 3 +- .../ui/decorator/DecoratorController.java | 42 ------------------- .../hmcl/ui/versions/VersionPage.java | 3 +- .../jackhuang/hmcl/ui/versions/Versions.java | 13 ++++++ .../jackhuang/hmcl/upgrade/UpdateHandler.java | 3 +- .../resources/assets/lang/I18N.properties | 2 +- .../resources/assets/lang/I18N_zh.properties | 2 +- .../assets/lang/I18N_zh_CN.properties | 2 +- 9 files changed, 23 insertions(+), 51 deletions(-) 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 5a22c0745..adb821001 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java @@ -258,6 +258,10 @@ public final class Controllers { return pane; } + public static Region taskDialog(TaskExecutor executor, String title) { + return taskDialog(executor, title, ""); + } + public static Region taskDialog(TaskExecutor executor, String title, String subtitle) { return taskDialog(executor, title, subtitle, null); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java index 86283fa9b..52143ba2b 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java @@ -36,7 +36,6 @@ import org.jackhuang.hmcl.ui.account.AccountAdvancedListItem; import org.jackhuang.hmcl.ui.account.AddAccountPane; import org.jackhuang.hmcl.ui.construct.AdvancedListBox; import org.jackhuang.hmcl.ui.construct.AdvancedListItem; -import org.jackhuang.hmcl.ui.construct.DialogCloseEvent; import org.jackhuang.hmcl.ui.profile.ProfileAdvancedListItem; import org.jackhuang.hmcl.ui.versions.GameAdvancedListItem; import org.jackhuang.hmcl.ui.versions.Versions; @@ -127,7 +126,7 @@ public final class LeftPaneController extends AdvancedListBox { Modpack modpack = var.get("modpack"); TaskExecutor executor = ModpackHelper.getInstallTask(repository.getProfile(), modpackFile, modpack.getName(), modpack) .with(Task.of(Schedulers.javafx(), this::checkAccount)).executor(); - region.set(Controllers.taskDialog(executor, i18n("modpack.installing"), "")); + region.set(Controllers.taskDialog(executor, i18n("modpack.installing"))); executor.start(); })).start(); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java index 09e5c505b..23581585d 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java @@ -42,14 +42,12 @@ import org.jackhuang.hmcl.Metadata; import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorDnD; import org.jackhuang.hmcl.setting.Config; import org.jackhuang.hmcl.setting.EnumBackgroundImage; -import org.jackhuang.hmcl.task.TaskExecutor; import org.jackhuang.hmcl.ui.Controllers; import org.jackhuang.hmcl.ui.FXUtils; import org.jackhuang.hmcl.ui.account.AddAuthlibInjectorServerPane; import org.jackhuang.hmcl.ui.construct.*; import org.jackhuang.hmcl.ui.wizard.Refreshable; import org.jackhuang.hmcl.ui.wizard.WizardProvider; -import org.jackhuang.hmcl.util.FutureCallback; import java.io.IOException; import java.nio.file.Files; @@ -59,7 +57,6 @@ import java.util.List; import java.util.Locale; import java.util.Optional; import java.util.Random; -import java.util.function.Consumer; import java.util.logging.Level; import static java.util.stream.Collectors.toList; @@ -359,45 +356,6 @@ public class DecoratorController { } } - public void showDialog(String text) { - showDialog(text, null); - } - - public void showDialog(String text, String title) { - showDialog(text, title, MessageBox.INFORMATION_MESSAGE); - } - - public void showDialog(String text, String title, int type) { - showDialog(text, title, type, null); - } - - public void showDialog(String text, String title, int type, Runnable onAccept) { - showDialog(new MessageDialogPane(text, title, type, onAccept)); - } - - public void showConfirmDialog(String text, String title, Runnable onAccept, Runnable onCancel) { - showDialog(new MessageDialogPane(text, title, onAccept, onCancel)); - } - - public InputDialogPane showInputDialog(String text, FutureCallback onResult) { - InputDialogPane pane = new InputDialogPane(text, onResult); - showDialog(pane); - return pane; - } - - public Region showTaskDialog(TaskExecutor executor, String title, String subtitle) { - return showTaskDialog(executor, title, subtitle, null); - } - - public Region showTaskDialog(TaskExecutor executor, String title, String subtitle, Consumer onCancel) { - TaskExecutorDialogPane pane = new TaskExecutorDialogPane(onCancel); - pane.setTitle(title); - pane.setSubtitle(subtitle); - pane.setExecutor(executor); - showDialog(pane); - return pane; - } - // ==== Wizard ==== public void startWizard(WizardProvider wizardProvider) { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionPage.java index 86d8733d4..82897a0df 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionPage.java @@ -26,7 +26,6 @@ import javafx.beans.property.ReadOnlyStringWrapper; import javafx.fxml.FXML; import javafx.scene.control.Tab; import javafx.scene.layout.StackPane; -import org.jackhuang.hmcl.download.game.GameAssetIndexDownloadTask; import org.jackhuang.hmcl.setting.Profile; import org.jackhuang.hmcl.setting.Theme; import org.jackhuang.hmcl.ui.FXUtils; @@ -97,7 +96,7 @@ public final class VersionPage extends StackPane implements DecoratorPage { managementList.getContent().setAll( new IconedMenuItem(null, i18n("version.manage.rename"), FXUtils.withJFXPopupClosing(() -> Versions.renameVersion(profile, version), managementPopup)), new IconedMenuItem(null, i18n("version.manage.remove"), FXUtils.withJFXPopupClosing(() -> Versions.deleteVersion(profile, version), managementPopup)), - new IconedMenuItem(null, i18n("version.manage.redownload_assets_index"), FXUtils.withJFXPopupClosing(() -> new GameAssetIndexDownloadTask(profile.getDependency(), profile.getRepository().getResolvedVersion(version)).start(), managementPopup)), + new IconedMenuItem(null, i18n("version.manage.redownload_assets_index"), FXUtils.withJFXPopupClosing(() -> Versions.updateGameAssets(profile, version), managementPopup)), new IconedMenuItem(null, i18n("version.manage.remove_libraries"), FXUtils.withJFXPopupClosing(() -> FileUtils.deleteDirectoryQuietly(new File(profile.getRepository().getBaseDirectory(), "libraries")), managementPopup)), new IconedMenuItem(null, i18n("version.manage.clean"), FXUtils.withJFXPopupClosing(() -> Versions.cleanVersion(profile, version), managementPopup)) ); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java index a7948005e..b16da0ae7 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java @@ -18,11 +18,15 @@ package org.jackhuang.hmcl.ui.versions; import javafx.stage.FileChooser; +import org.jackhuang.hmcl.download.game.GameAssetDownloadTask; +import org.jackhuang.hmcl.download.game.GameAssetIndexDownloadTask; import org.jackhuang.hmcl.game.GameRepository; import org.jackhuang.hmcl.game.LauncherHelper; +import org.jackhuang.hmcl.game.Version; import org.jackhuang.hmcl.setting.Accounts; import org.jackhuang.hmcl.setting.EnumGameDirectory; import org.jackhuang.hmcl.setting.Profile; +import org.jackhuang.hmcl.task.TaskExecutor; import org.jackhuang.hmcl.ui.Controllers; import org.jackhuang.hmcl.ui.FXUtils; import org.jackhuang.hmcl.ui.download.ModpackInstallWizardProvider; @@ -75,6 +79,15 @@ public class Versions { Controllers.getDecorator().startWizard(new ModpackInstallWizardProvider(profile, version)); } + public static void updateGameAssets(Profile profile, String version) { + Version resolvedVersion = profile.getRepository().getResolvedVersion(version); + TaskExecutor executor = new GameAssetIndexDownloadTask(profile.getDependency(), resolvedVersion) + .then(new GameAssetDownloadTask(profile.getDependency(), resolvedVersion)) + .executor(); + Controllers.taskDialog(executor, i18n("version.manage.redownload_assets_index")); + executor.start(); + } + public static void cleanVersion(Profile profile, String id) { try { profile.getRepository().clean(id); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateHandler.java b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateHandler.java index d903336e1..ee28f2826 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateHandler.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateHandler.java @@ -26,7 +26,6 @@ import org.jackhuang.hmcl.Metadata; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.task.TaskExecutor; import org.jackhuang.hmcl.ui.Controllers; -import org.jackhuang.hmcl.ui.construct.DialogCloseEvent; import org.jackhuang.hmcl.ui.construct.MessageBox; import org.jackhuang.hmcl.util.StringUtils; import org.jackhuang.hmcl.util.io.FileUtils; @@ -103,7 +102,7 @@ public final class UpdateHandler { Task task = new HMCLDownloadTask(version, downloaded); TaskExecutor executor = task.executor(); - Region dialog = Controllers.taskDialog(executor, i18n("message.downloading"), "", null); + Region dialog = Controllers.taskDialog(executor, i18n("message.downloading")); thread(() -> { boolean success = executor.test(); diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index 7e8ac4027..d18549266 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -392,7 +392,7 @@ version.launch_script.success=Finished script creation, %s. version.manage=Game List version.manage.clean=Clean game directory version.manage.manage=Manage Game -version.manage.redownload_assets_index=Redownload Assets Index +version.manage.redownload_assets_index=Update Game Asset Files version.manage.remove=Delete this game version.manage.remove.confirm=Sure to remove game %s? You cannot restore this game again! version.manage.remove.confirm.trash=Sure to remove game %s? You can restore the game with the name of %s in your system trash. diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties index 311b27338..9d0811c23 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties @@ -391,7 +391,7 @@ version.launch_script.success=啟動腳本已生成完畢:%s version.manage=遊戲列表 version.manage.clean=清理遊戲目錄 version.manage.manage=游戏管理 -version.manage.redownload_assets_index=更新資源列表 +version.manage.redownload_assets_index=更新遊戲資源檔案 version.manage.remove=刪除該版本 version.manage.remove.confirm=真的要刪除版本 %s 嗎?你將無法找回被刪除的檔案! version.manage.remove.confirm.trash=真的要刪除版本 %s 嗎?你可以在系統的資源回收桶 (或垃圾桶) 中還原資料夾 %s 來找回該版本。 diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties index 99fd40c31..4a08d381d 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -391,7 +391,7 @@ version.launch_script.success=启动脚本已生成完毕:%s version.manage=游戏列表 version.manage.clean=清理游戏目录 version.manage.manage=游戏管理 -version.manage.redownload_assets_index=更新资源列表 +version.manage.redownload_assets_index=更新游戏资源文件 version.manage.remove=删除该版本 version.manage.remove.confirm=真的要删除版本 %s 吗?你将无法找回被删除的文件! version.manage.remove.confirm.trash=真的要删除版本 %s 吗?你可以在系统的回收站中恢复文件夹 %s 来找回该版本。