【问题标题】:how to show the bot counter for a guild discord.js如何显示公会 discord.js 的机器人计数器
【发布时间】:2021-06-17 18:52:41
【问题描述】:

我想在 discord.js 中制作一个机器人计数器。

例如,当我输入:“!bots”时,机器人会发送如下消息:“此服务器上有 11 个机器人

我之前尝试过这段代码,但它似乎只给了我缓存中机器人的数量,而不是全部:

message.guild.members.cache.filter(member => member.user.bot).size

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    您可以使用 members 属性上的 fetch() 方法来检索 Discord 服务器中所有成员的数组。然后,您可以过滤或以其他方式遍历数组以检查成员是否为机器人。

    在此处查看有关它的文档:https://discord.js.org/#/docs/main/stable/class/GuildMemberManager?scrollTo=fetch

    正如@Bqre 在下面的评论中所解释的那样,这可能并不理想。

    【讨论】:

    • 强烈建议不要使用这种方法。它可以很容易地限制您的速率,并且如果在较大的服务器中使用它很快就会被视为 API 滥用。虽然不是很好,但使用cache 是最好的方法。如今,Discord 上的大多数人也被缓存了。
    • 问题询问如何检索非缓存用户。我回复了官方 API 文档中提供的内容。这是否是最好的方法不是问题所在。虽然反应很好并且澄清了它是如何被滥用的,但它并没有降低我的回答的有效性,所以我认为反对票是不公平的。
    • 即使道德与否,描述也不能完全描述正确的答案。如果您解释说必须在过滤之前获取每个成员,那会更好。不是“我认为你需要使用 fetch() 方法......”
    • 公平点。为它的价值做了一些编辑。
    • 是的,谢谢,不是我想要的,但是谢谢!
    猜你喜欢
    • 2018-07-28
    • 2021-10-14
    • 2021-01-29
    • 2021-06-01
    • 2021-07-30
    • 2021-12-29
    • 2018-09-24
    • 2020-07-18
    • 2021-04-25
    相关资源
    最近更新 更多