Node.js 检查是否在bot上播放音乐(从youtube流式播放)

Node.js 检查是否在bot上播放音乐(从youtube流式播放),node.js,discord.js,Node.js,Discord.js,我刚刚创建了一个工作队列命令,但现在我一直在编辑play命令 我试图让它,如果一个音乐正在播放,播放命令将只推动查询到队列,等待音乐完成播放,然后将队列移动到播放下一个 我被困在如何检查机器人是否还在从互联网上播放音乐 //推送功能、流和流选项位于此处上方 如果(/*检查是否正在播放音乐=false*/){ 函数调度程序(){ 连接.播放流(流,流选项) dispatcher.on('end',function(){ lst.shiftlist();//移动队列 if(lst.urlist[0]

我刚刚创建了一个工作队列命令,但现在我一直在编辑play命令

我试图让它,如果一个音乐正在播放,播放命令将只推动查询到队列,等待音乐完成播放,然后将队列移动到播放下一个

我被困在如何检查机器人是否还在从互联网上播放音乐

//推送功能、流和流选项位于此处上方
如果(/*检查是否正在播放音乐=false*/){
函数调度程序(){
连接.播放流(流,流选项)
dispatcher.on('end',function(){
lst.shiftlist();//移动队列
if(lst.urlist[0]/*检查队列[0]是否包含*/){
调度程序();
}
否则{
message.channel.send('Queue empty!');
回来
}
})
}
}
else if(/*检查是否正在播放音乐=true*/){
message.channel.send('已添加到队列!')
console.log(url)
}

是否可以检查机器人是否仍在播放流?或者有没有其他方法可以解决这个问题?

在我的脑海中,最简单的方法是在音乐开始播放时切换某种状态,并在dispatcher end事件触发时将其关闭。比如:

var playing = false
if (/*check whether a music is playing = false*/) {
   function dispatcher() {
       connection.playStream(stream, streamOptions)
       playing = true
       dispatcher.on('end', function () {
       lst.shiftlist(); //shift the queue
       if (lst.urllist[0]/*check if queue[0] contains*/) {
          dispatcher();
       }
       else {
          playing = false
          message.channel.send('Queue empty!');
          return;
       }
       })
   }
}
else if (/*check whether a music is playing = true*/) {
     message.channel.send('Added to queue!')
     console.log(url)
}

我怎么能这么心胸狭窄,哈哈,谢谢。非常感谢