Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

277
Vistas
La lógica del bot de música discord.js dispatcher.on ("finalizar") se ejecuta varias veces eliminando canciones de la cola y luego desconectando el bot

Configuré un bot de Discord para tomar las URL de YouTube y reproducirlas en el canal de voz actual en el que se encuentra el usuario que inició el comando del bot. El bot puede crear una cola de múltiples enlaces de YouTube, pero cuando la primera canción en la cola termina de reproducir el siguiente código a continuación me está dando un problema en el que parece que ejecutará la lógica tantas veces como canciones en la cola. Por ejemplo, si hay 6 canciones en la cola, la lógica server.dispatcher.on(finish) se ejecuta 6 veces seguidas eliminando las canciones en la cola una por una hasta que no quedan canciones en la cola y luego el bot se desconecta del canal de voz

 function playF(connectionF, message){ console.log("starting the play function "); var server = servers[message.guild.id]; if(!playingMusic){ console.log("not playing music, running this logic "); server.dispatcher = connectionF.play(ytdl(server.queue[0], {filter: "audioonly"})); server.queue.shift(); playingMusic = true; } server.dispatcher.on("finish", () => { console.log("running the finish logic "); console.log("heres your queue length in finish " + server.queue.length); playingMusic = false; if(server.queue[0]){ playF(connectionF, message); } else { connectionF.disconnect(); } }); } ```
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Así que descubrí que necesitaba reestructurar un poco para agregar .on("finish") al servidor.dispatcher en la línea 8. El siguiente código es lo que solucionó mi problema.

 function playF(connectionF, message){ console.log("starting the play function "); var server = servers[message.guild.id]; if(!playingMusic){ playingMusic = true; console.log("not playing music, running this logic "); server.dispatcher = connectionF.play(ytdl(server.queue[0], {filter: "audioonly"})).on("finish", () =>{ playingMusic = false; if(server.queue[0]){ playF(connectionF, message); } else { connectionF.disconnect(); } }); server.queue.shift(); } } ```
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda