我如何为不和谐的机器人 python 3.6 定义 MissingPermissions
Posted
技术标签:
【中文标题】我如何为不和谐的机器人 python 3.6 定义 MissingPermissions【英文标题】:How do i Define MissingPermissions for a discord bot python 3.6 【发布时间】:2019-03-21 06:13:05 【问题描述】:@warn.error
async def kick_error(error, ctx):
if isinstance(error, MissingPermissions):
text = "Sorry , you do not have permissions to do that!".format(ctx.message.author)
await bot.send_message(ctx.message.channel, text)
它运行,但是当我使用警告命令时,它打印出 MissingPermissions 未定义 如何定义?
eError: name 'MissingPermissions' is not defined
【问题讨论】:
【参考方案1】:异步分支没有定义MissingPermissions
。相反,has_permissions
将引发CheckFailure
。
如果你想编写自己的has_permissions
,而确实会引发一个独特的错误,你可以自己继承CheckFailure
:
from discord.ext.commands import CheckFailure, check
class MissingPermissions(CheckFailure): pass
def has_permissions(**perms):
def predicate(ctx):
msg = ctx.message
ch = msg.channel
permissions = ch.permissions_for(msg.author)
if all(getattr(permissions, perm, None) == value for perm, value in perms.items()):
return True
raise MissingPermissions()
return check(predicate)
这与重写 has_permissions
不完全一样,其中包括 MissingPermissions
对象中缺少的权限,但它应该足够接近以模拟相同的控制流
【讨论】:
以上是关于我如何为不和谐的机器人 python 3.6 定义 MissingPermissions的主要内容,如果未能解决你的问题,请参考以下文章