From 12e76b7316213fd64ec939c6c0c66a4fe24d341f Mon Sep 17 00:00:00 2001 From: DevSrSouza Date: Sat, 29 Aug 2020 12:53:04 -0300 Subject: [PATCH] adding more supported version, fixing some generation bugs --- build.gradle.kts | 2 +- .../tooling/wizard/KBAPIModuleBuilder.kt | 12 ---- .../tooling/wizard/bukkit/Plugin.kt | 4 +- .../tooling/wizard/bukkit/PluginList.kt | 63 +++++++++++++++++-- .../tooling/wizard/bukkit/PluginVersion.kt | 3 +- .../tooling/wizard/creator/GradleBuilder.kt | 19 +++--- .../wizard/creator/PluginMainBuilder.kt | 2 +- 7 files changed, 74 insertions(+), 31 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 00aae74..658e681 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -28,7 +28,7 @@ dependencies { // See https://github.com/JetBrains/gradle-intellij-plugin/ intellij { - version = "2020.2" + version = "2020.2.1" setPlugins("java", "Kotlin") } diff --git a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/KBAPIModuleBuilder.kt b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/KBAPIModuleBuilder.kt index 9395021..f9ad722 100644 --- a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/KBAPIModuleBuilder.kt +++ b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/KBAPIModuleBuilder.kt @@ -107,15 +107,3 @@ class KBAPIModuleBuilder : JavaModuleBuilder() { } } - -inline fun runWriteTask(crossinline func: () -> T): T { - return invokeAndWait { - ApplicationManager.getApplication().runWriteAction(Computable { func() }) - } -} - -fun invokeAndWait(func: () -> T): T { - val ref = Ref() - ApplicationManager.getApplication().invokeAndWait({ ref.set(func()) }, ModalityState.defaultModalityState()) - return ref.get() -} \ No newline at end of file diff --git a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/Plugin.kt b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/Plugin.kt index a3bc330..3d8cac8 100644 --- a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/Plugin.kt +++ b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/Plugin.kt @@ -3,8 +3,8 @@ package br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit data class Plugin( val name: String, val versions: List, - val repositories: List, - val dependencies: List + val repositories: Set, + val displayName: String = name ) { var isSelected = false } \ No newline at end of file diff --git a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/PluginList.kt b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/PluginList.kt index 7b064af..28be5b5 100644 --- a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/PluginList.kt +++ b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/PluginList.kt @@ -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}") - ) -) \ No newline at end of file + 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): List = ServerVersion.values().map { PluginVersion(version, it, dependencies(version)) } +inline fun List.asPluginVersion(version: String, dependencies: (String) -> Set): List = map { PluginVersion(version, it, dependencies(version)) } \ No newline at end of file diff --git a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/PluginVersion.kt b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/PluginVersion.kt index 5dd1f8a..f78407b 100644 --- a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/PluginVersion.kt +++ b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/bukkit/PluginVersion.kt @@ -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 ) \ No newline at end of file diff --git a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/creator/GradleBuilder.kt b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/creator/GradleBuilder.kt index a5a6c96..9f83e3d 100644 --- a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/creator/GradleBuilder.kt +++ b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/creator/GradleBuilder.kt @@ -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 { 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 { 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.dependenciesAsGradle(configuration: String = "compileOnly"): String = +private inline fun List.dependenciesAsGradle(configuration: String = "compileOnly", with: String = ""): String = joinToString("\n") { - "$configuration(\"${it}\")" + "$configuration(\"${it}\"$with)" }.prependIndent(DEFAULT_INDENTATION) private inline fun List.repositoriesAsGradle(): String = diff --git a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/creator/PluginMainBuilder.kt b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/creator/PluginMainBuilder.kt index 785e373..e79b1e6 100644 --- a/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/creator/PluginMainBuilder.kt +++ b/src/main/kotlin/br/com/devsrsouza/kotlinbukkitapi/tooling/wizard/creator/PluginMainBuilder.kt @@ -26,7 +26,7 @@ fun generatePluginMainFileContent( } - override fun onPluginDisble() { + override fun onPluginDisable() { } }