@dkwa

Как убрать кулдаун команды для определенной роли/администратора?

Вот код:
@client.command(aliases=['идея', 'ИДЕЯ', 'IDEA'])
@commands.cooldown(1, 60, commands.BucketType.user)
async def idea(ctx,*, idea=None):
	if ctx.author.id == 958724597153402892:
		
		await ctx.message.delete()
		await ctx.send("ваша идея отправлена разработчикам")
		await client.get_channel(settings['ADMINCHAT']).send(f"<@&{(settings['DEVELOPERROLE'])}> Идея от {ctx.author}: \"{(idea)}\"")
		print(f'{ctx.author} || {ctx.author.id} отправил идею: \"{(idea)}\"')

Нужно, чтобы кулдауна для определенной роли или права администратора не было.
  • Вопрос задан
  • 305 просмотров
Пригласить эксперта
Ответы на вопрос 2
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Начинайте всегда с документации, там все написано.
@commands.cooldown(1, 60, commands.BucketType.user)
async def idea(ctx,*, idea=None):
	if is_admin(ctx.author):  # подставить свой способ проверки
		idea.reset_cooldown(ctx)


И постарайтесь не хардкодить имена или айдишники ролей в код, вынесите это в конфигурационный файл.
Ответ написан
LIREN
@LIREN
Пунктумофоб
Вроде так:
@client.command(aliases = ["идея", "ИДЕЯ", "IDEA"])
@commands.cooldown(1, 60, commands.BucketType.user)
async def idea(ctx, *, idea = None):
    role = discord.utils.find(lambda r: r.name == f"АДМИН", ctx.message.guild.roles)
    if role in ctx.author.roles:
        ctx.commands.reset_cooldown()
    await ctx.message.delete()
    await ctx.send("Ваша идея отправлена разработчикам.")
    await client.get_channel(settings['ADMINCHAT']).send(f"<@&{(settings['DEVELOPERROLE'])}> Идея от {ctx.author}: \"{(idea)}\"")
    print(f'{ctx.author} || {ctx.author.id} отправил идею: \"{(idea)}\"')

Ещё я немножечко украсил ваш код >:)

Если есть ошибки пишите, потому что я их проверить не могу.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы