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



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

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

您可以通过迭代当前通道中所有用户的数组来实现这一点。

// 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!');
}

最新更新