|
11 | 11 | import net.minecraftforge.forgedev.tasks.mappings.LegacyApplyMappings; |
12 | 12 | import net.minecraftforge.forgedev.tasks.mappings.LegacyGenerateSRG; |
13 | 13 | import net.minecraftforge.forgedev.tasks.mcp.MavenizerMCPDataTask; |
| 14 | +import net.minecraftforge.forgedev.tasks.mcp.MavenizerMCPMaven; |
14 | 15 | import net.minecraftforge.forgedev.tasks.mcp.MavenizerMCPSetup; |
15 | 16 | import net.minecraftforge.forgedev.tasks.mcp.MavenizerRawArtifact; |
16 | 17 | import net.minecraftforge.forgedev.tasks.mcp.MavenizerSyncMappings; |
|
21 | 22 | import net.minecraftforge.forgedev.tasks.patching.diff.GeneratePatches; |
22 | 23 | import net.minecraftforge.forgedev.tasks.srg2source.ApplyRangeMap; |
23 | 24 | import net.minecraftforge.forgedev.tasks.srg2source.ExtractRangeMap; |
| 25 | +import net.minecraftforge.gradleutils.shared.Closures; |
24 | 26 | import org.gradle.api.Action; |
25 | 27 | import org.gradle.api.Project; |
| 28 | +import org.gradle.api.artifacts.ExternalModuleDependency; |
26 | 29 | import org.gradle.api.artifacts.repositories.MavenArtifactRepository; |
| 30 | +import org.gradle.api.attributes.Attribute; |
27 | 31 | import org.gradle.api.file.Directory; |
28 | 32 | import org.gradle.api.file.DirectoryProperty; |
29 | 33 | import org.gradle.api.model.ObjectFactory; |
|
50 | 54 | public abstract class ForgeDevExtension { |
51 | 55 | public static final String NAME = "forgedev"; |
52 | 56 |
|
| 57 | + private static final Attribute<String> OS = Attribute.of("net.minecraftforge.native.operatingSystem", String.class); |
| 58 | + private static final Attribute<String> MAPPINGS_CHANNEL = Attribute.of("net.minecraftforge.mappings.channel", String.class); |
| 59 | + private static final Attribute<String> MAPPINGS_VERSION = Attribute.of("net.minecraftforge.mappings.version", String.class); |
| 60 | + |
53 | 61 | private final ForgeDevProblems problems = this.getObjects().newInstance(ForgeDevProblems.class); |
54 | 62 |
|
55 | 63 | private final DirectoryProperty mavenizerRepo = this.getObjects().directoryProperty(); |
@@ -92,7 +100,9 @@ private void setup(ForgeDevPlugin plugin, Project project) { |
92 | 100 | // TODO STOP DOING THAT SHIT |
93 | 101 | var setupMCP = tasks.register("setupMCP", MavenizerMCPSetup.class); |
94 | 102 |
|
| 103 | + var syncMavenizer = tasks.register("syncMavenizer", MavenizerMCPMaven.class); |
95 | 104 | var syncMappingsMaven = tasks.register("syncMappingsMaven", MavenizerSyncMappings.class); |
| 105 | + Util.runFirst(project, syncMavenizer); |
96 | 106 | Util.runFirst(project, syncMappingsMaven); |
97 | 107 | var mappingsConfiguration = project.getConfigurations().detachedConfiguration(); |
98 | 108 | var mappingsZipFile = this.getProviders().provider(mappingsConfiguration::getSingleFile); |
@@ -237,12 +247,25 @@ private void setup(ForgeDevPlugin plugin, Project project) { |
237 | 247 | var release = tasks.register("release", task -> task.dependsOn(srgSourcesJar, universalJar, userdevJar)); |
238 | 248 |
|
239 | 249 | project.afterEvaluate(p -> { |
| 250 | + // TODO Add mappings as a dependency to FG7??? |
240 | 251 | // Add mappings so that it can be used by reflection tools. |
241 | 252 | // net.minecraft:mappings_CHANNEL:VERSION@zip |
242 | 253 | var mappingsDependency = project.getDependencies().create( |
243 | 254 | "net.minecraft:mappings_%s:%s@zip".formatted(legacyPatcher.getMappingChannel().get(), legacyPatcher.getMappingVersion().get()) |
244 | 255 | ); |
| 256 | + var minecraftDependency = project.getDependencies().create( |
| 257 | + "net.minecraft:joined:%s".formatted(legacyMcp.getVersion().get()), |
| 258 | + Closures.<ExternalModuleDependency>consumer(dependency -> { |
| 259 | + dependency.attributes(a -> { |
| 260 | + a.attributeProvider(OS, getProviders().of(OSValueSource.class, spec -> {})); |
| 261 | + a.attributeProvider(MAPPINGS_CHANNEL, legacyPatcher.getMappingChannel()); |
| 262 | + a.attributeProvider(MAPPINGS_VERSION, legacyPatcher.getMappingVersion()); |
| 263 | + }); |
| 264 | + }) |
| 265 | + ); |
| 266 | + syncMavenizer.configure(task -> task.getArtifact().set(legacyMcp.getVersion())); |
245 | 267 | syncMappingsMaven.configure(task -> task.getVersion().set(legacyPatcher.getMappingVersion())); |
| 268 | + project.getDependencies().add(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, minecraftDependency); |
246 | 269 | project.getDependencies().add(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, mappingsDependency); |
247 | 270 | mappingsConfiguration.withDependencies(d -> d.add(mappingsDependency)); |
248 | 271 |
|
|
0 commit comments