diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java index 354103696..715ea22be 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java @@ -62,7 +62,7 @@ public final class LauncherHelper { if (account == null) throw new IllegalStateException("No account"); - Version version = repository.getVersion(selectedVersion); + Version version = repository.getResolvedVersion(selectedVersion); VersionSetting setting = profile.getVersionSetting(selectedVersion); Platform.runLater(() -> { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibrariesUniqueTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibrariesUniqueTask.java index 9a4fcb694..36507b71e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibrariesUniqueTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibrariesUniqueTask.java @@ -56,8 +56,16 @@ public class LibrariesUniqueTask extends TaskResult { multimap.removeKey(id); versionMap.put(id, number); multimap.put(id, library); - } else if (number.compareTo(otherNumber) == 0) { - multimap.put(id, library); + } else if (number.compareTo(otherNumber) == 0) { // same library id. + boolean flag = false; + // prevent from duplicated libraries + for (Library otherLibrary : multimap.get(id)) + if (library.equals(otherLibrary)) { + flag = true; + break; + } + if (!flag) + multimap.put(id, library); } } else { versionMap.put(id, number);