【问题标题】:Discord bot not returning members of roleDiscord bot 不返回角色成员
【发布时间】: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

标签: discord.py


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,这正是它所需要的。我以前从来没有和服务器成员搞过,所以我不知道。谢谢。
猜你喜欢
  • 2020-07-31
  • 2021-10-11
  • 2021-02-15
  • 2021-11-18
  • 2020-07-13
  • 2020-06-29
  • 1970-01-01
  • 2021-01-20
  • 2020-08-16
相关资源
最近更新 更多