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