From f302ef5096dd61a50bb8f149cb84db8d59d48b5e Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Wed, 23 Jul 2025 19:10:05 -0400 Subject: [PATCH 1/3] Allow default reobfuscation task to be disabled in legacy mode --- .../dsl/LegacyForgeModdingSettings.java | 19 ++++++++++++++----- .../internal/LegacyForgeModDevPlugin.java | 11 +++++++---- .../legacyforge/LegacyModDevPluginTest.java | 11 +++++++++++ 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java index 1e082ee0..b06df684 100644 --- a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java +++ b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java @@ -20,6 +20,8 @@ public abstract class LegacyForgeModdingSettings { private Set enabledSourceSets = new HashSet<>(); + private boolean createDefaultReobfuscationTask = true; + @Inject public LegacyForgeModdingSettings(Project project) { // By default, enable modding deps only for the main source set @@ -64,11 +66,6 @@ public void setMcpVersion(String version) { this.mcpVersion = version; } - /** - * Contains the list of source sets for which access to Minecraft classes should be configured. - * Defaults to the main source set, but can also be set to an empty list. - */ - /** * Contains the list of source sets for which access to Minecraft classes should be configured. * Defaults to the main source set, but can also be set to an empty list. @@ -80,4 +77,16 @@ public Set getEnabledSourceSets() { public void setEnabledSourceSets(Set enabledSourceSets) { this.enabledSourceSets = enabledSourceSets; } + + + /** + * {@return true if default reobfuscation task should be created} + */ + public boolean shouldCreateDefaultReobfuscationTask() { + return createDefaultReobfuscationTask; + } + + public void setCreateDefaultReobfuscationTask(boolean createDefaultReobfuscationTask) { + this.createDefaultReobfuscationTask = createDefaultReobfuscationTask; + } } diff --git a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java index 2b0e8035..1be913a7 100644 --- a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java +++ b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java @@ -183,11 +183,14 @@ public void enable(Project project, LegacyForgeModdingSettings settings, LegacyF run.getProgramArguments().addAll(mixin.getConfigs().map(cfgs -> cfgs.stream().flatMap(config -> Stream.of("--mixin.config", config)).toList())); }); - var reobfJar = obf.reobfuscate( - project.getTasks().named(JavaPlugin.JAR_TASK_NAME, Jar.class), - project.getExtensions().getByType(SourceSetContainer.class).getByName(SourceSet.MAIN_SOURCE_SET_NAME)); + if (settings.shouldCreateDefaultReobfuscationTask()) { + var reobfJar = obf.reobfuscate( + project.getTasks().named(JavaPlugin.JAR_TASK_NAME, Jar.class), + project.getExtensions().getByType(SourceSetContainer.class).getByName(SourceSet.MAIN_SOURCE_SET_NAME)); + + project.getTasks().named("assemble", assemble -> assemble.dependsOn(reobfJar)); + } - project.getTasks().named("assemble", assemble -> assemble.dependsOn(reobfJar)); // Forge expects the mapping csv files on the root classpath artifacts.runtimeDependencies() diff --git a/src/test/java/net/neoforged/moddevgradle/legacyforge/LegacyModDevPluginTest.java b/src/test/java/net/neoforged/moddevgradle/legacyforge/LegacyModDevPluginTest.java index 71e0583d..9ce4bf56 100644 --- a/src/test/java/net/neoforged/moddevgradle/legacyforge/LegacyModDevPluginTest.java +++ b/src/test/java/net/neoforged/moddevgradle/legacyforge/LegacyModDevPluginTest.java @@ -2,6 +2,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.Set; @@ -113,6 +114,16 @@ void testAddModdingDependenciesTo() { assertContainsModdingRuntimeDependencies(testSourceSet.getRuntimeClasspathConfigurationName()); } + @Test + void testEnableWithoutReobfTask() { + extension.enable(settings -> { + settings.setForgeVersion(VERSION); + settings.setCreateDefaultReobfuscationTask(false); + }); + + assertNull(project.getTasks().findByName("reobfJar")); + } + private void assertDoesNotContainModdingDependencies(String configurationName) { assertThatDependencies(configurationName).doesNotContain(MODDING_COMPILE_DEPENDENCIES); assertThatDependencies(configurationName).doesNotContain(MODDING_RUNTIME_ONLY_DEPENDENCIES); From a96f634cde246f1797706743aa6d8ec3902ea929 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Wed, 23 Jul 2025 19:56:11 -0400 Subject: [PATCH 2/3] formatting --- .../moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java | 1 - .../legacyforge/internal/LegacyForgeModDevPlugin.java | 1 - 2 files changed, 2 deletions(-) diff --git a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java index b06df684..85b0346d 100644 --- a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java +++ b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java @@ -78,7 +78,6 @@ public void setEnabledSourceSets(Set enabledSourceSets) { this.enabledSourceSets = enabledSourceSets; } - /** * {@return true if default reobfuscation task should be created} */ diff --git a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java index 1be913a7..f0a2fb89 100644 --- a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java +++ b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java @@ -191,7 +191,6 @@ public void enable(Project project, LegacyForgeModdingSettings settings, LegacyF project.getTasks().named("assemble", assemble -> assemble.dependsOn(reobfJar)); } - // Forge expects the mapping csv files on the root classpath artifacts.runtimeDependencies() .getDependencies().add(project.getDependencyFactory().create(project.files(mappingsCsv))); From 37acf3a513673666cd7e4cf351afd4906c106536 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Thu, 24 Jul 2025 17:37:50 -0400 Subject: [PATCH 3/3] rename option --- .../legacyforge/dsl/LegacyForgeModdingSettings.java | 10 +++++----- .../legacyforge/internal/LegacyForgeModDevPlugin.java | 2 +- .../legacyforge/LegacyModDevPluginTest.java | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java index 85b0346d..0f567855 100644 --- a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java +++ b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java @@ -20,7 +20,7 @@ public abstract class LegacyForgeModdingSettings { private Set enabledSourceSets = new HashSet<>(); - private boolean createDefaultReobfuscationTask = true; + private boolean obfuscateJar = true; @Inject public LegacyForgeModdingSettings(Project project) { @@ -81,11 +81,11 @@ public void setEnabledSourceSets(Set enabledSourceSets) { /** * {@return true if default reobfuscation task should be created} */ - public boolean shouldCreateDefaultReobfuscationTask() { - return createDefaultReobfuscationTask; + public boolean isObfuscateJar() { + return obfuscateJar; } - public void setCreateDefaultReobfuscationTask(boolean createDefaultReobfuscationTask) { - this.createDefaultReobfuscationTask = createDefaultReobfuscationTask; + public void setObfuscateJar(boolean obfuscateJar) { + this.obfuscateJar = obfuscateJar; } } diff --git a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java index f0a2fb89..d9663c21 100644 --- a/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java +++ b/src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java @@ -183,7 +183,7 @@ public void enable(Project project, LegacyForgeModdingSettings settings, LegacyF run.getProgramArguments().addAll(mixin.getConfigs().map(cfgs -> cfgs.stream().flatMap(config -> Stream.of("--mixin.config", config)).toList())); }); - if (settings.shouldCreateDefaultReobfuscationTask()) { + if (settings.isObfuscateJar()) { var reobfJar = obf.reobfuscate( project.getTasks().named(JavaPlugin.JAR_TASK_NAME, Jar.class), project.getExtensions().getByType(SourceSetContainer.class).getByName(SourceSet.MAIN_SOURCE_SET_NAME)); diff --git a/src/test/java/net/neoforged/moddevgradle/legacyforge/LegacyModDevPluginTest.java b/src/test/java/net/neoforged/moddevgradle/legacyforge/LegacyModDevPluginTest.java index 9ce4bf56..d1e0ee6f 100644 --- a/src/test/java/net/neoforged/moddevgradle/legacyforge/LegacyModDevPluginTest.java +++ b/src/test/java/net/neoforged/moddevgradle/legacyforge/LegacyModDevPluginTest.java @@ -118,7 +118,7 @@ void testAddModdingDependenciesTo() { void testEnableWithoutReobfTask() { extension.enable(settings -> { settings.setForgeVersion(VERSION); - settings.setCreateDefaultReobfuscationTask(false); + settings.setObfuscateJar(false); }); assertNull(project.getTasks().findByName("reobfJar"));