Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

121
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!