有没有一种方法可以在不使用client=discord.client()而不是Python上的bot的情况下踢成员

有没有一种方法可以在不使用client=discord.client()而不是Python上的bot的情况下踢成员,python,discord.py,Python,Discord.py,所以,我是编程新手,我有一个discord机器人,我使用client=discord.client()而不是client=commands.bot(…),现在我希望能够踢用户。但我看不到任何命令使用我的客户端踢某人使用他们的用户名。我知道这是简单的做一个机器人,但我已经有这么大的代码,我不想重做它。 帮助将不胜感激:)如果您将其更改为命令。Bot一切正常(如果您添加等待客户端。在on\u message事件结束时处理命令(message)。不过,下面介绍了如何使用on\u message事件发出

所以,我是编程新手,我有一个discord机器人,我使用client=discord.client()而不是client=commands.bot(…),现在我希望能够踢用户。但我看不到任何命令使用我的客户端踢某人使用他们的用户名。我知道这是简单的做一个机器人,但我已经有这么大的代码,我不想重做它。
帮助将不胜感激:)

如果您将其更改为
命令。Bot
一切正常(如果您添加
等待客户端。在
on\u message
事件结束时处理命令(message)
。不过,下面介绍了如何使用
on\u message
事件发出踢“命令”:

@client.event
async def on_message(message):
    guild = message.guild

    if message.startswith('!kick'):
        args = message.content.split()[1:]

        member_id = int(args[0])
        member = guild.get_member(member_id)

        reason = ' '.join(args[1:])

        await member.kick(reason=reason)

    # If you actually change your mind and want to use `commands.Bot`
    await client.process_commands(message)


# To invoke
# !kick 172399871237987 drama seeker
我强烈建议不要使用这种方法,只需比较一下命令的更好、更简单和更干净

@client.command()
@commands.has_权限(kick_members=True)
异步def kick(ctx,成员:discord.member,*,原因):
等待成员。踢(原因=原因)
#在这里调用时,实际上可以提到用户
#!kick@some_用户戏剧探索者
#但是你也可以使用ID
#!踢761876328716327186戏剧探索者

只有4行,如果我们不计算
拥有\u权限的
装饰者,则只有3行。

您需要从公会获取一名公会成员,然后踢该公会成员。这将对您有所帮助。您可以在使用
discord.Client
时使用命令。