我希望机器人在有人加入时加入语音通道,然后播放声音文件。
到目前为止,我已经让该机器人加入了语音通道,但是它没有播放声音,也没有错误显示,所以我真的不知道出了什么问题。
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")
}
}
});
答案 0 :(得分:0)
我相信您的问题是,在您致电调度员之前,该漫游器实际上并没有加入该频道。在致电调度员之前,需要告知漫游器进入渠道。哈夫(Hav)暂时没有从事音频工作,但我相信您的调度员上方的connection.join()
可以工作。您可能需要.then()
来确保它在漫游器加入频道之前不会初始化调度程序。