Skip to content

Commit ad44008

Browse files
RealMangorageJonathing
authored andcommitted
Add preliminary parchment support (#969)
1 parent b737e1c commit ad44008

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

src/main/groovy/net/minecraftforge/gradle/Constants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ final class Constants {
1313

1414
static final String FORGE_MAVEN = "https://maven.minecraftforge.net/";
1515

16-
static final String MCMAVEN_VERSION = "0.3.1";
16+
static final String MCMAVEN_VERSION = "0.3.2";
1717
static final String MCMAVEN_DL_URL = "https://maven.minecraftforge.net/net/minecraftforge/minecraft-mavenizer/" + MCMAVEN_VERSION + "/minecraft-mavenizer-" + MCMAVEN_VERSION + ".jar";
1818
static final String MCMAVEN_MAIN = "net.minecraftforge.mcmaven.cli.Main";
1919
static final int MCMAVEN_JAVA_VERSION = 21;

src/main/groovy/net/minecraftforge/gradle/SyncMinecraftMaven.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import javax.inject.Inject;
3434
import java.io.File;
3535
import java.io.Serializable;
36+
import java.util.ArrayList;
3637
import java.util.Collection;
3738
import java.util.List;
3839
import java.util.Objects;
@@ -49,7 +50,7 @@ abstract class SyncMinecraftMaven extends DefaultTask implements ForgeGradleTask
4950
/** The name of the task that is used to sync the Minecraft Maven. */
5051
static final String NAME = "syncMinecraftMaven";
5152

52-
static TaskProvider<SyncMinecraftMaven> register(Project project, Collection<? extends ModuleVersionSelector> requests) {
53+
static TaskProvider<SyncMinecraftMaven> register(Project project, Collection<? extends MinecraftDependency> requests) {
5354
return Util.runFirst(project, project.getTasks().register(NAME,
5455
SyncMinecraftMaven.class,
5556
task -> task.getRequests().addAll(Request.collect(requests))
@@ -105,14 +106,20 @@ private void exec(Request request) {
105106
}
106107

107108
private List<String> argsFor(Request request) {
108-
return List.of(
109+
var args = new ArrayList<String>();
110+
args.addAll(List.of(
109111
"--maven",
110112
"--cache", this.getCaches().get().getAsFile().getAbsolutePath(),
111113
"--output", this.getOutput().get().getAsFile().getAbsolutePath(),
112114
"--jdk-cache", this.getCaches().dir("jdks").get().getAsFile().getAbsolutePath(),
113115
"--artifact", request.module,
114116
"--version", request.version
115-
);
117+
));
118+
if ("parchment".equals(request.mappings.channel())) {
119+
args.add("--parchment");
120+
args.add(request.mappings.version());
121+
}
122+
return args;
116123
}
117124

118125
// JavaExec
@@ -125,15 +132,16 @@ private List<String> argsFor(Request request) {
125132
protected abstract @InputDirectory DirectoryProperty getOutput();
126133
protected abstract @Input @Optional SetProperty<Request> getRequests();
127134

128-
public record Request(String module, String version) implements Serializable {
129-
public Request(ModuleVersionSelector module) {
135+
public record Request(String module, String version, MinecraftExtension.Mappings mappings) implements Serializable {
136+
public Request(MinecraftDependency module) {
130137
this(
131138
"%s:%s".formatted(module.getGroup(), module.getName()),
132-
Objects.requireNonNull(module.getVersion(), "Minecraft artifact must have a version")
139+
Objects.requireNonNull(module.getVersion(), "Minecraft artifact must have a version"),
140+
Objects.requireNonNull(module.getMappings(), "Minecraft dependencies are not finished")
133141
);
134142
}
135143

136-
private static Set<Request> collect(Collection<? extends ModuleVersionSelector> requests) {
144+
private static Set<Request> collect(Collection<? extends MinecraftDependency> requests) {
137145
return requests.stream().map(Request::new).collect(Collectors.toSet());
138146
}
139147
}

0 commit comments

Comments
 (0)