Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

142
Visualizações
Discord.js how to give role to a pinged user

When I am trying to give a role to a pinged member, it throws an error;

member.guild.roles.add is not a function

My current code:

const member = message.mentions.members.first(); //gets pinged user in the message
var role = message.guild.roles.cache.get('role-id') //finds role
if (!role) return message.reply("Can't find the role")
member.guild.roles.add(role); //gives role

I'm pretty sure it's an error with using message.mentions.members.first(), but how can I use message.mentions.members.first() (similarly like message.author) to give the user roles etc?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

You are getting this error simply because you are trying to add your role to the guild instead of the user who was pinged. So all you have to do is change your code to:

if (!message.mentions.members.first()) return message.reply('Please mention a user')
const member = message.mentions.members.first();

var role = message.guild.roles.cache.get('role-id')
if (!role) return message.reply("Can't find the role")
member.roles.add(role);
about 4 years ago · Juan Pablo Isaza Relatório

0

You can use double mention to make this command,

const member = message.mentions.members.first() || await message.guild.members.fetch(args[0]) || await message.guild.members.cache.get(args[0]) //The two await is for your members ID
const role = message.mentions.members.first(1)[2] || await message.guild.roles.fetch(args[1]) || await message.guild.roles.fetch(args[1]) //The (1)[2] will read as args[2] == 2 which is the your second input.

To prevent any errors, you need to return if 1 of this 2 return as a null,

if(!member) return message.reply("your_reply")
if(!role) return message.reply("your_reply")

Then add the role now

member.roles.add(role)
//Then your message if its successfully added.
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda