2121import net .minecraftforge .forgedev .tasks .patching .diff .ApplyPatches ;
2222import net .minecraftforge .forgedev .tasks .patching .diff .BakePatches ;
2323import net .minecraftforge .forgedev .tasks .patching .diff .GeneratePatches ;
24+ import net .minecraftforge .forgedev .tasks .sas .CreateFakeSASPatches ;
2425import net .minecraftforge .forgedev .tasks .srg2source .ApplyRangeMap ;
2526import net .minecraftforge .forgedev .tasks .srg2source .ExtractRangeMap ;
2627import net .minecraftforge .gradleutils .shared .Closures ;
3233import org .gradle .api .attributes .Attribute ;
3334import org .gradle .api .file .Directory ;
3435import org .gradle .api .file .DirectoryProperty ;
36+ import org .gradle .api .file .FileSystemLocationProperty ;
3537import org .gradle .api .file .ProjectLayout ;
38+ import org .gradle .api .file .RegularFileProperty ;
3639import org .gradle .api .model .ObjectFactory ;
3740import org .gradle .api .plugins .JavaPlugin ;
3841import org .gradle .api .plugins .JavaPluginExtension ;
4649import org .gradle .api .tasks .compile .JavaCompile ;
4750import org .gradle .language .base .plugins .LifecycleBasePlugin ;
4851import org .gradle .plugins .ide .eclipse .model .EclipseModel ;
52+ import org .jetbrains .annotations .Nullable ;
4953import org .jetbrains .annotations .VisibleForTesting ;
5054
5155import javax .inject .Inject ;
@@ -209,6 +213,7 @@ private void setup(ForgeDevPlugin plugin, Project project) {
209213 task .getCreate ().from (reobfJar .flatMap (LegacyReobfuscateJar ::getOutput ));
210214 task .getOutput ().convention (project .getLayout ().getBuildDirectory ().dir (task .getName ()).map (d -> d .file ("server.lzma" )));
211215 });
216+ var genBinPatchesTasks = List .of (genJoinedBinPatches , genClientBinPatches , genServerBinPatches );
212217 var genBinPatches = tasks .register ("genBinPatches" , task -> task .dependsOn (genJoinedBinPatches , genClientBinPatches , genServerBinPatches ));
213218
214219 var filterNew = tasks .register ("filterJarNew" , LegacyFilterNewJar .class , task -> task .getInput ().set (reobfJar .flatMap (LegacyReobfuscateJar ::getOutput )));
@@ -261,7 +266,6 @@ private void setup(ForgeDevPlugin plugin, Project project) {
261266 var assemble = tasks .named (LifecycleBasePlugin .ASSEMBLE_TASK_NAME , task ->
262267 task .dependsOn (universalJar , userdevJar )
263268 );
264- var release = tasks .register ("release" , task -> task .dependsOn (srgSourcesJar , universalJar , userdevJar ));
265269
266270 var sourceSetsDir = this .getObjects ().directoryProperty ().value (this .getProjectLayout ().getBuildDirectory ().dir ("sourceSets" ));
267271 var mergeSourceSets = this .problems .test ("net.minecraftforge.gradle.merge-source-sets" );
@@ -358,11 +362,24 @@ private void setup(ForgeDevPlugin plugin, Project project) {
358362 }
359363 }
360364
361- setupMCP .configure (task -> {
362- task .getSideAnnotationStripperConfig ().fileProvider (getProviders ().provider (() -> legacyPatcher .getSideAnnotationStrippers ().getSingleFile ()));
363- });
365+ if (!legacyPatcher .getSideAnnotationStrippers ().isEmpty ()) {
366+ setupMCP .configure (task -> {
367+ // TODO do this better
368+ task .getSideAnnotationStripperConfig ().fileProvider (getProviders ().provider (() -> legacyPatcher .getSideAnnotationStrippers ().getSingleFile ()));
369+ });
370+
371+ userdevConfig .configure (task -> task .getSASs ().from (legacyPatcher .getSideAnnotationStrippers ()));
372+ for (var sas : legacyPatcher .getSideAnnotationStrippers ()) {
373+ userdevJar .configure (task -> task .from (sas , copy -> copy .into ("sas/" )));
374+ }
364375
365- // TODO SAS! Used MCPFunction in FG6, I DON'T GIVE A SHIT RIGHT NOW!!!
376+ var fakePatches = tasks .register ("createFakeSASPatches" , CreateFakeSASPatches .class , task ->
377+ task .getFiles ().from (legacyPatcher .getSideAnnotationStrippers ())
378+ );
379+ for (var genBinPatchesTask : genBinPatchesTasks ) {
380+ genBinPatchesTask .configure (task -> task .getPatches ().from (fakePatches .flatMap (CreateFakeSASPatches ::getOutput )));
381+ }
382+ }
366383
367384 if (!legacyPatcher .getExtraMappings ().isEmpty ()) {
368385 for (var extraMapping : legacyPatcher .getExtraMappings ()) {
@@ -400,6 +417,13 @@ private void setup(ForgeDevPlugin plugin, Project project) {
400417 if (legacyPatcher .isSrgPatches ()) {
401418 genPatches .configure (task -> task .getModified ().set (applyRangeMapBase .flatMap (ApplyRangeMap ::getOutput )));
402419 } else {
420+ // Remap the 'clean' with out mappings.
421+ TaskProvider <LegacyApplyMappings > toMCPClean = tasks .register ("srg2mcpClean" , LegacyApplyMappings .class , task -> {
422+ task .getInput ().set (legacyPatcher .getCleanSrc ());
423+ task .getMappingsZip ().fileProvider (mappingsZipFile );
424+ task .getLambdas ().set (false );
425+ });
426+
403427 var dirtyZip = tasks .register ("patchedZip" , Zip .class , task -> {
404428 task .from (legacyPatcher .getPatchedSrc ());
405429 task .getArchiveFileName ().set ("output.zip" );
@@ -408,13 +432,11 @@ private void setup(ForgeDevPlugin plugin, Project project) {
408432
409433 // Fixup the inputs.
410434 applyPatches .configure (task -> {
411- //task.getInput().set(toMCPClean.flatMap(LegacyApplyMappings::getOutput));
412- //task.getInput().fileProvider(applyPatches.flatMap(a -> a.getInput().getAsFile()));
413- task .getArchiveBase ().set ("zip" );
435+ task .dependsOn (toMCPClean );
436+ task .getInput ().set (toMCPClean .flatMap (LegacyApplyMappings ::getOutput ));
414437 });
415438 genPatches .configure (task -> {
416- //task.getInput().set(toMCPClean.flatMap(LegacyApplyMappings::getOutput));
417- task .getInput ().fileProvider (applyPatches .flatMap (a -> a .getInput ().getAsFile ()));
439+ task .getInput ().set (toMCPClean .flatMap (LegacyApplyMappings ::getOutput ));
418440 task .getModified ().set (dirtyZip .flatMap (AbstractArchiveTask ::getArchiveFile ));
419441 });
420442
0 commit comments