From 52053f278c146a94aad9f537646d4329f24224c6 Mon Sep 17 00:00:00 2001 From: Space Walker Date: Sat, 6 Sep 2025 10:44:49 +0200 Subject: [PATCH] retrieve library upgrades from separate meta endpoint --- .../org/quiltmc/installer/LaunchJson.java | 7 +++++ .../org/quiltmc/installer/MmcPackCreator.java | 2 +- .../org/quiltmc/installer/OrnitheMeta.java | 27 +++---------------- 3 files changed, 11 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/quiltmc/installer/LaunchJson.java b/src/main/java/org/quiltmc/installer/LaunchJson.java index 2340bb4..d418f8a 100644 --- a/src/main/java/org/quiltmc/installer/LaunchJson.java +++ b/src/main/java/org/quiltmc/installer/LaunchJson.java @@ -235,6 +235,11 @@ public static CompletableFuture get(GameSide side, VersionManifest.Versi throw new UncheckedIOException(e); // Handled via .exceptionally(...) } + // we apply the library upgrades only to the Ornithe instance, not the Vanilla instance + OrnitheMeta.Endpoint>> libraryUpgradesEndpoint = OrnitheMeta.libraryUpgradesEndpoint(gameVersion.id()); + OrnitheMeta meta = OrnitheMeta.create(OrnitheMeta.ORNITHE_META_URL, Collections.singleton(libraryUpgradesEndpoint)).join(); + List> libraryUpgrades = meta.getEndpoint(libraryUpgradesEndpoint); + if (type == LoaderType.QUILT) { // Prevents a log warning about being unable to reach the active user beacon on stable versions. switch (loaderVersion) { @@ -262,6 +267,8 @@ public static CompletableFuture get(GameSide side, VersionManifest.Versi library.replace("url", "https://maven.ornithemc.net/releases/"); } } + libraries.addAll(libraryUpgrades); + StringWriter writer = new StringWriter(); try { Gsons.write(JsonWriter.json(writer), map); diff --git a/src/main/java/org/quiltmc/installer/MmcPackCreator.java b/src/main/java/org/quiltmc/installer/MmcPackCreator.java index 62b6156..a33fb97 100644 --- a/src/main/java/org/quiltmc/installer/MmcPackCreator.java +++ b/src/main/java/org/quiltmc/installer/MmcPackCreator.java @@ -151,7 +151,7 @@ private static String addCommonLibraries(Path instanceZipRoot, String gameVersio "\"version\": \"%s\"" + "}"; OrnitheMeta.Endpoint>> librariesEndpoint = - OrnitheMeta.profileLibrariesEndpoint(gameVersion, loaderType, loaderVersion); + OrnitheMeta.libraryUpgradesEndpoint(gameVersion); OrnitheMeta meta = OrnitheMeta.create(OrnitheMeta.ORNITHE_META_URL, Collections.singleton(librariesEndpoint)) .join(); diff --git a/src/main/java/org/quiltmc/installer/OrnitheMeta.java b/src/main/java/org/quiltmc/installer/OrnitheMeta.java index 4ab0bd6..1441126 100644 --- a/src/main/java/org/quiltmc/installer/OrnitheMeta.java +++ b/src/main/java/org/quiltmc/installer/OrnitheMeta.java @@ -40,30 +40,9 @@ public final class OrnitheMeta { public static final Endpoint> QUILT_LOADER_VERSIONS_ENDPOINT = createVersion("/v3/versions/quilt-loader"); @SuppressWarnings("unchecked") - public static Endpoint>> profileLibrariesEndpoint(String version, LoaderType type, String loaderVersion){ - String loader = switch (type){ - case FABRIC -> "fabric-loader"; - case QUILT -> "quilt-loader"; - }; - return new Endpoint<>(String.format("/v3/versions/%s/%s/%s/profile/json", loader, version, loaderVersion), reader -> { - - List> libraries = new ArrayList<>(); - Map map = (Map) Gsons.read(reader); - List> json = (List>) map.get("libraries"); - // libs are listed in order, so ornithe's are last - // skip all libs until the Loader dep is reached - boolean skipLib = true; - for (Map lib : json) { - if (!skipLib) { - libraries.add(lib); - } else { - String name = lib.get("name"); - if (name.startsWith("net.fabricmc:fabric-loader:") || name.startsWith("org.quiltmc:quilt-loader:")) { - skipLib = false; - } - } - } - return libraries; + public static Endpoint>> libraryUpgradesEndpoint(String gameVersion){ + return new Endpoint<>(String.format("/v3/versions/libraries/%s", gameVersion), reader -> { + return (List>) Gsons.read(reader); }); }