Skip to content

Commit 24305fd

Browse files
committed
Catch malformed player selectors
1 parent 576cd98 commit 24305fd

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

bukkit/src/main/java/revxrsal/commands/bukkit/core/BukkitHandler.java

+11-7
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,18 @@ public BukkitHandler(@NotNull Plugin plugin) {
7070
if (value.equalsIgnoreCase("self") || value.equalsIgnoreCase("me"))
7171
return ((BukkitCommandActor) context.actor()).requirePlayer();
7272
if (EntitySelectorResolver.INSTANCE.supportsComplexSelectors()) {
73-
List<Entity> entityList = Bukkit.selectEntities(((BukkitActor) context.actor()).getSender(), value);
74-
if (entityList.stream().anyMatch(c -> !(c instanceof Player))) {
75-
throw new NonPlayerEntitiesException(value);
73+
try {
74+
List<Entity> entityList = Bukkit.selectEntities(((BukkitActor) context.actor()).getSender(), value);
75+
if (entityList.stream().anyMatch(c -> !(c instanceof Player))) {
76+
throw new NonPlayerEntitiesException(value);
77+
}
78+
if (entityList.size() != 1) {
79+
throw new MoreThanOnePlayerException(value);
80+
}
81+
return (Player) entityList.get(0);
82+
} catch (IllegalArgumentException e) {
83+
throw new MalformedEntitySelectorException(context.actor(), value, e.getCause().getMessage());
7684
}
77-
if (entityList.size() != 1) {
78-
throw new MoreThanOnePlayerException(value);
79-
}
80-
return (Player) entityList.get(0);
8185
}
8286
Player player = Bukkit.getPlayerExact(value);
8387
if (player == null)

0 commit comments

Comments
 (0)