首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Discord.js / Mute每个人

Discord.js / Mute每个人
EN

Stack Overflow用户
提问于 2020-09-02 21:28:32
回答 1查看 319关注 0票数 0

因此,我编写了以下代码,用于静音给定通道中的所有成员:

代码语言:javascript
复制
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()函数是如何工作的。

编辑:我不知道如何才能访问每个成员并使其静音。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-02 21:47:17

'setMute‘函数是成员的语音状态对象的一部分。您直接从GuildMember对象本身使用它。您可能已经知道,语音状态对象是GuildMember对象的属性“语音”。所以解决办法是:

代码语言:javascript
复制
// change this
member[1].setMute(true);
// to this
member[1].voice.setMute(true);

VoiceChannel的属性成员是一个不和谐集合(从Javascript扩展而来),我会使用forEach循环进行迭代,这样就可以避免底层迭代。

这应该是可行的:

代码语言:javascript
复制
client.on('message', message => {
  if (message.content == 'sh!') {
    const members = message.member.voice.channel.members;

    members.forEach(member => {
      member.voice.setMute(true);
    });
  }
});

以下是一些有用的链接:

TextChannel#members x- discord.js

集合_ discord.js

Map - JavaScript \ MDN

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63713776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档