如何获取x邮件数量

时间:2018-09-08 20:52:29

标签: node.js fetch discord discord.js

我想提取x封邮件,以后再发送给他们Rich Rich Embed。所以,我怎么能拿到那笔钱呢?

非常感谢您

2 个答案:

答案 0 :(得分:1)

以下是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

答案 1 :(得分:1)

调用TectChannel.fetchMessages()时,它会返回一条承诺,并用Collection条消息解决。
要将它们发送到RichEmbed中,您必须使用.array()并将Collection转换为数组,或者使用.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);