@xpril

Как убрать ограничение на количество чисел в аргументах слеш-команд Disnake?

Хочу сделать слеш-команду, по которой бот будет отправлять определенное сообщение в определенный канал.
Я сделал что-то подобное, но когда пишу ID канала в поле, мне пишет "Введите корректный числовой код".
Хотелось бы понять, как убрать это, т.к. в документации не нашёл ответа.
Я читал про lt, le, gt, ge, но не понял что это и как работают, т.к. никогда с таким не сталкивался ранее. Если вы знаете, то был бы благодарен узнать от вас, что это и с чем его едят.

6477996283ad1265149823.png

Вот сам код:

@commands.slash_command(name='sendmessage', description='Отправка сообщения в чат от имени бота.')
    async def send_message(self, inter,
                           chat_id : int = commands.Param(name='chat_id', description='ID чата'),
                           message : str = commands.Param(name='message', description='Сообщение')):
        channel = disnake.utils.get(message.author.guild.text.channels)
        if chat_id in channel:
            channel = disnake.utils.get(message.author.guild.text.channels, id = chat_id)
            await channel.send(message)
            await inter.send(embed=disnake.Embed(description=f':wrench: Ваше сообщение успешно отправлено.', color=0xBA55D3))
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
Syjalo
@Syjalo
Представьте себе бота
Discord написан на JavaScript, где есть MAX_SAFE_INTEGER (2^53 – 1). Работать с числами больше просто небезопасно, поэтому такое ограничение. Для получения id используйте строки. А вообще есть опция channel, которая валидирует и возвращает канал. id туда тоже можно передавать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Сделайте поле не числом, а строкой в параметрах функции, в коде уже сконвертируйте если нужно
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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