Javascript Discord.js/使所有人静音
因此,我编写了下面的代码,该代码将使给定通道中的所有成员静音:Javascript Discord.js/使所有人静音,javascript,discord.js,Javascript,Discord.js,因此,我编写了下面的代码,该代码将使给定通道中的所有成员静音: client.on('message', message => { if (message.content == 'sh!') { let channel = message.member.voice.channel for (let member of channel.members) { member[1].setMute(true)
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()函数是如何工作的
编辑:我不确定如何访问每个成员并将其静音。设置静音功能是成员语音状态对象的一部分。您直接从GuildMember对象本身使用它。您可能已经知道,voice state对象是GuildMember对象的属性“voice”。这就是解决方案:
// change this
member[1].setMute(true);
// to this
member[1].voice.setMute(true);
VoiceChannel的属性成员是一个Discord集合(从Javascript映射扩展而来),我将使用forEach循环进行迭代,以避免底层迭代
这应该起作用:
client.on('message', message => {
if (message.content == 'sh!') {
const members = message.member.voice.channel.members;
members.forEach(member => {
member.voice.setMute(true);
});
}
});
以下是一些有用的链接:设置静音功能是成员语音状态对象的一部分。您直接从GuildMember对象本身使用它。您可能已经知道,voice state对象是GuildMember对象的属性“voice”。这就是解决方案:
// change this
member[1].setMute(true);
// to this
member[1].voice.setMute(true);
VoiceChannel的属性成员是一个Discord集合(从Javascript映射扩展而来),我将使用forEach循环进行迭代,以避免底层迭代
这应该起作用:
client.on('message', message => {
if (message.content == 'sh!') {
const members = message.member.voice.channel.members;
members.forEach(member => {
member.voice.setMute(true);
});
}
});
以下是一些有用的链接:为什么
成员[1]。设置静音(true)
而不是成员。设置静音(true)
?让频道=message.member.voice.channel.members
当它真的是频道成员的集合时,你为什么要调用这个频道
?然后在频道上迭代。members
也似乎是错误的,因为我认为集合没有额外的members
property。如果不添加members属性,它将无法使用。不管怎么说,我对Discord.js还是个新手,StackOverview的答案显然已经过时了,因为member[1]。setMute(true)
而不是member.setMute(true)
?让channel=message.member.voice.channel.members
这个频道实际上是频道成员的集合,你为什么要叫它channel
?然后在频道上迭代。members
也似乎是错误的,因为我认为集合没有额外的members
property。如果不添加members属性,它将无法使用。不管怎样,我对Discord.js还是新手,StackOverview的答案显然已经过时了