Задать вопрос
@Dimentiy-cmd

Как правильно использовать option в disnake?

Здравствуйте! Я не понимаю как использовать option в disnake. Написал команду:
@bot.slash_command(name='клир', decription='Почистить чат')
async def clear(inter: disnake.ApplicationCommandInteraction, amount: Option(name='amount', description='Количество', type=int, required=True, min_value=1, max_value=5)):
    user_id = inter.author.id
    user_lvl = cursor.execute('SELECT lvl FROM users WHERE id = ?', (user_id,)).fetchone()[0]
    log_channel = bot.get_channel(1209077113056141422)
    embed = disnake.Embed(title='Чистка сообщений')
    embed.add_field(name='Модератор:', value=inter.author.mention, inline=True)
    embed.add_field(name='Очищено сообщений:', value=amount, inline=True)
    embed.set_footer(text=f'{time.day}.{time.month}.{time.year} | {time.hour}:{time.minute}')
    if user_lvl >= 4:
        await inter.channel.purge(limit=amount)
        await log_channel.send(embed = embed)
        await inter.response.send_message('Чат очищен!', ephemeral=True)
    else:
        await inter.reponse.send_message('Вам запрещен доступ к этой команде!', ephemeral = True)

А в консоли выдается ошибка:
TypeError: unhashable type: 'Option'
  • Вопрос задан
  • 29 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
С ошибкой нужно прикладывать traceback.

Ну, а вообще вы пытаетесь заявить, что amount должен иметь тип Option, тогда как он должен быть интом. Disnake под капотом пытается выполнять приведение типов согласно аннотациям
amount: int = Option(...)

Ну и если я правильно понял что вы делаете что-то такое
import disnake
from disnake.ext import commands

@bot.slash_command()
async def clear(
    inter: disnake.CommandInteraction,
    amount: commands.Range[int, 1, 5],
):
    ...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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