1313import net .minecraftforge .forgedev .tasks .mappings .LegacyApplyMappings ;
1414import net .minecraftforge .forgedev .tasks .mappings .LegacyGenerateSRG ;
1515import net .minecraftforge .forgedev .tasks .mcp .MavenizerMCPDataTask ;
16- import net .minecraftforge .forgedev .tasks .mcp .MavenizerMCPMaven ;
16+ import net .minecraftforge .forgedev .tasks .mcp .MavenizerMCPMavenValue ;
1717import net .minecraftforge .forgedev .tasks .mcp .MavenizerMCPSetup ;
1818import net .minecraftforge .forgedev .tasks .mcp .MavenizerRawArtifact ;
19- import net .minecraftforge .forgedev .tasks .mcp .MavenizerSyncMappings ;
19+ import net .minecraftforge .forgedev .tasks .mcp .MavenizerSyncMappingsValue ;
2020import net .minecraftforge .forgedev .tasks .obfuscation .LegacyReobfuscateJar ;
2121import net .minecraftforge .forgedev .tasks .patching .binary .CreateBinPatches ;
2222import net .minecraftforge .forgedev .tasks .patching .diff .ApplyPatches ;
@@ -114,9 +114,6 @@ private void setup(ForgeDevPlugin plugin, Project project) {
114114 var downloadClientMappings = tasks .register ("downloadClientMappings" , DownloadMappings .class , task -> task .getSide ().set ("client" ));
115115 var downloadServerMappings = tasks .register ("downloadServerMappings" , DownloadMappings .class , task -> task .getSide ().set ("server" ));
116116
117- var syncMavenizer = Util .runFirst (project , tasks .register ("syncMavenizer" , MavenizerMCPMaven .class ));
118- var syncMavenizerForExtra = Util .runFirst (project , tasks .register ("syncMavenizerForExtra" , MavenizerMCPMaven .class ));
119- var syncMappingsMaven = Util .runFirst (project , tasks .register ("syncMappingsMaven" , MavenizerSyncMappings .class ));
120117 var minecraftDepsConfiguration = project .getConfigurations ().detachedConfiguration ();
121118 var mappingsConfiguration = project .getConfigurations ().detachedConfiguration ();
122119
@@ -137,8 +134,6 @@ private void setup(ForgeDevPlugin plugin, Project project) {
137134 });
138135
139136 var toMCPConfig = tasks .register ("srg2mcp" , LegacyApplyMappings .class , task -> {
140- task .dependsOn (syncMappingsMaven );
141-
142137 task .getInput ().set (applyPatches .flatMap (ApplyPatches ::getOutput ));
143138 task .getMappings ().setFrom (mappingsConfiguration );
144139 task .getLambdas ().set (false );
@@ -205,8 +200,6 @@ private void setup(ForgeDevPlugin plugin, Project project) {
205200 });
206201
207202 var reobfJar = tasks .register ("reobfJar" , LegacyReobfuscateJar .class , task -> {
208- task .dependsOn (syncMavenizer );
209-
210203 task .getInput ().set (jar .flatMap (Jar ::getArchiveFile ));
211204 task .getLibraries ().from (minecraftDepsConfiguration );
212205 task .getOutput ().convention (task .getDefaultOutputFile ());
@@ -304,31 +297,60 @@ private void setup(ForgeDevPlugin plugin, Project project) {
304297 // TODO Add mappings as a dependency to FG7???
305298 // Add mappings so that it can be used by reflection tools.
306299 // net.minecraft:mappings_CHANNEL:VERSION@zip
307- var mappingsDependency = project .getDependencies ().create (
308- "net.minecraft:mappings_%s:%s@zip" .formatted (legacyPatcher .getMappingChannel ().get (), legacyPatcher .getMappingVersion ().get ())
309- );
310- var minecraftDependency = project .getDependencies ().create (
311- "net.minecraft:joined:%s" .formatted (legacyMcp .getVersion ().get ()),
312- Closures .<ExternalModuleDependency >consumer (dependency -> {
313- dependency .attributes (a -> {
314- a .attributeProvider (OS , getProviders ().of (OSValueSource .class , spec -> { }));
315- a .attributeProvider (MAPPINGS_CHANNEL , legacyPatcher .getMappingChannel ());
316- a .attributeProvider (MAPPINGS_VERSION , legacyPatcher .getMappingVersion ());
317- });
318- })
300+ var mappingsDependency = getProviders ().zip (
301+ getProviders ().of (MavenizerSyncMappingsValue .class , spec -> spec .parameters (parameters -> {
302+ parameters .init (plugin , problems );
303+ parameters .getOutput ().set (mavenizerRepo );
304+ parameters .getVersion ().set (legacyPatcher .getMappingVersion ());
305+ })),
306+ getProviders ().zip (legacyPatcher .getMappingChannel (), legacyPatcher .getMappingVersion (), (c , v ) -> c + ':' + v ),
307+ (ret , version ) -> {
308+ return project .getDependencies ().create (
309+ "net.minecraft:mappings_%s@zip" .formatted (version )
310+ );
311+ });
312+ var minecraftDependency = getProviders ().zip (
313+ getProviders ().of (MavenizerMCPMavenValue .class , spec -> spec .parameters (parameters -> {
314+ parameters .init (plugin , problems );
315+ parameters .getOutput ().set (mavenizerRepo );
316+ parameters .getArtifact ().set (legacyMcp .getVersion ());
317+ })),
318+ legacyMcp .getVersion (),
319+ (ret , version ) -> {
320+ return project .getDependencies ().create (
321+ "net.minecraft:joined:" + version ,
322+ Closures .<ExternalModuleDependency >consumer (dependency -> {
323+ dependency .attributes (a -> {
324+ a .attributeProvider (OS , getProviders ().of (OSValueSource .class , spec -> { }));
325+ a .attributeProvider (MAPPINGS_CHANNEL , legacyPatcher .getMappingChannel ());
326+ a .attributeProvider (MAPPINGS_VERSION , legacyPatcher .getMappingVersion ());
327+ });
328+ })
329+ );
330+ }
319331 );
320- var minecraftExtraDependency = project .getDependencies ().create (
321- "net.minecraft:client-extra:%s" .formatted (legacyMcp .getVersion ().get ()),
322- Closures .<ExternalModuleDependency >consumer (dependency -> dependency .setTransitive (false ))
332+ var minecraftExtraDependency = getProviders ().zip (
333+ getProviders ().of (MavenizerMCPMavenValue .class , spec -> spec .parameters (parameters -> {
334+ parameters .init (plugin , problems );
335+ parameters .getOutput ().set (mavenizerRepo );
336+ parameters .getArtifact ().set (legacyMcp .getVersion ().map (v -> "net.minecraft:client-extra:" + v ));
337+ })),
338+ legacyMcp .getVersion (),
339+ (ret , version ) -> {
340+ return project .getDependencies ().create (
341+ "net.minecraft:client-extra:" + version ,
342+ Closures .<ExternalModuleDependency >consumer (dependency -> dependency .setTransitive (false ))
343+ );
344+ }
323345 );
324- syncMavenizer .configure (task -> task .getArtifact ().set (legacyMcp .getVersion ()));
325- syncMavenizerForExtra .configure (task -> task .getArtifact ().set (legacyMcp .getVersion ().map (v -> "net.minecraft:client-extra:" + v )));
326- syncMappingsMaven .configure (task -> task .getVersion ().set (legacyPatcher .getMappingVersion ()));
327- project .getDependencies ().add (JavaPlugin .IMPLEMENTATION_CONFIGURATION_NAME , minecraftDependency );
328- project .getDependencies ().add (JavaPlugin .IMPLEMENTATION_CONFIGURATION_NAME , minecraftExtraDependency );
329- project .getDependencies ().add (JavaPlugin .IMPLEMENTATION_CONFIGURATION_NAME , mappingsDependency );
330- minecraftDepsConfiguration .withDependencies (d -> d .add (minecraftDependency ));
331- mappingsConfiguration .withDependencies (d -> d .add (mappingsDependency ));
346+ // syncMavenizer.configure(task -> task.getArtifact().set(legacyMcp.getVersion()));
347+ // syncMavenizerForExtra.configure(task -> task.getArtifact().set(legacyMcp.getVersion().map(v -> "net.minecraft:client-extra:" + v)));
348+ // syncMappingsMaven.configure(task -> task.getVersion().set(legacyPatcher.getMappingVersion()));
349+ project .getDependencies ().addProvider (JavaPlugin .IMPLEMENTATION_CONFIGURATION_NAME , minecraftDependency );
350+ project .getDependencies ().addProvider (JavaPlugin .IMPLEMENTATION_CONFIGURATION_NAME , minecraftExtraDependency );
351+ project .getDependencies ().addProvider (JavaPlugin .IMPLEMENTATION_CONFIGURATION_NAME , mappingsDependency );
352+ minecraftDepsConfiguration .withDependencies (d -> d .addLater (minecraftDependency ));
353+ mappingsConfiguration .withDependencies (d -> d .addLater (mappingsDependency ));
332354
333355 // Add the patched source as a source dir during afterEvaluate, to not be overwritten by buildscripts
334356 main .configure (s -> s .getJava ().srcDir (legacyPatcher .getPatchedSrc ()));
@@ -365,8 +387,6 @@ private void setup(ForgeDevPlugin plugin, Project project) {
365387 //filterNew.configure(task -> task.getBlacklist().from(jar.flatMap(AbstractArchiveTask::getArchiveFile)));
366388
367389 tasks .withType (LegacyGenerateSRG .class , task -> {
368- task .dependsOn (syncMappingsMaven );
369-
370390 task .getMappings ().setFrom (mappingsConfiguration );
371391 });
372392
@@ -455,8 +475,6 @@ private void setup(ForgeDevPlugin plugin, Project project) {
455475 } else {
456476 // Remap the 'clean' with out mappings.
457477 TaskProvider <LegacyApplyMappings > toMCPClean = tasks .register ("srg2mcpClean" , LegacyApplyMappings .class , task -> {
458- task .dependsOn (syncMappingsMaven );
459-
460478 task .getInput ().set (legacyPatcher .getCleanSrc ());
461479 task .getMappings ().setFrom (mappingsConfiguration );
462480 task .getLambdas ().set (false );
0 commit comments