From: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net>

---
 .../client/gui/dialog/SelectDestinationDialog.java |  16 +-
 src/net/sf/freecol/client/gui/menu/DebugMenu.java  |   2 +-
 .../client/gui/panel/FindSettlementPanel.java      |   2 +-
 .../sf/freecol/client/gui/panel/PlayersTable.java  |   2 +-
 .../gui/panel/colopedia/NationDetailPanel.java     |   4 +-
 .../gui/panel/report/ReportForeignAffairPanel.java |   2 +-
 src/net/sf/freecol/common/debug/DebugUtils.java    |   4 +-
 src/net/sf/freecol/common/model/Game.java          | 185 +++++++++++----------
 src/net/sf/freecol/common/model/Operand.java       |   2 +-
 src/net/sf/freecol/common/model/Player.java        |  14 +-
 src/net/sf/freecol/common/model/Tile.java          |   2 +-
 .../common/networking/AddPlayerMessage.java        |  10 --
 .../sf/freecol/common/networking/ChangeSet.java    |   4 +-
 .../sf/freecol/common/networking/LoginMessage.java |   2 +-
 src/net/sf/freecol/server/FreeColServer.java       |  14 +-
 src/net/sf/freecol/server/ai/EuropeanAIPlayer.java |   2 +-
 src/net/sf/freecol/server/ai/NativeAIPlayer.java   |   2 +-
 .../freecol/server/control/InGameController.java   |   2 +-
 .../freecol/server/control/PreGameController.java  |   2 +-
 .../server/generator/SimpleMapGenerator.java       |   6 +-
 src/net/sf/freecol/server/model/ServerGame.java    |   2 +-
 src/net/sf/freecol/server/model/ServerPlayer.java  |  12 +-
 .../freecol/common/model/FoundingFatherTest.java   |   4 +-
 test/src/net/sf/freecol/common/model/GameTest.java |   4 +-
 .../freecol/common/model/UnitChangeTypeTest.java   |   2 +-
 .../net/sf/freecol/util/test/FreeColTestCase.java  |   2 +-
 26 files changed, 157 insertions(+), 148 deletions(-)

diff --git a/src/net/sf/freecol/client/gui/dialog/SelectDestinationDialog.java 
b/src/net/sf/freecol/client/gui/dialog/SelectDestinationDialog.java
index 05208c71936..f9c10d55aee 100644
--- a/src/net/sf/freecol/client/gui/dialog/SelectDestinationDialog.java
+++ b/src/net/sf/freecol/client/gui/dialog/SelectDestinationDialog.java
@@ -30,7 +30,6 @@ import java.util.Map.Entry;
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.logging.Logger;
-import java.util.stream.Stream;
 
 import javax.swing.DefaultListModel;
 import javax.swing.ImageIcon;
@@ -459,14 +458,13 @@ public final class SelectDestinationDialog extends 
FreeColDialog<Location>
         // of accessible settlement locations and do a bulk path search
         // to determine the travel times, and create Destinations from
         // the results.
-        final Predicate<Player> tradePred = p ->
-            p.hasContacted(player) && (canTrade || !p.isEuropean());
-        final Function<Player, Stream<Location>> settlementTileMapper = p ->
-            transform(p.getSettlements(),
-                      s -> canReach.test(s) && s.hasContacted(p),
-                      s -> (Location)s.getTile()).stream();
-        List<Location> locs = toList(flatten(game.getLivePlayers(player),
-                                             tradePred, settlementTileMapper));
+        List<Location> locs = new ArrayList<>();
+        for (Player op : game.getLivePlayers(player))
+            if (op.hasContacted(player) && (canTrade || !op.isEuropean()))
+                for (Settlement s : op.getSettlements())
+                    if (canReach.test(s) && s.hasContacted(op))
+                        locs.add(s.getTile());
+
         MultipleAdjacentDecider md = new MultipleAdjacentDecider(locs);
         unit.search(unit.getLocation(), md.getGoalDecider(), null,
                     FreeColObject.INFINITY, null);
diff --git a/src/net/sf/freecol/client/gui/menu/DebugMenu.java 
b/src/net/sf/freecol/client/gui/menu/DebugMenu.java
index e683bcc7c02..d56f8002c62 100644
--- a/src/net/sf/freecol/client/gui/menu/DebugMenu.java
+++ b/src/net/sf/freecol/client/gui/menu/DebugMenu.java
@@ -154,7 +154,7 @@ public class DebugMenu extends JMenu {
             });
         this.add(cvpMenu);
         cvpMenu.addSeparator();
