@@ -9,13 +9,14 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository
99import org.gradle.api.plugins.ExtraPropertiesExtension
1010import org.gradle.api.provider.Provider
1111import org.gradle.kotlin.dsl.KotlinClosure0
12- import org.gradle.kotlin.dsl.closureOf
1312import org.gradle.kotlin.dsl.extra
1413import org.gradle.kotlin.dsl.maven
1514import ru.endlesscode.bukkitgradle.bukkit
1615import ru.endlesscode.bukkitgradle.meta.util.MinecraftVersion
1716import ru.endlesscode.bukkitgradle.meta.util.parsedApiVersion
1817
18+ private typealias RepositoryClosure = Closure <MavenArtifactRepository >
19+
1920internal object Dependencies {
2021
2122 const val URL_SPIGOT = " https://hub.spigotmc.org/nexus/content/repositories/snapshots/"
@@ -50,15 +51,15 @@ internal object Dependencies {
5051
5152 private fun addGroovyExtensions () {
5253 val repoExtra = repoHandler.extra
53- repoExtra[" spigot" ] = closureOf< Any ?> { repoHandler.addRepo (" Spigot" , URL_SPIGOT ) }
54- repoExtra[" sk89q" ] = closureOf< Any ?> { repoHandler.addRepo (" sk89q" , URL_SK89Q ) }
55- repoExtra[" papermc" ] = closureOf< Any ?> { repoHandler.addRepo (" PaperMC" , URL_PAPERMC ) }
56- repoExtra[" dmulloy2" ] = closureOf< Any ?> { repoHandler.addRepo (" dmulloy2" , URL_DMULLOY2 ) }
57- repoExtra[" md5" ] = closureOf< Any ?> { repoHandler.addRepo (" md5" , URL_MD5 ) }
58- repoExtra[" jitpack" ] = closureOf< Any ?> { repoHandler.addRepo (" jitpack" , URL_JITPACK ) }
59- repoExtra[" placeholderapi" ] = closureOf< Any ?> { repoHandler.addRepo (" PlaceholderAPI" , URL_PLACEHOLDERAPI ) }
60- repoExtra[" aikar" ] = closureOf< Any ?> { repoHandler.addRepo (" aikar" , URL_AIKAR ) }
61- repoExtra[" codemc" ] = closureOf< Any ?> { repoHandler.addRepo (" codemc" , URL_CODEMC ) }
54+ repoExtra[" spigot" ] = repoHandler.repositoryClosure (" Spigot" , URL_SPIGOT )
55+ repoExtra[" sk89q" ] = repoHandler.repositoryClosure (" sk89q" , URL_SK89Q )
56+ repoExtra[" papermc" ] = repoHandler.repositoryClosure (" PaperMC" , URL_PAPERMC )
57+ repoExtra[" dmulloy2" ] = repoHandler.repositoryClosure (" dmulloy2" , URL_DMULLOY2 )
58+ repoExtra[" md5" ] = repoHandler.repositoryClosure (" md5" , URL_MD5 )
59+ repoExtra[" jitpack" ] = repoHandler.repositoryClosure (" jitpack" , URL_JITPACK )
60+ repoExtra[" placeholderapi" ] = repoHandler.repositoryClosure (" PlaceholderAPI" , URL_PLACEHOLDERAPI )
61+ repoExtra[" aikar" ] = repoHandler.repositoryClosure (" aikar" , URL_AIKAR )
62+ repoExtra[" codemc" ] = repoHandler.repositoryClosure (" codemc" , URL_CODEMC )
6263
6364 val depExtra = depHandler.extra
6465 depExtra[" spigot" ] = depClosureOf { depHandler.api(" org.spigotmc" , " spigot" , " mavenLocal" ) }
@@ -67,12 +68,18 @@ internal object Dependencies {
6768 depExtra[" paperApi" ] = depClosureOf { depHandler.api(resolvePaperGroupId(), " paper-api" , " papermc" ) }
6869 }
6970
71+ private fun RepositoryHandler.repositoryClosure (name : String , url : String ): RepositoryClosure =
72+ object : RepositoryClosure (this , this ) {
73+ @Suppress(" unused" ) // to be called dynamically by Groovy
74+ fun doCall () = (delegate as RepositoryHandler ).addRepo(name, url)
75+ }
76+
7077 fun RepositoryHandler.addRepo (
7178 repoName : String ,
7279 repoUrl : String ,
7380 configure : MavenArtifactRepository .() -> Unit = {}
74- ) {
75- maven(repoUrl) {
81+ ): MavenArtifactRepository {
82+ return maven(repoUrl) {
7683 name = repoName
7784 configure()
7885 }
@@ -89,7 +96,8 @@ internal object Dependencies {
8996 if (repo == " mavenLocal" ) {
9097 repoHandler.mavenLocal()
9198 } else {
92- (repoHandler.extra[repo] as Closure <* >).call(repoHandler)
99+ @Suppress(" UNCHECKED_CAST" )
100+ (repoHandler.extra[repo] as RepositoryClosure ).call()
93101 }
94102 }
95103
0 commit comments