private static String packCurrentStatePacket(Packet packet) {
        
        StringBuilder sb = new StringBuilder();        
        
        ServerGameState sgs = (ServerGameState) packet.getData();        
        sb.append("\n");
        
        sb.append(Packet.PACKET_CODES.ACTIVE_USER + " " + sgs.activePlayer + "\n");
        
        sb.append(Packet.PACKET_CODES.GAME_USERS_LIST);
        for(PlayerState ps : sgs.playerStates) {
            sb.append(" " + ps.getNickname());
        }
        sb.append("\n");
        
        sb.append(Packet.PACKET_CODES.ACTIVE_USER_FLAGS);
        for(PlayerState ps : sgs.playerStates) {
            if(ps.isActive()) {
                sb.append(" 1");
            } else {
                sb.append(" 0");
            }
        }
        sb.append("\n");
        
        sb.append(Packet.PACKET_CODES.SCORE);
        for(PlayerState ps : sgs.playerStates) {
            sb.append(" " + ps.getScore());
        }
        sb.append("\n");
        
        for(int j = 0; j < sgs.map.getYSize(); j++) {
            sb.append(Packet.PACKET_CODES.GAME_AREA_LINE + " ");
            for(int i = 0; i < sgs.map.getXSize(); i++) {
                sb.append(sgs.map.getCell(i, j).getCode());
            }
            sb.append("\n");
        }
                
        return sb.toString();
    }