【问题标题】:discord.py kicking specific user by message on channeldiscord.py 通过频道上的消息踢特定用户
【发布时间】:2021-07-28 03:45:23
【问题描述】:

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

那是乔治:

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

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

【问题讨论】:

  • 您是否尝试过从 discord api 中获取 George 对象?看起来您的乔治是 dict 不能使用 discord.Member 方法。

标签: python discord.py


【解决方案1】:

当从george 字典访问id 键时,你会得到一个字符串(George 的ID),要真正踢某人,它必须是一个discord.Member 实例,你可以使用@ 987654326@(取整数)

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()

参考资料:

【讨论】:

  • get_member guild 不起作用``` member = message.guild.get_member(george_id) ```你还有其他想法吗?
  • 你启用intents.members了吗?
  • 我有。通过使用 ``` intents = discord.Intents.default() intents.members = True ``` 并在不和谐机器人面板中。问题依然存在。
  • 当我在 member = message.guild.get_member(george_id) 上有 mu 鼠标光标时,我可以看到“[pyflakes] 无效语法”
  • 您确定您复制的代码正确并且它是有效的 ID?上面的代码对我来说完美无缺。
猜你喜欢
  • 2021-09-18
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 2021-06-30
  • 2022-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多