adding more supported version, fixing some generation bugs
This commit is contained in:
1 parent
12d54b3188
commit
12e76b7316
7 files changed
+73
-30
No files matched your search
+1
-1
@@ -28,7 +28,7 @@ dependencies {
|
||||
|
||||
// See https://github.com/JetBrains/gradle-intellij-plugin/
|
||||
intellij {
|
||||
version = "2020.2"
|
||||
version = "2020.2.1"
|
||||
|
||||
setPlugins("java", "Kotlin")
|
||||
}
|
||||
|
||||
-12
@@ -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
|
||||
}
|
||||
+57
-4
@@ -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
-1
@@ -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>
|
||||
)
|
||||
+10
-9
@@ -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 =
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ fun generatePluginMainFileContent(
|
||||
|
||||
}
|
||||
|
||||
override fun onPluginDisble() {
|
||||
override fun onPluginDisable() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user