Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

278
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda