@@ -2,6 +2,7 @@ package cn.afternode.commons.bukkit.kotlin.command.argument
22
33import cn.afternode.commons.bukkit.BukkitResolver
44import cn.afternode.commons.bukkit.kotlin.command.ArgumentResolver
5+ import cn.afternode.commons.bukkit.kotlin.command.FlagResolver
56import org.bukkit.Bukkit
67import org.bukkit.OfflinePlayer
78import org.bukkit.command.CommandSender
@@ -19,25 +20,29 @@ class EntityArgument(override val key: String) : ArgumentResolver<List<Entity>>
1920fun entityArgument (key : String ) =
2021 EntityArgument (key)
2122
22- class PlayerArgument (override val key : String ) : ArgumentResolver<Player> {
23+ class PlayerArgument (override val key : String , override val required : Boolean ) : ArgumentResolver<Player>, FlagResolver <Player> {
2324 override fun resolve (sender : CommandSender , current : String ): Player ? =
2425 BukkitResolver .resolvePlayerOnline(current)
2526
2627 override fun completion (sender : CommandSender , current : String ): List <String > =
2728 Bukkit .getOnlinePlayers().parallelStream().map(Player ::getName)
2829 .toList()
30+ .filter { it.startsWith(current) }
2931}
3032
31- fun playerArgument (key : String ) =
32- PlayerArgument (key)
33+ fun playerArgument (key : String , required : Boolean ) =
34+ PlayerArgument (key, required )
3335
34- class OfflinePlayerArgument (override val key : String ) : ArgumentResolver<OfflinePlayer> {
36+ class OfflinePlayerArgument (override val key : String , override val required : Boolean ) : ArgumentResolver<OfflinePlayer>, FlagResolver <OfflinePlayer> {
3537 override fun resolve (
3638 sender : CommandSender ,
3739 current : String
3840 ): OfflinePlayer ? =
3941 BukkitResolver .resolvePlayer(current)
42+
43+ override fun completion (sender : CommandSender , current : String ): List <String > =
44+ listOf (" uuid:" )
4045}
4146
42- fun offlinePlayerArgument (key : String ) =
43- OfflinePlayerArgument (key)
47+ fun offlinePlayerArgument (key : String , required : Boolean ) =
48+ OfflinePlayerArgument (key, required )
0 commit comments