排队有麻烦

时间:2018-08-02 19:14:23

标签: javascript arrays discord.js

我最近开始研究这个音乐机器人,但是队列系统出现问题。我要求多件事情,最终只能玩两件事情。
代码:

<button id="button" onclick="function1">BIG BUTTON THING</button>
 document.getElementById("button").onclick=function2

queue变量开头是一个空数组。

1 个答案:

答案 0 :(得分:1)

根据您的逻辑,只能播放2个项目。

您的逻辑只允许播放Stream 2次:第一次是在队列为空时,第二次是在第一次播放结束时。关于第二局结束没有任何动作。

更新逻辑,以便在playStream结束且队列不为空时每次调用playStream,例如:

...
case "~play":

  if (queue.length == 0) {
    queue.push(args[1]);
    playNext();
  } else queue.push(args[1]);

  break;
...
function playNext() {
    dispatcher = guild.voiceConnection.playStream(ytdl(queue[0], {
      filter: 'audioonly'
    })).on('end', () => {

      console.log('finished');
      queue.shift();
      // if more songs in the queue call playNext()
      // this will allow you to playNext every time when playStream ends 
      if (queue.length > 0) {
          playNext(); 
      }    
    });
}
...