Package megamek.common

Examples of megamek.common.Player


     * correctly.
     *
     * @return true if any options have been successfully changed.
     */
    private boolean receiveGameOptions(Packet packet, int connId) {
        Player player = game.getPlayer(connId);
        // Check player
        if (null == player) {
            System.err.print("Server does not recognize player at connection ");
            System.err.println(connId);
            return false;
        }

        // check password
        if ((password != null) && (password.length() > 0) && !password.equals(packet.getObject(0))) {
            sendServerChat(connId, "The password you specified to change game options is incorrect.");
            return false;
        }

        if ( game.getPhase().isDuringOrAfter(Phase.PHASE_DEPLOYMENT) ){
            return false;
        }

        int changed = 0;

        for (Enumeration<?> i = ((Vector<?>) packet.getObject(1)).elements(); i.hasMoreElements();) {
            IBasicOption option = (IBasicOption) i.nextElement();
            IOption originalOption = game.getOptions().getOption(option.getName());

            if (originalOption == null) {
                continue;
            }

            StringBuffer message = new StringBuffer();
            message.append("Player ").append(player.getName()).append(" changed option \"").append(originalOption.getDisplayableName()).append("\" to ").append(option.getValue().toString()).append('.');
            sendServerChat(message.toString());
            originalOption.setValue(option.getValue());
            changed++;
        }

View Full Code Here


    /**
     * Sends out all player info to the specified connection
     */
    private void transmitAllPlayerConnects(int connId) {
        for (Enumeration<Player> i = game.getPlayers(); i.hasMoreElements();) {
            final Player player = i.nextElement();

            send(connId, createPlayerConnectPacket(player.getId()));
        }
    }
View Full Code Here

    /**
     * Sends out the player info updates for all players to all connections
     */
    private void transmitAllPlayerUpdates() {
        for (Enumeration<Player> i = game.getPlayers(); i.hasMoreElements();) {
            final Player player = i.nextElement();
            if (null != player) {
                send(createPlayerUpdatePacket(player.getId()));
            }
        }
    }
View Full Code Here

    /**
     * Sends out the player ready stats for all players to all connections
     */
    private void transmitAllPlayerDones() {
        for (Enumeration<Player> i = game.getPlayers(); i.hasMoreElements();) {
            final Player player = i.nextElement();

            send(createPlayerDonePacket(player.getId()));
        }
    }
View Full Code Here

     */
    private Packet createSpecialHexDisplayPacket(int toPlayer) {
        Hashtable<Coords, Collection<SpecialHexDisplay>> shdTable = game.getBoard().getSpecialHexDisplayTable();
        Hashtable<Coords, Collection<SpecialHexDisplay>> shdTable2 = new Hashtable<Coords, Collection<SpecialHexDisplay>>();
        LinkedList<SpecialHexDisplay> tempList = null;
        Player player = getPlayer(toPlayer);
        if (player != null) {
            final String playerName = getPlayer(toPlayer).getName();

            for (Coords coord : shdTable.keySet()) {
                tempList = new LinkedList<SpecialHexDisplay>();
View Full Code Here

            return;
        }

        for (Enumeration<IConnection> connEnum = connections.elements();connEnum.hasMoreElements();) {
            IConnection conn = connEnum.nextElement();
            Player p = game.getPlayer(conn.getId());
            Packet packet;
            if (tacticalGeniusReport) {
                packet = createTacticalGeniusReportPacket();
            } else {
                packet = createReportPacket(p);
View Full Code Here

     *            packet.
     * @param packet -
     *            the <code>Packet</code> to be processed.
     */
    protected synchronized void handle(int connId, Packet packet) {
        Player player = game.getPlayer(connId);
        // Check player. Please note, the connection may be pending.
        if ((null == player) && (null == getPendingConnection(connId))) {
            System.err.print("Server does not recognize player at connection ");
            System.err.println(connId);
            return;
        }

        // System.out.println("s(" + cn + "): received command");
        if (packet == null) {
            System.out.println("server.connection.handle: got null packet");
            return;
        }
        // act on it
        switch (packet.getCommand()) {
        case Packet.COMMAND_CLOSE_CONNECTION:
            // We have a client going down!
            IConnection c = getConnection(connId);
            if (c != null) {
                c.close();
            }
            break;
        case Packet.COMMAND_CLIENT_NAME:
            receivePlayerName(packet, connId);
            break;
        case Packet.COMMAND_PLAYER_UPDATE:
            receivePlayerInfo(packet, connId);
            validatePlayerInfo(connId);
            send(createPlayerUpdatePacket(connId));
            break;
        case Packet.COMMAND_PLAYER_READY:
            receivePlayerDone(packet, connId);
            send(createPlayerDonePacket(connId));
            checkReady();
            break;
        case Packet.COMMAND_REROLL_INITIATIVE:
            receiveInitiativeRerollRequest(packet, connId);
            send(createPlayerDonePacket(connId));
            break;
        case Packet.COMMAND_CHAT:
            String chat = (String) packet.getObject(0);
            if (chat.startsWith("/")) {
                processCommand(connId, chat);
            } else {
                sendChat(player.getName(), chat);
            }
            // Easter eggs. Happy April Fool's Day!!
            if (DUNE_CALL.equalsIgnoreCase(chat)) {
                sendServerChat(DUNE_RESPONSE);
            } else if (STAR_WARS_CALL.equalsIgnoreCase(chat)) {
                sendServerChat(STAR_WARS_RESPONSE);
            } else if ( INVADER_ZIM_CALL.equalsIgnoreCase(chat) ){
                sendServerChat(INVADER_ZIM_RESPONSE);
            }
            break;
        case Packet.COMMAND_ENTITY_MOVE:
            receiveMovement(packet, connId);
            break;
        case Packet.COMMAND_ENTITY_DEPLOY:
            receiveDeployment(packet, connId);
            break;
        case Packet.COMMAND_DEPLOY_MINEFIELDS:
            receiveDeployMinefields(packet, connId);
            break;
        case Packet.COMMAND_ENTITY_ATTACK:
            receiveAttack(packet, connId);
            break;
        case Packet.COMMAND_ENTITY_ADD:
            receiveEntityAdd(packet, connId);
            resetPlayersDone();
            transmitAllPlayerDones();
            break;
        case Packet.COMMAND_ENTITY_UPDATE:
            receiveEntityUpdate(packet, connId);
            resetPlayersDone();
            transmitAllPlayerDones();
            break;
        case Packet.COMMAND_ENTITY_MODECHANGE:
            receiveEntityModeChange(packet, connId);
            break;
        case Packet.COMMAND_ENTITY_SYSTEMMODECHANGE:
            receiveEntitySystemModeChange(packet, connId);
            break;
        case Packet.COMMAND_ENTITY_AMMOCHANGE:
            receiveEntityAmmoChange(packet, connId);
            break;
        case Packet.COMMAND_ENTITY_REMOVE:
            receiveEntityDelete(packet, connId);
            resetPlayersDone();
            transmitAllPlayerDones();
            break;
        case Packet.COMMAND_SENDING_GAME_SETTINGS:
            if (receiveGameOptions(packet, connId)) {
                resetPlayersDone();
                transmitAllPlayerDones();
                send(createGameSettingsPacket());
                receiveGameOptionsAux(packet, connId);
            }
            break;
        case Packet.COMMAND_SENDING_MAP_SETTINGS:
            if ( game.getPhase().isBefore(Phase.PHASE_DEPLOYMENT)){
                MapSettings newSettings = (MapSettings) packet.getObject(0);
                if (!mapSettings.equalMapGenParameters(newSettings)) {
                    sendServerChat("Player " + player.getName() + " changed mapsettings");
                }
                mapSettings = newSettings;
                newSettings = null;
                mapSettings.replaceBoardWithRandom(MapSettings.BOARD_RANDOM);
                resetPlayersDone();
                transmitAllPlayerDones();
                send(createMapSettingsPacket());
            }
            break;
        case Packet.COMMAND_SENDING_PLANETARY_CONDITIONS:
            // MapSettings newSettings = (MapSettings) packet.getObject(0);
            if ( game.getPhase().isBefore(Phase.PHASE_DEPLOYMENT) ){
                PlanetaryConditions conditions = (PlanetaryConditions) packet.getObject(0);
                sendServerChat("Player " + player.getName() + " changed planetary conditions");
                game.setPlanetaryConditions(conditions);
                resetPlayersDone();
                transmitAllPlayerDones();
                send(createPlanetaryConditionsPacket());
            }
View Full Code Here

     * stranded entities have answered, executes the pending requests and end
     * the current turn.
     */
    private void receiveUnloadStranded(Packet packet, int connId) {
        GameTurn.UnloadStrandedTurn turn = null;
        final Player player = game.getPlayer(connId);
        int[] entityIds = (int[]) packet.getObject(0);
        Vector<Player> declared = null;
        Player other = null;
        Enumeration<EntityAction> pending = null;
        UnloadStrandedAction action = null;
        Entity entity = null;

        // Is this the right phase?
View Full Code Here

     */
    private void addReport(Vector<Report> reports) {
        // Only bother with player reports if doing double blind.
        if (doBlind()) {
            for (IConnection conn : connections) {
                Player p = game.getPlayer(conn.getId());

                p.getTurnReport().addAll(filterReportVector(reports, p));
            }
        }
        vPhaseReport.addAll(reports);
    }
View Full Code Here

     */
    private void addReport(Report report) {
        // Only bother with player reports if doing double blind.
        if (doBlind()) {
            for (IConnection conn : connections) {
                Player p = game.getPlayer(conn.getId());

                p.getTurnReport().addElement(filterReport(report, p, false));
            }
        }
        vPhaseReport.addElement(report);
    }
View Full Code Here

TOP

Related Classes of megamek.common.Player

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.