@OnWebSocketMessage
    public void onMessage(String message) {
        System.out.println("Message: " + message);
        try {
            EventMessage eventMessage = JsonUtils.getMapper().readValue(message, EventMessage.class);
            if (StringUtils.isNotEmpty(eventMessage.getGameStatus())) {
                processGameMessage(eventMessage.getGameStatus());
            }
            if (StringUtils.isNotEmpty(eventMessage.getPhaseName()) && StringUtils.isEmpty(eventMessage.getPlayResult())) {
                processPhaseMessage(eventMessage.getPhaseName());
            }

            if (!player.underAttack) {
                player.setPlayerAction(PlayerAction.NONE);
            }

            if (StringUtils.isNotEmpty(eventMessage.getPlayerAction())) {
                processPlayerActionMessage(eventMessage.getPlayerAction());
            }
            if (StringUtils.isNotEmpty(eventMessage.getCardName())) {
                processCardMessage(eventMessage.getCardName());
            }
            if (StringUtils.isNotEmpty(eventMessage.getPlayResult())) {
                processPlayResult(eventMessage.getPlayResult());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }