Estoy tratando de hacer un bot. Cuando escribo ".test", el bot espera un archivo. Después de recibirlo, debe enviarme un enlace de Discord desde el cual puedo descargar el mismo archivo. Pero solo se refiere al mensaje donde envié el archivo.
Antes de eso, de alguna manera lo hice y comencé a experimentar algo. Después de eso no pude obtener el mismo resultado.
Ahí está mi código:
module.exports = { commands: 'test', callback: (message, arguments, text) => { const msg_filter = (m) => m.author.id === message.author.id; message.channel.awaitMessages({ filter: msg_filter, max: 1, time: 60000}) .then((collected) => { console.log(collected.first()) console.log(collected.first().attachment) console.log(collected.first().url) console.log("finish") }).catch('Error. No respond.') } }Salida de la consola:
//First attachments: Collection(1) [Map] { 'myId' => MessageAttachment { attachment: 'https://cdn.discordapp.com/attachments/914907287603261510/myId/sample.pdf', name: 'sample.pdf', id: 'myId', size: 3028, url: 'https://cdn.discordapp.com/attachments/914907287603261510/myId/sample.pdf', proxyURL: 'https://media.discordapp.net/attachments/914907287603261510/myId/sample.pdf', height: null, width: null, contentType: 'application/pdf', ephemeral: false } }, //Second undefined //Third https://discord.com/channels/901476184532062209/914907287603261510/917789424857780224collected es una colección que contiene todos los mensajes capturados por channel.awaitMessages() , por lo que collected.first() es un mensaje. Para acceder a los archivos adjuntos de este mensaje, que es una colección, necesitaría hacer collected.first().attachments (cuidado con el plural). Con esto en mente, puede administrar todos los archivos adjuntos en un bucle for-each, o simplemente obtener el primer archivo adjunto a través de collected.first().attachments.first()