@@ -86,37 +86,41 @@ public enum EntitySelectorResolver implements ValueResolverFactory {
86
86
}
87
87
88
88
private EntitySelector <Player > resolvePlayerSelector (ValueResolverContext context ) {
89
- BukkitCommandActor bActor = context .actor ();
90
- String value = context .pop ().toLowerCase ();
89
+ String selector = context .pop ().toLowerCase ();
90
+ try {
91
+ BukkitCommandActor bActor = context .actor ();
91
92
92
- List <Player > coll ;
93
- if (supportComplexSelectors ) {
94
- coll = Bukkit .getServer ().selectEntities (bActor .getSender (), value ).stream ()
95
- .filter (c -> c instanceof Player ).map (Player .class ::cast ).collect (Collectors .toList ());
96
- return new EntitySelectorImpl <>(coll );
97
- }
98
- coll = new ArrayList <>();
99
- Player [] players = Bukkit .getOnlinePlayers ().toArray (new Player [0 ]);
100
- switch (value ) {
101
- case "@r" :
102
- coll .add (players [ThreadLocalRandom .current ().nextInt (players .length )]);
103
- return new EntitySelectorImpl <>(coll );
104
- case "@a" : {
105
- Collections .addAll (coll , players );
106
- return new EntitySelectorImpl <>(coll );
107
- }
108
- case "@s" :
109
- case "@p" : {
110
- coll .add (bActor .requirePlayer ());
93
+ List <Player > coll ;
94
+ if (supportComplexSelectors ) {
95
+ coll = Bukkit .getServer ().selectEntities (bActor .getSender (), selector ).stream ()
96
+ .filter (c -> c instanceof Player ).map (Player .class ::cast ).collect (Collectors .toList ());
111
97
return new EntitySelectorImpl <>(coll );
112
98
}
113
- default : {
114
- Player player = Bukkit .getPlayer (value );
115
- if (player == null )
116
- throw new InvalidPlayerException (context .parameter (), value );
117
- coll .add (player );
118
- return new EntitySelectorImpl <>(coll );
99
+ coll = new ArrayList <>();
100
+ Player [] players = Bukkit .getOnlinePlayers ().toArray (new Player [0 ]);
101
+ switch (selector ) {
102
+ case "@r" :
103
+ coll .add (players [ThreadLocalRandom .current ().nextInt (players .length )]);
104
+ return new EntitySelectorImpl <>(coll );
105
+ case "@a" : {
106
+ Collections .addAll (coll , players );
107
+ return new EntitySelectorImpl <>(coll );
108
+ }
109
+ case "@s" :
110
+ case "@p" : {
111
+ coll .add (bActor .requirePlayer ());
112
+ return new EntitySelectorImpl <>(coll );
113
+ }
114
+ default : {
115
+ Player player = Bukkit .getPlayer (selector );
116
+ if (player == null )
117
+ throw new InvalidPlayerException (context .parameter (), selector );
118
+ coll .add (player );
119
+ return new EntitySelectorImpl <>(coll );
120
+ }
119
121
}
122
+ } catch (IllegalArgumentException e ) {
123
+ throw new MalformedEntitySelectorException (context .actor (), selector , e .getCause ().getMessage ());
120
124
}
121
125
}
122
126
0 commit comments