Как разрешить команду пользователю при условии, что у него 2 определенные роли?
Пытался сделать так, но не сработало.
@client.command(pass_context = True )
@commands.has_role("1" and "2")
Ответы (2 шт):
Автор решения: Швеев Алексей
→ Ссылка
Я не знаком с данной библиотекой, однако следующий код может сработать:
if @commands.has_role("1") and @commands.has_role("2"): #если есть роль 1 И есть роль 2
@client.command(pass_context = True)#выполняем нужную команду
Автор решения: Corrygan
→ Ссылка
Я привёл просто пример с командой test, вы могли использовать декоратор @commands.has_role(), но там идёт проверка только на одну роль.
@bot.command()
async def test(ctx):
role_one = discord.utils.get(ctx.guild, id=ид_первой_роли)
role_two = discord.utils.get(ctx.guild, id=ид_второй_роли)
if role_one in ctx.author.roles and role_two in ctx.author.roles:
await ctx.send('Работает!')
else:
await ctx.send(f'{ctx.author}, у вас нет нужных ролей.')