У меня есть диск-бот, написанный на Python, который я использую для определенных команд. Можно ли ограничить использование команд определенной ролью? - PullRequest
0 голосов
/ 20 апреля 2019

Так что в основном я и некоторые другие парни работаем над ботом для дискорд-сервера.Бот используется для отправки изображений, дм-ссылок и тому подобного.Из-за проблемы, с которой мы столкнулись, мы решили ограничить использование команд.Пока что администрирование основано на том, что у пользователя есть разрешение на удаление сообщения.Я хотел бы знать, можно ли ограничить использование команд определенной ролью / ролями.

 @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 ]

1 голос
/ 20 апреля 2019
@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!")

это остановило ошибку во время выполнения проверки, но ничего не отправляет на канал, но все равно не позволит нижним ролям использовать эти команды, поэтому это должно помочь

1 голос
/ 20 апреля 2019

Да, вы можете ограничить использование определенных команд определенной ролью в 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.")
...