Skip to content

Commit c12ef55

Browse files
committed
Added mappings argument for MavenTask
This effectively deprecates the parchment argument. Mappings are formatted as channel:version, defaulting to just channel if no version is specified (i.e. notch, official:1.21.5). MavenTask uses "official" by default.
1 parent 5189169 commit c12ef55

File tree

6 files changed

+45
-34
lines changed

6 files changed

+45
-34
lines changed

src/main/java/net/minecraftforge/mcmaven/cli/MCPTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public static void run(String[] args) throws Exception {
4747
"Directory to store jdks downloaded from the disoco api")
4848
.withRequiredArg().ofType(File.class).defaultsTo(new File("cache/jdks"));
4949

50-
// root output directory
50+
// mcp artifact output
5151
var outputO = parser.accepts("output",
5252
"Root directory to generate the maven repository")
5353
.withRequiredArg().ofType(File.class).defaultsTo(new File("output.jar"));

src/main/java/net/minecraftforge/mcmaven/cli/MavenTask.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ static void run(String[] args) throws Exception {
6666
var cacheOnlyO = parser.accepts("cache-only",
6767
"Only use caches, fail if any downloads need to occur or if a task needs to do work");
6868

69+
var mappingsO = parser.accepts("mappings",
70+
"Mappings to use for this artifact. Formatted as channel:version")
71+
.withRequiredArg().ofType(String.class).defaultsTo("official");
72+
6973
var parchmentO = parser.accepts("parchment",
7074
"Version of parchment mappings to use, snapshots are not supported")
7175
.withRequiredArg();
@@ -131,7 +135,7 @@ static void run(String[] args) throws Exception {
131135

132136
var mappings = options.has(parchmentO)
133137
? new ParchmentMappings(options.valueOf(parchmentO))
134-
: new Mappings("official", null);
138+
: Mappings.of(options.valueOf(mappingsO));
135139

136140
var mcmaven = new MinecraftMaven(output, cache, jdkCache, mappings);
137141
mcmaven.run(artifact);

src/main/java/net/minecraftforge/mcmaven/impl/mappings/Mappings.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,16 @@ public class Mappings {
2828
private final String channel;
2929
private final @Nullable String version;
3030

31+
public static Mappings of(String mappingsNotation) {
32+
var split = mappingsNotation.split(":", 2);
33+
var channel = split[0];
34+
var version = split.length > 1 ? split[1] : null;
35+
36+
return "parchment".equalsIgnoreCase(channel)
37+
? new ParchmentMappings(version)
38+
: new Mappings(channel, version);
39+
}
40+
3141
public Mappings(String channel, @Nullable String version) {
3242
this.channel = channel;
3343
this.version = version;

src/main/java/net/minecraftforge/mcmaven/impl/mappings/ParchmentMappings.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.ArrayList;
1313
import java.util.List;
1414
import java.util.Map;
15+
import java.util.Objects;
1516
import java.util.Set;
1617
import java.util.TreeMap;
1718
import java.util.function.Function;
@@ -32,12 +33,13 @@
3233
import net.minecraftforge.srgutils.IMappingFile;
3334
import net.minecraftforge.util.file.FileUtils;
3435
import net.minecraftforge.util.hash.HashStore;
36+
import org.jetbrains.annotations.Nullable;
3537

3638
public class ParchmentMappings extends Mappings {
3739
private Task downloadTask;
3840

3941
public ParchmentMappings(String version) {
40-
super("parchment", version);
42+
super("parchment", Objects.requireNonNull(version, "Parchment mappings version must be present"));
4143
if (version.contains("-SNAPSHOT"))
4244
throw new IllegalArgumentException("Parchment snapshots are not supported: " + version);
4345
}

src/main/java/net/minecraftforge/mcmaven/impl/repo/Repo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ protected static Task variantTask(Task parent, Supplier<GradleModule.Variant[]>
8888
});
8989
}
9090

91-
protected Supplier<GradleModule.Variant[]> classVariant(String name, Mappings mappings) {
91+
protected Supplier<GradleModule.Variant[]> simpleVariant(String name, Mappings mappings) {
9292
return () -> new GradleModule.Variant[] {
9393
GradleModule.Variant
9494
.of(name)

src/main/java/net/minecraftforge/mcmaven/impl/repo/mcpconfig/MCPConfigRepo.java

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import net.minecraftforge.mcmaven.impl.util.Util;
1717
import net.minecraftforge.util.file.FileUtils;
1818
import net.minecraftforge.util.hash.HashStore;
19-
import org.jetbrains.annotations.Nullable;
2019

2120
import javax.xml.parsers.ParserConfigurationException;
2221
import javax.xml.transform.TransformerException;
@@ -86,12 +85,8 @@ public MinecraftTasks getMCTasks(String version) {
8685
return this.mcTasks.computeIfAbsent(version, k -> new MinecraftTasks(this.cache.root(), version));
8786
}
8887

89-
public List<PendingArtifact> process(Artifact artifact) {
90-
return this.process(artifact, null);
91-
}
92-
9388
@Override
94-
public List<PendingArtifact> process(Artifact artifact, @Nullable Mappings mappings) {
89+
public List<PendingArtifact> process(Artifact artifact, Mappings mappings) {
9590
var module = artifact.getGroup() + ':' + artifact.getName();
9691
var version = artifact.getVersion();
9792
if (!module.startsWith("net.minecraft:"))
@@ -105,31 +100,31 @@ public List<PendingArtifact> process(Artifact artifact, @Nullable Mappings mappi
105100
var build = mcpSide.getBuildFolder();
106101
var name = Artifact.from("net.minecraft", side, version);
107102

108-
var notchObf = pending("Notch-obf Classes", mcpTasks.getRawJar(), name.withClassifier("raw"), classVariant("obf-notch", new Mappings("notch", null)));
109-
var srgObf = pending("SRG-obf Classes", mcpTasks.getSrgJar(), name.withClassifier("srg"), classVariant("obf-searge", new Mappings("searge", null)));
110-
var pending = new ArrayList<>(List.of(
111-
notchObf, srgObf
112-
));
113-
114-
if (mappings != null) {
115-
var sourcesTask = new RenameTask(build, name, mcpSide, mcpSide.getSources(), mappings);
116-
var recompile = new RecompileTask(build, name, mcpSide.getMCP(), mcpSide::getClasspath, sourcesTask.get(), mappings);
117-
var classesTask = mergeExtra(build, side, recompile.get(), mcpSide.getTasks().getExtra(), mappings);
118-
119-
var sources = pending("Sources", sourcesTask.get(), name.withClassifier("sources"), sourceVariant(mappings));
120-
var classes = pending("Classes", classesTask, name, () -> classVariants(mappings, mcpSide));
121-
var metadata = pending("Metadata", metadata(build, mcpSide), name.withClassifier("metadata").withExtension("zip"));
122-
pending.addAll(List.of(
123-
sources, classes, metadata
124-
));
125-
126-
if (mappings.isPrimary()) {
127-
var pom = pending("Maven POM", pom(build, side, mcpSide, version), name.withExtension("pom"));
128-
pending.add(pom);
129-
}
130-
}
103+
return switch (mappings.channel()) {
104+
case "notch" -> List.of(pending("Classes", mcpTasks.getRawJar(), name.withClassifier("raw"), simpleVariant("obf-notch", new Mappings("notch", null))));
105+
case "srg", "searge" -> List.of(pending("Classes", mcpTasks.getSrgJar(), name.withClassifier("srg"), simpleVariant("obf-searge", new Mappings("searge", null))));
106+
default -> {
107+
var pending = new ArrayList<PendingArtifact>();
108+
109+
var sourcesTask = new RenameTask(build, name, mcpSide, mcpSide.getSources(), mappings);
110+
var recompile = new RecompileTask(build, name, mcpSide.getMCP(), mcpSide::getClasspath, sourcesTask.get(), mappings);
111+
var classesTask = mergeExtra(build, side, recompile.get(), mcpSide.getTasks().getExtra(), mappings);
112+
113+
var sources = pending("Sources", sourcesTask.get(), name.withClassifier("sources"), sourceVariant(mappings));
114+
var classes = pending("Classes", classesTask, name, () -> classVariants(mappings, mcpSide));
115+
var metadata = pending("Metadata", metadata(build, mcpSide), name.withClassifier("metadata").withExtension("zip"));
116+
pending.addAll(List.of(
117+
sources, classes, metadata
118+
));
119+
120+
if (mappings.isPrimary()) {
121+
var pom = pending("Maven POM", pom(build, side, mcpSide, version), name.withExtension("pom"));
122+
pending.add(pom);
123+
}
131124

132-
return pending;
125+
yield pending;
126+
}
127+
};
133128
}
134129

135130
public List<PendingArtifact> processExtra(String module, String version) {

0 commit comments

Comments
 (0)