@@ -12,6 +12,7 @@ import groovy.transform.PackageScopeTarget
1212import groovy.transform.stc.ClosureParams
1313import groovy.transform.stc.SimpleType
1414import net.minecraftforge.accesstransformers.gradle.AccessTransformersContainer
15+ import net.minecraftforge.accesstransformers.gradle.AccessTransformersExtension
1516import net.minecraftforge.util.data.json.JsonData
1617import net.minecraftforge.util.data.json.RunConfig
1718import org.gradle.api.NamedDomainObjectContainer
@@ -31,6 +32,7 @@ import org.gradle.api.flow.FlowScope
3132import org.gradle.api.initialization.Settings
3233import org.gradle.api.model.ObjectFactory
3334import org.gradle.api.plugins.ExtensionAware
35+ import org.gradle.api.plugins.PluginAware
3436import org.gradle.api.provider.MapProperty
3537import org.gradle.api.provider.Property
3638import org.gradle.api.provider.Provider
@@ -46,22 +48,18 @@ import java.util.concurrent.Callable
4648 private static final String EXT_MAVEN_REPOS = ' fg_mc_maven_repos'
4749 private static final String EXT_MAPPINGS = ' fg_mc_mappings'
4850
49- private final ForgeGradleProblems problems
51+ private final ForgeGradlePlugin plugin
5052 private final ObjectFactory objects
5153
52- // Caches
53- private final DirectoryProperty globalCaches
54-
5554 // MCMaven
5655 private final DirectoryProperty output
5756
5857 // Dependencies
5958 private final Property<Mappings > mappingsProp
6059
61- @PackageScope static void register (
62- ExtensionAware target ,
63- DirectoryProperty globalCaches ,
64- ForgeGradleProblems problems ,
60+ @PackageScope static <T extends ExtensionAware & PluginAware > void register (
61+ T target ,
62+ ForgeGradlePlugin plugin ,
6563 Callable<? extends FlowScope > flowScope ,
6664 Callable<? extends FlowProviders > flowProviders ,
6765 Callable<? extends ObjectFactory > objects ,
@@ -70,7 +68,7 @@ import java.util.concurrent.Callable
7068 Callable<? extends FileSystemOperations > fileSystemOperations ,
7169 Callable<? extends ArchiveOperations > archiveOperations
7270 ) {
73- final minecraft = new MinecraftExtensionImpl (globalCaches, problems , objects. call())
71+ final minecraft = new MinecraftExtensionImpl (plugin , objects. call())
7472
7573 if (target instanceof Project ) {
7674 target. extensions. add(MinecraftExtension.ForProject , MinecraftExtension . NAME , minecraft. forProject(target, flowScope. call(), flowProviders. call(), layout. call(), providers. call(), fileSystemOperations. call(), archiveOperations. call()))
@@ -81,17 +79,19 @@ import java.util.concurrent.Callable
8179 }
8280 }
8381
84- private MinecraftExtensionImpl (DirectoryProperty globalCaches , ForgeGradleProblems problems , ObjectFactory objects ) {
85- this . problems = problems
82+ private MinecraftExtensionImpl (ForgeGradlePlugin plugin , ObjectFactory objects ) {
83+ this . plugin = plugin
8684 this . objects = objects
8785
88- this . globalCaches = globalCaches
89-
90- this . output = objects. directoryProperty(). convention(this . globalCaches. dir(' mc-maven/output' ). map(problems. ensureDirectory()))
86+ this . output = objects. directoryProperty(). convention(plugin. globalCaches. dir(' mc-maven/output' ). map(problems. ensureDirectory()))
9187
9288 this . mappingsProp = objects. property(Mappings )
9389 }
9490
91+ @PackageScope ForgeGradleProblems getProblems () {
92+ this . plugin. enhancedProblems
93+ }
94+
9595 private MinecraftExtension forSettings (Settings target ) {
9696 target. gradle. settingsEvaluated { Settings settings ->
9797 if (settings != = target) return
@@ -167,7 +167,7 @@ import java.util.concurrent.Callable
167167 final NamedDomainObjectContainer<SlimeLauncherOptions > runs
168168 private final MapProperty<String , RunConfig > configs
169169
170- private final Lazy.Actionable < AccessTransformersContainer > atContainer = Lazy.Actionable . of {
170+ private final Util.ActionableLazy < AccessTransformersContainer > atContainer = Util . lazy {
171171 this . project. pluginManager. apply(' net.minecraftforge.accesstransformers' )
172172 AccessTransformersContainer . register(this . project, Attribute . of(' net.minecraftforge.gradle.accesstransformed' , Boolean )) { }
173173 }
@@ -219,7 +219,7 @@ import java.util.concurrent.Callable
219219 it. attributes(this . &applyAttributes)
220220 }
221221
222- SyncMinecraftMaven . register(project, MinecraftExtensionImpl . this . globalCaches, this . minecraft)
222+ SyncMinecraftMaven . register(project, this . minecraft)
223223
224224 var repositories = project. extensions. extraProperties. has(EXT_MAVEN_REPOS )
225225 ? new AppliedRepos (project. extensions. extraProperties. get(EXT_MAVEN_REPOS ) as List<? extends MavenArtifactRepository > )
@@ -234,7 +234,7 @@ import java.util.concurrent.Callable
234234 if (! repositories. mclibs)
235235 MinecraftExtensionImpl . this . problems. reportMcLibsMavenNotDeclared()
236236
237- var cacheDir = MinecraftExtensionImpl . this . globalCaches. dir(" slime-launcher/cache/${ this.minecraft.group.replace('.', '/')} /${ this.minecraft.name} /${ this.minecraft.version} " ). map(MinecraftExtensionImpl . this . problems. ensureDirectory())
237+ var cacheDir = MinecraftExtensionImpl . this . plugin . globalCaches. dir(" slime-launcher/cache/${ this.minecraft.group.replace('.', '/')} /${ this.minecraft.name} /${ this.minecraft.version} " ). map(MinecraftExtensionImpl . this . problems. ensureDirectory())
238238 var metadataDir = MinecraftExtensionImpl . this . objects. directoryProperty(). value(cacheDir). dir(' metadata' ). map(MinecraftExtensionImpl . this . problems. ensureDirectory())
239239 var metadataZip = MinecraftExtensionImpl . this . output. file(Util . artifactPath(this . minecraft. group, this . minecraft. name, this . minecraft. version, ' metadata' , ' zip' ))
240240
@@ -254,13 +254,13 @@ import java.util.concurrent.Callable
254254 }
255255
256256 this . runs. forEach { options ->
257- SlimeLauncherExec . register(project, options, this . configs. getOrElse(Map . of()), MinecraftExtensionImpl . this . globalCaches, this . minecraft, metadataZip)
257+ SlimeLauncherExec . register(project, options, this . configs. getOrElse(Map . of()), this . minecraft, metadataZip)
258258 }
259259
260260 flowScope. always(ForgeGradleFlowAction.WelcomeMessage ) {
261261 it. parameters {
262262 it. failure. set flowProviders. buildWorkResult. map { it. failure. orElse(null ) }
263- it. messagesDir. set MinecraftExtensionImpl . this . globalCaches. dir(' messages' )
263+ it. messagesDir. set MinecraftExtensionImpl . this . plugin . globalCaches. dir(' messages' )
264264 it. displayOption. set this . providers. gradleProperty(' net.minecraftforge.gradle.messages.welcome' ). map {
265265 ForgeGradleFlowAction.WelcomeMessage.DisplayOption . valueOf(it. toUpperCase(Locale . ROOT ))
266266 }
0 commit comments