Skip to content

Commit ddc4c21

Browse files
authored
Add getNeoFormVersion and getMcpVersion getters to make Kotlin happy (#223)
1 parent 4f88afa commit ddc4c21

File tree

5 files changed

+38
-2
lines changed

5 files changed

+38
-2
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import javax.inject.Inject;
44
import net.neoforged.moddevgradle.dsl.DataFileCollection;
55
import net.neoforged.moddevgradle.dsl.ModDevExtension;
6+
import net.neoforged.moddevgradle.internal.ModDevArtifactsWorkflow;
67
import net.neoforged.moddevgradle.legacyforge.internal.LegacyForgeModDevPlugin;
78
import org.gradle.api.Action;
9+
import org.gradle.api.InvalidUserCodeException;
810
import org.gradle.api.Project;
911

1012
/**
@@ -49,6 +51,18 @@ public void setMcpVersion(String version) {
4951
});
5052
}
5153

54+
/**
55+
* After enabling modding, you can retrieve the version of MCP you picked using this getter.
56+
* This getter will throw if you have not enabled vanilla-mode yet.
57+
*/
58+
public String getMcpVersion() {
59+
var dependencies = ModDevArtifactsWorkflow.get(project).dependencies();
60+
if (dependencies.neoFormDependency() == null) {
61+
throw new InvalidUserCodeException("You cannot retrieve the MCP version without setting it first.");
62+
}
63+
return dependencies.neoFormDependency().getVersion();
64+
}
65+
5266
public void enable(Action<LegacyForgeModdingSettings> customizer) {
5367
var plugin = project.getPlugins().getPlugin(LegacyForgeModDevPlugin.class);
5468

src/main/java/net/neoforged/moddevgradle/dsl/ModDevExtension.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public void addModdingDependenciesTo(SourceSet sourceSet) {
159159

160160
/**
161161
* After enabling modding, you can retrieve the version of the modding platform you picked using this getter.
162-
* I.e. the NeoForge or Forge version. If you chose to enable vanilla-only mode, this getter returns null.
162+
* I.e. the NeoForge or Forge version. If you chose to enable vanilla-only mode, this getter will throw.
163163
*/
164164
public String getVersion() {
165165
var dependencies = ModDevArtifactsWorkflow.get(project).dependencies();

src/main/java/net/neoforged/moddevgradle/dsl/NeoForgeExtension.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package net.neoforged.moddevgradle.dsl;
22

33
import javax.inject.Inject;
4+
import net.neoforged.moddevgradle.internal.ModDevArtifactsWorkflow;
45
import net.neoforged.moddevgradle.internal.ModDevPlugin;
56
import org.gradle.api.Action;
7+
import org.gradle.api.InvalidUserCodeException;
68
import org.gradle.api.Project;
79

810
/**
@@ -50,6 +52,19 @@ public void setNeoFormVersion(String version) {
5052
});
5153
}
5254

55+
/**
56+
* After enabling modding, you can retrieve the version of NeoForm you picked using this getter.
57+
* This is only meaningful if you have enabled vanilla-only mode or if you have overridden NeoForm for NeoForge.
58+
* This getter throws if no NeoForm version was set.
59+
*/
60+
public String getNeoFormVersion() {
61+
var dependencies = ModDevArtifactsWorkflow.get(project).dependencies();
62+
if (dependencies.neoFormDependency() == null) {
63+
throw new InvalidUserCodeException("You cannot retrieve the NeoForm version without setting it first.");
64+
}
65+
return dependencies.neoFormDependency().getVersion();
66+
}
67+
5368
public void enable(Action<ModdingVersionSettings> customizer) {
5469
var modDevPlugin = project.getPlugins().getPlugin(ModDevPlugin.class);
5570

src/test/java/net/neoforged/moddevgradle/internal/ModDevPluginTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ void testEnable() {
119119
@Test
120120
void testGetVersion() {
121121
extension.setNeoFormVersion(VERSION);
122-
assertEquals(VersionCapabilitiesInternal.ofNeoFormVersion(VERSION), extension.getVersionCapabilities());
122+
assertEquals(VERSION, extension.getNeoFormVersion());
123123
}
124124

125125
@Test

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package net.neoforged.moddevgradle.legacyforge;
22

33
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.junit.jupiter.api.Assertions.assertEquals;
45
import static org.junit.jupiter.api.Assertions.assertThrows;
56

67
import java.util.Set;
@@ -57,6 +58,12 @@ void testEnableVanillaOnlyMode() {
5758
"build/moddev/artifacts/vanilla-1.17.1-client-extra-aka-minecraft-resources.jar",
5859
"de.oceanlabs.mcp:mcp_config:1.17.1[net.neoforged:neoform-dependencies]",
5960
"build/moddev/artifacts/intermediateToNamed.zip");
61+
assertEquals("1.17.1", extension.getMcpVersion());
62+
}
63+
64+
@Test
65+
void testGetMcpVersionThrowsBeforeEnabling() {
66+
assertThrows(InvalidUserCodeException.class, extension::getMcpVersion);
6067
}
6168

6269
@Test

0 commit comments

Comments
 (0)