plugin-yml
これを使います。例には build.gralde
もあるのでそちらがいい人はやってみてください。
ちなみに、kotlin-dsl の例は間違っています。コマンドやパーミッションの設定が出来ません。
"test"
を register("test")
"testplugin.*"
を register("testplugin.*")
に変更すればできます。詳しくはこの記事の下の方で解説しています。
Gradle
build.gradle.kts だけを用意してあります。build.gradle の例、誰か書いてくれませんかね
自分に合ったものを選んで ▶ を押してください。
@TODO
になっている箇所を編集してください
build.gradle (Groovy)
待ってます。
build.gradle.kts (Kotlin)
build.gradle
になっている人はファイル名を変更して、build.gradle.kts
にしてください。
文法が少し違うので、修正しないとエラーになると思います。
例
Spigot 1.15.2 + Java
plugins {
java
id("net.minecrell.plugin-yml.bukkit") version "0.3.0"
}
group = "" // @TODO ここを編集
version = "1.0" // @TODO ここを編集
repositories {
mavenCentral()
maven {
url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots")
}
maven {
url = uri("https://oss.sonatype.org/content/repositories/snapshots")
}
}
dependencies {
implementation("org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT")
}
bukkit {
// 詳しく説明します
}
val jar by tasks.getting(Jar::class) {
from(configurations.compileOnly.get().map {
if (it.isDirectory) it else zipTree(it)
})
}
Paper 1.15.2 + Kotlin
plugins {
kotlin("jvm") version "1.3.72"
id("net.minecrell.plugin-yml.bukkit") version "0.3.0"
}
group = "" // @TODO ここを編集
version = "1.0" // @TODO ここを編集
repositories {
mavenCentral()
maven {
url = uri("https://papermc.io/repo/repository/maven-public/")
}
}
dependencies {
implementation("com.destroystokyo.paper:paper-api:1.15.2-R0.1-SNAPSHOT")
compileOnly("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
}
bukkit {
// 詳しく説明します
}
tasks {
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
}
val jar by tasks.getting(Jar::class) {
from(configurations.compileOnly.get().map {
if (it.isDirectory) it else zipTree(it)
})
}
bukkit {} を書く
最低限
bukkit {
main = "" // @TODO JavaPlugin を継承してるクラスへのパス
apiVersion = "1.15"
// 1.13.X なら 1.13
// 1.14.X なら 1.14
// 1.15.X なら 1.15
// 1.16.X なら 1.16
}
でも、author
くらいは書いておいた方がいいと思います。
例のやつ
GitHubのものを適当に修正しました。対応させられれば完璧に書けますね。
bukkit {
main = "com.example.testplugin.TestPlugin"
apiVersion = "1.13"
load = BukkitPluginDescription.PluginLoadOrder.STARTUP // or POSTWORLD
authors = listOf("Notch", "Notch2")
depend = listOf("WorldEdit")
softDepend = listOf("Essentials")
loadBefore = listOf("BrokenPlugin")
prefix = "TEST"
defaultPermission = BukkitPluginDescription.Permission.Default.OP // TRUE, FALSE, OP or NOT_OP
commands {
register("test") {
description = "This is a test command!"
aliases = listOf("t")
permission = "testplugin.test"
usage = "Just run the command!"
// permissionMessage = "You may not test this command!"
}
// ...
}
permissions {
register("testplugin.*") {
children = listOf("testplugin.test")
}
register("testplugin.test") {
description = "Allows you to run the test command"
default = BukkitPluginDescription.Permission.Default.OP // TRUE, FALSE, OP or NOT_OP
}
// ...
}
}
最後に
編集する場所が減るのは素晴らしいですね。Bukkit だけではなく、BungeeCord や Nukkitにも対応してます。
プロジェクトの更新(バージョンアップとか)への対応も楽になるので、是非使ってみてください。
説明が足りない部分もあるかと思うので、編集リクエストは遠慮せずしてください。