diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java index b7fbdbe68..ca7753e0f 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java @@ -32,14 +32,13 @@ import javafx.scene.input.MouseButton; import javafx.scene.layout.StackPane; import javafx.stage.FileChooser; import org.jackhuang.hmcl.Main; +import org.jackhuang.hmcl.download.MaintainTask; +import org.jackhuang.hmcl.download.game.VersionJsonSaveTask; import org.jackhuang.hmcl.event.EventBus; import org.jackhuang.hmcl.event.ProfileChangedEvent; import org.jackhuang.hmcl.event.ProfileLoadingEvent; import org.jackhuang.hmcl.event.RefreshedVersionsEvent; -import org.jackhuang.hmcl.game.GameVersion; -import org.jackhuang.hmcl.game.LauncherHelper; -import org.jackhuang.hmcl.game.ModpackHelper; -import org.jackhuang.hmcl.game.Version; +import org.jackhuang.hmcl.game.*; import org.jackhuang.hmcl.mod.MismatchedModpackTypeException; import org.jackhuang.hmcl.mod.UnsupportedModpackException; import org.jackhuang.hmcl.setting.Profile; @@ -53,11 +52,13 @@ import org.jackhuang.hmcl.ui.download.DownloadWizardProvider; import org.jackhuang.hmcl.ui.wizard.DecoratorPage; import org.jackhuang.hmcl.util.Lang; import org.jackhuang.hmcl.util.OperatingSystem; +import org.jackhuang.hmcl.util.StringUtils; import java.io.File; import java.io.IOException; import java.util.LinkedList; import java.util.List; +import java.util.function.Consumer; public final class MainPage extends StackPane implements DecoratorPage { @@ -101,6 +102,21 @@ public final class MainPage extends StackPane implements DecoratorPage { item.setUpdate(profile.getRepository().isModpack(version)); item.setGameVersion(game); item.setVersionName(version); + + StringBuilder libraries = new StringBuilder(); + for (Library library : profile.getRepository().getVersion(version).getLibraries()) { + if (library.getGroupId().equalsIgnoreCase("net.minecraftforge") && library.getArtifactId().equalsIgnoreCase("forge")) { + libraries.append(Main.i18n("install.installer.forge")).append(": ").append(StringUtils.removeSuffix(StringUtils.removePrefix(library.getVersion().replaceAll("(?i)forge", "").replace(game, "").trim(), "-"), "-")).append("\n"); + } + if (library.getGroupId().equalsIgnoreCase("com.mumfrey") && library.getArtifactId().equalsIgnoreCase("liteloader")) { + libraries.append(Main.i18n("install.installer.liteloader")).append(": ").append(StringUtils.removeSuffix(StringUtils.removePrefix(library.getVersion().replaceAll("(?i)liteloader", "").replace(game, "").trim(), "-"), "-")).append("\n"); + } + if (library.getGroupId().equalsIgnoreCase("net.optifine") && library.getArtifactId().equalsIgnoreCase("optifine")) { + libraries.append(Main.i18n("install.installer.optifine")).append(": ").append(StringUtils.removeSuffix(StringUtils.removePrefix(library.getVersion().replaceAll("(?i)optifine", "").replace(game, "").trim(), "-"), "-")).append("\n"); + } + } + + item.setLibraries(libraries.toString()); item.setOnLaunchButtonClicked(e -> { if (Settings.INSTANCE.getSelectedAccount() == null) Controllers.dialog(Main.i18n("login.empty_username")); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionItem.java index d4a9d379d..86e40d7bf 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionItem.java @@ -59,6 +59,8 @@ public final class VersionItem extends StackPane { @FXML private Label lblGameVersion; @FXML + private Label lblLibraries; + @FXML private ImageView iconView; private EventHandler launchClickedHandler = null; @@ -98,6 +100,10 @@ public final class VersionItem extends StackPane { lblGameVersion.setText(gameVersion); } + public void setLibraries(String libraries) { + lblLibraries.setText(libraries); + } + public void setImage(Image image) { iconView.setImage(image); } diff --git a/HMCL/src/main/resources/assets/fxml/version-item.fxml b/HMCL/src/main/resources/assets/fxml/version-item.fxml index 6b9aa6149..1b7e8fd97 100644 --- a/HMCL/src/main/resources/assets/fxml/version-item.fxml +++ b/HMCL/src/main/resources/assets/fxml/version-item.fxml @@ -21,7 +21,7 @@