静音整个不和谐语音通道(JS)

时间:2020-07-14 03:54:19

标签: javascript discord bots discord.js

我正在为朋友组的游戏服务器开发一款不和谐的机器人。我想添加一个命令使语音通道中的所有人静音。我认为此msg.member.voice.channel.members.setmute(true);可以工作,但返回的不是函数,它会导致机器人崩溃。 msg.member.voice.setMute(true);的工作方式是,它将使发送消息的成员静音,但显然不会使我想要的整个通道静音。我是discord.js的新手,文档有些混乱。感谢您的宝贵时间!

1 个答案:

答案 0 :(得分:3)

不久前,我在一个项目中做了类似的事情,当时我必须使所有人静音,但发出命令的人除外。

您可以通过迭代当前频道中所有用户的数组来完成此操作。

// Your invokation here, for example your switch/case hook for some command (i.e. '!muteall')
// Check if user is in a voice channel:
if (message.member.voice.channel) {
  let channel = message.guild.channels.cache.get(message.member.voice.channel.id);
  for (const [memberID, member] of channel.members) {
    // I added the following if statement to mute everyone but the invoker:
    // if (member != message.member)

    // This single line however, nested inside the for loop, should mute everyone in the channel:
    member.voice.setMute(true);
  }
} else {
  message.reply('You need to join a voice channel first!');
}