Skip to content

Commit

Permalink
Update ModDevGradle, use NFR requests to obtain clean jar
Browse files Browse the repository at this point in the history
  • Loading branch information
Su5eD committed Jul 31, 2024
1 parent ce5ea20 commit 4626fc0
Show file tree
Hide file tree
Showing 9 changed files with 29 additions and 83 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

plugins {
id("net.neoforged.moddev") version "1.0.15"
id("net.neoforged.moddev")
id("org.sinytra.adapter.userdev")
id("org.sinytra.adapter.gradle")
`maven-publish`
Expand Down
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ org.gradle.configuration-cache=true

versionMc=1.21
versionNeoForge=21.0.61-beta
versionModDevGradle=2.0.1-beta

runtimeVersion=1.0.0
5 changes: 5 additions & 0 deletions plugin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import java.util.*

plugins {
`java-gradle-plugin`
}

group = "org.sinytra.adapter"
version = "1.0-SNAPSHOT"

val versionModDevGradle: String by Properties().also { file("../gradle.properties").bufferedReader().use(it::load) }

java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
Expand Down Expand Up @@ -37,6 +41,7 @@ repositories {
}

dependencies {
compileOnly(group = "net.neoforged", name = "moddev-gradle", version = versionModDevGradle)
implementation(group = "org.sinytra.adapter", name = "definition")
implementation(group = "org.sinytra.adapter", name = "userdev")
implementation(group = "org.apache.commons", name = "commons-lang3", version = "3.13.0")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package org.sinytra.adapter.gradle;

import net.neoforged.moddevgradle.dsl.NeoForgeExtension;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.plugins.AppliedPlugin;
import org.gradle.api.tasks.TaskProvider;
import org.sinytra.adapter.patch.api.Patch;
import org.sinytra.adapter.userdev.CreateBinpatchedArtifactTask;
import org.sinytra.adapter.userdev.CreateCleanArtifactTask;

public class AdapterPlugin implements Plugin<Project> {
private static final String ADAPTER_USERDEV_ID = "org.sinytra.adapter.gradle";
Expand All @@ -24,11 +24,11 @@ public void apply(Project project) {
private static void applyPlugin(Project project, AppliedPlugin plugin) {
project.getLogger().lifecycle("Applying Sinytra Adapter plugin for {}", plugin.getId());

TaskProvider<CreateCleanArtifactTask> createCleanArtifactTask = project.getTasks().named("createCleanArtifact", CreateCleanArtifactTask.class);
NeoForgeExtension neoForge = project.getExtensions().getByType(NeoForgeExtension.class);
TaskProvider<CreateBinpatchedArtifactTask> createBinpatchedArtifactTask = project.getTasks().named("createBinpatchedArtifact", CreateBinpatchedArtifactTask.class);

project.getTasks().register("generateAdapterData", AdapterCompareJarTask.class, task -> {
task.getCleanJar().set(createCleanArtifactTask.flatMap(CreateCleanArtifactTask::getOutputFile));
task.getCleanJar().fileProvider(neoForge.getNeoFormRuntime().getAdditionalResults().map(p -> p.get("vanillaDeobfuscated")));
task.getDirtyJar().set(createBinpatchedArtifactTask.flatMap(CreateBinpatchedArtifactTask::getOutputFile));
});
}
Expand Down
6 changes: 6 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ pluginManagement {
url = uri("https://maven.fabricmc.net")
}
}

val versionModDevGradle: String by settings

plugins {
id("net.neoforged.moddev") version versionModDevGradle
}
}

rootProject.name = "Adapter"
Expand Down
3 changes: 1 addition & 2 deletions test/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,9 @@ dependencies {

tasks {
test {
dependsOn(createCleanArtifact)
useJUnitPlatform()
systemProperty("adapter.definition.paramdiff.debug", true)
systemProperty("adapter.clean.path", createCleanArtifact.get().outputFile.get().asFile.absolutePath)
systemProperty("adapter.clean.path", neoForge.neoFormRuntime.additionalResults.getting("vanillaDeobfuscated").get().absolutePath)
systemProperty("forge.logging.console.level", "debug")
outputs.upToDateWhen { false }
}
Expand Down
8 changes: 6 additions & 2 deletions userdev/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import java.util.Properties

plugins {
`java-gradle-plugin`
`maven-publish`
}

group = "org.sinytra.adapter"
version = "1.1-SNAPSHOT"
version = "1.2-SNAPSHOT"

val versionModDevGradle: String by Properties().also { file("../gradle.properties").bufferedReader().use(it::load) }

java {
toolchain {
Expand All @@ -27,7 +31,7 @@ repositories {
}

dependencies {
compileOnly("net.neoforged:moddev-gradle:1.0.15")
compileOnly(group = "net.neoforged", name = "moddev-gradle", version = versionModDevGradle)
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package org.sinytra.adapter.userdev;

import net.neoforged.moddevgradle.dsl.InternalModelHelper;
import net.neoforged.moddevgradle.dsl.NeoForgeExtension;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.provider.Property;
import org.gradle.api.tasks.TaskProvider;

import java.io.File;

public class AdapterUserdevPlugin implements Plugin<Project> {
private static final String MDG_ID = "net.neoforged.moddev";

Expand All @@ -34,13 +35,8 @@ public static void applyPlugin(Project project) {
spec.withDependencies(dependencies -> dependencies.addLater(project.provider(() -> project.getDependencyFactory().create("net.neoforged.installertools:binarypatcher:2.1.2"))));
});

TaskProvider<CreateCleanArtifactTask> createCleanArtifact = project.getTasks().register("createCleanArtifact", CreateCleanArtifactTask.class, task -> {
task.setGroup("sinytra");
task.getNeoForgeRuntime().from(project.getConfigurations().named("neoFormRuntime"));
task.getNeoForgeArtifact().set(neoForgeVersion.map(v -> "net.neoforged:neoforge:" + v));
task.getWorkDir().set(project.getLayout().getBuildDirectory().dir("tmp/neoformruntime"));
task.getOutputFile().set(project.file("build/%s/minecraft-renamed.jar".formatted(task.getName())));
});
File requestedOutput = project.file("build/createCleanArtifact/minecraft-renamed.jar");
neoForge.getNeoFormRuntime().getAdditionalResults().put("vanillaDeobfuscated", requestedOutput);

TaskProvider<ExtractBinPatches> extractBinPatches = project.getTasks().register("extractBinPatches", ExtractBinPatches.class, task -> {
task.setGroup("sinytra");
Expand All @@ -53,17 +49,14 @@ public static void applyPlugin(Project project) {
task.dependsOn("extractBinPatches");
task.setGroup("sinytra");
task.getRuntime().from(neoForgeBinpatchRuntime);
task.getRenamedInput().set(createCleanArtifact.flatMap(CreateCleanArtifactTask::getOutputFile));
task.getRenamedInput().set(requestedOutput);
task.getPatches().set(extractBinPatches.flatMap(ExtractBinPatches::getOutputFile));
task.getOutputFile().set(project.file("build/%s/minecraft-binpatched.jar".formatted(task.getName())));
});

// Attach clean artifact path to run configs
neoForge.getRuns().configureEach(runModel -> {
runModel.systemProperty("connector.clean.path", createCleanArtifact.get().getOutputFile().get().getAsFile().getAbsolutePath());
project.getTasks().named(InternalModelHelper.nameOfRun(runModel, "prepare", "run")).configure(task -> {
task.dependsOn(createCleanArtifact);
});
runModel.systemProperty("connector.clean.path", requestedOutput.getAbsolutePath());
});
}
}

This file was deleted.

0 comments on commit 4626fc0

Please sign in to comment.