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

161
Visualizações
Comprobar si el remitente del mensaje tiene un rol específico

Soy nuevo en la codificación de bots de Discord y quiero crear un comando en el que el bot solo responda si el remitente del mensaje tiene un rol específico.

De acuerdo con la documentación de discord.js, tengo que usar GuildMemberRoleManager.cache . Lamentablemente, no está funcionando.

Todo el comando se ve así:

 client.on('messageCreate', (message) => { if ( message.content.toLowerCase() === prefix + 'test' && GuildMemberRoleManager.cache.has(AdminRole) ) message.reply('test'); });
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Deberías conseguir los papeles del autor. Solo los miembros tienen roles, por lo que deberá obtener al autor como miembro mediante message.member . message.member devuelve un GuildMember y GuildMember s tienen una propiedad de roles que devuelve un GuildMemberRoleManager (el que mencionaste en tu publicación original).

Su propiedad de cache es una colección de los roles de este miembro, por lo que puede usar su método has() para verificar si el usuario tiene el rol de administrador:

 client.on('messageCreate', (message) => { let adminRole = 'ADMIN_ROLE'; let isAdmin = message.member.roles.cache.has(adminRole); if (message.content.toLowerCase() === prefix + 'test' && isAdmin) message.reply('test'); });
about 4 years ago · Juan Pablo Isaza Relatório

0

Define las variables que te harán fácil de entender como eres nuevo

 const guild = message.guild.id; const role = guild.roles.cache.get("role id"); const cmduser = message.author; const member = await guild.members.fetch(cmduser.id);

y hacer si declaración como

 if(member.roles.cache.has(role.id)) { return message.channel.send("test") }

si desea que el bot verifique si el usuario tiene permiso de administrador que

 message.member.hasPermission('ADMINISTRATOR')

Verifique todas las banderas permanentes en Discord Perm Flags

Así que de acuerdo a su código será

 const guild = message.guild.id; const role = guild.roles.cache.get("role id"); const cmduser = message.author; const member = await guild.members.fetch(cmduser.id); client.on("messageCreate",(message) => { if(message.content.toLowerCase() === prefix + "test" && member.roles.cache.has(role.id)) message.reply("test") })
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