discord.py 通过频道上的消息踢特定用户

时间:2021-05-05 19:38:44

标签: python discord.py

我一直在为我和我的朋友制作不和谐机器人。 我想让我们服务器上的每个人(无论他们的等级如何)都能踢特定的人。 让他的名字叫乔治

那是乔治:

George = {
'id' : '123456789',
'username' : 'george12'
}

我试图以这种方式实现:

if message.content.startswith("Goodbay George"):
   await george['id'].kick

还有这个:

@bot.command()
@commands.has_permissions(kick_members = True)
@commands.bot_has_permissions(kick_members = True)
async def kick(ctx, member : discord.Member, *, reason = None):
  await member.kick(reason = reason)


@bot.event
async def on_message(message):

   if message.content.startswith("Goodbay George"):
      await kick(george['id'])      ### im not sure how provide member as argument, I got kick function from this forum

但是这些选项都不起作用。 我怎样才能做到我所期待的? (开头说)

1 个答案:

答案 0 :(得分:0)

当从 id dict 访问 george 键时,您会得到一个字符串(乔治的 ID),要真正踢某人,它必须是一个 discord.Member 实例,以便得到它你可以使用Guild.get_member(这需要一个整数)

if message.content.startswith("Goodbay George"):
    george_id = int(george['id']) # already casting to an integer
    member = message.guild.get_member(george_id)
    await member.kick()

参考: