@@ -7,6 +7,7 @@ package net.minecraftforge.gradle
77import groovy.transform.CompileStatic
88import groovy.transform.NamedVariant
99import groovy.transform.PackageScope
10+ import groovy.transform.PackageScopeTarget
1011import groovy.transform.stc.ClosureParams
1112import groovy.transform.stc.SimpleType
1213import net.minecraftforge.accesstransformers.gradle.AccessTransformersContainer
@@ -28,33 +29,32 @@ import org.jetbrains.annotations.Nullable
2829import java.util.function.Supplier
2930
3031@CompileStatic
31- @PackageScope final class MinecraftDependencyImpl implements MinecraftDependencyInternal {
32+ @PackageScope ([PackageScopeTarget . CLASS , PackageScopeTarget . CONSTRUCTORS ])
33+ final class MinecraftDependencyImpl implements MinecraftDependencyInternal {
3234 private static final String AT_COUNT_NAME = ' fg_minecraft_atcontainers'
3335
3436 final ExternalModuleDependency delegate
3537
3638 private final Project project
3739 private final ForgeGradleProblems problems
3840 private final ObjectFactory objects
41+ private final ProviderFactory providers
3942
4043 private final Property<MinecraftExtension.Mappings > mappingsProp
4144
4245 private final Util.ActionableLazy < AccessTransformersContainer > atContainer
4346
44- MinecraftDependencyImpl (Dependency dependency , Project project , Problems problems , ObjectFactory objects , ProviderFactory providers ) {
45- this (dependency, project, new ForgeGradleProblems ( problems, providers), objects )
47+ MinecraftDependencyImpl (Dependency dependency , Project project , ForgeGradleProblems problems , ObjectFactory objects , ProviderFactory providers ) {
48+ this (dependency, project, problems, objects, providers, ( Util.ActionableLazy < AccessTransformersContainer > ) null )
4649 }
4750
48- MinecraftDependencyImpl (Dependency dependency , Project project , ForgeGradleProblems problems , ObjectFactory objects ) {
49- this (dependency, project, problems, objects, (Util.ActionableLazy < AccessTransformersContainer > ) null )
50- }
51-
52- MinecraftDependencyImpl (Dependency dependency , Project project , ForgeGradleProblems problems , ObjectFactory objects , @Nullable Util.ActionableLazy <AccessTransformersContainer > atContainer ) {
51+ MinecraftDependencyImpl (Dependency dependency , Project project , ForgeGradleProblems problems , ObjectFactory objects , ProviderFactory providers , @Nullable Util.ActionableLazy <AccessTransformersContainer > atContainer ) {
5352 this . delegate = validateDependency(dependency, problems)
5453
5554 this . project = project
5655 this . problems = problems
5756 this . objects = objects
57+ this . providers = providers
5858
5959 this . mappingsProp = objects. property(MinecraftExtension.Mappings )
6060
@@ -92,12 +92,14 @@ import java.util.function.Supplier
9292 }
9393
9494 @PackageScope void finish (Supplier<MinecraftExtension.Mappings > defaultMappings , Util.ActionableLazy <AccessTransformersContainer > defaultATs ) {
95- var mappings = this . mappingsProp. tap { finalizeValue() }. getOrElse(defaultMappings . get() )
95+ var mappings = this . mappingsProp. convention( this . providers . provider { defaultMappings . get() }) . tap { finalizeValue() } . get()
9696
9797 this . project. configurations. forEach { configuration ->
9898 if (! configuration. canBeDeclared) return
9999
100- configuration. dependencyConstraints. add(this . project. dependencies. constraints. create(this . delegate) { constraint ->
100+ configuration. dependencyConstraints. add(this . project. dependencies. constraints. create(this . delegate. module. toString()) { constraint ->
101+ constraint. because(' Accounts for mappings used and natives variants' )
102+
101103 constraint. attributes { attributes ->
102104 attributes. attribute(MinecraftExtension.Attributes . os, objects. named(OperatingSystemFamily , OperatingSystem . current(). familyName))
103105 attributes. attribute(MinecraftExtension.Attributes . mappingsChannel, mappings. channel())
@@ -159,6 +161,6 @@ import java.util.function.Supplier
159161
160162 @Override
161163 MinecraftDependency copy () {
162- new MinecraftDependencyImpl (this . delegate. copy(), this . project, this . problems, this . objects, this . atContainer. copy())
164+ new MinecraftDependencyImpl (this . delegate. copy(), this . project, this . problems, this . objects, this . providers, this . atContainer. copy())
163165 }
164166}
0 commit comments