From ab4f04b2d2ba61028674127fb38d774cd624eb7a Mon Sep 17 00:00:00 2001 From: kurai <67955616+kuraiwtf@users.noreply.github.com> Date: Sun, 28 Jun 2026 19:17:17 +0200 Subject: [PATCH 1/2] feat: support multi-player selection in `MultiplePlayerSelectorParser`. --- .../selector/MultiplePlayerSelectorParser.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/selector/MultiplePlayerSelectorParser.java b/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/selector/MultiplePlayerSelectorParser.java index 034fe156..0437f0df 100644 --- a/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/selector/MultiplePlayerSelectorParser.java +++ b/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/selector/MultiplePlayerSelectorParser.java @@ -27,6 +27,8 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.CompletableFuture; + +import com.google.common.collect.Lists; import org.apiguardian.api.API; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -138,9 +140,17 @@ public MultiplePlayerSelector mapResult( final @NonNull CommandInput commandInput ) { final String input = commandInput.peekString(); - final @Nullable Player player = Bukkit.getPlayer(input); + final Collection players = Lists.newArrayList(); + if (input.equalsIgnoreCase("@a")) { + players.addAll(Bukkit.getOnlinePlayers()); + } else { + final @Nullable Player player = Bukkit.getPlayer(input); + if (player != null) { + players.add(player); + } + } - if (player == null) { + if (players.isEmpty()) { return CompletableFuture.completedFuture( ArgumentParseResult.failure(new PlayerParser.PlayerParseException(input, commandContext))); } @@ -154,7 +164,7 @@ public MultiplePlayerSelector mapResult( @Override public @NonNull Collection values() { - return Collections.singletonList(player); + return players; } }); } From f0d4e3911d463b3b99821daf000569a3be349ad3 Mon Sep 17 00:00:00 2001 From: kurai <67955616+kuraiwtf@users.noreply.github.com> Date: Sun, 28 Jun 2026 19:20:16 +0200 Subject: [PATCH 2/2] feat: add support for `@e` selector in `MultiplePlayerSelectorParser`. --- .../bukkit/parser/selector/MultiplePlayerSelectorParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/selector/MultiplePlayerSelectorParser.java b/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/selector/MultiplePlayerSelectorParser.java index 0437f0df..b8abb7a4 100644 --- a/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/selector/MultiplePlayerSelectorParser.java +++ b/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/selector/MultiplePlayerSelectorParser.java @@ -141,7 +141,7 @@ public MultiplePlayerSelector mapResult( ) { final String input = commandInput.peekString(); final Collection players = Lists.newArrayList(); - if (input.equalsIgnoreCase("@a")) { + if (input.equalsIgnoreCase("@a") || input.equalsIgnoreCase("@e")) { players.addAll(Bukkit.getOnlinePlayers()); } else { final @Nullable Player player = Bukkit.getPlayer(input);