Skip to content

Commit 33a88fa

Browse files
committed
Declare each individual setup file as an output
1 parent 38e409f commit 33a88fa

File tree

3 files changed

+64
-6
lines changed

3 files changed

+64
-6
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ private Constants() { }
1212
static final String MAVEN_CENTRAL = "https://repo1.maven.org/maven2/";
1313

1414
static final String MAVENIZER_NAME = "mavenizer";
15-
static final String MAVENIZER_VERSION = "0.3.15";
15+
static final String MAVENIZER_VERSION = "0.4.1";
1616
static final String MAVENIZER_DL_URL = FORGE_MAVEN + "net/minecraftforge/minecraft-mavenizer/" + MAVENIZER_VERSION + "/minecraft-mavenizer-" + MAVENIZER_VERSION + ".jar";
1717
static final String MAVENIZER_MAIN = "net.minecraftforge.mcmaven.cli.Main";
18-
static final int MAVENIZER_JAVA = 21;
18+
static final int MAVENIZER_JAVA = 25;
1919

2020
static final String DIFFPATCH_NAME = "diffpatch";
2121
static final String DIFFPATCH_VERSION = "2.0.1.39";
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package net.minecraftforge.forgedev.tasks.mcp;
2+
3+
public class MCPSetupFiles {
4+
public String versionManifest;
5+
public String versionJson;
6+
public String clientRaw;
7+
public String clientMappings;
8+
public String serverRaw;
9+
public String serverExtracted;
10+
public String serverMappings;
11+
public String librariesList;
12+
public String joinedSrgMappings;
13+
}

src/main/groovy/net/minecraftforge/forgedev/tasks/mcp/MavenizerMCPSetup.groovy

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,17 @@ package net.minecraftforge.forgedev.tasks.mcp
66

77
import groovy.transform.CompileStatic
88
import net.minecraftforge.forgedev.ForgeDevTask
9+
import net.minecraftforge.util.data.json.JsonData
910
import org.gradle.api.file.ProjectLayout
1011
import org.gradle.api.file.RegularFileProperty
1112
import org.gradle.api.problems.Problems
1213
import org.gradle.api.provider.Property
1314
import org.gradle.api.tasks.Input
1415
import org.gradle.api.tasks.InputFile
1516
import org.gradle.api.tasks.Optional
17+
import org.gradle.api.tasks.OutputFile
18+
import org.gradle.api.tasks.TaskAction
19+
import org.gradle.process.ExecResult
1620

1721
import javax.inject.Inject
1822

@@ -22,8 +26,30 @@ abstract class MavenizerMCPSetup extends MavenizerMCPTask {
2226
abstract @InputFile @Optional RegularFileProperty getSideAnnotationStripperConfig()
2327
abstract @Input @Optional Property<String> getParchment()
2428

29+
protected abstract @OutputFile RegularFileProperty getSetupFiles();
30+
31+
abstract @OutputFile RegularFileProperty getVersionManifest()
32+
abstract @OutputFile RegularFileProperty getVersionJson()
33+
abstract @OutputFile RegularFileProperty getClientRaw()
34+
abstract @OutputFile RegularFileProperty getClientMappings()
35+
abstract @OutputFile RegularFileProperty getServerRaw()
36+
abstract @OutputFile RegularFileProperty getServerExtracted()
37+
abstract @OutputFile RegularFileProperty getServerMappings()
38+
abstract @OutputFile RegularFileProperty getLibrariesList()
39+
2540
@Inject
26-
MavenizerMCPSetup() {}
41+
MavenizerMCPSetup() {
42+
setupFiles.convention(this.defaultOutputDirectory.map { it.file('setup_files.json') })
43+
44+
versionManifest.convention(this.defaultOutputDirectory.map { it.file('manifest.json') })
45+
versionJson.convention(this.defaultOutputDirectory.map { it.file('version.json') })
46+
clientRaw.convention(this.defaultOutputDirectory.map { it.file('client.jar') })
47+
clientMappings.convention(this.defaultOutputDirectory.map { it.file('client_mappings.txt') })
48+
serverRaw.convention(this.defaultOutputDirectory.map { it.file('server_bundled.jar') })
49+
serverExtracted.convention(this.defaultOutputDirectory.map { it.file('server.jar') })
50+
serverMappings.convention(this.defaultOutputDirectory.map { it.file('server_mappings.txt') })
51+
librariesList.convention(this.defaultOutputDirectory.map { it.file('libraries.txt') })
52+
}
2753

2854
@Override
2955
protected void addArguments() {
@@ -32,10 +58,29 @@ abstract class MavenizerMCPSetup extends MavenizerMCPTask {
3258
this.args('--mappings')
3359

3460
if (this.accessTransformerConfig.present)
35-
this.args('--at', this.accessTransformerConfig.get())
61+
this.args('--at', this.accessTransformerConfig)
3662
if (this.sideAnnotationStripperConfig.present)
37-
this.args('--sas', this.sideAnnotationStripperConfig.get())
63+
this.args('--sas', this.sideAnnotationStripperConfig)
3864
if (this.parchment.present)
39-
this.args('--parchment', this.parchment.get())
65+
this.args('--parchment', this.parchment)
66+
67+
this.args('--output-files', this.setupFiles)
68+
}
69+
70+
@Override
71+
protected ExecResult exec() {
72+
var result = super.exec()
73+
74+
var setupFiles = JsonData.fromJson(this.setupFiles.asFile.get(), MCPSetupFiles)
75+
versionManifest.asFile.get().bytes = new File(setupFiles.versionManifest).bytes
76+
versionJson.asFile.get().bytes = new File(setupFiles.versionJson).bytes
77+
clientRaw.asFile.get().bytes = new File(setupFiles.clientRaw).bytes
78+
clientMappings.asFile.get().bytes = new File(setupFiles.clientMappings).bytes
79+
serverRaw.asFile.get().bytes = new File(setupFiles.serverRaw).bytes
80+
serverExtracted.asFile.get().bytes = new File(setupFiles.serverExtracted).bytes
81+
serverMappings.asFile.get().bytes = new File(setupFiles.serverMappings).bytes
82+
librariesList.asFile.get().bytes = new File(setupFiles.librariesList).bytes
83+
84+
return result
4085
}
4186
}

0 commit comments

Comments
 (0)