@@ -9,13 +9,14 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository
9
9
import org.gradle.api.plugins.ExtraPropertiesExtension
10
10
import org.gradle.api.provider.Provider
11
11
import org.gradle.kotlin.dsl.KotlinClosure0
12
- import org.gradle.kotlin.dsl.closureOf
13
12
import org.gradle.kotlin.dsl.extra
14
13
import org.gradle.kotlin.dsl.maven
15
14
import ru.endlesscode.bukkitgradle.bukkit
16
15
import ru.endlesscode.bukkitgradle.meta.util.MinecraftVersion
17
16
import ru.endlesscode.bukkitgradle.meta.util.parsedApiVersion
18
17
18
+ private typealias RepositoryClosure = Closure <MavenArtifactRepository >
19
+
19
20
internal object Dependencies {
20
21
21
22
const val URL_SPIGOT = " https://hub.spigotmc.org/nexus/content/repositories/snapshots/"
@@ -50,15 +51,15 @@ internal object Dependencies {
50
51
51
52
private fun addGroovyExtensions () {
52
53
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 )
62
63
63
64
val depExtra = depHandler.extra
64
65
depExtra[" spigot" ] = depClosureOf { depHandler.api(" org.spigotmc" , " spigot" , " mavenLocal" ) }
@@ -67,12 +68,18 @@ internal object Dependencies {
67
68
depExtra[" paperApi" ] = depClosureOf { depHandler.api(resolvePaperGroupId(), " paper-api" , " papermc" ) }
68
69
}
69
70
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
+
70
77
fun RepositoryHandler.addRepo (
71
78
repoName : String ,
72
79
repoUrl : String ,
73
80
configure : MavenArtifactRepository .() -> Unit = {}
74
- ) {
75
- maven(repoUrl) {
81
+ ): MavenArtifactRepository {
82
+ return maven(repoUrl) {
76
83
name = repoName
77
84
configure()
78
85
}
@@ -89,7 +96,8 @@ internal object Dependencies {
89
96
if (repo == " mavenLocal" ) {
90
97
repoHandler.mavenLocal()
91
98
} else {
92
- (repoHandler.extra[repo] as Closure <* >).call(repoHandler)
99
+ @Suppress(" UNCHECKED_CAST" )
100
+ (repoHandler.extra[repo] as RepositoryClosure ).call()
93
101
}
94
102
}
95
103
0 commit comments