Latepate
Latepate

Reputation: 117

How to check two roles

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

Answers (1)

MegaMix_Craft
MegaMix_Craft

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

Related Questions