feat: add command condition function
This commit is contained in:
parent
88c4b7c2ae
commit
21702d6997
|
@ -70,10 +70,6 @@ abstract class Argument(
|
||||||
) {
|
) {
|
||||||
val routes = routes.toMap()
|
val routes = routes.toMap()
|
||||||
var name: String = ""
|
var name: String = ""
|
||||||
get() = field
|
|
||||||
protected set(value) {
|
|
||||||
field = value
|
|
||||||
}
|
|
||||||
var permission: String = ""
|
var permission: String = ""
|
||||||
set(value) {
|
set(value) {
|
||||||
field = value
|
field = value
|
||||||
|
@ -81,7 +77,9 @@ abstract class Argument(
|
||||||
for ((_, route) in routes) {
|
for ((_, route) in routes) {
|
||||||
route.permission = value + "." + route.name
|
route.permission = value + "." + route.name
|
||||||
}
|
}
|
||||||
|
println("permission setted to $value")
|
||||||
}
|
}
|
||||||
|
var condition: (CommandSender) -> Boolean = { true }
|
||||||
|
|
||||||
init {
|
init {
|
||||||
for ((name, route) in routes) {
|
for ((name, route) in routes) {
|
||||||
|
@ -100,7 +98,7 @@ abstract class Argument(
|
||||||
fun getCompletList(sender: CommandSender, args: Array<String>): List<String> {
|
fun getCompletList(sender: CommandSender, args: Array<String>): List<String> {
|
||||||
return routes
|
return routes
|
||||||
.values
|
.values
|
||||||
.filter { sender.hasPermission(it.permission) }
|
.filter { sender.hasPermission(it.permission) && it.condition(sender) }
|
||||||
.map { it.suggest(sender, args) }
|
.map { it.suggest(sender, args) }
|
||||||
.flatten()
|
.flatten()
|
||||||
}
|
}
|
||||||
|
@ -120,7 +118,7 @@ class Route(vararg routes: Pair<String, Argument>, execute: (CommandSender, Arra
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun suggest(sender: CommandSender, args: Array<String>): List<String> {
|
override fun suggest(sender: CommandSender, args: Array<String>): List<String> {
|
||||||
return if (sender.hasPermission(this.permission) && this.name.startsWith(args.last()))
|
return if (sender.hasPermission(this.permission) && this.condition(sender) && this.name.startsWith(args.last()))
|
||||||
listOf(this.name)
|
listOf(this.name)
|
||||||
else listOf()
|
else listOf()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user