我有一个用Python编写的Discord机器人,可用于某些命令。是否可以将命令的使用限制为某个角色?

时间:2019-04-20 16:00:28

标签: python bots discord.py-rewrite

所以基本上,我和其他一些人正在为不和谐服务器开发机器人。该机器人用于发送图像,dm链接等。由于我们遇到的问题,我们决定需要限制命令的使用。到目前为止,管理权限基于具有删除消息权限的用户。 我想知道的是,是否有可能将命令的使用限制为某个角色/角色。

 @bot.command(pass_context=True)
 async def givefood(ctx, user: discord.User):
       if ctx.message.author.server_permissions.manage_messages:
          await bot.say("Check direct messages <a:okedokey:518350515726319635>")

2 个答案:

答案 0 :(得分:1)

是的,您可以将某些命令的使用限制为Discord.py中的特定角色。 方法如下:

if "rolename" in [role.name for role in message.author.roles]:
    command()
else:
    await client.send_message(message.channel, "Sorry, you don't have the permission to do that.")

答案 1 :(得分:1)

@client.command()
@commands.has_any_role("Keyblade Master","Foretellers")
async def ban (ctx, member:discord.User=None, reason =None): 

这就是我只需要执行我想要的角色的命令所需要的,并且

@purge.error
async def purge_error(error, ctx):
    if isinstance(error, CheckFailure):
        await ctx.channel.send("Looks like you don't have permission for that!")

这停止了检查失败运行时错误,但没有向通道发送任何内容,尽管如此,仍然不允许较低的角色使用这些命令,因此应该有帮助