首页 > 解决方案 > 如何在 discord.js 的不和谐语音频道中静音/取消静音?

问题描述

我正在尝试创建一个机器人,通过向他们添加角色“TempMute”来使当前在语音频道中的每个人静音。然后,当我发送 /unmuteAll 时,我希望所有拥有“TempMute”标签的人都删除该标签。我尝试了几种不同的方法,但都没有成功。我正在使用 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"
        }
    }
});

标签: javascriptdiscorddiscord.js

解决方案


由于您已经拥有 ,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")
        }
    }
});

推荐阅读