Reputation: 117
I am trying to make command, that works if the author has admin or owner role. But I don't know how to check if user has "admin" OR "owner" role (multiple roles). And I am using discord.js v12.
My code:
client.on('message', message => {
if (message.content.startsWith('!ban'))
if(message.member.roles.cache.find(r => r.name === "owner")) {
message.delete();
let member1 = message.mentions.members.first();
if(!member1) return message.channel.send("You need to mention the @user!").then((declineMsg) => {
declineMsg.delete({timeout: 5000});})
let banned = message.guild.roles.cache.find(role => role.name === "banned");
member1.roles.add(banned);
message.channel.send('Succesfully banned user!').then(message.delete({timeout: 5000}))}});
});
client.on('message', message => {
if (message.content.startsWith('!ban'))
if(message.member.roles.cache.find(r => r.name === "admin")) {
message.delete();
let member1 = message.mentions.members.first();
if(!member1) return message.channel.send("You need to mention the @user!").then((declineMsg) => {
declineMsg.delete({timeout: 5000});})
let banned = message.guild.roles.cache.find(role => role.name === "banned");
member1.roles.add(banned);
message.channel.send(`Succesfully banned user!`).then(message.delete({timeout: 5000}))}});
});
Upvotes: 5
Views: 822
Reputation: 2210
You need to use something like this:
let role1 = message.guild.roles.cache.find(r => r.name === "owner");
let role2 = message.guild.roles.cache.find(r => r.name === "admin");
if(!message.member.roles.cache.has(role1.id) && !message.member.roles.cache.has(role2.id)) return message.reply("User don't have required roles!")
Upvotes: 5