leaderboard: add tab completion

This commit is contained in:
Kenneth Endfinger 2021-12-23 02:32:14 -05:00
parent 76019a62fc
commit 4e066d8f11
No known key found for this signature in database
GPG Key ID: C4E68E5647420E10
2 changed files with 28 additions and 12 deletions

View File

@ -6,8 +6,9 @@ import org.bukkit.Statistic
import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
import org.bukkit.command.TabCompleter
class LeaderboardCommand : CommandExecutor {
class LeaderboardCommand : CommandExecutor, TabCompleter {
private val leaderboards = listOf(
LeaderboardType("player-kills", Statistic.PLAYER_KILLS, "Player Kills", "kills"),
LeaderboardType("mob-kills", Statistic.MOB_KILLS, "Mob Kills", "kills"),
@ -36,4 +37,21 @@ class LeaderboardCommand : CommandExecutor {
}
class LeaderboardType(val id: String, val statistic: Statistic, val friendlyName: String, val unit: String)
override fun onTabComplete(
sender: CommandSender,
command: Command,
alias: String,
args: Array<out String>
): MutableList<String> = when {
args.isEmpty() -> {
leaderboards.map { it.id }.toMutableList()
}
args.size == 1 -> {
leaderboards.map { it.id }.filter { it.startsWith(args[0]) }.toMutableList()
}
else -> {
mutableListOf()
}
}
}

View File

@ -73,17 +73,15 @@ class PersistentStoreCommand(private val plugin: FoundationCorePlugin) : Command
command: Command,
alias: String,
args: Array<out String>
): MutableList<String> {
return when {
args.isEmpty() -> {
allSubCommands
}
args.size == 1 -> {
allSubCommands.filter { it.startsWith(args[0]) }.toMutableList()
}
else -> {
mutableListOf()
}
): MutableList<String> = when {
args.isEmpty() -> {
allSubCommands
}
args.size == 1 -> {
allSubCommands.filter { it.startsWith(args[0]) }.toMutableList()
}
else -> {
mutableListOf()
}
}
}