Package com.music.web.websocket.dto

Examples of com.music.web.websocket.dto.GameEvent


    @Test
    public void gameInitializedTest() throws Exception {
        GameHandler handler = new GameHandler();
        initializeGame(handler);

        GameEvent response = mapper.readValue(messages.get("1").removeLast().getPayload().toString(), GameEvent.class);
        Assert.assertEquals(GameEventType.GAME_INITIALIZED, response.getType());

        Assert.assertEquals(1, handler.getGames().size());

        Game game = handler.getGames().values().iterator().next();
        Assert.assertEquals(game.getId(), response.getGameId());
    }
View Full Code Here


        startMsg.setGameId(game.getId());

        WebSocketSession session = getSession("1");
        handler.handleMessage(session, getTextMessage(startMsg));

        GameEvent responseNewPiece = mapper.readValue(messages.get("1").removeLast().getPayload().toString(), GameEvent.class);
        GameEvent responseGameStarted = mapper.readValue(messages.get("1").removeLast().getPayload().toString(), GameEvent.class);
        Assert.assertEquals(GameEventType.GAME_STARTED, responseGameStarted.getType());

        Assert.assertEquals(GameEventType.NEW_PIECE, responseNewPiece.getType());
        Assert.assertEquals(piece.getId(), responseNewPiece.getPieceId());
    }
View Full Code Here

        handler.afterConnectionEstablished(player2Session);

        handler.handleMessage(player2Session, getTextMessage(playerJoinMsg));

        GameEvent playerJoinedEvent = mapper.readValue(messages.get("1").removeLast().getPayload().toString(), GameEvent.class);
        Assert.assertEquals(GameEventType.PLAYER_JOINED, playerJoinedEvent.getType());
        Assert.assertEquals(playerJoinedEvent.getPlayerId(), "2");

        Assert.assertTrue(messages.get("2").size() == 1); // player received a 'player_joined' event for each other player in the game
    }
View Full Code Here

    }

    private void join(String gameId, String playerName, WebSocketSession session) {
        Game game = games.get(gameId);
        if (game == null) {
            sendMessage(new GameEvent(GameEventType.NO_GAME_AVAILABLE), session);
        }
        if (!game.isStarted()) {
            String playerId = session.getId();
            Player player = players.get(playerId);
            player.setName(playerName);
            playerGames.put(playerId, game);
            if (!game.playerJoined(player)) {
                sendMessage(new GameEvent(GameEventType.PLAYER_NAME_TAKEN), session);
            }
        } else {
            sendMessage(new GameEvent(GameEventType.GAME_ALREADY_STARTED), session);
        }
    }
View Full Code Here

        }
    }

    private void joinRandomGame(String playerName, WebSocketSession session) {
        if (pendingGames.isEmpty()) {
            sendMessage(new GameEvent(GameEventType.NO_GAME_AVAILABLE), session);
            return;
        }
        List<Game> games = new ArrayList<>(this.pendingGames.values());
        Random random = new Random();

        Game game = pendingGames.get(random.nextInt(games.size()));
        join(game.getId(), playerName, session);
        GameEvent event = new GameEvent(GameEventType.RANDOM_GAME_JOINED);
        event.setGameId(game.getId());
        sendMessage(event, session);
    }
View Full Code Here

        Game game = new Game(gameId, pieceService);
        games.put(gameId, game);
        pendingGames.put(gameId, game);

        join(gameId, message.getPlayerName(), session);
        GameEvent event = new GameEvent(GameEventType.GAME_INITIALIZED);
        event.setGameId(gameId);
        sendMessage(event, session);
    }
View Full Code Here

    public Player(WebSocketSession session) {
        this.session = session;
    }

    public void gameStarted() {
        GameEvent event = new GameEvent(GameEventType.GAME_STARTED);
        event.setPieceCount(Game.PIECES_PER_GAME);
        GameHandler.sendMessage(event, session);
    }
View Full Code Here

        event.setPieceCount(Game.PIECES_PER_GAME);
        GameHandler.sendMessage(event, session);
    }

    public void gameFinished(GameResults results, Game game) {
        GameEvent event = new GameEvent(GameEventType.GAME_FINISHED);
        List<PlayerResult> playerResults = new ArrayList<PlayerResult>();

        for (int i = 0; i < results.getRanking().size(); i ++) {
            PlayerResult result = new PlayerResult();
            result.setRank(i + 1);
            // the scores map is a name-to-score mapping. We get the name for the player, currently iterated on via the list of players of the game
            String name = game.getPlayers().get(results.getRanking().get(i)).getName();
            result.setScore(results.getScores().get(name));
            result.setName(name);
            playerResults.add(result);
        }
        PlayerResult currentPlayerResult = new PlayerResult();
        int rank = results.getRanking().indexOf(session.getId()) + 1;
        int score = results.getScores().get(name);
        currentPlayerResult.setRank(rank);
        currentPlayerResult.setScore(score);

        event.setPlayerResults(playerResults);
        event.setCurrentPlayerResult(currentPlayerResult);
        GameHandler.sendMessage(event, session);
    }
View Full Code Here

        event.setCurrentPlayerResult(currentPlayerResult);
        GameHandler.sendMessage(event, session);
    }

    public void playerLeft(String id) {
        GameEvent event = new GameEvent(GameEventType.PLAYER_LEFT);
        event.setPlayerId(id);
        try {
            GameHandler.sendMessage(event, session);
        } catch (Exception e) {
            logger.warn("Problem sending PLAYER_LEFT message", e);
        }
View Full Code Here

            logger.warn("Problem sending PLAYER_LEFT message", e);
        }
    }

    public void playerJoined(Player player) {
        GameEvent event = new GameEvent(GameEventType.PLAYER_JOINED);
        event.setPlayerId(player.getSession().getId());
        event.setPlayerName(player.getName());
        GameHandler.sendMessage(event, session);
    }
View Full Code Here

TOP

Related Classes of com.music.web.websocket.dto.GameEvent

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.