let usuarioYaEstaEnEquipo = false; let intervaloSala = null; let botonAbandonarReferencia = null; $(document).ready(function () { comprobarSalaUsuario(); }); // ===================================================== // COMPROBAR SI EL USUARIO YA ESTÁ EN UNA SALA // ===================================================== function comprobarSalaUsuario() { $("#cargandoSalas").remove(); $.ajax({ url: "controladores/controladorEquipoxUsuario.php", type: "POST", dataType: "json", data: { orden: "obtenerSalaUsuario", }, success: function (respuesta) { if (respuesta.error || !respuesta.asociado) { usuarioYaEstaEnEquipo = false; $("#contenedorCrearSala").show(); iniciarActualizacionSalas(); } else { usuarioYaEstaEnEquipo = true; $("#contenedorCrearSala").hide(); cargarSalaUsuario(respuesta.idPartida); } }, error: function (xhr, status, error) { console.error("Error al comprobar la sala del usuario:", error); usuarioYaEstaEnEquipo = false; $("#contenedorCrearSala").show(); cargarSalas(); }, }); } // ===================================================== // CARGAR SALA DEL USUARIO // ===================================================== function cargarSalaUsuario(idPartida) { // Primera carga completa cargarSalaCompleta(idPartida); // Evitar intervalos duplicados if (intervaloSala) { clearInterval(intervaloSala); } intervaloSala = setInterval(function () { actualizarSalaUsuario(idPartida); }, 5000); } // ===================================================== // CARGA COMPLETA DE LA SALA // ===================================================== function cargarSalaCompleta(idPartida) { $.ajax({ url: "controladores/controladorPartida.php", type: "POST", dataType: "json", data: { orden: "buscar", idPartida: idPartida, }, success: function (partida) { if (partida.error) { console.error(partida.error); return; } cargarInformacionSalaCompleta(partida); }, error: function (xhr, status, error) { console.error("Error al obtener la sala:", error); }, }); } // ===================================================== // OBTENER EQUIPOS Y JUGADORES // ===================================================== function cargarInformacionSalaCompleta(partida) { $.ajax({ url: "controladores/controladorPartida.php", type: "POST", dataType: "json", data: { orden: "getEquipos", idPartida: partida.idPartida, }, success: function (equipos) { $.ajax({ url: "controladores/controladorPartida.php", type: "POST", dataType: "json", data: { orden: "getJugadores", idPartida: partida.idPartida, }, success: function (jugadores) { mostrarSala(partida, equipos, jugadores); }, error: function (xhr, status, error) { console.error("Error al obtener jugadores:", error); }, }); }, error: function (xhr, status, error) { console.error("Error al obtener equipos:", error); }, }); } // ===================================================== // ACTUALIZAR SALA CADA 5 SEGUNDOS // ===================================================== function actualizarSalaUsuario(idPartida) { $.ajax({ url: "controladores/controladorPartida.php", type: "POST", dataType: "json", data: { orden: "buscar", idPartida: idPartida, }, success: function (partida) { if (partida.error) { console.error(partida.error); return; } cargarInformacionSala(partida); }, error: function (xhr, status, error) { console.error("Error al actualizar la sala:", error); }, }); } // ===================================================== // OBTENER INFORMACIÓN PARA ACTUALIZACIÓN // ===================================================== function cargarInformacionSala(partida) { $.ajax({ url: "controladores/controladorPartida.php", type: "POST", dataType: "json", data: { orden: "getEquipos", idPartida: partida.idPartida, }, success: function (equipos) { $.ajax({ url: "controladores/controladorPartida.php", type: "POST", dataType: "json", data: { orden: "getJugadores", idPartida: partida.idPartida, }, success: function (jugadores) { mostrarEquipos(partida, equipos, jugadores); }, error: function (xhr, status, error) { console.error("Error al obtener jugadores:", error); }, }); }, error: function (xhr, status, error) { console.error("Error al obtener equipos:", error); }, }); } // ===================================================== // MOSTRAR SALA COMPLETA // ===================================================== function mostrarSala(partida, equipos, jugadores) { const contenedor = $("#contenedorSalas"); let equiposHTML = ""; equipos.forEach(function (equipo) { const jugadoresEquipo = jugadores.filter(function (jugador) { return jugador.idEquipo == equipo.idEquipo; }); let jugadoresHTML = ""; if (jugadoresEquipo.length > 0) { jugadoresEquipo.forEach(function (jugador) { const esHost = jugador.idUsuario == partida.idUsuario; jugadoresHTML += `