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.Command
import org.bukkit.command.CommandExecutor import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender import org.bukkit.command.CommandSender
import org.bukkit.command.TabCompleter
class LeaderboardCommand : CommandExecutor { class LeaderboardCommand : CommandExecutor, TabCompleter {
private val leaderboards = listOf( private val leaderboards = listOf(
LeaderboardType("player-kills", Statistic.PLAYER_KILLS, "Player Kills", "kills"), LeaderboardType("player-kills", Statistic.PLAYER_KILLS, "Player Kills", "kills"),
LeaderboardType("mob-kills", Statistic.MOB_KILLS, "Mob 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) 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, command: Command,
alias: String, alias: String,
args: Array<out String> args: Array<out String>
): MutableList<String> { ): MutableList<String> = when {
return when { args.isEmpty() -> {
args.isEmpty() -> { allSubCommands
allSubCommands }
} args.size == 1 -> {
args.size == 1 -> { allSubCommands.filter { it.startsWith(args[0]) }.toMutableList()
allSubCommands.filter { it.startsWith(args[0]) }.toMutableList() }
} else -> {
else -> { mutableListOf()
mutableListOf()
}
} }
} }
} }