有人加入时播放音频文件的Discord Bot

时间:2019-04-16 18:45:25

标签: javascript discord discord.js

我希望机器人在有人加入时加入语音通道,然后播放声音文件。

到目前为止,我已经让该机器人加入了语音通道,但是它没有播放声音,也没有错误显示,所以我真的不知道出了什么问题。

const Discord = require('discord.js');
const bot = new Discord.Client();
bot.login('BOT TOKEN');

bot.on('voiceStateUpdate', (oldMember, newMember) => {
  let newUserChannel = newMember.voiceChannel
  let oldUserChannel = oldMember.voiceChannel
  let textChannel = oldMember.guild.channels.get('TEXTCHANNEL ID')

  if(oldUserChannel === undefined && newUserChannel !== undefined) {

    if (newMember.id === 'MEMEBER ID')         //Member 1
    {   
       newUserChannel.join()
       .then(connection => {
          console.log("Joined voice channel!");
          const dispatcher = connection.playFile("C:\Users\NAME\Documents\Welcome_Bot\music\bossman.mp3");

          dispatcher.on("end", end => {newUserChannel.leave()});
       })
        .catch(console.error);

    }
      else if (newMember.id === 'MEMEBER ID')       //Member 2
      {
       textChannel.send('Hello Member 2')
      }
        else if (newMember.id === 'MEMEBER ID')      //Member 3
        {
          textChannel.send('Hello Member 3')
        }
           else                                      //Random
           {
             textChannel.send("Hello") 
           } 
  } 
});

1 个答案:

答案 0 :(得分:0)

我相信您的问题是,在您致电调度员之前,该漫游器实际上并没有加入该频道。在致电调度员之前,需要告知漫游器进入渠道。哈夫(Hav)暂时没有从事音频工作,但我相信您的调度员上方的connection.join()可以工作。您可能需要.then()来确保它在漫游器加入频道之前不会初始化调度程序。

相关问题