BrigadierのKotlin用ラッパー
uten2c/cmdlibのフォーク版です.本人より許諾を得て改変・MITライセンスでの配布を行っております
1.18以降のバージョンではuten2c氏のstroboより移植しています。
注意:一部argumentはNMSが必須になります
repositories {
maven { url 'https://lepinoid.github.io/maven-repo/' }
}
dependencies {
implementation 'net.lepinoid:cmdlib:VERSION'
}
repositories {
maven("https://lepinoid.github.io/maven-repo/")
}
dependencies {
implementation("net.lepinoid:cmdlib:VERSION")
}
val cmdLib = CmdLib(Plugin)
cmdLib.register("example") {
requires("permission.name") // Bukkit permission name
// requires(2) // or Minecraft op level
// or custom
// requires { sender ->
// sender is Player && sender.gameMode == GameMode.CREATIVE
// }
literal("echo") {
executes {
sender.sendMessage("Hello")
}
}
literal("getDiamond") {
//before 1.18
integer("amount", 0, 64) {
executes {
val itemStack = ItemStack(Material.DIAMOND).apply {
amount = getInteger("amount")
}
player.inventory.addItem(itemStack)
}
}
// 1.18~
integer(0, 64) { getAmount ->
executes {
val itemStack = ItemStack(Material.DIAMOND).apply {
amount = getAmount()
}
player.inventory.addItem(itemStack)
}
}
}
literal("tp") {
// before 1.18
entity("target") {
executes {
val target = getEntity("target")
player.teleport(target.location)
}
}
// 1.18~
entity { getTarget ->
executes {
player.teleport(getTarget().location)
}
}
}
}
executes
内でplayer
を使用するときコマンドの実行者がプレイヤーでない場合実行に失敗するのでsender
がプレイヤーであるかの検証をする必要はない