From dec6837528cfa2d77f2f1693971605a793ba2ff5 Mon Sep 17 00:00:00 2001 From: Glavo Date: Mon, 13 Jul 2026 00:38:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20Minecraft=2026.1+=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=AE=89=E8=A3=85=20Quilt=20=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20(#6386)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmcl/download/quilt/QuiltInstallTask.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/quilt/QuiltInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/quilt/QuiltInstallTask.java index 01642cecf0..1883d15f99 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/quilt/QuiltInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/quilt/QuiltInstallTask.java @@ -30,6 +30,7 @@ import org.jackhuang.hmcl.task.GetTask; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.gson.JsonSerializable; import org.jackhuang.hmcl.util.gson.JsonUtils; +import org.jetbrains.annotations.Nullable; import java.util.*; @@ -85,12 +86,17 @@ public final class QuiltInstallTask extends Task { @Override public void execute() { - setResult(getPatch(JsonUtils.GSON.fromJson(launchMetaTask.getResult(), QuiltInfo.class), remote.getGameVersion(), remote.getSelfVersion())); + setResult(getPatch(JsonUtils.GSON.fromJson(launchMetaTask.getResult(), QuiltInfo.class), remote.getSelfVersion())); dependencies.add(dependencyManager.checkLibraryCompletionAsync(getResult(), true)); } - private Version getPatch(QuiltInfo quiltInfo, String gameVersion, String loaderVersion) { + /// Creates the Quilt version patch described by the metadata response. + /// + /// @param quiltInfo the metadata returned by Quilt Meta + /// @param loaderVersion the Quilt Loader version + /// @return the version patch to install + static Version getPatch(QuiltInfo quiltInfo, String loaderVersion) { JsonObject launcherMeta = quiltInfo.launcherMeta; Arguments arguments = new Arguments(); @@ -118,7 +124,9 @@ public final class QuiltInstallTask extends Task { } // libraries.add(new Library(Artifact.fromDescriptor(quiltInfo.hashed.maven), getMavenRepositoryByGroup(quiltInfo.hashed.maven), null)); - libraries.add(new Library(Artifact.fromDescriptor(quiltInfo.intermediary.maven), getMavenRepositoryByGroup(quiltInfo.intermediary.maven), null)); + if (quiltInfo.intermediary != null) { + libraries.add(new Library(Artifact.fromDescriptor(quiltInfo.intermediary.maven), getMavenRepositoryByGroup(quiltInfo.intermediary.maven), null)); + } libraries.add(new Library(Artifact.fromDescriptor(quiltInfo.loader.maven), getMavenRepositoryByGroup(quiltInfo.loader.maven), null)); return new Version(LibraryAnalyzer.LibraryType.QUILT.getPatchId(), loaderVersion, Version.PRIORITY_LOADER, arguments, mainClass, libraries); @@ -139,11 +147,11 @@ public final class QuiltInstallTask extends Task { @JsonSerializable public static class QuiltInfo { private final LoaderInfo loader; - private final IntermediaryInfo hashed; - private final IntermediaryInfo intermediary; + private final @Nullable IntermediaryInfo hashed; + private final @Nullable IntermediaryInfo intermediary; private final JsonObject launcherMeta; - public QuiltInfo(LoaderInfo loader, IntermediaryInfo hashed, IntermediaryInfo intermediary, JsonObject launcherMeta) { + public QuiltInfo(LoaderInfo loader, @Nullable IntermediaryInfo hashed, @Nullable IntermediaryInfo intermediary, JsonObject launcherMeta) { this.loader = loader; this.hashed = hashed; this.intermediary = intermediary; @@ -154,11 +162,11 @@ public final class QuiltInstallTask extends Task { return loader; } - public IntermediaryInfo getHashed() { + public @Nullable IntermediaryInfo getHashed() { return hashed; } - public IntermediaryInfo getIntermediary() { + public @Nullable IntermediaryInfo getIntermediary() { return intermediary; }