public void startSinglePlayerGame(Specification specification,
                                      String userName, Advantages advantages) {
        freeColClient.setMapEditor(false);

        if (freeColClient.isLoggedIn()) logout(true);

        if (!unblockServer(FreeCol.getDefaultPort())) return;

        loadModFragments(specification);

        FreeColServer freeColServer;
        try {
            freeColServer = new FreeColServer(specification, false,
                                              true, -1, null, advantages);
        } catch (NoRouteToServerException e) {
            gui.errorMessage("server.noRouteToServer");
            logger.log(Level.WARNING, "No route to server (single player!).",
                e);
            return;
        } catch (IOException e) {
            gui.errorMessage("server.couldNotStart");
            logger.log(Level.WARNING, "Could not start server.", e);
            return;
        }

        if (freeColClient.getClientOptions()
            .getBoolean(ClientOptions.AUTOSAVE_DELETE)) {
            FreeColServer.removeAutosaves(Messages.message("clientOptions.savegames.autosave.fileprefix"));
        }
        freeColClient.setFreeColServer(freeColServer);
        freeColClient.setSinglePlayer(true);
        if (login(userName, "127.0.0.1", freeColServer.getPort())) {
            freeColClient.getPreGameController().setReady(true);
            gui.showStartGamePanel(freeColClient.getGame(),
                                   freeColClient.getMyPlayer(), true);
        }
    }