如何在 discord.py 中禁止/踢出多个用户?

时间:2021-06-09 09:23:11

标签: python discord.py

所以我想知道有什么方法可以使用一个命令在不和谐的服务器上禁止/踢出多个用户?可能是 2 个成员甚至 10 个成员,有什么办法可以做到这一点吗?如果有人知道答案,请帮助我,我将永远感谢你这个善良的陌生人!

2 个答案:

答案 0 :(得分:1)

就像评论中指出的那样,您不能在 discord.py 中本地使用一个命令来踢或禁止多个用户。但是,您始终可以编写自己的函数来处理这些问题。


async def kick_multiple(memberList):
    for member in memberList:
        await member.kick()

@bot.command()
async def kickCommand(ctx):
    membersToKick = [] # fill with wanted members
    await kick_multiple(membersToKick) # only one command

如果您不想在主文件中使用此命令,也可以将此命令移至其他文件。

答案 1 :(得分:0)

您可以在 commands.Greedy 类型转换参数上使用 discord.Member。正如名称 'greedy' 所暗示的那样,它接受您特定类型转换的所有参数并将它们转换为参数列表

<块引用>

贪婪的英文定义:对某事的强烈而自私的欲望。 (暗示你什么都想要,什么都不留下,掠夺一切)

然后您可以使用 for 循环逐个踢/禁止他们

async def ban(ctx, members: commands.Greedy[discord.Member]=None, *, reason=None):
     if not members: 
         return await ctx.send('provide at least one member argument....')
     if not reason:
         reason = "my server my reasoning"
     for member in members: # members is a list that greedy has created
         try:
           await member.ban(reason=reason)
         except discord.Forbidden:
           pass

这是一个如何工作的例子:

参考资料

Example usage