Home > Back-end >  How do I make a command give the first mention a role with the ID "973182673306660885"
How do I make a command give the first mention a role with the ID "973182673306660885"

Time:05-10

I have tried this but somehow "msg.mentions.users.first.addRole is not a function"

let BotBanRole = msg.guild.roles.cache.find(r => r.id === "973182673306660885");
  const FMT = msg.mentions.users.first();

if (msg.content.startsWith('$BotBan')) {
    if (FMT === undefined) {
      msg.reply('Did not detect user')
    return; // Do not proceed, there is no user.
  }
  const FM = FMT.username;
  // Do stuff with the username
    msg.mentions.users.first.addRole(BotBanRole);
    msg.reply('Bot Banned '   FM.tag)
}

CodePudding user response:

let BotBanRole = msg.guild.roles.cache.get("973182673306660885");
const FMT = msg.mentions.members.first();

if (msg.content.startsWith('$BotBan')) {
    if (!msg.mentions.members.first()) {
      msg.reply('Did not detect user')
    return; // Do not proceed, there is no user.
  }
  const FM = FMT.user;
  // Do stuff with the username
    FMT.roles.add(BotBanRole);
    msg.reply('Bot Banned '   FM.tag)
}

I edited your code and if it's v13, it works like this.

CodePudding user response:

You were pretty close, give this a try.

const BotBanRole = msg.guild.roles.cache.find(r => r.id === "973182673306660885");
const FMT = msg.mentions.members.first();

if (msg.content.startsWith('$BotBan')) {
    if (!FMT) {
        msg.reply('Did not detect user')
        return;
    } else {
        FMT.roles.add(BotBanRole);
        msg.reply(`Bot Banned ${FMT.user.username}`)
    }
}
  • Related