这是我的代码,我用了很长时间,因为在最近的jda更改之前,我认为7月份
for (Member member : guild.getMembers()) { // code }
这样就不起作用了,在停止之前,它只在大约4个成员之间循环。有什么新的我需要添加到这个修补程序以来?我注解掉了整个循环体,只放了一个system.println member.geteffectivename(),它每次只打印4个名称,当时大约有80个人处于不和谐状态。
5sxhfpxr1#
您将需要缓存成员以循环访问它们。当使用诸如 getMember() 或者 getMemberById() 除非它是公会的所有者或者机器人本身是空的。使用时 createLight() 或者 createDefault() 对于构建jda,默认情况下禁用成员缓存和成员分块。像user class这样的东西不能为null,因为它是由discord提供的有关缓存所有成员的更多信息,请阅读以下内容
getMember()
getMemberById()
createLight()
createDefault()
1条答案
按热度按时间5sxhfpxr1#
您将需要缓存成员以循环访问它们。当使用诸如
getMember()
或者getMemberById()
除非它是公会的所有者或者机器人本身是空的。使用时
createLight()
或者createDefault()
对于构建jda,默认情况下禁用成员缓存和成员分块。像user class这样的东西不能为null,因为它是由discord提供的
有关缓存所有成员的更多信息,请阅读以下内容