【问题标题】:@commands.has_permissions not checking for permissions@commands.has_permissions 不检查权限
【发布时间】:2020-09-15 05:00:50
【问题描述】:

所以基本上我正在做的是尝试编写一个非常基本的踢和禁止命令来用于我的不和谐机器人。我浏览了许多不同的教程和类似的问题,但我根本找不到解决方法。

@bot.command()
@commands.has_permissions(kick_members=True)
async def kick(ctx, user: discord.Member, *, reason=None):
  await ctx.kick(reason=reason)
  await ctx.send(f"{user} has been kicked successfully")

当我启动并运行机器人时,每个人都可以踢其他人,无论他们是否有权踢成员,即使我已指定它来检查用户是否能够踢人。我想要这样,如果用户没有踢成员的权限,他们不应该踢任何人。我对编码相当陌生,感谢任何帮助。如果有人想检查我程序中的其余代码,我很乐意发布它,但目前我认为没有理由必须这样做。

【问题讨论】:

  • 您确定这是正在运行的命令吗?你有另一个别名为“kick”的命令吗?如果您在此命令中添加一些日志记录,您会在控制台中看到您的 prints 吗?

标签: discord.py


【解决方案1】:
await ctx.kick(reason=reason)

你试图踢出上下文。踢该成员:

await user.kick(reason=reason)

【讨论】:

  • 感谢您的帮助!然而,即使在将我的上下文更改为用户之后,即使没有权限,看起来任何人都可以踢其他任何人。任何其他想法为什么会这样?如果您需要任何额外信息,我很乐意提供。
猜你喜欢
  • 2017-09-26
  • 2016-07-22
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 2016-11-15
  • 2019-07-20
  • 2020-02-11
相关资源
最近更新 更多