Discord Python:如何设置自定义参数以允许或不允许使用函数
嘿,我有一个discord机器人,我想为使用一些命令设置“权限”,比如员工命令、给定角色可用的命令,甚至是最低级别的命令 因此,我尝试将我的每个命令放在类中:Discord Python:如何设置自定义参数以允许或不允许使用函数,python,python-3.x,discord,discord.py,Python,Python 3.x,Discord,Discord.py,嘿,我有一个discord机器人,我想为使用一些命令设置“权限”,比如员工命令、给定角色可用的命令,甚至是最低级别的命令 因此,我尝试将我的每个命令放在类中: class\u测试: 定义初始化(自): self.minimal_level=0 self.minimal\u role\u name=“有效成员” 自复位时间=5 self.pass\u角色=0 self.last_执行=0 self.executions=0 self.ban_成员=[] self.ban_role_name=[“静
class\u测试:
定义初始化(自):
self.minimal_level=0
self.minimal\u role\u name=“有效成员”
自复位时间=5
self.pass\u角色=0
self.last_执行=0
self.executions=0
self.ban_成员=[]
self.ban_role_name=[“静音”、“警告1”、“警告2”]
@bot.command()
异步定义调用(self、ctx、*args、**kwargs):
尝试:
如果ctx.author.roles中的self.minimal_角色:
等待ctx发送(“做某事”)
其他:
等待ctx.send(“此角色无法执行此命令!”)
例外情况除外:
等待ctx.send(f“出现错误:``{exception}```”)
但这根本不起作用。然后我找到了COG,但是如果我在每个命令中都使用它们,我就不能用诸如人员命令、游戏经济、游戏战斗、游戏实用程序、设置等部分来分隔
我还想为每个命令在Cog类中使用self.function\u foo\u perm={minimal\u level:0,minimal\u rol……}
的变量,但这真的是一个好的解决方案吗
最后,我想制作一个特殊的类来处理权限
但最好的办法是什么?还是更好
谢谢你的帮助 无关:您误用了类。你所做的“工作”,但它是令人难以置信的黑客
discord.py库中有许多检查装饰程序,涵盖了您需要的许多内容:
对于您所扮演的角色:
@commands.has_role("rolename"/roleid)
@commands.has_any_role("rolename"/roleid,"rolename"/roleid,"rolename"/roleid ...)
@bot.command()
async def ...
自定义检查可以按如下方式实施:
def check_if_it_is_me(ctx):
return ctx.message.author.id == 85309593344815104
@bot.command()
@commands.check(check_if_it_is_me)
async def only_for_me(ctx):
await ctx.send('I know you!')
但如何检查重置时间、禁止成员等?我编辑了我的答案,并提供了一个如何编写自定义检查的示例。