¿Cómo puedo recopilar una foto enviada por un usuario y enviarla en una inserción? Estoy usando discord.js v13.
Tengo el siguiente código, pero img
no es una URL de imagen:
interaction.reply({ content: 'Envia alguna imagen...' }).then(async () => { const atch_filter = (m) => !!m.attachments || m.startsWith('https'); const collected = await interaction.channel.awaitMessages({ filter: atch_filter, max: 1, }); var img = collected.first().url; const embed = new MessageEmbed() .setTitle('Foto recibida') .setImage(img) .setColor('BLUE'); interaction.editReply({ content: 'Listo!', embeds: [embed] }); });
awaitMessages
devuelve una colección de mensajes. Incluso si es un solo mensaje, todavía está en una colección. A medida que configura su filtro correctamente, el mensaje recopilado será collected.first()
.
Los mensajes tienen una propiedad de attachments
, una colección de archivos adjuntos en el mensaje, por lo que la imagen será el primer elemento de la colección; collected.first().attachments.first()
. Para capturar la URL, puede usar su propiedad url
:
const atch_filter = (m) => !!m.attachments || m.startsWith('https'); const collected = await interaction.channel.awaitMessages({ filter: atch_filter, max: 1, }); const img = collected.first().attachments.first().url;
Esto es lo que puede intentar definir imagen como
let image = collected.attachments.first() ? message.attachments.first().proxyURL : null