@Dresp

Как сделать одновременно слэш команду и команду через префикс дискорд бота на Disnake?

Попытаюсь сказать коротко.
Мне нужно сделать команду одновременно через слэш и с использованием префикса.
Использую библиотеку Disnake.
Команда -
@commands.slash_command(description='Впишите ссылку. Бот сократит её и сделает из неё QRCODE.')
    async def short(self, inter: disnake.ApplicationCommandInteraction, link):
        def shorten_url(link):
            return pyshorteners.Shortener().clckru.short(link)
        rand = random.randint(1, 10000)
        argument = f'QRCODE{rand}'
        img = qrcode.make(format(shorten_url(link)))
        type(img)
        img.save('qr/' + argument + ".png")
        await inter.send(f'<@{inter.author.id}>, Сокращенная ссылка - <{format(shorten_url(link))}>\nQRКод:', file=disnake.File(f'qr/{argument}.png'))
        os.remove(f'qr/{argument}.png')
  • Вопрос задан
  • 277 просмотров
Решения вопроса 1
fenrir1121
@fenrir1121
Начни с документации
Средствами библиотеки - никак. Слеш команды концептуально отличаются и получают данные отличные от префиксных. Рекомендуемый способ это для префиксов показывать слеш-команду чтобы люди переходили на них.

Альтернатива запихнуть вашу логику в отдельную функцию и из двух команд вызывать эту функцию.

Советую выбирать первый вариант и отказываться от префиксов. Если дойдете до верификации бота вам их не согласуют.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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