首页 > 解决方案 > 我将如何获取 30 天前的旧嵌入消息并结合这些值 [Discord.js V12]

问题描述

我正在尝试获取30 天前的旧嵌入消息,并且每个嵌入在 1 个字段中都有一个数字,然后将这些数字组合成一个总数,例如10 + 4 + 6 = 20 我将每 30 天执行一次,可能与一个命令我将如何去做?

标签: discord.js

解决方案


我会递归地从文本频道中当前存在的最后一条消息中获取消息,并检查每条消息是否不在 30 天的时间范围之外。如果它在范围内,我会检查消息是否已嵌入,如果是,我会尝试使用数字获取字段值并将其添加到某个输出变量中。当我发现一条超出时间范围的消息时,我会停止获取并返回/对输出变量执行某些操作。

从遍历文本通道中所有消息的递归函数开始。例如获取 10 条消息,检查日期。如果我们仍处于 30 天期限内,则再获取 10 条消息,这些消息的日期早于上一次获取的最旧消息,依此类推。fetch()具有用于指定开始获取的消息的参数。因此,您不会一遍又一遍地获取相同的消息。另请注意,我认为一次 fetch 调用可以获取的最大消息数为 100。


推荐阅读