因此,我编写了以下代码,用于静音给定通道中的所有成员:
client.on('message', message => {
if (message.content == 'sh!') {
let channel = message.member.voice.channel
for (let member of channel.members) {
member[1].setMute(true)
}
}
})但是它不起作用,我也找不到原因,因为我不知道setMute()函数是如何工作的。
编辑:我不知道如何才能访问每个成员并使其静音。
发布于 2020-09-02 21:47:17
'setMute‘函数是成员的语音状态对象的一部分。您直接从GuildMember对象本身使用它。您可能已经知道,语音状态对象是GuildMember对象的属性“语音”。所以解决办法是:
// change this
member[1].setMute(true);
// to this
member[1].voice.setMute(true);VoiceChannel的属性成员是一个不和谐集合(从Javascript扩展而来),我会使用forEach循环进行迭代,这样就可以避免底层迭代。
这应该是可行的:
client.on('message', message => {
if (message.content == 'sh!') {
const members = message.member.voice.channel.members;
members.forEach(member => {
member.voice.setMute(true);
});
}
});以下是一些有用的链接:
https://stackoverflow.com/questions/63713776
复制相似问题