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

125
Vistas
Mi código para autorole no funciona y no puedo entender por qué
const { Client, Intents } = require("discord.js"); const client = new Client({ intents: ["DIRECT_MESSAGES", "GUILDS", "GUILD_MEMBERS"], presence: { status: "online", activities: [{ name: "markets", type: "WATCHING" }] }, }); client.on('ready', () => { console.log(`Launched as a bot: ${client.user.tag}!`); }); client.on('guildMemberAdd', member => { function roleAdd() { member.roles.add(member.guild.roles.cache.get(process.env.SERVER_ROLE_ID)); } roleAdd(); }); client.login(process.env.DJS_TOKEN);

Chicos, escribí este código pero no funciona. No estoy recibiendo ningún error. Quiero que agregue un rol cada vez que un usuario se una a mi servidor. el estado del bot está funcionando. Creo que el problema está en la parte de guildMemberAdd .

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

No estoy muy seguro de por qué está utilizando el enfoque de funciones anidadas para esto. Si desea que el evento llame a la función, mueva la función fuera del evento y luego cree GuildMember en un parámetro.

O descarte el evento por completo y deje el método simple #<GuildMemberRoleManager>.add solo.

Sugiero lo último ya que asumo que la declaración de la función anidada no funcionará.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si desea utilizar la función de agregar automáticamente para su servidor, pruebe el método más fácil para agregar la función, de la misma manera que le da la función a un miembro.

Cuando asigna un rol a un miembro específico, debe verse así:

 const role = message.guild.roles.cache.find(role => role.id === process.env.SERVER_ROLE_ID) const target = message.mentions.members.first() || await message.guild.members.cache.get(args[0])

Si un bot otorga un rol higher than the bot or equal to bot . Obtendrá un error como Permisos faltantes . Para evitar esto, debe colocar un código para devolverlo.

 if(!target.moderatable) return message.reply("I can't mute this person!")

Este comando es de la misma manera para el rol de asignación automática, solo se agregaron/editaron/eliminaron unas pocas líneas de código.

 client.on('guildMemberAdd', member => { function roleAdd() { member.roles.add(member.guild.roles.cache.get(process.env.SERVER_ROLE_ID)); } roleAdd(); });
 - function roleAdd() {} + let role = member.guild.roles.cache.find(role => role.id == process.env.SERVER_ROLE_ID) + member.roles.add(role).catch()

La línea .catch() es para evitar que se produzca un error y apagar el bot.

 client.on('guildMemberAdd', member => { let role = member.guild.roles.cache.find(role => role.id == process.env.SERVER_ROLE_ID) member.roles.add(role).catch() });
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