Estoy intentando usar Discord.js para agregar un rol a un miembro dada su etiqueta Discord.
member.roles.add devuelve un error, aunque el rol se agrega con éxito cuando verifico el servidor de Discord.
Aquí está mi código (test.js):
const { Client, Intents } = require('discord.js'); // Discord client & server details let intents = new Intents(Intents.NON_PRIVILEGED); intents.add('GUILD_MEMBERS'); const discord_client = new Client({ intents: intents }) discord_client.once('ready', async () => { console.log('Ready!'); }) const addRole = async () => { const guild = discord_client.guilds.cache.get('<guild-id>') const members = await guild.members.fetch() const member = members.find((m) => m.user.tag === 'Example#1234') return await member.roles.add('<role-id>') } discord_client.login('<token>').then( () => { console.log("Discord Bot connected!") addRole().then((res) => console.log(res)) } )Aquí está el error:
/node_modules/discord.js/src/managers/GuildMemberRoleManager.js:36 return this.guild.roles.cache.filter(role => this.member._roles.includes(role.id)).set(everyone.id, everyone); ^ TypeError: Cannot read properties of undefined (reading 'id') at GuildMemberRoleManager.get cache [as cache] (/node_modules/discord.js/src/managers/GuildMemberRoleManager.js:36:101) at GuildMemberRoleManager.add (/node_modules/discord.js/src/managers/GuildMemberRoleManager.js:127:31) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async addRole (/test.js:17:12)