Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Discordpy CheckFailure:命令测试的检查功能失败_Python_Discord.py - Fatal编程技术网

Python Discordpy CheckFailure:命令测试的检查功能失败

Python Discordpy CheckFailure:命令测试的检查功能失败,python,discord.py,Python,Discord.py,我几乎一字不差地使用了我的代码,但在我的控制台中,当用户不是管理员时(即当谓词返回False)会显示一个CheckFailure。当它返回True时,不会显示任何内容。为什么我会收到此错误,如何修复它使其不显示错误?根据我的理解,一开始就不应该出现错误 def是_admin_角色(): 异步定义谓词(ctx): 管理员角色=[管理员角色id,管理员角色测试id] role_list=[x代表ctx.message.author.roles中的x]#获取角色列表 role_id_list=[x.i

我几乎一字不差地使用了我的代码,但在我的控制台中,当用户不是管理员时(即当
谓词
返回
False
)会显示一个
CheckFailure
。当它返回
True
时,不会显示任何内容。为什么我会收到此错误,如何修复它使其不显示错误?根据我的理解,一开始就不应该出现错误

def是_admin_角色():
异步定义谓词(ctx):
管理员角色=[管理员角色id,管理员角色测试id]
role_list=[x代表ctx.message.author.roles中的x]#获取角色列表
role_id_list=[x.id代表role_list中的x]#获取他们的id
#false=用户没有管理员角色,true=用户有管理员角色。
has_admin_role=any(角色id列表中的项目的管理角色中的项目)
如果没有管理员角色:
#创建嵌入,让用户知道他们无法运行此命令。
embed=utils.ErrorEmbed(“您必须是管理员才能运行此命令。”)
等待ctx.send(embed=embed.print())#发送嵌入。
return False#返回False,因为用户无法运行它。
返回True#用户能够运行它
返回命令。检查(谓词)
@bot.command()
@是管理员角色()
异步def测试(ctx):
...
#执行此代码所做的任何操作。
我得到的错误是:

Traceback (most recent call last):
  File "/opt/anaconda3/lib/python3.8/site-packages/discord/client.py", line 333, in _run_event
    await coro(*args, **kwargs)
  File "bot.py", line 125, in on_command_error
    raise error
  File "/opt/anaconda3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 903, in invoke
    await ctx.command.invoke(ctx)
  File "/opt/anaconda3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 851, in invoke
    await self.prepare(ctx)
  File "/opt/anaconda3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 779, in prepare
    raise CheckFailure('The check functions for command {0.qualified_name} failed.'.format(self))
discord.ext.commands.errors.CheckFailure: The check functions for command test failed.

如果check func返回一个
False
,则会引发
commands.CheckFailure
(您可以在错误处理程序中捕获它)。如果返回
True
,则从文档中调用命令:

发生错误时,错误会传播到错误处理程序。如果不引发自定义的
CommandError
派生异常,则它将被包装为
CheckFailure
异常