let filter = m => m.author.id === message.author.id const collector = message.channel.createMessageCollector({filter, time: 15000, max: 1}); //name let name = message.author.username gender() //gender function gender(){ embed = embed .setTitle(`${message.author.username}'s About Me setup || Gender`) .setDescription('Whats your gender/pronounce?') .setColor("BLUE") message.reply({embeds: [embed]}) collector.on('collect', m =>{ let gender = m.content m.channel.send(`${gender}`) age() }) } //age function age(){ embed = embed .setTitle(`${message.author.username}'s About Me setup || Age`) .setDescription('How old are you?') .setColor("BLUE") message.reply({embeds: [embed]}) collector.on('collect', m =>{ let age = m.content m.channel.send(`${age}`) nationality() }) } //nationality function nationality() { embed = embed .setTitle(`${message.author.username}'s About Me setup || Nationality`) .setDescription('Where are you from?') .setColor("BLUE") message.reply({embeds: [embed]}) collector.on('collect', m =>{ let nationality = m.content m.channel.send(`${nationality}`) description() }) } //description function description(){ embed = embed .setTitle(`${message.author.username}'s About Me setup || Age`) .setDescription('Describe yourself, tell others your favorite hobbies, favorite movies, ect. in less than 1500 characters') .setColor("BLUE") message.reply({embeds: [embed]}) collector.on('collect', m =>{ if(m.content.length > 1500){ embed = embed .setTitle(':warning: Error! :warning:') .setDescription('Your description can only be less than 1500 characters') .setColor("BLUE") message.reply({embeds: [embed]}) description() } let description = m.content m.channel.send(`${description}`) }) }hey, entonces estoy tratando de hacer un comando sobre mí donde cuando los usuarios digan "configuración sobre mí" se ejecutará a través de la configuración y solicitará información como sexo, edad, descripción, etc. (el mensaje.canal.enviar es solo un marcador de posición, una vez que lo haga funcionar, lo pondré en una base de datos real), pero no parece funcionar como esperaba, esto es lo que sucede cuando intento ejecutar el comando
En línea:
const collector = message.channel.createMessageCollector({filter, time: 15000, max: 1});Su recopilador de mensajes solo recopila mensajes durante 15 segundos y solo recopilará 1 mensaje.
De la documentación de DiscordJS, createMessageCollector acepta los siguientes argumentos:
time : cantidad de tiempo en milisegundos que el recopilador debe ejecutarsemax : Número de mensajes para pasar con éxito el filtromaxProcessed : Número de mensajes encontrados (sin importar el resultado del filtro)Puede solucionar esto ajustando esos parámetros en la creación de su recopilador de mensajes para que coincida con sus necesidades, o modificando su comando para aceptar parámetros de género, edad y nacionalidad y usar esos parámetros para construir la respuesta de descripción final.
En una nota al margen: ¡parece que está activando los comandos de sus bots con la L! prefijo. Esto ya no se recomienda, ya que Discord ha introducido comandos de barra .
Los bots que estén en más de 75 servidores no podrán leer el contenido de los mensajes (se está volviendo privilegiado ). Recomendaría cambiar a los comandos de barra diagonal para que esté utilizando la última forma de proporcionar interacciones para su bot. Hay un excelente tutorial que muestra cómo crear un bot desde cero usando comandos de barra aquí .