我正在尝试查找我所有公会的公会所有者 ID,以便在给定时间向他们发送直接消息。我目前的实现,我已经知道所有的公会ID,只是遍历它们:message.client.guilds.cache.get(guildID).ownerID
这目前有效并且很好,但我想知道当我增加我的公会计数时它的稳健性。我目前仅在 2 个公会上进行测试,但可能会达到 1000 个以上。
该站点上的许多较旧的教程和问题都建议不需要使用的.cache
属性,message.client.guilds
只需像这样获得所需的属性message.client.guilds.get(desired_property)
但是当我尝试按照他们的建议进行操作时,出现错误。这个问题与我遇到的问题有类似的问题,但是当我使用它解决了我之前的问题的.cache
属性时解决了它。message.client
然后我想我找到了原因,因为这个对类似问题的回答告诉我所有用户对象都已被缓存
当我有超过 1000 个公会时,这意味着什么?不要担心分片,这是我以后可以考虑的事情。
我对缓存的工作原理有一个松散的了解,但是当我进入更多公会时,这会因此崩溃,因为并非所有公会都会被缓存,因此当我使用message.client.guilds.cache.get(guildID).ownerID
时,我只会获得那些已被缓存的公会的 ownerID 或机器人所在的所有公会是否一直在缓存?如果当机器人开始拥有数千个公会时这并不总是返回所有的 ownerID,因此可能不是所有的公会都被缓存,有没有办法可以修复它,所以它总是会全部返回?