discord - 如何让我的机器人检查作者是否有管理员,如果没有,则发送消息?
问题描述
我做了一个命令,我希望只有管理员可以访问。如果用户有管理员,则运行特定代码。如果没有,我希望机器人发送一条消息,如“抱歉,你不能使用它”。有没有办法做到这一点?
解决方案
@commands.command()
@commands.has_permissions(administrator=True)
async def command(self, ctx):
#code here
只会使命令command
管理员。至于警告用户尝试运行他们没有权限的命令,您可以使用错误处理程序/命令特定的错误处理程序。如
@commands.Cog.listener()
async def on_command_error(self, ctx, error):
if isinstance(error, commands.errors.MissingPermissions):
msg.title = "Missing Permission ⛔"
msg.description = error.args[0]
return await ctx.send(embed=msg)
对于 cog 特定错误,使用 commandname.error() 并捕获如上所示的错误。
推荐阅读
- javascript - TypeError:this.state.robots.filter 不是函数?
- html-table - 如何像标题一样在每个页面中显示表格部分
- kotlin - 如何在 Kotlin 中取消初始化 lateinit
- php - 在mysql表上插入数据
- sql - ORA-01720: 在 Oracle DB 中创建视图时,XXX.VW_XXX 的授权选项不存在
- java - 我在程序中调用 https URL 时遇到了 handshake_failure
- django - 脚本 django-admin 安装在 '/tmp/somedir/deps/0/python/bin' 中,它不在 PATH 上。考虑将此目录添加到 PATH
- oracle - 如何检查一个子查询是否是 Oracle SQL 中另一个子查询的子集?
- python - python计算到列中数字的距离
- javascript - 点击函数执行后如何调用函数