From 66bb27c4ddb17922147daa31ecd74c30454fca9c Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Sat, 21 Aug 2021 15:50:22 +0800 Subject: [PATCH] fix: incorrect detected forge version. Closes #961. --- .../jackhuang/hmcl/ui/versions/GameItem.java | 2 +- .../hmcl/download/LibraryAnalyzer.java | 26 +++++++++++++------ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameItem.java index 97d747d05..d3ec5149e 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameItem.java @@ -69,7 +69,7 @@ public class GameItem extends Control { if (I18n.hasKey("install.installer." + libraryId)) { libraries.append(", ").append(i18n("install.installer." + libraryId)); if (libraryVersion != null) - libraries.append(": ").append(LibraryAnalyzer.modifyVersion(game, libraryVersion.replaceAll("(?i)" + libraryId, ""))); + libraries.append(": ").append(libraryVersion.replaceAll("(?i)" + libraryId, "")); } } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/LibraryAnalyzer.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/LibraryAnalyzer.java index 1760244a8..b283d45aa 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/LibraryAnalyzer.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/LibraryAnalyzer.java @@ -25,12 +25,11 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.*; +import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; import static org.jackhuang.hmcl.util.Pair.pair; -import static org.jackhuang.hmcl.util.StringUtils.removePrefix; -import static org.jackhuang.hmcl.util.StringUtils.removeSuffix; public final class LibraryAnalyzer implements Iterable { private Version version; @@ -135,7 +134,7 @@ public final class LibraryAnalyzer implements Iterable[0-9.]+)(-([0-9.]+))?$"); + + @Override + public String patchVersion(String libraryVersion) { + Matcher matcher = FORGE_VERSION_MATCHER.matcher(libraryVersion); + if (matcher.find()) { + return matcher.group("forge"); + } + return super.patchVersion(libraryVersion); + } + }, LITELOADER(true, "liteloader", Pattern.compile("com\\.mumfrey"), Pattern.compile("liteloader")), OPTIFINE(false, "optifine", Pattern.compile("(net\\.)?optifine"), Pattern.compile("^(?!.*launchwrapper).*$")), BOOTSTRAP_LAUNCHER(false, "", Pattern.compile("cpw\\.mods"), Pattern.compile("bootstraplauncher")); @@ -196,6 +202,10 @@ public final class LibraryAnalyzer implements Iterable