Как получить х количество сообщений - PullRequest
0 голосов
/ 08 сентября 2018

Я хотел бы получить x сообщений, чтобы потом отправить им Rich Embed. Итак, как я могу получить эту сумму?

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Когда вы звоните TectChannel.fetchMessages(), он возвращает Обещание, которое разрешается с помощью Коллекции сообщений.
Чтобы отправить их в RichEmbed, вы должны либо использовать .array() и преобразовать коллекцию в массив, либо использовать .forEach(). Я покажу вам, как использовать массив.

let x = 10, // x should be form 0 to 25
  embed = new Discord.RichEmbed().setTitle('Fecthed messages');

channel.fetchMessages({ limit: x }).then(messages => {
  let arr = messages.array(); // you get the array of messages

  for (let i = 0; i < arr.length; i++) { // you loop through them
    let curr = arr[i],
      str = curr.content.trim();
    if (str.length > 2048) str = str.substring(0, 2045) + '...';
    // if the content is over the limit, you cut it

    embed.addField(curr.author, str); // then you add it to the embed
  }

}).catch(console.error);
0 голосов
/ 09 сентября 2018

Ниже приведен пример, приведенный в документе discord.js:

// Get messages
channel.fetchMessages({ limit: 10 })
  .then(messages => console.log(`Received ${messages.size} messages`))
  .catch(console.error);

Получит последние 10 сообщений из текстового канала.

Подробнее о методе и его возможностях можно прочитать здесь: https://discord.js.org/#/docs/main/stable/class/TextChannel?scrollTo=fetchMessages

...