当前位置: 首页 > 知识库问答 >
问题:

尝试使用JDA迭代不和谐通道中的所有消息

洪鸿博
2023-03-14

我想在JDA中迭代一个通道中的所有消息,但我不知道怎么做。我曾试图了解它的历史,但我认为它没有给我任何有用的东西。我试着看了一下这些文件,但找不到任何有用的东西。如果可能的话,我正在尝试获取一个列表或数组列表,以便将每条消息添加到一个文件中。

共有2个答案

程赞
2023-03-14

网dv8tion。吉达。应用程序编程接口。实体。消息频道。getHistory()
net。dv8tion。吉达。应用程序编程接口。实体。信息历史。getRetrievedHistory()

MessageChannel channel;

// ...
// Initialize 'channel'
// ...

MessageHistory history = channel.getHistory();
final List<Message> retrievedHistory = new ArrayList<>(history.getRetrievedHistory());

Collections.reverse(retrievedHistory);

// oldest to newest
for (Message message : retrievedHistory) {
  // TODO use 'message'
}
林礼骞
2023-03-14
List<Message> messageListRaw = (currentChannel.getHistoryFromBeginning(100).complete().getRetrievedHistory());
            ArrayList<Message> messageList = new ArrayList<Message>(messageListRaw);
            Collections.reverse(messageList);
            for (Message message :  messageList){
                //Use for 'message'
            }
 类似资料:
  • 我正在尝试让我的JDA discord bot删除文本频道中的所有消息,目前我使用的代码效率极低,偶尔有效,有时无效。代码: 我知道一个事实,我正在调用函数,我知道一个事实,正在传递的文本通道是正确的。请帮我同样的忙。

  • 我试图删除所有消息从一个渠道使用不和谐的机器人,但唯一的命令删除消息,我发现是 它一次只删除一条消息,我想清除所有可以使用的命令?

  • 正如标题中提到的,我正在尝试使用我使用discord构建的discord bot向特定频道发送消息。js和Node。js。我正在使用以下代码将消息发送到特定频道:

  • 我一直在四处寻找,似乎找不到我用Typescript制作的不和谐机器人的这个问题的答案。我的所有命令都放在它们自己的文件夹中,每个命令都有一个单独的文件。有助于保持井井有条。 我见过有人说 但这给了我并且 实际上,每当有人运行重启命令时,我会尝试在每个文本频道(从列表中给出)发送一条机器人消息,因为不管出于什么原因,人们总是重启机器人。我把它实现为一件有趣的事情,如果有人需要使用它,我会时不时地以

  • 我希望我的Discord jda bot在启动后读取textchannel的最后一条消息。 所以我打电话: MessageHistory类没有getLatestMessage方法。出于某种原因,我选择了短信频道。getHistory()始终为空,因此始终返回null。 是否有其他方法读取消息(在机器人启动之前编写)。 一些附加信息:文本频道是正确的文本频道。它不是空的,我也试着在机器人活跃的时候写

  • 我想让我的机器人在这个服务器上发布来自所有6个频道的引脚,但是,我的机器人只从调用命令的当前频道获得引脚。我想知道是否有办法解决这个问题。不和谐版本1.0.0A 我目前掌握的代码是: 以下代码从存在此机器人的所有服务器检索用户详细信息。我想知道在第一个代码片段中是否应该使用公会而不是通道?这给了我一个错误的结果。