Как я могу повторно отправить вложение из сообщения?

#discord.js

#discord.js

Вопрос:

Итак, я хочу сделать что-то вроде этого:

Пользователь: отправляет команду, подобную этой: mybot! объявить @упоминание (сообщение) (Прикрепляет изображение)

Бот: получает упоминание, сообщение и вложение из сообщения и удаляет его. Затем повторно отправляет сообщение в виде вставки (см. Рисунок).

Мне удалось сделать все остальное, но я не могу получить вложение и повторно отправить его во вложении. Пожалуйста, помогите: p Вот что на самом деле делает бот.

Вот код, который у меня на самом деле есть, на случай, если он вам понадобится:

 
if (command === 'announce')
      {
        
        var mention = args[0];

        if (!args[0]) return message.channel.send('You need to mention someone!');

        var actualMention = null;

        if (mention === '@everyone')
        {
            actualMention = message.mentions.members.every();
        }
        else
        {
            actualMention = message.mentions.members.first();
        }

        var messageAnnouncement = args.slice(1).join(" ");

        if (msgAnnouncement === null) return message.channel.send('You need to put the announcement itself!');

        var imageAttachments = message.attachments;

        const anunouncementEmbed = new Discord.MessageEmbed()
        .setAuthor('YPBot - Announcement')
        .setTitle(message.author.tag   ' made an announcement')
        .setDescription('Mentioning: '   mention   'nn'   
        msgAnnouncement)
        .setThumbnail(imageAttachments[0]);

        message.channel.send(anunouncementEmbed);

      }

 

Надеюсь, я хорошо объяснил. В случае, если я этого не сделал, не стесняйтесь спрашивать что угодно.

Ответ №1:

Message#attachments на самом деле возвращает a Collection , так что если вам нужен первый элемент , который вам нужен Collection#first() . Оттуда вы можете попасть на MessageAttachment#url территорию отеля.

 .setThumbnail(imageAttachments.first().url);
 

Комментарии:

1. БОЛЬШОЕ ВАМ СПАСИБО! Теперь мне просто нужно подождать 5 минут, чтобы я мог пометить это как правильное: p