Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

160
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda