所以基本上,我和其他一些人正在为不和谐服务器开发机器人。该机器人用于发送图像,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>")
答案 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!")
这停止了检查失败运行时错误,但没有向通道发送任何内容,尽管如此,仍然不允许较低的角色使用这些命令,因此应该有帮助