如何让discord.js让某人添加和删除其他人的角色

时间:2021-01-30 10:50:02

标签: discord discord.js

所以最近 eli bot 在接下来的几天/月内不可用,因为 eli 的所有者被禁止不和谐。我曾使用 eli 关押成员。所以我想在我的机器人上创建一个 jail 命令(添加一个 jail 角色并删除其他角色)和 unjail 命令(删除 jail 角色并重新添加成员角色)。我在整个互联网上搜索了如何添加命令但找不到它。请帮助我,如果我的英语不好,我很抱歉

1 个答案:

答案 0 :(得分:0)

我正在编写一个代码,它的功能与您的要求几乎相同! 该代码使成员静音!这是什么意思 ?我的代码给出了一个名为“MUTED”的角色,并从成员那里获得了我使用的主要角色!

const target = message.mentions.users.first();
        if (target) {
 
            let mainRole = message.guild.roles.cache.find(role => role.name === 'member');
            let muteRole = message.guild.roles.cache.find(role => role.name === 'mute');
 
            let memberTarget = message.guild.members.cache.get(target.id);
 
            if (!args[1]) {
                memberTarget.roles.remove(mainRole.id);
                memberTarget.roles.add(muteRole.id);
                message.channel.send(`<@${memberTarget.user.id}> has been muted`);
                return
            }
            memberTarget.roles.remove(mainRole.id);
            memberTarget.roles.add(muteRole.id);
            message.channel.send(`<@${memberTarget.user.id}> has been muted for ${ms(ms(args[1]))}`);
 
            setTimeout(function () {
                memberTarget.roles.remove(muteRole.id);
                memberTarget.roles.add(mainRole.id);
            }, ms(args[1]));
        } else {
            message.channel.send('Cant find that member!');
        }
    }
}

在第 3 行和第 4 行

let mainRole = message.guild.roles.cache.find(role => role.name === 'member');
            let muteRole = message.guild.roles.cache.find(role => role.name === 'mute');

意味着您需要为您的成员提供一个主要角色以及一个您希望成为“静音”的角色。 我的代码正在获取成员的权限。对我来说是一种惩罚方式!

“取消静音”命令是:

const target = message.mentions.users.first();
            if(target){
                let mainRole = message.guild.roles.cache.find(role => role.name === 'member');
                let muteRole = message.guild.roles.cache.find(role => role.name === 'mute');
     
                let memberTarget= message.guild.members.cache.get(target.id);
     
                memberTarget.roles.remove(muteRole.id);
                memberTarget.roles.add(mainRole.id);
                message.channel.send(`<@${memberTarget.user.id}> has been unmuted`);
            } else{
                message.channel.send('Cant find that member!');
            }
        }
    }