简体   繁体   English

如何在discord.js的discord语音通道中静音/取消静音?

[英]How to mute/unmute all in discord voice channel for discord.js?

I'm trying to create a bot that mutes everyone currently in a voice channel by adding a role "TempMute" to them.我正在尝试创建一个机器人,通过向他们添加角色“TempMute”来使当前在语音频道中的每个人静音。 Then when I send /unmuteAll I would like everyone who has the "TempMute" tag to have the tag removed.然后当我发送 /unmuteAll 时,我希望每个拥有“TempMute”标签的人都删除该标签。 I have tried several different ways with no success.我尝试了几种不同的方法,但都没有成功。 I am using discord.js version 12.2.0.我正在使用 discord.js 版本 12.2.0。

const Discord = require('discord.js');


voiceChatChannelId="123456789"

bot.on('message', (message) => {
    var vc = bot.channels.cache.get(voiceChatChannelId);

    if (message.content == '/muteAll') {
        for (let member of vc.members){
            //add members all to "TempMute" role
        }
    }

    else if (message.content == '/unmuteAll') {
        for (let member of vc.members){
            //remove ALL members from role "TempMute"
        }
    }
});

Since you already have the GuildMember you can use GuildMember.roles .add or GuildMember.roles .remove methods to either add or remove a role.由于您已经拥有GuildMember您可以使用GuildMember.roles .addGuildMember.roles .remove方法来添加或删除角色。


bot.on('message', (message) => {
    var vc = bot.channels.cache.get(voiceChatChannelId);

    if (message.content == '/muteAll') {
        for (let member of vc.members.array()){
            //add members all to "TempMute" role
             member.roles.add("RoleID")
        }
    }

    else if (message.content == '/unmuteAll') {
        for (let member of vc.members.array()){
            //remove ALL members from role "TempMute"
             member.roles.remove("RoleID")
        }
    }
});

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

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