所以我试图对我的discord.py重写bot发出一个say命令。但是我不知道该怎么做,所以当用户没有正确的权限时它会发送文本
@client.command()
@commands.has_permissions(manage_messages = True)
async def say (ctx, *, msg2:str):
await ctx.send(msg2)
@say.error
async def say_error(error, ctx):
if isinstance(error, CheckFailure):
await ctx.send('You need the **Manage messages** permission to use this command')
如果用户具有“管理邮件”或“管理员”权限。我希望它运行say命令。如果他们没有任何这些权限。我希望它发送:“您需要具有此命令的管理消息权限”
答案 0 :(得分:0)
您对say_error
的参数是向后的。您还可以检查更具体的MissingPermissions
错误。
@say.error
async def say_error(ctx, error):
if isinstance(error, MissingPermissions):
await ctx.send('You need the **Manage messages** permission to use this command')
else:
raise error
您可能可以使用
之类的方法来对此进行概括@say.error
async def say_error(ctx, error):
if isinstance(error, MissingPermissions):
await ctx.send(f'You need the **{", ".join(error.missing_perms)}** permission to use this command')
else:
raise error