有没有一种方法可以在不使用client=discord.client()而不是Python上的bot的情况下踢成员
所以,我是编程新手,我有一个discord机器人,我使用client=discord.client()而不是client=commands.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事件发出
帮助将不胜感激:)如果您将其更改为
命令。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
时使用命令。