Discord bot 不返回角色成员

Posted

技术标签:

【中文标题】Discord bot 不返回角色成员【英文标题】:Discord bot not returning members of role 【发布时间】:2021-08-11 06:59:49 【问题描述】:

我正在尝试制作一个不和谐的机器人,它将列出服务器的所有管理员。它当前查找具有管理员权限的所有角色,并将其中的每个成员列出到控制台。但是,该机器人仅将自己打印为管理员,并且不显示包含任何成员的任何其他角色。我的代码如下:

async def get_admins(ctx):
    admin_roles = [role for role in ctx.guild.roles if role.permissions.administrator]
    admins = []

    for role in admin_roles:
        print(role)
        print(role.members)
        for member in role.members:
            admins.append(member)
    return admins

预期输出:

Admin
[people, people, more people]
Bot
[itself]

实际输出:

Admin
[]
Bot
[<Member id=844113179386707998 name='Orca' discriminator='1134' bot=True nick=None guild=<Guild id=807173965776027648 name='yea test medical bot' shard_id=None chunked=False member_count=5>>]

任何帮助将不胜感激。

【问题讨论】:

您是否启用了会员意图? 我以前从来不需要这样做。你如何启用成员意图? @Abdulaziz 【参考方案1】:

确保启用意图。我希望当您启用它们时它会起作用。转到 discord.dev 上的机器人应用程序并启用意图。如果你创建一个commands.Bot 实例,还要添加这个:

intents = discord.Intents().all()
bot = commands.Bot(command_prefix="§",intents=intents)

如果您启用意图,您的机器人可以获取服务器的所有成员。

【讨论】:

谢谢,这正是它所需要的。我以前从来没有和服务器成员搞过,所以我不知道。谢谢。

以上是关于Discord bot 不返回角色成员的主要内容,如果未能解决你的问题,请参考以下文章

Java Discord Bot - 获取角色成员?

discord.py bot 看不到成员

discord python:guild.members只返回bot但没有成员[重复]

Discord bot没有回复消息[重复]

如何让 Discord Bot 选择频道

Discord.js 删除所有成员角色