Bot离开之前没有完成播放音频

时间:2018-06-09 05:12:44

标签: audio bots discord.js

因此,这个不和谐机器人只需加入输入命令的人的语音通道,播放音频文件,并在完成后离开。
机器人成功加入语音通道,开始播放音频,就在它完成之前,它就会离开。在音频文件完成之前,机器人不会离开,因为它在移除机器人离开的能力后仍然在同一点上切断。这是我的代码:

const Discord = require("discord.js");
const client = new Discord.Client();
var isReady = true;

client.on("ready", () => {
  console.log("I am ready!");
});

client.on("message", (message) => {
  if (isReady && message.content.startsWith("!gtab")) {
    isReady = false;
    var voiceChannel = message.member.voiceChannel;
    voiceChannel.join().then(connection => {
      const dispatcher = connection.playFile('./getthatassbanned.mp3', {});
      dispatcher.on("end", end => {
        message.channel.send("Get that ass banned.");
        voiceChannel.leave();
        isReady = true;
      });
    }).catch(err => console.log(err));
  }
});

我已经在这个问题上猛烈抨击了好几个小时了,我似乎无法确定为什么会发生这种情况。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

问题可能只是连接。尝试将voiceChannel.leave()放在setTimeout函数中。

示例:

setTimeout(function(){
    voiceChannel.leave()
}, 2000)