From a8bb5c1570210fad2c700f66441b024343e322fe Mon Sep 17 00:00:00 2001 From: Glavo Date: Mon, 15 Apr 2024 04:02:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=85=A5=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=95=B4=E5=90=88=E5=8C=85=E5=A4=B1=E8=B4=A5=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20(#2989)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复导入部分整合包失败的问题 * update * update --- .../main/java/org/jackhuang/hmcl/download/VersionList.java | 7 ++++++- .../hmcl/download/optifine/OptiFineRemoteVersion.java | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java index 701380b7d..b41e835cc 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java @@ -131,9 +131,14 @@ public abstract class VersionList { lock.readLock().lock(); try { T result = null; - for (T it : versions.get(gameVersion)) + TreeSet remoteVersions = versions.get(gameVersion); + for (T it : remoteVersions) if (remoteVersion.equals(it.getSelfVersion())) result = it; + if (result == null) + for (T it : remoteVersions) + if (remoteVersion.equals(it.getFullVersion())) + result = it; return Optional.ofNullable(result); } finally { lock.readLock().unlock(); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineRemoteVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineRemoteVersion.java index 12be0813d..2efdf48ee 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineRemoteVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineRemoteVersion.java @@ -31,6 +31,11 @@ public class OptiFineRemoteVersion extends RemoteVersion { super(LibraryAnalyzer.LibraryType.OPTIFINE.getPatchId(), gameVersion, selfVersion, null, snapshot ? Type.SNAPSHOT : Type.RELEASE, urls); } + @Override + public String getFullVersion() { + return getGameVersion() + "_" + getSelfVersion(); + } + @Override public Task getInstallTask(DefaultDependencyManager dependencyManager, Version baseVersion) { return new OptiFineInstallTask(dependencyManager, baseVersion, this);