Задать вопрос
@xpril

Как правильно написать slash-команду в disnake вместе с Option?

Хочу сделать слеш-команду на удаление сообщений.
Без Option все выходит, а когда я включаю в аргумент Option, то выдаёт ошибку, как с ней справиться я не понял.
Сам код:
@commands.slash_command(name='clear', description = 'Очистка чата')
    async def clearka(ctx, messages: Option(int, description='Количество', required=True, min_value=1, max_value=100)):
        await ctx.channel.purge(limit=int(messages))
        await ctx.send(f'Было очищено {messages} сообщений.')


При запуске бота выдаёт такую вот ошибку:
disnake.ext.commands.errors.ExtensionFailed: Extension 'cogs.admin' raised an error: TypeError: Slash command name and option names must be an instance of class 'str', received '<class 'type'>'


Толи я сделал что-то не правильно, то ли ошибка простая, но опыта не хватает её решить.
  • Вопрос задан
  • 633 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
fenrir1121
@fenrir1121
Начни с документации
Переводим ошибку, получаем примерно "имя опции должно быть строкой, а получен тип".
Ищем где в этой строке единственный параметр, который мог быть распознан как тип.
Option(int, description='Количество', required=True, min_value=1, max_value=100)

Похоже первый параметр Option это имя, а вы попытались передать тип. Идем в исходники и подтверждаем эту гипотезу.

Исправляем
Option(name='count', description='Количество', type=int, required=True, min_value=1, max_value=100)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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