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

2024-05-23 22:32:05 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我想知道是否有任何方法可以使用一个命令禁止/禁止来自discord服务器的多个用户?可能有2名成员,甚至10名成员,有什么办法可以做到这一点吗?如果有人知道答案,请帮助我,我将永远感谢你善良的陌生人


Tags: 方法答案用户命令服务器成员discord办法
2条回答

您可以在discord.Member类型转换参数上使用commands.Greedy。正如“贪婪”这个名字所暗示的,它接受特定类型转换的所有参数,并将它们转换为参数列表

English definition of greediness : intense and selfish desire for something. (Implying you want it all, leave nothing and plunder everything)

然后,您可以使用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

正如评论中指出的那样,您不能在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

如果不想将此命令放在主文件中,也可以将其移动到其他文件中

相关问题 更多 >