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

121
Vistas
How can I add a role to a user on DiscordJS v13?

I am having problems adding a role to a user with DiscordJS v13. Is there any way to do it? Whenever I add them, they're not defined. Here's the code to where I want to add the add role. I'm a beginner on discord.js so bear with me. Thanks!

    } else if (commandName === 'verification'){
        let code1 = 'A96B2UUH'
        const code = options.getString('code')

        if(code === code1){
            interaction.reply({
                content: 'The code has been accepted. Welcome to the hub!',
                ephemeral: true,
            })
            let role = message.guild.roles.cache.some(role => role.name === 'Equitability')
            message.member.roles.add(role)
        }else{
            interaction.reply({
                content: 'You entered the wrong code. Please contact the administrators to gain access.',
                ephemeral: true,
            })
        }
    }
})

Edit: I fixed it! I changed some things and somehow it worked. Here's the code.

bot.on('interactionCreate', async interaction => {
    if(!interaction.isCommand()) return

    const { options } = interaction

    if(interaction.commandName === 'verification'){
        let code1 = 'A96B2UUH'
        const code = options.getString('code')

        if(code === code1){
            await interaction.reply({
                content: 'You entered the correct code. Welcome to the hub!',
                ephemeral: true,
            })
            var guild = bot.guilds.cache.get('907259574342537236')
            const member = await guild.members.fetch(interaction.user.id)
            const role = await guild.roles.fetch('907261775622328352')
            member.roles.add(role)
        }else{
            await interaction.reply({
                content: 'The code you entered is incorrect. Contact the administrators to gain access the server.',
                ephemeral: true,
            })
        }
    }
})
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

You are using .some() which returns a Boolean (true/false). You want the role object, so you use .find() which takes the same arguments, but returns the role object instead. Also, if the role is not cached, you can use RoleManager.fetch() to get it from the API

await message.guild.roles.fetch() //optional - put it if the role is valid, but is not cached
let role = message.guild.roles.cache.find(role => role.name === 'Equitability')
message.member.roles.add(role)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Getting roles in Discord.js v13 requires them to be cached, so the best way to add a role you know exists is simply by ID.

To get an ID for a role open Server Settings > Roles > Right click > "Copy ID"

Then you can simply do message.member.roles.add("roleId");

If you're not completely certain whether a role exists (i.e through user input) you can fetch all server roles (different to .cache.get), then user .filter, however this doesn't seem to be what you're doing so I won't include it

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