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..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 @@ -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") || input.equalsIgnoreCase("@e")) { + 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; } }); }