【问题标题】:Discord bot that kicks everyone only kicks people without roles踢所有人的 Discord 机器人只会踢没有角色的人
【发布时间】:2020-09-22 05:15:26
【问题描述】:

您好,我正在制作一个不和谐的机器人,它会踢组中的每个人,但唯一的问题是它只会踢没有任何角色的成员。如果有人可以给我一个提振,因为我正在慢慢学习 discord py。

代码:

@client.command(pass_context=True)
async def free(ctx):
    guild=ctx.message.guild
    for member in tuple(guild.members):
        try:
            await member.kick()
        except:
            continue

【问题讨论】:

    标签: python bots discord


    【解决方案1】:

    删除try except。它会向您显示为什么它无法踢出 Discord 成员的错误。我的猜测是机器人试图踢的成员等级较高,而这些人是机器人无法踢的。

    https://support.discord.com/hc/en-us/articles/214836687-Role-Management-101

    除了角色排序层次结构之外,还有一个特殊的例外 禁止、踢出和昵称成员:即使用户有 禁止/踢/昵称权限,他们不能禁止/踢/更改 任何具有相同角色或高于他们的角色的人的昵称。

    【讨论】:

    • 我在测试。我邀请了 5 个机器人并删除了他们的所有权限,并赋予他们非常糟糕的角色,我的机器人仍然无法踢任何人。
    【解决方案2】:

    确保您的机器人的角色高于所有人。

    @client.command(pass_context=True)
        async def free(ctx):
            members = ctx.guild.members
            for member in members:
                await member.kick()
    

    你不需要try except和元组。

    【讨论】:

      猜你喜欢
      • 2021-02-24
      • 2022-01-18
      • 2021-05-08
      • 1970-01-01
      • 2020-09-23
      • 2020-12-23
      • 2021-05-20
      • 1970-01-01
      • 2019-04-25
      相关资源
      最近更新 更多