Как установить ограничение в использовании команды по роли Discord.py
Я делаю бота для Discord на Python с помощью модуля Discord.py. И мне нужно сделать так, чтобы определенную команду могли использовать только участники имеющие определенные роли.
Я Пробовал перед операторами сравнения добавить это:
if member.top_role.name == "Администратор":, но ничего не вышло, помогите мне разобраться как это сделать.
Моя версия Discord.py - 1.6.0, Python 3.7.0.
Вот сама команда:
@bot.command()
async def warn(ctx, member: discord.Member, *, about: str):
if member:
embed = discord.Embed(color = 0x537cda, description = f'Участник **{member.name}** получил предупреждение от **{ctx.message.author.name}** по причине:\n**```\n{about}\n```**')
await ctx.send(embed = embed)
else:
embed = discord.Embed(color = 0x537cda, description = 'Ошибка в аргументах команды\nили участник не найден.', title = 'Ошибка')
await ctx.send(embed = embed)
Ответы (1 шт):
Автор решения: xZartsust
→ Ссылка
@bot.command()
@commands.has_permissions(administrator = True)# команду сможет использовать роль в которой включена привилегия Администратор.
@commands.has_any_role('Администратор')# все у кого есть роль с именем Администратор могут использовать эту команду
@commands.has_role(id_role)#надо вставить id роли которая сможет использовать эту команду
async def warn(ctx, member: discord.Member, *, about: str):
if member:
embed = discord.Embed(color = 0x537cda, description = f'Участник **{member.name}** получил предупреждение от **{ctx.message.author.name}** по причине:\n**```\n{about}\n```**')
await ctx.send(embed = embed)
else:
embed = discord.Embed(color = 0x537cda, description = 'Ошибка в аргументах команды\nили участник не найден.', title = 'Ошибка')
await ctx.send(embed = embed)
С верху я перечислил варианты как можна сделать проверку, вам надо выбрать то что вам подходит.