@@ -280,17 +280,28 @@ private void updatePlayers() {
280280 enemies = Collections .emptyList ();
281281 allies = Collections .emptyList ();
282282 observers = Collections .emptyList ();
283- } else {
284- enemies = playerSet .stream ()
285- .filter (p -> !p .leftGame () && !p .isDefeated () && !p .equals (self ()) && self ().isEnemy (p ))
286- .collect (Collectors .collectingAndThen (Collectors .toList (), Collections ::unmodifiableList ));
287- allies = playerSet .stream ()
288- .filter (p -> !p .leftGame () && !p .isDefeated () && !p .equals (self ()) && self ().isAlly (p ))
289- .collect (Collectors .collectingAndThen (Collectors .toList (), Collections ::unmodifiableList ));
290- observers = playerSet .stream ()
291- .filter (p -> !p .leftGame () && !p .isDefeated () && !p .equals (self ()) && p .isObserver ())
292- .collect (Collectors .collectingAndThen (Collectors .toList (), Collections ::unmodifiableList ));
283+ return ;
284+ }
285+ final List <Player > newEnemies = new ArrayList <>();
286+ final List <Player > newAllies = new ArrayList <>();
287+ final List <Player > newObservers = new ArrayList <>();
288+ for (final Player p : playerSet ) {
289+ if (p .leftGame () || p .isDefeated () || p .equals (self ())) {
290+ continue ;
291+ }
292+ if (self ().isAlly (p )) {
293+ newAllies .add (p );
294+ }
295+ if (self ().isEnemy (p )) {
296+ newEnemies .add (p );
297+ }
298+ if (p .isObserver ()) {
299+ newObservers .add (p );
300+ }
293301 }
302+ enemies = Collections .unmodifiableList (newEnemies );
303+ allies = Collections .unmodifiableList (newAllies );
304+ observers = Collections .unmodifiableList (newObservers );
294305 }
295306
296307 void unitCreate (final int id ) {
0 commit comments