静音整个 Discord 语音通道 (JS)

jpz*_*pzk 4 javascript bots discord discord.js

我正在为我朋友组的游戏服务器开发一个不和谐的机器人。我想添加一个命令,使语音通道中的每个人都静音。我认为这msg.member.voice.channel.members.setmute(true);会起作用,但它返回的不是函数并使机器人崩溃。这msg.member.voice.setMute(true);有效,因为它将服务器静音发送消息的成员,但显然不是我想要的整个频道。我是 discord.js 的新手,文档有点混乱。谢谢你的时间!

drc*_*ter 5

不久前,我在一个项目中做了类似的事情,我不得不让除了发出命令的人之外的所有人都静音。

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

// 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!');
}
Run Code Online (Sandbox Code Playgroud)