@45Clifton

Бот discord.py как разрешить команду только если пользователь дал буст серверу?

Я хочу сделать команду, которая работала бы только если пользователь дал буст серверу, на котором эта команда прописана. Например, высылала сообщение с благодарностью, или давала какие-то особые роли. Я пытался сделать так:
@bot.command()
@commands.has_role('811347986738315306' = True)
async def boost(ctx):
    embed = discord.Embed(title="Спасибо!", description="Спасибо", colour=0xff3df5)
    await ctx.send(embed=embed)

Но судя по всему роль по айди выдать нельзя (пробовал и без '' написать айди, тоже не работает)
Ошибка на месте где начинается айди
Прочитав всю документацию к discord.py я так и не понял как это сделать, а так как я новичок в программировании, то сам это сделать не смогу, надеюсь на вашу помощь.
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
Проверяйте на наличие времени буста:

def is_booster():  # https://discordpy.readthedocs.io/en/stable/ext/commands/commands.html#checks
    """Check if author is guild booster"""
    async def predicate(ctx):
        return ctx.author.premium_since
    return commands.check(predicate)

@bot.command()
@is_booster()
async def cmdname(ctx):
    ...


@commands.has_role принимает в качестве аргумента целое число, и данный аргумент не является именованным (**kwargs, arg=value): @commands.has_role(419038437452554077)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы