首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除和添加角色mute命令

删除和添加角色mute命令
EN

Stack Overflow用户
提问于 2021-02-10 20:25:41
回答 1查看 73关注 0票数 0

我一直在做这个静音命令,主要的事情是,它只是删除了主要角色。我想要它删除所有的角色,只是静音角色,当取消静音时,角色又回来了。这是我尝试过的:

代码语言:javascript
复制
module.exports = {
    name: `jail`,
    description: "this is jail command!",
    execute(message, args){
        
        const member = message.mentions.users.first();
        if(member){
            const memberTarget = message.guild.members.cache.get(member.id);{
                if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.channel.send("You cant jail person because you are not staff/co owner/owner");
            }
            let mainRole = message.guild.roles.cache.get(`791144820810842163` , `794825576602533898` , `791144908240060426` , `791144966474563624` , `791145298072305685` , `791145926344966185` , `791146191336505414` , `791146355552682034` , `792565793568587796` , `795357387794939904` , `795358283623432213` , `798804993468530699` , `791146747367653387`)
            let muteRole = message.guild.roles.cache.find(role => role.name === 'Jailed'); 
 
            if (!args[1]) {
                memberTarget.roles.remove(`791144820810842163` , `794825576602533898` , `791144908240060426` , `791144966474563624` , `791145298072305685` , `791145926344966185` , `791146191336505414` , `791146355552682034` , `792565793568587796` , `795357387794939904` , `795358283623432213` , `798804993468530699` , `791146747367653387`);
                memberTarget.roles.add(muteRole.id);
                message.channel.send(`<@${memberTarget.user.id}> has been Jailed`);
                return
            }
            memberTarget.roles.remove(`791144820810842163` , `794825576602533898` , `791144908240060426` , `791144966474563624` , `791145298072305685` , `791145926344966185` , `791146191336505414` , `791146355552682034` , `792565793568587796` , `795357387794939904` , `795358283623432213` , `798804993468530699` , `791146747367653387`);
            memberTarget.roles.add(muteRole.id);
            message.channel.send(`<@${memberTarget.user.id}> has been Jailed for ${(ms(args[1]))}`);
 
            setTimeout(function () {
                memberTarget.roles.remove(muteRole.id);
                memberTarget.roles.add(`791144820810842163` , `794825576602533898` , `791144908240060426` , `791144966474563624` , `791145298072305685` , `791145926344966185` , `791146191336505414` , `791146355552682034` , `792565793568587796` , `795357387794939904` , `795358283623432213` , `798804993468530699` , `791146747367653387`);
            }, ms(args[1]));
        } else{
            message.channel.send('Cant find that member!');
        }let cachedUserRoles = {};

        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-10 22:33:13

message.guild.roles.cache.getmemberTarget.roles.removememberTarget.roles.add不支持多个参数。您需要首先将角色添加到列表中,然后对其进行迭代。

代码语言:javascript
复制
const mainRoles = [`791144820810842163` , `794825576602533898` , `791144908240060426` , `791144966474563624` , `791145298072305685` , `791145926344966185` , `791146191336505414` , `791146355552682034` , `792565793568587796` , `795357387794939904` , `795358283623432213` , `798804993468530699` , `791146747367653387`];
module.exports = {
    name: `jail`,
    description: "this is jail command!",
    execute(message, args){
        
        const member = message.mentions.users.first();
        if(member){
            const memberTarget = message.guild.members.cache.get(member.id);{
                if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.channel.send("You cant jail person because you are not staff/co owner/owner");
            }
            let muteRole = message.guild.roles.cache.find(role => role.name === 'Jailed'); 
 
            if (!args[1]) {
                mainRoles.forEach(roleId => memberTarget.roles.remove(roleId));
                memberTarget.roles.add(muteRole.id);
                message.channel.send(`<@${memberTarget.user.id}> has been Jailed`);
                return
            }
            mainRoles.forEach(roleId => memberTarget.roles.remove(roleId));
            memberTarget.roles.add(muteRole.id);
            message.channel.send(`<@${memberTarget.user.id}> has been Jailed for ${(ms(args[1]))}`);
 
            setTimeout(function () {
                memberTarget.roles.remove(muteRole.id);
                mainRoles.forEach(roleId => memberTarget.roles.add(roleId));
            }, ms(args[1]));
        } else{
            message.channel.send('Cant find that member!');
        }let cachedUserRoles = {};

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

https://stackoverflow.com/questions/66136852

复制
相关文章

相似问题

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