【问题标题】:JDA Discord - How to get all names of Users who reacted to a bot's message in an arrayJDA Discord - 如何在数组中获取对机器人消息做出反应的用户的所有名称
【发布时间】:2021-02-06 22:01:49
【问题描述】:

我正在尝试编写赠品机器人。我在获取对机器人发送的赠品消息做出反应的用户的所有用户名并将其存储在类型为 String 的 Array 中时遇到问题。

【问题讨论】:

  • 向我们展示你做了什么,并告诉我们你如何从不和谐的机器人那里获取数据。
  • @stackstack293 我使用event.getChannel 或event.getMessage
  • @stackstack293 我使用 JDA 和通常 event.getChannel 来获取该频道中的项目或输入消息,但我就是不喜欢,检查它的消息的反应,然后将所有用户存储在字符串类型数组

标签: java discord discord-jda


【解决方案1】:

您可以通过获取其所在频道的历史记录来获取消息的Message对象,然后从历史记录中通过id获取消息。

Message 对象有一个 getReactions 方法,它返回对消息的所有反应的列表,然后您可以遍历这些反应,然后依次遍历所有对给定反应做出反应的用户并保存对您选择的数组、列表或数据结构做出反应的每个用户的名称/ID。

【讨论】:

    【解决方案2】:
    List<MessageReaction> reactionsList = event.event.getMessage().getReactions();
    
    // List of users that reacted to every possible emote.
    for (int i = 0; i < reactionsList.size(); i++)
    {
        List<User> users = reactionsList.get(i).retrieveUsers().complete();
    }
    

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 2020-03-13
      • 1970-01-01
      • 2021-02-06
      • 1970-01-01
      相关资源
      最近更新 更多