加入成员连接的语音频道



我希望我的机器人加入成员所在的通道。我尝试了一些代码,但都不起作用。

bot.on('voiceStateUpdate', (oldMember, newMember) => {
if (newMember.tag = "Dummy#0001") {
newMember.voice.join();
}
});
discord.js v12中的voiceStateUpdate事件发出oldStatenewState,代表成员的VoiceStates,而不是成员本身。由于VoiceState没有tag属性,所以if语句将不起作用(也因为只有一个=(。

VoiceState有一个member属性,它是该语音状态所属的成员。您可以获取该成员的user属性的tagVoiceState也有一个channel属性,它是成员连接到的VoiceChannel。语音频道有一个可以用于加入频道的join()方法。

以下应按预期工作:

bot.on('voiceStateUpdate', (oldState, newState) => {
if (newState.member.user.tag !== 'Dummy#0001') return;
if (!newState.channel) return;
newState.channel
.join()
.then((connection) => console.log('Connected!'))
.catch(console.error);
});

最新更新