我想做一个命令,给每个人一个角色,只有管理员可以使用它。 我在网上找到了这段代码,我试图修改它,但没有任何帮助,我一直在阅读错误,但我仍然什么都没有
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!`)
}});
还有一件事,我希望这个命令只能由管理员使用,但我一直在努力处理那个范围内的代码,我不知道如何使用它。 如果有人可以帮助我一点?并解释我做错了什么,我真的很感激!谢谢!
答案 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))