Skip to content

Commit 0fb1f44

Browse files
committed
feat: flag resolver for player
1 parent 7b024ab commit 0fb1f44

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

  • bukkit-kotlin/src/main/kotlin/cn/afternode/commons/bukkit/kotlin/command/argument

bukkit-kotlin/src/main/kotlin/cn/afternode/commons/bukkit/kotlin/command/argument/EntityArgument.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cn.afternode.commons.bukkit.kotlin.command.argument
22

33
import cn.afternode.commons.bukkit.BukkitResolver
44
import cn.afternode.commons.bukkit.kotlin.command.ArgumentResolver
5+
import cn.afternode.commons.bukkit.kotlin.command.FlagResolver
56
import org.bukkit.Bukkit
67
import org.bukkit.OfflinePlayer
78
import org.bukkit.command.CommandSender
@@ -19,25 +20,29 @@ class EntityArgument(override val key: String) : ArgumentResolver<List<Entity>>
1920
fun 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

Comments
 (0)