@@ -6,13 +6,17 @@ package net.minecraftforge.forgedev.tasks.mcp
66
77import groovy.transform.CompileStatic
88import net.minecraftforge.forgedev.ForgeDevTask
9+ import net.minecraftforge.util.data.json.JsonData
910import org.gradle.api.file.ProjectLayout
1011import org.gradle.api.file.RegularFileProperty
1112import org.gradle.api.problems.Problems
1213import org.gradle.api.provider.Property
1314import org.gradle.api.tasks.Input
1415import org.gradle.api.tasks.InputFile
1516import 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
1721import 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