加入成员连接的语音频道

时间:2021-04-06 16:51:49

标签: javascript node.js discord.js

我希望我的机器人加入会员所在的频道。我尝试了一些代码,但都没有奏效。

bot.on('voiceStateUpdate', (oldMember, newMember) => {
    if (newMember.tag = "Dummy#0001") {
        newMember.voice.join();
    }
});

1 个答案:

答案 0 :(得分:0)

discord.js v12 中的 voiceStateUpdate 事件发出 oldStatenewState 代表成员的 VoiceState 而不是成员本身。由于 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);
});