url-rewriting - Discord.py 重写角色层次结构检查
问题描述
我在 discord.py rewrite 中写了一个机器人。到目前为止,它只有 !kick、!ban 和 !unban 等基本选项。但是,当前设置为具有适当权限的任何人都可以对任何人执行此操作。这意味着具有“版主”级别的人可以禁止具有“管理员”级别的人,这是不允许的。我如何添加一个简单的检查来查看该人的排名是否高于/低于他们试图踢/禁止的人?
解决方案
Member
对象有一个top_role
属性,你可以直接比较角色(更高的角色“更大”):
@bot.command()
async def ban(ctx, target: Member):
if target.top_role >= ctx.author.top_role:
await ctx.send("You can only ban people below you")
return
...
推荐阅读
- python - 有没有一种方法可以限制 scipy 生成随机变量集?
- azure-devops - 如何为测试和发布环境构建 Azure Devops Pipelines?
- javascript - 如何从字符串中拆分某个数字但在该字符串中保留另一个数字仍在javascript中
- c# - 是什么导致视频播放期间“尚未为此流或其依赖的流设置有效类型”异常
- python-3.x - 计算会影响 python-3.x 中其他地方的堆栈中相同(但不同)的变量?
- react-native - TypeError:无法读取 /node_modules/galio-framework/src/Toast.js 中未定义的属性“样式”
- java - Lombok 条件 ToString.Include
- three.js - threejs - 重新定位后使用控制器在 AR 中进行光线投射
- java - 使用 java 和 jsoup 进行网页抓取
- node.js - Socket.io 在线用户数