繁体   English   中英

Discord.js - 我正在尝试创建一个不和谐的机器人,使语音通道中的所有连接成员静音

[英]Discord.js - I'am trying to create a discord bot that mutes all connected members in a voicechannel

我一直在尝试创建一个不和谐的机器人,使某个语音通道的所有成员静音,该程序执行时没有错误,但没有任何反应。

        let among_us_channel = message.guild.channels.cache.find(c => c.id === '751440430847098934');
        let group_of_channels = message.guild.channels.cache.find(c => c.id === '599377349531795471');
        const channels = message.guild.channels.cache.filter(c => c.parentID === '599377349531795471' && c.type === 2);


        for (const [channelID, channel] of channels) {
            for (const [memberID, member] of channel.members) {
                member.VoiceState.setMute(true, 'Game Started');
            }
        }

先感谢您!

GuildMember没有名为VoiceState属性,而是voice ,它是一个VoiceState


for (const [channelID, channel] of channels) {
    for (const [memberID, member] of channel.members) {
        member.voice.setMute(true, 'Game Started');
    }
}

如果您的意图是将单个频道的每个人静音,并且您不介意硬编码,那么它就是 id。 然后就这么简单:

// Gets The Channel
const channel = message.guild.channels.cache.get(`channelId`);

// Iterate through it's members
channel.members.forEach(member => {
  member.voice.setMute(true); // Mute em'
});

无论如何,看起来您正在尝试将某个类别中的每个频道静音。 如果是这种情况,请尝试以下操作:

// Get the children of the category
const channels = message.guild.channels.cache.get(`categoryId`).children;

// Iterate through then
channels.forEach(channel => {
  if(channel.type === 'voice') {          // check if it is a voice channel
    channel.members.forEach(member => {   // Iterate through it's members
      member.voice.setMute(true);         // Mute em'
    });
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM