Skip to content

Instantly share code, notes, and snippets.

@kentcdodds
Last active August 21, 2021 16:29
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kentcdodds/9bf111ce5226d6dfb7a949a2deec7528 to your computer and use it in GitHub Desktop.
Save kentcdodds/9bf111ce5226d6dfb7a949a2deec7528 to your computer and use it in GitHub Desktop.
An example of how you can add a role to a user with discord.js
const Discord = require('discord.js')
// your bot token
const token = 'NzM4MDk2NjA4NDQwNDgzODcw.XyG8CA.RbwIBFnAbrRDYOlTdLYgG_T4CMk'
const discordUsername = 'example#1234'
const roleToAdd = 'Cool Person'
const guildName = 'Your Guild Name'
function deferred() {
let resolve, reject
const promise = new Promise((res, rej) => {
resolve = res
reject = rej
})
return {promise, resolve, reject}
}
async function go() {
const client = new Discord.Client()
const clientReadyDeferred = deferred()
client.on('ready', error => {
if (error) {
clientReadyDeferred.reject(error)
} else {
clientReadyDeferred.resolve()
}
})
client.login(token)
await clientReadyDeferred.promise
const guild = client.guilds.cache.find(({name}) => name === guildName)
const role = guild.roles.cache.find(({name}) => name === roleToAdd)
const member = guild.members.cache.find(
({user: {username, discriminator}}) =>
`${username}#${discriminator}` === discordUsername,
)
member.roles.add(role)
}
go()
@milad-mehri
Copy link

I dont think your bots token should be there

@kentcdodds
Copy link
Author

It's been invalidated

@TriHydera
Copy link

The key can be in an .inv variable for security

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment