【问题标题】:JDA guild.getMembers() no longer getting all members, since few days ago从几天前开始,JDA guild.getMembers() 不再获取所有成员
【发布时间】:2021-03-21 23:00:00
【问题描述】:

这是我用了很长时间的代码,因为我认为是在最近的 JDA 更改之前,我认为是 7 月

for (Member member : guild.getMembers()) {
 // code
}

这不再有效,它只会在大约 4 个成员之间循环,然后停止。自补丁以来,我需要添加什么新内容吗?我注释掉了整个循环体,只放了一个 system.println member.getEffectiveName() ,它每次只打印 4 个名字,当时大约有 80 人在不和谐中。

【问题讨论】:

标签: java discord


【解决方案1】:

您需要缓存成员以循环访问它们。 使用 getMember()getMemberById() 等方法时,除非它的公会所有者或机器人本身为 null。

使用createLight()createDefault() 构建JDA 成员缓存时,默认禁用成员分块。

User 类不能为空,因为它是由 discord 提供的

有关缓存所有成员的更多信息,请阅读this

【讨论】:

  • 完美。非常感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
  • 1970-01-01
  • 2021-06-02
  • 2021-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多