getAnalyzeCacheMisses();
+
+ /**
+ * URL for the Minecraft Launcher manifest used to resolve Minecraft version information.
+ *
+ * Default: {@code https://piston-meta.mojang.com/mc/game/version_manifest_v2.json}
+ * Gradle property: {@code neoForge.neoFormRuntime.launcherManifestUrl}.
+ */
+ public abstract Property getLauncherManifestUrl();
}
diff --git a/src/main/java/net/neoforged/nfrtgradle/NeoFormRuntimePlugin.java b/src/main/java/net/neoforged/nfrtgradle/NeoFormRuntimePlugin.java
index c84d1bbb..5719020f 100644
--- a/src/main/java/net/neoforged/nfrtgradle/NeoFormRuntimePlugin.java
+++ b/src/main/java/net/neoforged/nfrtgradle/NeoFormRuntimePlugin.java
@@ -39,6 +39,7 @@ public void apply(Project project) {
project.getTasks().withType(NeoFormRuntimeTask.class).configureEach(task -> {
task.getNeoFormRuntime().convention(toolConfiguration);
task.getVerbose().convention(extension.getVerbose());
+ task.getLauncherManifestUrl().convention(extension.getLauncherManifestUrl());
// Every invocation of NFRT should inherit the tools it's using itself via Gradle
task.addArtifactsToManifest(externalToolsConfiguration);
});
diff --git a/src/main/java/net/neoforged/nfrtgradle/NeoFormRuntimeTask.java b/src/main/java/net/neoforged/nfrtgradle/NeoFormRuntimeTask.java
index 15c83004..173d1400 100644
--- a/src/main/java/net/neoforged/nfrtgradle/NeoFormRuntimeTask.java
+++ b/src/main/java/net/neoforged/nfrtgradle/NeoFormRuntimeTask.java
@@ -22,6 +22,7 @@
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.InputFiles;
import org.gradle.api.tasks.Internal;
+import org.gradle.api.tasks.Optional;
import org.gradle.jvm.toolchain.JavaLanguageVersion;
import org.gradle.jvm.toolchain.JavaToolchainService;
import org.gradle.process.ExecOperations;
@@ -53,6 +54,14 @@ public abstract class NeoFormRuntimeTask extends DefaultTask {
@InputFiles
public abstract ConfigurableFileCollection getNeoFormRuntime();
+ /**
+ * URL for the Minecraft Launcher manifest used to resolve Minecraft version information.
+ * When none is given, it defaults to {@code https://piston-meta.mojang.com/mc/game/version_manifest_v2.json}.
+ */
+ @Input
+ @Optional
+ public abstract Property getLauncherManifestUrl();
+
/**
* Enable verbose output for the NFRT engine. Defaults to false.
*/
@@ -125,6 +134,11 @@ public final void run(List args) {
realArgs.add(2, "--work-dir");
realArgs.add(3, getWorkDirectory().get().getAsFile().getAbsolutePath());
+ if (getLauncherManifestUrl().isPresent()) {
+ realArgs.add("--launcher-meta-uri");
+ realArgs.add(getLauncherManifestUrl().get());
+ }
+
if (getVerbose().get()) {
realArgs.add("--verbose");
}