python - 尝试在 python 上执行缺少 discord bot 所需权限的错误消息
问题描述
我正在 python 上制作一个不和谐的机器人,我不希望普通用户使用审核命令。我知道如何检查权限,
@commands.has_permissions(kick_members=True)
但我不知道如何处理缺少所需权限的错误消息。我试过了:
@kick.error
async def kick_error(self, ctx, error):
if isinstance(error, commands.MissingPermissions):
await ctx.send(':redTick: You don\'t have permission to kick members.')
我在 Stack Overflow 上发现了
但是在cmd中它说:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: kick_error() missing 1 required positional argument: 'error'
如果我交换'ctx'和'error',就像,它说的是同样的事情,只是他写async def kick_error(self, error, ctx):
的不是missing 1 required positional argument: 'error'
missing 1 required positional argument: 'ctx'
我该如何解决?还有另一种方法吗?
解决方案
您需要检查错误是否是commands.MissingRequiredArgument
看到错误我认为您不在齿轮中,因此请删除self
@kick.error
async def kick_error(ctx, error):
if isinstance(error, commands.MissingPermissions):
await ctx.send(':redTick: You don\'t have permission to kick members.')
elif isinstance(error, commands.MissingRequiredArgument):
await ctx.send("Missing Argument")
else: raise(error) # for other errors so they dont get suppressed
推荐阅读
- ios - 自定义 UI 按钮上的 addTarget 无法以编程方式工作
- php - 使用 PHP 和标头下载文件 - 最后仅适用于“die”
- sql-server - 使用 XML 源和内联架构运行 SSIS 数据流任务时,未读取任何内容
- c++ - 包括来自 boost 1.73.0 的 read_graphviz_new.cpp 不编译
- python - 如何从 Python 中的插值网格中提取 (x,y,z) 值
- django - 在django中,我想在成功提交出勤后一一删除员工姓名
- arrays - 转换列表
列出 - php - 错误 session_start(): 读取会话数据失败: redis PHP / Redis
- javascript - 异步 / 等待 socket.io
- apache-spark - 在 Spark 中对 Logistic 回归模型代码进行评分