From c576c48f9dfefe1911a859eb796cff91290ab8aa Mon Sep 17 00:00:00 2001 From: RainChan Date: Sat, 17 May 2025 07:54:13 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20#3852:=20=E4=BF=AE=E5=A4=8D=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=B8=80=E9=94=AE=E6=9B=B4=E6=96=B0=E6=95=B4=E5=90=88?= =?UTF-8?q?=E5=8C=85=E7=9A=84=E9=97=AE=E9=A2=98=20(#3888)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix #3852 修复无法一键更新整合包 * 删除未使用的import * fix checkstyle --------- Co-authored-by: Glavo --- .../jackhuang/hmcl/ui/download/DownloadPage.java | 15 ++++++++++++--- .../hmcl/ui/download/ModpackSelectionPage.java | 4 +++- .../org/jackhuang/hmcl/ui/versions/Versions.java | 6 +++++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadPage.java index f3ec57a3f..ce972a241 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadPage.java @@ -43,7 +43,10 @@ import org.jackhuang.hmcl.ui.construct.TabControl; import org.jackhuang.hmcl.ui.construct.TabHeader; import org.jackhuang.hmcl.ui.decorator.DecoratorAnimatedPage; import org.jackhuang.hmcl.ui.decorator.DecoratorPage; -import org.jackhuang.hmcl.ui.versions.*; +import org.jackhuang.hmcl.ui.versions.DownloadListPage; +import org.jackhuang.hmcl.ui.versions.HMCLLocalizedDownloadListPage; +import org.jackhuang.hmcl.ui.versions.VersionPage; +import org.jackhuang.hmcl.ui.versions.Versions; import org.jackhuang.hmcl.ui.wizard.Navigation; import org.jackhuang.hmcl.ui.wizard.WizardController; import org.jackhuang.hmcl.ui.wizard.WizardProvider; @@ -54,8 +57,8 @@ import org.jetbrains.annotations.Nullable; import java.nio.file.Path; import java.util.HashMap; -import java.util.Map; import java.util.Locale; +import java.util.Map; import java.util.concurrent.CancellationException; import java.util.function.Supplier; @@ -76,10 +79,16 @@ public class DownloadPage extends DecoratorAnimatedPage implements DecoratorPage private WeakListenerHolder listenerHolder; public DownloadPage() { + this(null); + } + + public DownloadPage(String uploadVersion) { newGameTab.setNodeSupplier(loadVersionFor(() -> new VersionsPage(versionPageNavigator, i18n("install.installer.choose", i18n("install.installer.game")), "", DownloadProviders.getDownloadProvider(), "game", versionPageNavigator::onGameSelected))); modpackTab.setNodeSupplier(loadVersionFor(() -> { - DownloadListPage page = HMCLLocalizedDownloadListPage.ofModPack(Versions::downloadModpackImpl, false); + DownloadListPage page = HMCLLocalizedDownloadListPage.ofModPack((profile, __, file) -> { + Versions.downloadModpackImpl(profile, uploadVersion, file); + }, false); JFXButton installLocalModpackButton = FXUtils.newRaisedButton(i18n("install.modpack")); installLocalModpackButton.setOnAction(e -> Versions.importModpack()); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackSelectionPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackSelectionPage.java index 43fa82f68..8f83156b8 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackSelectionPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/ModpackSelectionPage.java @@ -50,6 +50,7 @@ import java.util.Map; import java.util.Optional; import static org.jackhuang.hmcl.ui.download.LocalModpackPage.MODPACK_FILE; +import static org.jackhuang.hmcl.ui.download.LocalModpackPage.MODPACK_NAME; import static org.jackhuang.hmcl.ui.download.RemoteModpackPage.MODPACK_SERVER_MANIFEST; import static org.jackhuang.hmcl.util.Lang.tryCast; import static org.jackhuang.hmcl.util.i18n.I18n.i18n; @@ -170,7 +171,8 @@ public final class ModpackSelectionPage extends VBox implements WizardPage { } public void onChooseRepository() { - DownloadPage downloadPage = new DownloadPage(); + String modPackName = (String) controller.getSettings().get(MODPACK_NAME); + DownloadPage downloadPage = new DownloadPage(modPackName); downloadPage.showModpackDownloads(); Controllers.navigate(downloadPage); } 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 94bdc1cd1..35b60e6fd 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 @@ -90,7 +90,11 @@ public final class Versions { new FileDownloadTask(downloadURL, modpack.toFile()) .whenComplete(Schedulers.javafx(), e -> { if (e == null) { - Controllers.getDecorator().startWizard(new ModpackInstallWizardProvider(profile, modpack.toFile())); + if (version != null) { + Controllers.getDecorator().startWizard(new ModpackInstallWizardProvider(profile, modpack.toFile(), version)); + } else { + Controllers.getDecorator().startWizard(new ModpackInstallWizardProvider(profile, modpack.toFile())); + } } else if (e instanceof CancellationException) { Controllers.showToast(i18n("message.cancelled")); } else {