diff --git a/src/main/kotlin/net/hareworks/kommandlib/main.kt b/src/main/kotlin/net/hareworks/kommandlib/main.kt index b950b4e..12fbd98 100644 --- a/src/main/kotlin/net/hareworks/kommandlib/main.kt +++ b/src/main/kotlin/net/hareworks/kommandlib/main.kt @@ -70,10 +70,6 @@ abstract class Argument( ) { val routes = routes.toMap() var name: String = "" - get() = field - protected set(value) { - field = value - } var permission: String = "" set(value) { field = value @@ -81,7 +77,9 @@ abstract class Argument( for ((_, route) in routes) { route.permission = value + "." + route.name } + println("permission setted to $value") } + var condition: (CommandSender) -> Boolean = { true } init { for ((name, route) in routes) { @@ -100,7 +98,7 @@ abstract class Argument( fun getCompletList(sender: CommandSender, args: Array): List { return routes .values - .filter { sender.hasPermission(it.permission) } + .filter { sender.hasPermission(it.permission) && it.condition(sender) } .map { it.suggest(sender, args) } .flatten() } @@ -120,7 +118,7 @@ class Route(vararg routes: Pair, execute: (CommandSender, Arra } override fun suggest(sender: CommandSender, args: Array): List { - 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) else listOf() }