Skip to content

Commit feedf45

Browse files
authored
Allow default reobfuscation task to be disabled in legacy mode (#279)
1 parent 35b9656 commit feedf45

File tree

3 files changed

+30
-9
lines changed

3 files changed

+30
-9
lines changed

src/legacy/java/net/neoforged/moddevgradle/legacyforge/dsl/LegacyForgeModdingSettings.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ public abstract class LegacyForgeModdingSettings {
2020

2121
private Set<SourceSet> enabledSourceSets = new HashSet<>();
2222

23+
private boolean obfuscateJar = true;
24+
2325
@Inject
2426
public LegacyForgeModdingSettings(Project project) {
2527
// By default, enable modding deps only for the main source set
@@ -64,11 +66,6 @@ public void setMcpVersion(String version) {
6466
this.mcpVersion = version;
6567
}
6668

67-
/**
68-
* Contains the list of source sets for which access to Minecraft classes should be configured.
69-
* Defaults to the main source set, but can also be set to an empty list.
70-
*/
71-
7269
/**
7370
* Contains the list of source sets for which access to Minecraft classes should be configured.
7471
* Defaults to the main source set, but can also be set to an empty list.
@@ -80,4 +77,15 @@ public Set<SourceSet> getEnabledSourceSets() {
8077
public void setEnabledSourceSets(Set<SourceSet> enabledSourceSets) {
8178
this.enabledSourceSets = enabledSourceSets;
8279
}
80+
81+
/**
82+
* {@return true if default reobfuscation task should be created}
83+
*/
84+
public boolean isObfuscateJar() {
85+
return obfuscateJar;
86+
}
87+
88+
public void setObfuscateJar(boolean obfuscateJar) {
89+
this.obfuscateJar = obfuscateJar;
90+
}
8391
}

src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,13 @@ public void enable(Project project, LegacyForgeModdingSettings settings, LegacyF
183183
run.getProgramArguments().addAll(mixin.getConfigs().map(cfgs -> cfgs.stream().flatMap(config -> Stream.of("--mixin.config", config)).toList()));
184184
});
185185

186-
var reobfJar = obf.reobfuscate(
187-
project.getTasks().named(JavaPlugin.JAR_TASK_NAME, Jar.class),
188-
project.getExtensions().getByType(SourceSetContainer.class).getByName(SourceSet.MAIN_SOURCE_SET_NAME));
186+
if (settings.isObfuscateJar()) {
187+
var reobfJar = obf.reobfuscate(
188+
project.getTasks().named(JavaPlugin.JAR_TASK_NAME, Jar.class),
189+
project.getExtensions().getByType(SourceSetContainer.class).getByName(SourceSet.MAIN_SOURCE_SET_NAME));
189190

190-
project.getTasks().named("assemble", assemble -> assemble.dependsOn(reobfJar));
191+
project.getTasks().named("assemble", assemble -> assemble.dependsOn(reobfJar));
192+
}
191193

192194
// Forge expects the mapping csv files on the root classpath
193195
artifacts.runtimeDependencies()

src/test/java/net/neoforged/moddevgradle/legacyforge/LegacyModDevPluginTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44
import static org.junit.jupiter.api.Assertions.assertEquals;
5+
import static org.junit.jupiter.api.Assertions.assertNull;
56
import static org.junit.jupiter.api.Assertions.assertThrows;
67

78
import java.util.Set;
@@ -113,6 +114,16 @@ void testAddModdingDependenciesTo() {
113114
assertContainsModdingRuntimeDependencies(testSourceSet.getRuntimeClasspathConfigurationName());
114115
}
115116

117+
@Test
118+
void testEnableWithoutReobfTask() {
119+
extension.enable(settings -> {
120+
settings.setForgeVersion(VERSION);
121+
settings.setObfuscateJar(false);
122+
});
123+
124+
assertNull(project.getTasks().findByName("reobfJar"));
125+
}
126+
116127
private void assertDoesNotContainModdingDependencies(String configurationName) {
117128
assertThatDependencies(configurationName).doesNotContain(MODDING_COMPILE_DEPENDENCIES);
118129
assertThatDependencies(configurationName).doesNotContain(MODDING_RUNTIME_ONLY_DEPENDENCIES);

0 commit comments

Comments
 (0)