1
1
package br.com.devsrsouza.kotlinbukkitapi.dsl.command.arguments
2
2
3
- import br.com.devsrsouza.kotlinbukkitapi.dsl.command.CommandException
4
- import br.com.devsrsouza.kotlinbukkitapi.dsl.command.Executor
5
- import br.com.devsrsouza.kotlinbukkitapi.dsl.command.argumentExecutorBuilder
6
- import br.com.devsrsouza.kotlinbukkitapi.dsl.command.exception
3
+ import br.com.devsrsouza.kotlinbukkitapi.dsl.command.*
4
+ import br.com.devsrsouza.kotlinbukkitapi.extensions.bukkit.onlinePlayers
7
5
import br.com.devsrsouza.kotlinbukkitapi.extensions.text.color
8
6
import br.com.devsrsouza.kotlinbukkitapi.utils.whenErrorNull
9
7
import net.md_5.bungee.api.chat.BaseComponent
@@ -38,6 +36,14 @@ inline fun <T : CommandSender> Executor<T>.argumentPlayer(
38
36
argumentExecutorBuilder(index + 1 , player.name).block(player)
39
37
}
40
38
39
+ fun TabCompleter.player (
40
+ index : Int
41
+ ): List <String > = argumentCompleteBuilder(index) { arg ->
42
+ onlinePlayers().mapNotNull {
43
+ if (it.name.startsWith(arg, true )) it.name else null
44
+ }
45
+ }
46
+
41
47
// OFFLINE PLAYER
42
48
43
49
fun Executor <* >.offlinePlayer (
@@ -82,4 +88,12 @@ inline fun <T : CommandSender> Executor<T>.argumentGameMode(
82
88
val gameMode = gameMode(index, argMissing, notFound)
83
89
84
90
argumentExecutorBuilder(index + 1 , gameMode.name).block(gameMode)
91
+ }
92
+
93
+ fun TabCompleter.gameMode (
94
+ index : Int
95
+ ): List <String > = argumentCompleteBuilder(index) { arg ->
96
+ GameMode .values().mapNotNull {
97
+ if (it.name.startsWith(arg, true )) it.name.toLowerCase() else null
98
+ }
85
99
}
0 commit comments