diff --git a/game-app/game-headed/src/main/java/games/strategy/triplea/TripleAPlayer.java b/game-app/game-headed/src/main/java/games/strategy/triplea/TripleAPlayer.java index a84f3171279..b3ef21b4afd 100644 --- a/game-app/game-headed/src/main/java/games/strategy/triplea/TripleAPlayer.java +++ b/game-app/game-headed/src/main/java/games/strategy/triplea/TripleAPlayer.java @@ -120,13 +120,20 @@ public boolean isAi() { public void start(final String name) { // must call super.start super.start(name); + try { + startImpl(name); + } catch (GameOverException e) { + // Return cleanly. + } + } + + private void startImpl(final String name) { if (getPlayerBridge().isGameOver()) { return; } if (ui == null) { // We will get here if we are loading a save game of a map that we do not have. Caller code - // should be doing - // the error handling, so just return.. + // should be doing the error handling, so just return.. return; } // TODO: parsing which UI thing we should run based on the string name of a possibly extended @@ -139,8 +146,7 @@ public void start(final String name) { // the gamedata: // (ISomeDelegate) getPlayerBridge().getRemote() // We should never touch the game data directly. All changes to game data are done through the - // remote, - // which then changes the game using the DelegateBridge -> change factory + // remote, which then changes the game using the DelegateBridge -> change factory ui.requiredTurnSeries(this.getGamePlayer()); enableEditModeMenu(); boolean badStep = false;