adding more supported version, fixing some generation bugs

This commit is contained in:
DevSrSouza committed 2020-08-29 12:53:04 -03:00
1 parent 12d54b3188
commit 12e76b7316
7 files changed
+73 -30

No files matched your search

+1 -1
View File
@@ -28,7 +28,7 @@ dependencies {
// See https://github.com/JetBrains/gradle-intellij-plugin/
intellij {
version = "2020.2"
version = "2020.2.1"
setPlugins("java", "Kotlin")
}
@@ -107,15 +107,3 @@ class KBAPIModuleBuilder : JavaModuleBuilder() {
}
}
inline fun <T : Any?> runWriteTask(crossinline func: () -> T): T {
return invokeAndWait {
ApplicationManager.getApplication().runWriteAction(Computable { func() })
}
}
fun <T : Any?> invokeAndWait(func: () -> T): T {
val ref = Ref<T>()
ApplicationManager.getApplication().invokeAndWait({ ref.set(func()) }, ModalityState.defaultModalityState())
return ref.get()
}
@@ -3,8 +3,8 @@ package br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit
data class Plugin(
val name: String,
val versions: List<PluginVersion>,
val repositories: List<String>,
val dependencies: List<String>
val repositories: Set<String>,
val displayName: String = name
) {
var isSelected = false
}
@@ -1,10 +1,63 @@
package br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit
import br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit.ServerVersion.*
private val worldEdit = "com.sk89q.worldedit"
// TODO: Pex, luckperms, plotsquared, multiverse, worldguard
val ALL_PLUGINS = listOf(
Plugin(
"Vault",
ServerVersion.values().map { PluginVersion("1.7", it) },
listOf("https://jitpack.io"),
listOf("com.github.MilkBowl:VaultAPI:{version}")
)
allVersion("1.7") { setOf("com.github.MilkBowl:VaultAPI:$it") },
setOf("https://jitpack.io"),
),
Plugin(
"WorldEdit",
listOf(v1_8, v1_9, v1_12).asPluginVersion("6.1.5") { setOf("$worldEdit:worldedit-core:$it", "$worldEdit:worldedit-bukkit:$it") }
+ listOf(v1_13, v1_14, v1_15, v1_16).asPluginVersion("7.2.0-SNAPSHOT") { setOf("$worldEdit:worldedit-core:$it", "$worldEdit:worldedit-bukkit:$it") }
,
setOf("http://maven.sk89q.com/repo/")
),
Plugin(
"ProtocolLib",
allVersion("4.5.1") { setOf("com.comphenix.protocol:ProtocolLib:$it") },
setOf("http://repo.dmulloy2.net/nexus/repository/public/")
),
Plugin(
"PlaceholderAPI",
allVersion("2.9.2") { setOf("me.clip:placeholderapi:$it") },
setOf("http://repo.extendedclip.com/content/repositories/placeholderapi/")
),
Plugin(
"MVdWPlaceholderAPI",
allVersion("3.1.1") { setOf("be.maximvdw:MVdWPlaceholderAPI:$it") },
setOf("http://repo.mvdw-software.be/content/groups/public/")),
Plugin(
"ActionBarAPI",
allVersion("d60c2aedb9") { setOf("com.github.ConnorLinfoot:ActionBarAPI:$it") },
setOf("https://jitpack.io")
),
Plugin(
"TitleAPI",
allVersion("1.7.6") { setOf("com.github.ConnorLinfoot:TitleAPI:$it") },
setOf("https://jitpack.io")),
Plugin(
"ViaVersion",
allVersion("3.1.0") { setOf("us.myles:viaversion-common:$it") },
setOf("https://repo.viaversion.com/")
),
Plugin(
"BossBarAPI",
allVersion("2.4.2") { setOf("org.inventivetalent:bossbarapi:$it") },
setOf("https://repo.inventivetalent.org/content/groups/public/")
),
Plugin(
"HologramAPI",
allVersion("1.6.0") { setOf("org.inventivetalent:hologramapi:$it") },
setOf("https://repo.inventivetalent.org/content/groups/public/")
),
)
inline fun allVersion(version: String, dependencies: (String) -> Set<String>): List<PluginVersion> = ServerVersion.values().map { PluginVersion(version, it, dependencies(version)) }
inline fun List<ServerVersion>.asPluginVersion(version: String, dependencies: (String) -> Set<String>): List<PluginVersion> = map { PluginVersion(version, it, dependencies(version)) }
@@ -2,5 +2,6 @@ package br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit
class PluginVersion(
val version: String,
val serverVersion: ServerVersion
val serverVersion: ServerVersion,
val dependencies: Set<String>
)
@@ -6,7 +6,6 @@ import br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.SHADOW_PLUGIN
import br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit.ServerAPI
import br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit.dependencies
import br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit.repositories
import org.jetbrains.kotlin.nj2k.replace
import java.io.File
fun generateGradleBuildFile(
@@ -21,7 +20,7 @@ fun generateGradleBuildFileContent(
config: KBAPIModuleConfig
): String = with(config) {
val kbapiDependencies = kbAPIVersion.dependencies
.dependenciesAsGradle()
.dependenciesAsGradle(with = ", changing")
val kbapiRepositories = kbAPIVersion.repositories
.repositoriesAsGradle()
@@ -30,11 +29,10 @@ fun generateGradleBuildFileContent(
val serverRepositories = serverApi.repositories.repositoriesAsGradle()
val serverDependencies = serverApi.dependencies.dependenciesAsGradle()
val pluginDependencies = externalPlugins
.flatMap { it.dependencies.map { dep -> dep.replace("{version}", it.versions.first { it.serverVersion == serverVersion }.version) } }
val pluginDependencies = "${DEFAULT_INDENTATION}val transitive = Action<ExternalModuleDependency> { isTransitive = false }\n" + externalPlugins
.flatMap { it.versions.first { it.serverVersion == serverVersion }.dependencies }
.distinct()
.dependenciesAsGradle()
.dependenciesAsGradle(with = ", transitive")
val pluginRepositories = externalPlugins
.flatMap { it.repositories }
@@ -68,10 +66,13 @@ fun generateGradleBuildFileContent(
|}
|
|dependencies {
| compileOnly(kotlin("stdlib-jdk8"))
|
| //minecraft
|$serverDependencies
|
| //kotlinbukkitapi
| val changing = Action<ExternalModuleDependency> { isChanging = true }
|$kbapiDependencies
|
| //plugins
@@ -80,7 +81,7 @@ fun generateGradleBuildFileContent(
|
|bukkit {
| main = "${packageName}.${pluginMainName}"
| depend = listOf("KotlinBukkitAPI", ${plugins})
| depend = listOf("KotlinBukkitAPI"${plugins.mapIfNotBlank { ", $it" }})
| ${description.mapIfNotBlank { "description = \"$it\"" }}
| ${author.mapIfNotBlank { "author = \"$it\"" }}
| ${website.mapIfNotBlank { "website = \"$it\"" }}
@@ -106,9 +107,9 @@ fun generateGradleBuildFileContent(
""".trimMargin()
}
private inline fun List<String>.dependenciesAsGradle(configuration: String = "compileOnly"): String =
private inline fun List<String>.dependenciesAsGradle(configuration: String = "compileOnly", with: String = ""): String =
joinToString("\n") {
"$configuration(\"${it}\")"
"$configuration(\"${it}\"$with)"
}.prependIndent(DEFAULT_INDENTATION)
private inline fun List<String>.repositoriesAsGradle(): String =
@@ -26,7 +26,7 @@ fun generatePluginMainFileContent(
}
override fun onPluginDisble() {
override fun onPluginDisable() {
}
}