public Boolean addPlayer( Player player )	 {
		if(this.currNumPlayers < Room.MaxNumPlayer)	{
			boolean alreadyConnected = false;
			for( Player p : this.playerList ){
				// nuevo player que no es el game master
				if( player.equals(p) ){
					alreadyConnected = true;
					this.logger.debug("Player " + player.getUser().getUsername() + " ya en lista");
					break;
				}
			}
			if( !alreadyConnected ){
				//agrega jugador a uno de los dos equipos
				if(this.toRedTeam) {
					this.teamRed.addPlayer( player );
					this.toRedTeam = false;
					this.currNumPlayers++;
					
					// Para debug
					this.logger.debug("Lista de usuarios en equipo rojo: ");
					for( Player p : this.teamRed.getPlayers() ){
						this.logger.debug( p.getUser().getUsername() );
					}
					this.logger.debug("Fin lista");
				}else{
					this.teamBlack.addPlayer( player );
					this.toRedTeam = true;
					this.currNumPlayers++;
					
					// Para debug
					this.logger.debug("Lista de usuarios en equipo negro: ");
					for( Player p : this.teamBlack.getPlayers() ){
						this.logger.debug( p.getUser().getUsername() );
					}
					this.logger.debug("Fin lista");
				}
				
				// se agrega player a la sala
				this.playerList.add(player);
				// se actualiza sala del player
				player.setRoom(this);
				logger.info("Jugador " + player.getUser().getUsername() 
						+ " se une a sala " + this.roomName);
				
				//actualiza sala de todo los jugadores y la envia
				RequestRoomUpdate rru = new RequestRoomUpdate();
				rru.roomInfo = getTeamList();
				for( Player p : playerList ){
					p.getConnection().sendTCP(rru); 
				}
				return true;
			}
		}
		// Cualquier otro caso
		return false;
	}