Quiero que la imagen que envía un usuario se obtenga y se coloque en una inserción que luego enviará el bot. Como la imagen debe ser una url y la persona manda una imagen, no se como puedo transformar esa imagen en una url. Al hacer el comando, el incrustado envía pero sin la imagen. Esto es lo que he intentado pero no funcionó:
const plotEmbed = new Discord.MessageEmbed() .setTitle(`Purchase of the plot n°${plotId}`) .setColor("GREEN") .setDescription(`Purchase of plot ${plotId} for ${days} days.`) .setImage(message.attachments.first.url) .setTimestamp() message.channel.send({ embeds: [pEmbed]})Si alguien pudiera darme un consejo sobre lo que debería probar porque realmente no lo sé... Gracias por leer.
El uso de message.attachments proporciona una colección, por lo que puede usar el comando .map() para obtener las direcciones URL. Todo lo que tienes que hacer es cambiar tu código a:
const attachmentURL = message.attachments.map(attachment => attachment.url) const plotEmbed = new Discord.MessageEmbed() .setTitle(`Purchase of the plot n°${plotId}`) .setColor("GREEN") .setDescription(`Purchase of plot ${plotId} for ${days} days.`) .setImage(attachmentURL[0]) .setTimestamp() message.channel.send({ embeds: [pEmbed] }) Esto podría deberse simplemente al hecho de que pEmbed se declaró antes de su fragmento de código, pero solo quería decirle que está enviando una inserción llamada pEmbed mientras que la inserción en su fragmento de código actual está en una variable llamada plotEmbed , por lo que es posible que desee cambiar eso.
Editar:
Acabo de encontrar otra forma que es la más simple. Acabas de cometer un error al llamar a message.attachments.first . En realidad debería ser message.attachments.first().url porque first() es en realidad una función. Entonces esto también debería funcionar exactamente como el primer método que publiqué