discord.js v12中的
我希望我的机器人加入成员所在的通道。我尝试了一些代码,但都不起作用。
bot.on('voiceStateUpdate', (oldMember, newMember) => {
if (newMember.tag = "Dummy#0001") {
newMember.voice.join();
}
});
voiceStateUpdate
事件发出oldState
和newState
,代表成员的VoiceState
s,而不是成员本身。由于VoiceState
没有tag
属性,所以if语句将不起作用(也因为只有一个=
(。
VoiceState
有一个member
属性,它是该语音状态所属的成员。您可以获取该成员的user
属性的tag
。VoiceState
也有一个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);
});