adding more supported version, fixing some generation bugs
This commit is contained in:
1 parent
12d54b3188
commit
12e76b7316
7 files changed
+74
-31
No files matched your search
+1
-1
@@ -28,7 +28,7 @@ dependencies {
|
|||||||
|
|
||||||
// See https://github.com/JetBrains/gradle-intellij-plugin/
|
// See https://github.com/JetBrains/gradle-intellij-plugin/
|
||||||
intellij {
|
intellij {
|
||||||
version = "2020.2"
|
version = "2020.2.1"
|
||||||
|
|
||||||
setPlugins("java", "Kotlin")
|
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(
|
data class Plugin(
|
||||||
val name: String,
|
val name: String,
|
||||||
val versions: List<PluginVersion>,
|
val versions: List<PluginVersion>,
|
||||||
val repositories: List<String>,
|
val repositories: Set<String>,
|
||||||
val dependencies: List<String>
|
val displayName: String = name
|
||||||
) {
|
) {
|
||||||
var isSelected = false
|
var isSelected = false
|
||||||
}
|
}
|
||||||
+58
-5
@@ -1,10 +1,63 @@
|
|||||||
package br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit
|
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(
|
val ALL_PLUGINS = listOf(
|
||||||
Plugin(
|
Plugin(
|
||||||
"Vault",
|
"Vault",
|
||||||
ServerVersion.values().map { PluginVersion("1.7", it) },
|
allVersion("1.7") { setOf("com.github.MilkBowl:VaultAPI:$it") },
|
||||||
listOf("https://jitpack.io"),
|
setOf("https://jitpack.io"),
|
||||||
listOf("com.github.MilkBowl:VaultAPI:{version}")
|
),
|
||||||
)
|
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(
|
class PluginVersion(
|
||||||
val version: String,
|
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.ServerAPI
|
||||||
import br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit.dependencies
|
import br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit.dependencies
|
||||||
import br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit.repositories
|
import br.com.devsrsouza.kotlinbukkitapi.tooling.wizard.bukkit.repositories
|
||||||
import org.jetbrains.kotlin.nj2k.replace
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
fun generateGradleBuildFile(
|
fun generateGradleBuildFile(
|
||||||
@@ -21,7 +20,7 @@ fun generateGradleBuildFileContent(
|
|||||||
config: KBAPIModuleConfig
|
config: KBAPIModuleConfig
|
||||||
): String = with(config) {
|
): String = with(config) {
|
||||||
val kbapiDependencies = kbAPIVersion.dependencies
|
val kbapiDependencies = kbAPIVersion.dependencies
|
||||||
.dependenciesAsGradle()
|
.dependenciesAsGradle(with = ", changing")
|
||||||
|
|
||||||
val kbapiRepositories = kbAPIVersion.repositories
|
val kbapiRepositories = kbAPIVersion.repositories
|
||||||
.repositoriesAsGradle()
|
.repositoriesAsGradle()
|
||||||
@@ -30,11 +29,10 @@ fun generateGradleBuildFileContent(
|
|||||||
val serverRepositories = serverApi.repositories.repositoriesAsGradle()
|
val serverRepositories = serverApi.repositories.repositoriesAsGradle()
|
||||||
val serverDependencies = serverApi.dependencies.dependenciesAsGradle()
|
val serverDependencies = serverApi.dependencies.dependenciesAsGradle()
|
||||||
|
|
||||||
val pluginDependencies = externalPlugins
|
val pluginDependencies = "${DEFAULT_INDENTATION}val transitive = Action<ExternalModuleDependency> { isTransitive = false }\n" + externalPlugins
|
||||||
.flatMap { it.dependencies.map { dep -> dep.replace("{version}", it.versions.first { it.serverVersion == serverVersion }.version) } }
|
.flatMap { it.versions.first { it.serverVersion == serverVersion }.dependencies }
|
||||||
.distinct()
|
.distinct()
|
||||||
.dependenciesAsGradle()
|
.dependenciesAsGradle(with = ", transitive")
|
||||||
|
|
||||||
|
|
||||||
val pluginRepositories = externalPlugins
|
val pluginRepositories = externalPlugins
|
||||||
.flatMap { it.repositories }
|
.flatMap { it.repositories }
|
||||||
@@ -68,10 +66,13 @@ fun generateGradleBuildFileContent(
|
|||||||
|}
|
|}
|
||||||
|
|
|
|
||||||
|dependencies {
|
|dependencies {
|
||||||
|
| compileOnly(kotlin("stdlib-jdk8"))
|
||||||
|
|
|
||||||
| //minecraft
|
| //minecraft
|
||||||
|$serverDependencies
|
|$serverDependencies
|
||||||
|
|
|
|
||||||
| //kotlinbukkitapi
|
| //kotlinbukkitapi
|
||||||
|
| val changing = Action<ExternalModuleDependency> { isChanging = true }
|
||||||
|$kbapiDependencies
|
|$kbapiDependencies
|
||||||
|
|
|
|
||||||
| //plugins
|
| //plugins
|
||||||
@@ -80,7 +81,7 @@ fun generateGradleBuildFileContent(
|
|||||||
|
|
|
|
||||||
|bukkit {
|
|bukkit {
|
||||||
| main = "${packageName}.${pluginMainName}"
|
| main = "${packageName}.${pluginMainName}"
|
||||||
| depend = listOf("KotlinBukkitAPI", ${plugins})
|
| depend = listOf("KotlinBukkitAPI"${plugins.mapIfNotBlank { ", $it" }})
|
||||||
| ${description.mapIfNotBlank { "description = \"$it\"" }}
|
| ${description.mapIfNotBlank { "description = \"$it\"" }}
|
||||||
| ${author.mapIfNotBlank { "author = \"$it\"" }}
|
| ${author.mapIfNotBlank { "author = \"$it\"" }}
|
||||||
| ${website.mapIfNotBlank { "website = \"$it\"" }}
|
| ${website.mapIfNotBlank { "website = \"$it\"" }}
|
||||||
@@ -106,9 +107,9 @@ fun generateGradleBuildFileContent(
|
|||||||
""".trimMargin()
|
""".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") {
|
joinToString("\n") {
|
||||||
"$configuration(\"${it}\")"
|
"$configuration(\"${it}\"$with)"
|
||||||
}.prependIndent(DEFAULT_INDENTATION)
|
}.prependIndent(DEFAULT_INDENTATION)
|
||||||
|
|
||||||
private inline fun List<String>.repositoriesAsGradle(): String =
|
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