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

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

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 Report

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 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!