我很久以前创建了一个管理 cog,但我并没有限制管理员使用它。我试图为管理员限制它,但我只能将 cog 限制为一个角色。如何使 cog 仅限于具有管理员权限的人?
当前代码:
async def cog_check(self, ctx):
admin = get(ctx.guild.roles, name="Admin")
return admin in ctx.author.roles
我很久以前创建了一个管理 cog,但我并没有限制管理员使用它。我试图为管理员限制它,但我只能将 cog 限制为一个角色。如何使 cog 仅限于具有管理员权限的人?
当前代码:
async def cog_check(self, ctx):
admin = get(ctx.guild.roles, name="Admin")
return admin in ctx.author.roles
如果您需要执行命令的人具有一定的权限,您可以使用discord.ext.commands.has_permissions() ,否则您还可以使用返回Permissions 对象并使用权限管理员的permissions_for()
它看起来像这样
async def cog_check(self, ctx):
return ctx.channel.permissions_for(ctx.author).administrator
当且仅当成员具有权限管理员(在他的角色之一或在频道中指定他的权限)时,此协程才会返回 True