【发布时间】:2026-01-30 18:50:01
【问题描述】:
我希望机器人在有人加入时加入语音频道,然后播放声音文件。
到目前为止,我已经让机器人加入语音频道,但它只是不播放声音,也没有显示错误,所以我真的不知道出了什么问题。
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")
}
}
});
【问题讨论】:
-
我怀疑您的音频链接。它应该是类似“http://....*.mp3”的东西吗?否则网络将无法理解您的本地路径
-
@ducmai 要播放本地文件,当前设置很好。 Discord.js docs example 使用类似于上面代码的绝对路径。
-
你的用户名真的是
NAME吗?这就是你的道路。如果没有,这就是为什么没有播放的原因。 -
@slothiful 我只是将占位符放入问题中
-
您可以更新到 d.js v12(master),它具有完整的语音重写,但 al sso 带来了重大变化,
npm i discordjs/discord.js获得 v12
标签: javascript discord discord.js