【问题标题】:Is there a way to kick/ban everyone in discord.py?有没有办法踢/禁止 discord.py 中的每个人?
【发布时间】:2020-12-19 04:03:49
【问题描述】:

我现在正在尝试制作一个 Discord 机器人,并且我正在关注踢出/禁止成员的教程,但我似乎无法找到踢出/禁止所有人的方法。当前代码踢出特定用户:

    async def kickall(ctx, member : discord.Member):
        await member.kick()

我怎样才能让它踢所有人?谢谢你。如果您有任何问题或可以改进此问题的方法,请随时提问/告诉我。

【问题讨论】:

  • 我认为这是不可能的,唯一的办法就是单独踢每个成员。您也许可以尝试做 kickall 并提及@everyone

标签: python discord discord.py


【解决方案1】:

您可以获取公会成员并使用for 循环遍历他们:

@commands.command(aliases=['kickall'])
@commands.has_permissions(administrator=True)
async def kick_all(self, ctx, reason):
    for member in ctx.guild.members:
        try:
            await member.kick(reason=reason)
            print(f"Kicked {member.name}")
        except:
            print(f"Could not kick {member}")

由于您不在Class 中,因此您可以这样做:

@client.command()
async def kickall(ctx, *, reason=None):
    if ctx.message.author.top_role.permissions.administrator:
        for member in ctx.guild.members:
                try:
                    await member.kick(reason=reason)
                    print(f"Kicked {member.name}")
                except:
                    print(f"Could not kick {member}")
    else:
        await ctx.send("Missing permissions.")

【讨论】:

    猜你喜欢
    • 2021-09-16
    • 2021-05-20
    • 2021-04-02
    • 2019-02-15
    • 2023-03-15
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多