-        for (Player p : game.getLiveEuropeanPlayerList()) {
+        for (Player p : game.getLiveEuropeanPlayers()) {
             final JRadioButtonMenuItem cv2
                 = Utility.localizedRadioButtonMenuItem(p.getCountryLabel(),
                     FreeColDebugger.debugDisplayColonyValuePlayer() == p);
diff --git a/src/net/sf/freecol/client/gui/panel/FindSettlementPanel.java 
b/src/net/sf/freecol/client/gui/panel/FindSettlementPanel.java
index 606dcc5fc39..d17db5b1c88 100644
--- a/src/net/sf/freecol/client/gui/panel/FindSettlementPanel.java
+++ b/src/net/sf/freecol/client/gui/panel/FindSettlementPanel.java
@@ -160,7 +160,7 @@ public final class FindSettlementPanel extends FreeColPanel
             = new DefaultListModel<>();
         Object selected = this.settlementList.getSelectedValue();
 
-        for (Player player : getGame().getLivePlayerList()) {
+        for (Player player : getGame().getLivePlayers()) {
             boolean ok;
             switch (displayListOption) {
             case ONLY_NATIVES:
diff --git a/src/net/sf/freecol/client/gui/panel/PlayersTable.java 
b/src/net/sf/freecol/client/gui/panel/PlayersTable.java
index 0c30f39d1ca..bf5524512a7 100644
--- a/src/net/sf/freecol/client/gui/panel/PlayersTable.java
+++ b/src/net/sf/freecol/client/gui/panel/PlayersTable.java
@@ -458,7 +458,7 @@ public final class PlayersTable extends JTable {
          */
         public void update() {
             for (Nation n : this.nations) nationMap.put(n, null);
-            for (Player p : thisPlayer.getGame().getLivePlayerList()) {
+            for (Player p : thisPlayer.getGame().getLivePlayers()) {
                 nationMap.put(p.getNation(), p);
             }
             fireTableDataChanged();
diff --git 
a/src/net/sf/freecol/client/gui/panel/colopedia/NationDetailPanel.java 
b/src/net/sf/freecol/client/gui/panel/colopedia/NationDetailPanel.java
index 26b6524f5dd..47436a5c929 100644
--- a/src/net/sf/freecol/client/gui/panel/colopedia/NationDetailPanel.java
+++ b/src/net/sf/freecol/client/gui/panel/colopedia/NationDetailPanel.java
@@ -79,8 +79,8 @@ public class NationDetailPanel extends 
ColopediaGameObjectTypePanel<Nation> {
         if (getId().equals(id)) return;
 
         Nation nation = getSpecification().getNation(id);
-        Player player = CollectionUtils.find(getGame().getLivePlayers(),
-                             p -> p.getNation() == nation);
+        Player player = getGame().getLivePlayerByNation(nation);
+
         NationType currentNationType = (player == null) ? nation.getType()
             : player.getNationType();
 
diff --git 
a/src/net/sf/freecol/client/gui/panel/report/ReportForeignAffairPanel.java 
b/src/net/sf/freecol/client/gui/panel/report/ReportForeignAffairPanel.java
index f9937dc24bd..3d5c283098b 100644
--- a/src/net/sf/freecol/client/gui/panel/report/ReportForeignAffairPanel.java
+++ b/src/net/sf/freecol/client/gui/panel/report/ReportForeignAffairPanel.java
@@ -79,7 +79,7 @@ public final class ReportForeignAffairPanel extends 
ReportPanel {
                                             "[align top]"));
 
         int n;
-        for (Player enemy : getGame().getLiveEuropeanPlayerList()) {
+        for (Player enemy : getGame().getLiveEuropeanPlayers()) {
             NationSummary ns = igc().getNationSummary(enemy);
             if (ns == null) continue;
 
diff --git a/src/net/sf/freecol/common/debug/DebugUtils.java 
b/src/net/sf/freecol/common/debug/DebugUtils.java
index 98799254bc0..13ddb27a316 100644
--- a/src/net/sf/freecol/common/debug/DebugUtils.java
+++ b/src/net/sf/freecol/common/debug/DebugUtils.java
@@ -735,7 +735,7 @@ public class DebugUtils {
         List<Unit> toEurope = new ArrayList<>();
         List<Unit> toAmerica = new ArrayList<>();
         HashMap<String,List<Unit>> units = new HashMap<>();
-        for (Player tp : sGame.getLiveEuropeanPlayerList()) {
+        for (Player tp : sGame.getLiveEuropeanPlayers()) {
             Player p = sGame.getFreeColGameObject(tp.getId(), Player.class);
             if (p.getEurope() == null) continue;
             inEurope.clear();
@@ -1135,7 +1135,7 @@ public class DebugUtils {
         LogBuilder lb = new LogBuilder(256);
         lb.add(sis.getName(), "\n\nAlarm\n");
         Player mostHated = sis.getMostHated();
-        for (Player p : sGame.getLiveEuropeanPlayerList()) {
+        for (Player p : sGame.getLiveEuropeanPlayers()) {
             Tension tension = sis.getAlarm(p);
             lb.add(Messages.message(p.getNationLabel()),
                    " ", ((tension == null) ? "(none)"
diff --git a/src/net/sf/freecol/common/model/Game.java 
b/src/net/sf/freecol/common/model/Game.java
index f079c5c54c4..3d4a14b5d6f 100644
--- a/src/net/sf/freecol/common/model/Game.java
+++ b/src/net/sf/freecol/common/model/Game.java
@@ -22,6 +22,8 @@ package net.sf.freecol.common.model;
 import java.lang.ref.WeakReference;
 import java.io.StringReader;
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -31,7 +33,6 @@ import java.util.NoSuchElementException;
 import java.util.UUID;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import java.util.function.Predicate;
 import java.util.stream.Stream;
 
 import javax.xml.stream.XMLStreamException;
@@ -510,59 +511,46 @@ public class Game extends FreeColGameObject {
     /**
      * Get all the players in the game.
      *
-     * @return The list of {@code Player}s.
+     * @return The {@code Collection} of {@code Player}s.
      */
-    public List<Player> getPlayerList() {
+    public Collection<Player> getPlayers() {
         return this.players;
     }
 
     /**
-     * Get all the players in the game as a stream.
-     *
-     * @return The list of {@code Player}s.
-     */
-    public Stream<Player> getPlayers() {
-        return this.players.stream();
-    }
-
-    /**
      * Sort the players list.
      *
      * @param comparator The {@code Comparator} to sort with.
      */
     public void sortPlayers(Comparator<Player> comparator) {
-        this.players.sort(comparator);
-    }
-
-    /**
-     * Get players in the game.
-     *
-     * @param predicate A {@code Predicate} to select suitable players with.
-     * @return A list of {@code Player}s.
-     */
-    public List<Player> getPlayerList(Predicate<Player> predicate) {
-        return transform(this.players, predicate);
+        Collections.sort(this.players, comparator);
     }
 
     /**
-     * Get players in the game.
+     * Get a {@code Player} identified by its nation.
      *
-     * @param predicate A {@code Predicate} to select suitable players with.
-     * @return The stream of {@code Player}s.
+     * @param nation The {@code Nation} to search for.
+     * @return The {@code Player} of the given nation, or null if
+     *     not found.
      */
-    public Stream<Player> getPlayers(Predicate<Player> predicate) {
-        return getPlayerList(predicate).stream();
+    public Player getPlayerByNation(Nation nation) {
+        return getPlayerByNationId(nation.getId());
     }
 
     /**
-     * Get a {@code Player} identified by its nation.
+     * Get alive {@code Player} identified by its nation.
      *
      * @param nation The {@code Nation} to search for.
      * @return The {@code Player} of the given nation, or null if
-     *     not found.
+     *     not found or already dead.
      */
-    public Player getPlayerByNation(Nation nation) {
-        return getPlayerByNationId(nation.getId());
+    public final Player getLivePlayerByNation(Nation nation) {
+        if (this.players == null)
+            for (Player p : this.players)
+                if (!p.isUnknownEnemy() && !p.isDead() && p.getNation() == 
nation)
+                    return p;
+
+        return null;
     }
 
     /**
@@ -573,7 +561,25 @@ public class Game extends FreeColGameObject {
      *     not found.
      */
     public Player getPlayerByNationId(String nationId) {
-        return find(this.players, matchKeyEquals(nationId, 
Player::getNationId));
+        if ((players != null) || (nationId != null))
+        {
+            for (Player walk : players) {
+                if (walk == null)
+                    continue;
+                if (nationId.equals(walk.getNationId()))
+                    return walk;
+            }
+        }
+        return null;
+    }
+
+    private static void addPlayerNotExcluded(List<Player> result,
+                                             Player player,
+                                             Player[] exclude) {
+        for (Player e : exclude)
+            if (e == player) return;
+
+        result.add(player);
     }
 
     /**
@@ -581,72 +587,62 @@ public class Game extends FreeColGameObject {
      * excluding supplied ones.
      *
      * @param exclude The {@code Player}s to exclude.
-     * @return A list of live {@code Player}s, without the excluded ones.
+     * @return A {@code Collection} of live {@code Player}s, without the 
excluded ones.
      */
-    public List<Player> getLivePlayerList(final Player... exclude) {
-        final Predicate<Player> livePred = p ->
-            !p.isUnknownEnemy() && !p.isDead() && !any(exclude, matchKey(p));
-        return getPlayerList(livePred);
-    }
+    public Collection<Player> getLivePlayers(final Player... exclude) {
+        List<Player> result = new ArrayList<>();
 
-    /**
-     * Get a stream of the live players in the game, optionally excluding
-     * supplied ones.
-     *
-     * @param exclude The {@code Player}s to exclude.
-     * @return A stream of live {@code Player}s, without the
-     *     excluded ones.
-     */
-    public Stream<Player> getLivePlayers(final Player... exclude) {
-        return getLivePlayerList(exclude).stream();
+        for (Player p : this.players)
+            if (p.isLive())
+                addPlayerNotExcluded(result, p, exclude);
+
+        return result;
     }
 
     /**
      * Get a list of the live European players in this game.
      *
      * @param exclude {@code Player}s to exclude.
-     * @return A list of live European {@code Player}s in this game,
+     * @return A {@code Collection} of live European {@code Player}s in this 
game,
      *     without the excluded ones.
      */
-    public List<Player> getLiveEuropeanPlayerList(final Player... exclude) {
-        final Predicate<Player> europeanPred = p ->
-            !p.isUnknownEnemy() && !p.isDead() && p.isEuropean()
-                && !any(exclude, matchKey(p));
-        return getPlayerList(europeanPred);
+    public List<Player> getLiveEuropeanPlayers(final Player... exclude) {
+        List<Player> result = new ArrayList<>();
+
+        for (Player p : this.players)
+            if (p.isLiveEuropean())
+                addPlayerNotExcluded(result, p, exclude);
+
+        return result;
     }
 
     /**
-     * Get a stream of the live European players in this game.
+     * Get a list of the live European players in this game.
      *
      * @param exclude {@code Player}s to exclude.
-     * @return A stream of live European {@code Player}s in this game,
+     * @return A {@code Collection} of live European {@code Player}s in this 
game,
      *     without the excluded ones.
      */
-    public Stream<Player> getLiveEuropeanPlayers(final Player... exclude) {
-        return getLiveEuropeanPlayerList(exclude).stream();
+    public List<Player> getLiveEuropeanPlayers(List<Player> exclude) {
+        Player[] array = new Player[exclude.size()];
+        exclude.toArray(array);
+        return getLiveEuropeanPlayers(array);
     }
 
     /**
      * Get a list of the live native players in this game.
      *
      * @param exclude {@code Player}s to exclude.
-     * @return A list of live native {@code Player}s in this game.
+     * @return A {@code Collection} of live native {@code Player}s in this 
game.
      */
-    public List<Player> getLiveNativePlayerList(final Player... exclude) {
-        final Predicate<Player> nativePred = p ->
-            !p.isUnknownEnemy() && !p.isDead() && p.isIndian()
-                && !any(exclude, matchKey(p));
-        return getPlayerList(nativePred);
-    }
+    public Collection<Player> getLiveNativePlayers(final Player... exclude) {
+        List<Player> result = new ArrayList<>();
 
-    /**
-     * Get a stream of the live native players in this game.
-     *
-     * @param exclude {@code Player}s to exclude.
-     * @return A stream of live native {@code Player}s in this game.
-     */
-    public Stream<Player> getLiveNativePlayers(final Player... exclude) {
-        return getLiveNativePlayerList(exclude).stream();
+        for (Player p : this.players)
+            if (p.isLiveNative())
+                addPlayerNotExcluded(result, p, exclude);
+
+        return result;
     }
 
     /**
@@ -697,7 +693,10 @@ public class Game extends FreeColGameObject {
      * @return The {@code Player} or null if none found.
      */
     public Player getPlayerByName(String name) {
-        return find(players, matchKeyEquals(name, Player::getName));
+        for (Player p : players)
+            if (Utils.equals(name, p.getName()))
+                return p;
+        return null;
     }
 
     /**
@@ -785,7 +784,10 @@ public class Game extends FreeColGameObject {
      * @return True if an undead player is present.
      */
     public boolean isInRevengeMode() {
-        return any(getPlayers(), Player::isUndead);
+        for (Player p : this.players)
+            if (p.isUndead())
+                return true;
+        return false;
     }
 
     /**
@@ -822,10 +824,12 @@ public class Game extends FreeColGameObject {
      */
     public void setMap(Map newMap) {
         if (this.map != newMap) {
-            for (HighSeas hs : transform(getLivePlayers(), alwaysTrue(),
-                    Player::getHighSeas, toListNoNulls())) {
-                hs.removeDestination(this.map);
-                hs.addDestination(newMap);
+            for (Player p : getLivePlayers()) {
+                HighSeas hs = p.getHighSeas();
+                if (hs != null) {
+                    hs.removeDestination(this.map);
+                    hs.addDestination(newMap);
+                }
             }
         }
         this.map = newMap;
@@ -1039,7 +1043,10 @@ public class Game extends FreeColGameObject {
      * @return True if all players are ready to launch.
      */
     public boolean allPlayersReadyToLaunch() {
-        return all(getLiveEuropeanPlayerList(), Player::isReady);
+        for (Player p : this.players)
+            if (p.isLiveEuropean() && (!p.isReady()))
+                return false;
+        return true;
     }
 
     /**
@@ -1049,7 +1056,7 @@ public class Game extends FreeColGameObject {
      * @return A stream of all the {@code Colony}s in the game.
      */
     public Stream<Colony> getAllColonies(Player player) {
-        return flatten(getLiveEuropeanPlayerList(player), Player::getColonies);
+        return flatten(getLiveEuropeanPlayers(player), Player::getColonies);
     }
 
     /**
@@ -1220,9 +1227,10 @@ public class Game extends FreeColGameObject {
         if (map != null) {
             result = Math.min(result, getMap().checkIntegrity(fix));
         }
-        for (Player player : getPlayerList()) {
+
+        for (Player player : this.players)
             result = Math.min(result, player.checkIntegrity(fix));
-        }
+
         return result;
     }
 
@@ -1337,7 +1345,8 @@ public class Game extends FreeColGameObject {
 
         nationOptions.toXML(xw);
 
-        List<Player> players = sort(getPlayers());
+        List<Player> players = new ArrayList<>(this.players);
+        Collections.sort(players);
         Player unknown = getUnknownEnemy();
         if (unknown != null) players.add(unknown);
         for (Player p : players) p.toXML(xw);
@@ -1402,9 +1411,9 @@ public class Game extends FreeColGameObject {
 
         // Make sure all work locations have rational default production
         // now that all tiles are defined.
-        for (Colony c : getAllColoniesList(null)) {
-            c.updateProductionTypes();
-        }
+        for (Player p : getLiveEuropeanPlayers(players))
+            for (Colony c : p.getColonies())
+                c.updateProductionTypes();
     }
 
     /**
diff --git a/src/net/sf/freecol/common/model/Operand.java 
b/src/net/sf/freecol/common/model/Operand.java
index 10d0f5099b5..97f4ee76b21 100644
--- a/src/net/sf/freecol/common/model/Operand.java
+++ b/src/net/sf/freecol/common/model/Operand.java
@@ -200,7 +200,7 @@ public class Operand extends Scope {
             result = game.getSpecification().getInteger(getType());
             break;
         default:
-            for (Player player : game.getLivePlayerList()) {
+            for (Player player : game.getLivePlayers()) {
                 switch (this.operandType) {
                 case UNITS:
                     result += ourCount(player.getUnitList());
diff --git a/src/net/sf/freecol/common/model/Player.java 
b/src/net/sf/freecol/common/model/Player.java
index 5aad8c26fdf..2ea54dd6ad9 100644
--- a/src/net/sf/freecol/common/model/Player.java
+++ b/src/net/sf/freecol/common/model/Player.java
@@ -727,6 +727,18 @@ public class Player extends FreeColGameObject implements 
Nameable {
             || playerType == PlayerType.ROYAL;
     }
 
+    public final boolean isLive() {
+        return (!isUnknownEnemy() && !isDead());
+    }
+
+    public final boolean isLiveEuropean() {
+        return (!isUnknownEnemy() && !isDead() && isEuropean());
+    }
+
+    public final boolean isLiveNative() {
+        return (!isUnknownEnemy() && !isDead() && isIndian());
+    }
+
     /**
      * Is this a native player?
      *
@@ -2812,7 +2824,7 @@ public class Player extends FreeColGameObject implements 
Nameable {
 
                 // All missions if using enhanced missionaries.
                 if (spec.getBoolean(GameOptions.ENHANCED_MISSIONARIES))
-                    for (Player other : 
getGame().getLiveNativePlayerList(this))
+                    for (Player other : getGame().getLiveNativePlayers(this))
                         for (IndianSettlement is : 
getIndianSettlementsWithMissionaryList(this))
                             vismap.setVisible(is);
 
diff --git a/src/net/sf/freecol/common/model/Tile.java 
b/src/net/sf/freecol/common/model/Tile.java
index 4d48060133d..d1e3d205e15 100644
--- a/src/net/sf/freecol/common/model/Tile.java
+++ b/src/net/sf/freecol/common/model/Tile.java
@@ -2497,7 +2497,7 @@ public final class Tile extends UnitLocation implements 
Named, Ownable {
 
         // Save the cached tiles to saved games.
         if (xw.validForSave() && cachedTiles != null) {
-            for (Player p : getGame().getLiveEuropeanPlayerList()) {
+            for (Player p : getGame().getLiveEuropeanPlayers()) {
                 Tile t = getCachedTile(p);
                 if (t == null) continue;
 
diff --git a/src/net/sf/freecol/common/networking/AddPlayerMessage.java 
b/src/net/sf/freecol/common/networking/AddPlayerMessage.java
index 2faa743fcae..b7f7dc7fc68 100644
--- a/src/net/sf/freecol/common/networking/AddPlayerMessage.java
+++ b/src/net/sf/freecol/common/networking/AddPlayerMessage.java
@@ -75,16 +75,6 @@ public class AddPlayerMessage extends DOMMessage {
     // Public interface
 
     /**
-     * Get the attached players.
-     *
-     * @return The list of {@code Player}s to add.
-     */
-    public List<Player> getPlayers() {
-        return this.players;
-    }
-
-
-    /**
      * Handle a "addPlayer"-message.
      *
      * @param server The {@code FreeColServer} handling the message.
diff --git a/src/net/sf/freecol/common/networking/ChangeSet.java 
b/src/net/sf/freecol/common/networking/ChangeSet.java
index 665f6be59bb..48bef9f74cb 100644
--- a/src/net/sf/freecol/common/networking/ChangeSet.java
+++ b/src/net/sf/freecol/common/networking/ChangeSet.java
@@ -1610,7 +1610,7 @@ public class ChangeSet {
      * @return The updated {@code ChangeSet}.
      */
     public ChangeSet addGlobalHistory(Game game, HistoryEvent history) {
-        for (Player p : game.getLiveEuropeanPlayerList()) {
+        for (Player p : game.getLiveEuropeanPlayers()) {
             addHistory((ServerPlayer)p, history);
         }
         return this;
@@ -1626,7 +1626,7 @@ public class ChangeSet {
      */
     public ChangeSet addGlobalMessage(Game game, ServerPlayer omit,
                                       ModelMessage message) {
-        for (Player p : game.getLiveEuropeanPlayerList()) {
+        for (Player p : game.getLiveEuropeanPlayers()) {
             if (p == (Player)omit) continue;
             addMessage((ServerPlayer)p, message);
         }
diff --git a/src/net/sf/freecol/common/networking/LoginMessage.java 
b/src/net/sf/freecol/common/networking/LoginMessage.java
index 7b1a9300688..3e68f687fa0 100644
--- a/src/net/sf/freecol/common/networking/LoginMessage.java
+++ b/src/net/sf/freecol/common/networking/LoginMessage.java
@@ -194,7 +194,7 @@ public class LoginMessage extends DOMMessage {
             }
 
             // Complete initialization...
-            serverPlayer.initialize(game, game.getLivePlayerList().isEmpty(),
+            serverPlayer.initialize(game, game.getLivePlayers().isEmpty(),
                                     nation);
 
             // ... but override player name.
diff --git a/src/net/sf/freecol/server/FreeColServer.java 
b/src/net/sf/freecol/server/FreeColServer.java
index 0a44c339c6a..2ded50a8033 100644
--- a/src/net/sf/freecol/server/FreeColServer.java
+++ b/src/net/sf/freecol/server/FreeColServer.java
@@ -600,7 +600,7 @@ public final class FreeColServer {
     public void endGame() {
         changeServerState(ServerState.END_GAME);
         ChangeSet cs = new ChangeSet();
-        for (Player p : getGame().getLiveEuropeanPlayerList()) {
+        for (Player p : getGame().getLiveEuropeanPlayers()) {
             ServerPlayer sp = (ServerPlayer)p;
             if (sp.isAdmin()) continue;
             sp.send(new ChangeSet()
@@ -1151,7 +1151,7 @@ public final class FreeColServer {
         int savegameVersion = fis.getSavegameVersion();
         // @compat 0.10.x
         if (savegameVersion < 12) {
-            for (Player p : serverGame.getPlayerList()) {
+            for (Player p : serverGame.getPlayers()) {
                 p.setReady(true); // Players in running game must be ready
                 // @compat 0.10.5
                 if (p.isIndian()) {
@@ -1221,7 +1221,7 @@ public final class FreeColServer {
 
         serverGame.sortPlayers(Player.playerComparator);
 
-        for (Player player : serverGame.getLivePlayerList()) {
+        for (Player player : serverGame.getLivePlayers()) {
             if (player.isAI()) {
                 ServerPlayer aiPlayer = (ServerPlayer)player;
                 addAIConnection(aiPlayer);
@@ -1308,14 +1308,14 @@ public final class FreeColServer {
             // Initial stances and randomizations for all players.
             spec.generateDynamicOptions();
             Random random = getServerRandom();
-            for (Player player : serverGame.getLivePlayerList()) {
+            for (Player player : serverGame.getLivePlayers()) {
                 ((ServerPlayer)player).randomizeGame(random);
                 if (player.isIndian()) {
                     // Indian players know about each other, but
                     // European colonial players do not.
                     final int alarm = (Tension.Level.HAPPY.getLimit()
                         + Tension.Level.CONTENT.getLimit()) / 2;
-                    for (Player other : 
serverGame.getLiveNativePlayerList(player)) {
+                    for (Player other : 
serverGame.getLiveNativePlayers(player)) {
                         player.setStance(other, Stance.PEACE);
                         for (IndianSettlement is : 
player.getIndianSettlementList()) {
                             is.setAlarm(other, new Tension(alarm));
@@ -1364,7 +1364,7 @@ public final class FreeColServer {
      * @param reveal If true, reveal, if false, hide.
      */
     public void exploreMapForAllPlayers(boolean reveal) {
-        for (Player player : getGame().getLiveEuropeanPlayerList()) {
+        for (Player player : getGame().getLiveEuropeanPlayers()) {
             ((ServerPlayer)player).exploreMap(reveal);
         }
 
@@ -1379,7 +1379,7 @@ public final class FreeColServer {
             fogOfWarSetting.setValue(FreeColDebugger.getNormalGameFogOfWar());
         }
 
-        for (Player player : getGame().getLiveEuropeanPlayerList()) {
+        for (Player player : getGame().getLiveEuropeanPlayers()) {
             ((ServerPlayer)player).getConnection().sendReconnect();
         }
     }
diff --git a/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java 
b/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
index 43931858669..be6f59c9eb0 100644
--- a/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
+++ b/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
@@ -1468,7 +1468,7 @@ public class EuropeanAIPlayer extends MissionAIPlayer {
         final ServerPlayer serverPlayer = (ServerPlayer)getPlayer();
         lb.mark();
 
-        for (Player p : getGame().getLivePlayerList(serverPlayer)) {
+        for (Player p : getGame().getLivePlayers(serverPlayer)) {
             Stance newStance = determineStance(p);
             if (newStance != serverPlayer.getStance(p)) {
                 if (newStance == Stance.WAR && peaceHolds(p)) {
diff --git a/src/net/sf/freecol/server/ai/NativeAIPlayer.java 
b/src/net/sf/freecol/server/ai/NativeAIPlayer.java
index abdb56014b5..4121139630e 100644
--- a/src/net/sf/freecol/server/ai/NativeAIPlayer.java
+++ b/src/net/sf/freecol/server/ai/NativeAIPlayer.java
@@ -166,7 +166,7 @@ public class NativeAIPlayer extends MissionAIPlayer {
         final ServerPlayer serverPlayer = (ServerPlayer)getPlayer();
         lb.mark();
 
-        for (Player p : getGame().getLivePlayerList(serverPlayer)) {
+        for (Player p : getGame().getLivePlayers(serverPlayer)) {
             Stance newStance = determineStance(p);
             if (newStance != serverPlayer.getStance(p)) {
                 getAIMain().getFreeColServer().getInGameController()
diff --git a/src/net/sf/freecol/server/control/InGameController.java 
b/src/net/sf/freecol/server/control/InGameController.java
index 2931e3ceb8e..79c8f30ceca 100644
--- a/src/net/sf/freecol/server/control/InGameController.java
+++ b/src/net/sf/freecol/server/control/InGameController.java
@@ -987,7 +987,7 @@ public final class InGameController extends Controller {
             }
             serverPlayer.addSettlement(settlement);
             settlement.placeSettlement(true);//-vis(serverPlayer),-til
-            for (Player p : getGame().getLivePlayerList(serverPlayer)) {
+            for (Player p : getGame().getLivePlayers(serverPlayer)) {
                 ((IndianSettlement)settlement).setAlarm(p, (p.isIndian())
                     ? new Tension(Tension.Level.CONTENT.getLimit())
                     : serverPlayer.getTension(p));//-til
diff --git a/src/net/sf/freecol/server/control/PreGameController.java 
b/src/net/sf/freecol/server/control/PreGameController.java
index ea5e5ecb23c..21b53176ed4 100644
--- a/src/net/sf/freecol/server/control/PreGameController.java
+++ b/src/net/sf/freecol/server/control/PreGameController.java
@@ -103,7 +103,7 @@ public final class PreGameController extends Controller {
 
         // Check that no two players have the same nation
         List<Nation> nations = new ArrayList<>();
-        for (Player p : game.getLivePlayerList()) {
+        for (Player p : game.getLivePlayers()) {
             final Nation nation = spec.getNation(p.getNationId());
             if (nations.contains(nation)) {
                 setLaunching(false);
diff --git a/src/net/sf/freecol/server/generator/SimpleMapGenerator.java 
b/src/net/sf/freecol/server/generator/SimpleMapGenerator.java
index e94ad3b5f4d..b1261092a9a 100644
--- a/src/net/sf/freecol/server/generator/SimpleMapGenerator.java
+++ b/src/net/sf/freecol/server/generator/SimpleMapGenerator.java
@@ -234,7 +234,7 @@ public class SimpleMapGenerator implements MapGenerator {
 
     private boolean importIndianSettlements(Map map, LogBuilder lb) {
         // First make sure all the players are present.
-        for (Player iPlayer : importGame.getLiveNativePlayerList()) {
+        for (Player iPlayer : importGame.getLiveNativePlayers()) {
             Player indian = game.getPlayerByNationId(iPlayer.getNationId());
             if (indian == null) {
                 Nation nation = spec.getNation(iPlayer.getNationId());
@@ -334,7 +334,7 @@ public class SimpleMapGenerator implements MapGenerator {
         List<Player> indians = new ArrayList<>();
         HashMap<String, Territory> territoryMap = new HashMap<>();
 
-        for (Player player : game.getLiveNativePlayerList()) {
+        for (Player player : game.getLiveNativePlayers()) {
             switch (player.getNationType().getNumberOfSettlements()) {
             case HIGH:
                 shares += 4;
@@ -1071,7 +1071,7 @@ public class SimpleMapGenerator implements MapGenerator {
         // Decorate the map.
         makeNativeSettlements(map, lb);
         makeLostCityRumours(map, lb);
-        createEuropeanUnits(map, game.getLiveEuropeanPlayerList(), lb);
+        createEuropeanUnits(map, game.getLiveEuropeanPlayers(), lb);
         return map;
     }
 }
diff --git a/src/net/sf/freecol/server/model/ServerGame.java 
b/src/net/sf/freecol/server/model/ServerGame.java
index 6fecadf2deb..75cc4db8c09 100644
--- a/src/net/sf/freecol/server/model/ServerGame.java
+++ b/src/net/sf/freecol/server/model/ServerGame.java
@@ -635,7 +635,7 @@ public class ServerGame extends Game implements 
ServerModelObject {
     @Override
     public void csNewTurn(Random random, LogBuilder lb, ChangeSet cs) {
         lb.add("GAME ", getId(), ", ");
-        for (Player player : getLivePlayerList()) {
+        for (Player player : getLivePlayers()) {
             ((ServerPlayer)player).csNewTurn(random, lb, cs);
         }
 
diff --git a/src/net/sf/freecol/server/model/ServerPlayer.java 
b/src/net/sf/freecol/server/model/ServerPlayer.java
index 7546bc597cf..53dc67c6c5c 100644
--- a/src/net/sf/freecol/server/model/ServerPlayer.java
+++ b/src/net/sf/freecol/server/model/ServerPlayer.java
@@ -632,7 +632,7 @@ public class ServerPlayer extends Player implements 
ServerModelObject {
         cs.addDead(this);
 
         // Clean up missions and remove tension/alarm/stance.
-        for (Player other : getGame().getLivePlayerList(this)) {
+        for (Player other : getGame().getLivePlayers(this)) {
             if (isEuropean() && other.isIndian()) {
                 for (IndianSettlement is : other.getIndianSettlementList()) {
                     ServerIndianSettlement sis = (ServerIndianSettlement)is;
@@ -1668,7 +1668,7 @@ outer:  for (Effect effect : effects) {
 
         // Do not need to update the clients here, these changes happen
         // while it is not their turn.
-        for (Player p : getGame().getLiveEuropeanPlayerList(this)) {
+        for (Player p : getGame().getLiveEuropeanPlayers(this)) {
             Market market = p.getMarket();
             if (market != null) market.addGoodsToMarket(type, amount);
         }
@@ -1765,7 +1765,7 @@ outer:  for (Effect effect : effects) {
             for (IndianSettlement is : allSettlements) {
                 java.util.Map<Player, Tension.Level> oldLevel = new 
HashMap<>();
                 oldLevels.put(is, oldLevel);
-                for (Player enemy : game.getLiveEuropeanPlayerList(this)) {
+                for (Player enemy : game.getLiveEuropeanPlayers(this)) {
                     Tension alarm = is.getAlarm(enemy);
                     oldLevel.put(enemy,
                         (alarm == null) ? null : alarm.getLevel());
@@ -1775,7 +1775,7 @@ outer:  for (Effect effect : effects) {
             // Do the settlement alarms first.
             for (IndianSettlement is : allSettlements) {
                 java.util.Map<Player, Integer> extra = new HashMap<>();
-                for (Player enemy : game.getLiveEuropeanPlayerList(this)) {
+                for (Player enemy : game.getLiveEuropeanPlayers(this)) {
                     extra.put(enemy, 0);
                 }
 
@@ -1959,7 +1959,7 @@ outer:  for (Effect effect : effects) {
             String eventId = event.getId();
             switch (eventId) {
             case "model.event.resetBannedMissions":
-                for (Player p : game.getLiveNativePlayerList()) {
+                for (Player p : game.getLiveNativePlayers()) {
                     if (p.missionsBanned(this)) {
                         p.removeMissionBan(this);
                         cs.add(See.only(this), p);
@@ -4477,7 +4477,7 @@ outer:  for (Effect effect : effects) {
             Stance sta = getStance(s);
             boolean war = sta == Stance.WAR;
             if (sta == Stance.UNCONTACTED) continue;
-            for (Player p : game.getLiveEuropeanPlayerList(this)) {
+            for (Player p : game.getLiveEuropeanPlayers(this)) {
                 ServerPlayer sp = (ServerPlayer) p;
                 if (p == s || !p.hasContacted(this)
                     || !p.hasContacted(s)) continue;
diff --git a/test/src/net/sf/freecol/common/model/FoundingFatherTest.java 
b/test/src/net/sf/freecol/common/model/FoundingFatherTest.java
index e559c879424..a9bea46ee66 100644
--- a/test/src/net/sf/freecol/common/model/FoundingFatherTest.java
+++ b/test/src/net/sf/freecol/common/model/FoundingFatherTest.java
@@ -126,7 +126,7 @@ public class FoundingFatherTest extends FreeColTestCase {
         // this feature is not used at the moment
         Game game = getGame();
         for (FoundingFather father : spec().getFoundingFathers()) {
-            for (Player player : game.getPlayerList()) {
+            for (Player player : game.getPlayers()) {
                 assertEquals(player.getNationId(), player.isEuropean(),
                              father.isAvailableTo(player));
             }
@@ -151,7 +151,7 @@ public class FoundingFatherTest extends FreeColTestCase {
         scopes.add(dutchScope);
         scopes.add(frenchScope);
         newFather.setScopes(scopes);
-        for (Player player : game.getPlayerList()) {
+        for (Player player : game.getPlayers()) {
             assertEquals(player.getNationId(),
                          (player == french || player == dutch),
                          newFather.isAvailableTo(player));
diff --git a/test/src/net/sf/freecol/common/model/GameTest.java 
b/test/src/net/sf/freecol/common/model/GameTest.java
index b2a74a30cc1..1b89092d44c 100644
--- a/test/src/net/sf/freecol/common/model/GameTest.java
+++ b/test/src/net/sf/freecol/common/model/GameTest.java
@@ -65,8 +65,8 @@ public class GameTest extends FreeColTestCase {
         players.sort(Player.playerComparator);
         game.sortPlayers(Player.playerComparator);
         assertEquals(spec().getNations().size() - counter,
-                     count(game.getPlayers()));
-        assertEquals(players, game.getPlayerList());
+                     game.getPlayers().size());
+        assertEquals(players, game.getPlayers());
     }
 
     public void testTurn() {
diff --git a/test/src/net/sf/freecol/common/model/UnitChangeTypeTest.java 
b/test/src/net/sf/freecol/common/model/UnitChangeTypeTest.java
index 2af6e1874d1..7fe346b7553 100644
--- a/test/src/net/sf/freecol/common/model/UnitChangeTypeTest.java
+++ b/test/src/net/sf/freecol/common/model/UnitChangeTypeTest.java
@@ -41,7 +41,7 @@ public class UnitChangeTypeTest extends FreeColTestCase {
         assertEquals("Education has no scopes", 0, count(uct.getScopes()));
 
         // empty scope applies to all players
-        for (Player player : getStandardGame().getPlayerList()) {
+        for (Player player : getStandardGame().getPlayers()) {
             assertTrue("Empty scopes apply to all players",
                        uct.appliesTo(player));
         }
diff --git a/test/src/net/sf/freecol/util/test/FreeColTestCase.java 
b/test/src/net/sf/freecol/util/test/FreeColTestCase.java
index 61b885a2ce7..68a1fc90f60 100644
--- a/test/src/net/sf/freecol/util/test/FreeColTestCase.java
+++ b/test/src/net/sf/freecol/util/test/FreeColTestCase.java
@@ -460,7 +460,7 @@ public class FreeColTestCase extends TestCase {
             map.resetHighSeasCount();
             if (exploredByAll) {
                 map.forEachTile(t -> {
-                        for (Player p : game.getLiveEuropeanPlayerList()) {
+                        for (Player p : game.getLiveEuropeanPlayers()) {
                             t.setExplored(p, true);
                         }
                     });
-- 
2.11.0.rc0.7.gbe5a750




------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Freecol-developers mailing list
Freecol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freecol-developers

Reply via email to