如何在 discord.js 中断开用户与语音通道的连接?

新手上路,请多包涵

我不知道如何让用户离开语音频道。

我正在尝试进行验证,除了离开语音通道部分外,我已经完成了所有设置。

 bot.on('voiceStateUpdate', (oldMember, newMember) => {
  let newUserChannel = newMember.voiceChannel
  let oldUserChannel = oldMember.voiceChannel
  var channel = bot.channels.get('614299678300831744');

  if(oldUserChannel === undefined && newUserChannel !== 615306755420717143) {
    channel.send(newMember + ' has been verified.');
    let role = newMember.guild.roles.find(role => role.name === "Verified");
    newMember.addRole(role);
    let verifyEmbed = new Discord.RichEmbed()
    .setAuthor("Verificaiton")
    .setDescription("You have been verified")
    .setFooter(newMember.guild.name)
    .setColor("#98AFC7")
    newMember.sendMessage(verifyEmbed);
    newMember.disconnect();
  }
});

我没有收到任何错误,但它应该会断开我与语音通道的连接,但不能吗?

原文由 asciidude 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 306
2 个回答

不确定这是否仍然相关,但自更新以来您现在可以执行以下操作。

 newMember.member.voice.disconnect();

参考 VoiceState 类方法 disconnect

原文由 Intel 发布,翻译遵循 CC BY-SA 4.0 许可协议

而不是 newMember.disconnect(); 使用 newMember.setVoiceChannel(null);

这是相关 文档

我在我的机器人上使用它并且工作正常。

原文由 BadSpencer 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题