Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/main/java/org/quiltmc/installer/LaunchJson.java
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,11 @@ public static CompletableFuture<String> 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<List<Map<String, String>>> libraryUpgradesEndpoint = OrnitheMeta.libraryUpgradesEndpoint(gameVersion.id());
OrnitheMeta meta = OrnitheMeta.create(OrnitheMeta.ORNITHE_META_URL, Collections.singleton(libraryUpgradesEndpoint)).join();
List<Map<String, String>> 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) {
Expand Down Expand Up @@ -262,6 +267,8 @@ public static CompletableFuture<String> 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);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/quiltmc/installer/MmcPackCreator.java
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ private static String addCommonLibraries(Path instanceZipRoot, String gameVersio
"\"version\": \"%s\"" +
"}";
OrnitheMeta.Endpoint<List<Map<String, String>>> librariesEndpoint =
OrnitheMeta.profileLibrariesEndpoint(gameVersion, loaderType, loaderVersion);
OrnitheMeta.libraryUpgradesEndpoint(gameVersion);
OrnitheMeta meta = OrnitheMeta.create(OrnitheMeta.ORNITHE_META_URL, Collections.singleton(librariesEndpoint))
.join();

Expand Down
27 changes: 3 additions & 24 deletions src/main/java/org/quiltmc/installer/OrnitheMeta.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,30 +40,9 @@ public final class OrnitheMeta {
public static final Endpoint<List<String>> QUILT_LOADER_VERSIONS_ENDPOINT = createVersion("/v3/versions/quilt-loader");

@SuppressWarnings("unchecked")
public static Endpoint<List<Map<String, String>>> 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<Map<String, String>> libraries = new ArrayList<>();
Map<String, Object> map = (Map<String, Object>) Gsons.read(reader);
List<Map<String, String>> json = (List<Map<String, String>>) 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<String, String> 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<List<Map<String, String>>> libraryUpgradesEndpoint(String gameVersion){
return new Endpoint<>(String.format("/v3/versions/libraries/%s", gameVersion), reader -> {
return (List<Map<String, String>>) Gsons.read(reader);
});
}

Expand Down
Loading