gpt4 book ai didi

javascript - Discord JS - 当我在更多公会中时,使用 client.guilds 的 .cache 属性会导致错误吗?

转载 作者:行者123 更新时间:2023-12-04 09:49:01 27 4
gpt4 key购买 nike

我正在尝试为我的所有公会查找公会所有者 ID,以便在给定时间向他们发送直接消息。我目前的实现,我已经知道所有的 guildIDs 并且只是遍历它们:message.client.guilds.cache.get(guildID).ownerID这目前有效并且很好,但是当我增加公会数量时,我想知道它的稳健性。我目前仅在 2 个公会上进行测试,但可能会达到 1000 个以上。

该站点上的许多较旧的教程和问题都建议不需要使用 .cache message.client.guilds 的属性(property)并像这样获得您想要的属性(property)message.client.guilds.get(desired_property)然而,当我尝试按照他们的建议去做时,我得到了一个错误。 This问题与我遇到的问题类似,但在我使用 .cache 时修复了它。 message.client 的属性(property)这解决了我以前的问题。然后我想我找到了原因 this回答类似问题告诉我all user objects have been cached

当我有超过 1000 个公会时,这意味着什么?不要担心分片,这是我以后可以考虑的。

我对缓存的工作原理有一个松散的理解,但是当我进入更多公会时,这是否会崩溃,因为并非所有公会都会被缓存,因此当我使用 message.client.guilds.cache.get(guildID).ownerID 时我将只获得那些已缓存的公会的所有者ID,还是机器人所在的所有公会一直被缓存?如果当机器人开始拥有数千个公会时,这不会总是返回所有的所有者 ID,因此可能并非所有的公会都被缓存,有没有办法修复它,以便它始终将它们全部返回?

最佳答案

您也可以使用 .map :

let list = bot.guilds.cache.map(g => g.ownerID).join('\n');
message.channel.send(list)
虽然不确定缓存错误,但我与用户有过一些错误,但这是意料之中的。 (使用 .users.fetch 代替,这是一个 promise ,所以一定要使用 await 如果你要尝试的话)

关于javascript - Discord JS - 当我在更多公会中时,使用 client.guilds 的 .cache 属性会导致错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62042403/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com