discord.js 赋予/删除每个人角色的命令,只有管理员可以使用它

时间:2021-06-09 03:50:33

标签: javascript discord discord.js

我想做一个命令,给每个人一个角色,只有管理员可以使用它。 我在网上找到了这段代码,我试图修改它,但没有任何帮助,我一直在阅读错误,但我仍然什么都没有


client.on("message", message => {
    if (message.content === 'grimm!rainbow') {
        let role = message.guild.roles.cache.find(r => r.name == 'Rainbow')
        if (!role) return message.channel.send(`a Rainbow role was not found, create one and set it on top of all roles for this command to work!`)
        message.guild.members.filter(m => !m.user.bot).forEach(member => member.addRole(role))
        message.channel.send(`**${message.author.username}**, The Rainbow has been turned on!`)
}});

还有一件事,我希望这个命令只能由管理员使用,但我一直在努力处理那个范围内的代码,我不知道如何使用它。 如果有人可以帮助我一点?并解释我做错了什么,我真的很感激!谢谢!

1 个答案:

答案 0 :(得分:1)

要检查用户是否具有管理员权限,您需要在此处使用 .hasPermission() 文档:

if(message.member.hasPermission('ADMINISTRATOR'){
   // Doing Something
}

要向所有用户添加角色,您需要访问缓存的公会成员,doc here,然后遍历所有成员,访问他们的角色,您将拥有 .add() 用于添加特定角色的文档 {{3 }}。类似的删除

message.guild.members.cache.filter(m => !m.user.bot).forEach(member => member.roles.add(role))