He estado lidiando con un problema con mi captcha de Discord bot. El captcha funciona muy bien pero a la hora de agregar un rol si verificaron me da una bofetada con
handlePromiseRejectionWarning: TypeError: no se puede leer la propiedad 'agregar' de indefinido
Este es mi código:
const Discord = require('discord.js-12'); const client = new Discord.Client(); const prefix = 'ri-'; const Captcha = require("@haileybot/captcha-generator"); client.once('ready', () => { console.log('Ready!'); }); let captcha = new Captcha(); console.log(captcha.value); const path = require("path"), fs = require("fs") client.on('message', async message => { if (!message.content.startsWith(prefix) || message.author.bot) return; const args = message.content.slice(prefix.length).trim().split(/ +/); const command = args.shift().toLowerCase(); if (command === 'verification') { let captcha = new Captcha(); message.channel.send( "**Enter the text shown in the image below:**", new Discord.MessageAttachment(captcha.JPEGStream, "captcha.jpeg") ); let collector = message.channel.createMessageCollector(m => m.author.id === message.author.id); collector.on("collect", m => { if (m.content.toUpperCase() === captcha.value){ message.channel.send("Verified Successfully!"); let role = message.guild.roles.cache.find(r => r.id === "Verified"); message.author.roles.add(role); }else{ message.channel.send("Failed Verification!");} collector.stop(); }); } }); client.login('you don't need this.');¡Cualquier ayuda es apreciada! ^^
Veo dos problemas en tu código.
message.author se refiere a un usuario, que no tiene roles. Usa mensaje.miembro en su lugar
Reemplace r.id con r.name, id no es una cadena.
Qué tengas un lindo día :)