diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java index b692c6eb..96d3322e 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java +++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java @@ -54,6 +54,7 @@ public class LoomGradleExtension { public boolean remapMod = true; public boolean autoGenIDERuns = true; public boolean extractJars = false; + public String customManifest = null; private List unmappedModsBuilt = new ArrayList<>(); diff --git a/src/main/java/net/fabricmc/loom/providers/MinecraftProvider.java b/src/main/java/net/fabricmc/loom/providers/MinecraftProvider.java index a688fb1f..f88074a2 100644 --- a/src/main/java/net/fabricmc/loom/providers/MinecraftProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/MinecraftProvider.java @@ -133,7 +133,20 @@ public class MinecraftProvider extends DependencyProvider { String versionManifest = Files.asCharSource(manifests, StandardCharsets.UTF_8).read(); ManifestVersion mcManifest = new GsonBuilder().create().fromJson(versionManifest, ManifestVersion.class); - Optional optionalVersion = mcManifest.versions.stream().filter(versions -> versions.id.equalsIgnoreCase(minecraftVersion)).findFirst(); + Optional optionalVersion = Optional.empty(); + + if(extension.customManifest != null){ + ManifestVersion.Versions customVersion = new ManifestVersion.Versions(); + customVersion.id = minecraftVersion; + customVersion.url = extension.customManifest; + optionalVersion = Optional.of(customVersion); + project.getLogger().lifecycle("Using custom minecraft manifest"); + } + + if(!optionalVersion.isPresent()){ + optionalVersion = mcManifest.versions.stream().filter(versions -> versions.id.equalsIgnoreCase(minecraftVersion)).findFirst(); + } + if (optionalVersion.isPresent()) { if (offline) { if (MINECRAFT_JSON.exists()) {