【问题标题】:discord.py get guild membersdiscord.py 获取公会成员
【发布时间】:2021-12-17 07:46:00
【问题描述】:

我正在 discord.py 中创建一个机器人,并且我正在创建一个命令来踢所有非角色的服务器成员。

但问题是,我认为机器人是唯一的成员。我尝试研究文档,但找不到明确的示例或答案。

这是我的代码:

@bot.command()
async def kick_non_role(ctx, *, reason=None):
  print(ctx.guild.members)
  for member in ctx.guild.members:
      print(member)
      if len(member._roles) == 1:
          await member.kick(reason='No role assigned')
          print(f'Non-roled members have been kicked from the server.')
      print(f'{member} has roles: {len(member._roles)}')

这是输出:

[<Member id=904484713937379390 name='Bouncer_Bot' discriminator='5970' bot=True nick=None guild=<Guild id=867621531320057887 name='SixtyNiners' shard_id=None chunked=False member_count=10>>]
Bouncer_Bot#5970
Bouncer_Bot#5970 has roles: 3

【问题讨论】:

    标签: python discord


    【解决方案1】:

    您可能错过了Member Intents 来查看guild 的成员,这可能是您只在服务器中获取机器人的原因。

    Discord.py 对此主题有自己的解释,您可以阅读here

    【讨论】:

    • 感谢分享,求解答。
    【解决方案2】:

    我的第一个问题是 Discord 机器人是否具有查看所有成员并踢出他们所需的权限。强调查看所有成员的权限。

    【讨论】:

    • 在权限中,我没有看到“查看所有成员”选项。拥有除以下所有文本权限和所有管理员权限:Administrator View Audit Manage server 你能澄清一下你的意思吗?
    【解决方案3】:

    感谢@Nyghi 发布帖子。我的问题是我的服务器中的角色层次结构,将机器人角色设置为顶部,我的代码开始工作。

    discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions error for setting up roles

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2019-12-29
    • 2020-11-11
    • 2021-03-14
    • 2021-08-18
    • 1970-01-01
    • 2021-02-26
    • 2021-03-11
    • 2022-06-30
    • 2021-05-10
    相关资源
    最近更新 更多