@maks_petrov9

Как сделать регистрацию команд из базы данных Disnake.py?

Привет, в общем у меня есть база данных MongoDB
Там есть данные с кастомными командами

{
name: "test"
creator: 701123930936836147
command_type: 1
command_text: "null"
command_roles: Array
}


Есть примерный код, где при запуске бота он все эти команды регистрирует, код нашел где-то в инете и доработал под себя, (Скрипт)
При запуске бота появляется ошибка, как только я не пытался ее исправить - увы.
Вот сама ошибка, заранее благодарю за попытки помочь.

Ignoring exception in on_ready
Traceback (most recent call last):
  File "C:\Users\maksm\AppData\Local\Programs\Python\Python310\lib\site-packages\disnake\client.py", line 705, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\maksm\Desktop\Programs\RK2023\cogs\events.py", line 32, in on_ready
    self.Bot.add_command(commands.Command(name=command['name'], callback = custom_command))
TypeError: Command.__init__() missing 1 required positional argument: 'func'
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
В документации disnake (впрочем, и в discord.py тоже) какая-то ерунда написана. Вот как выглядит описание Command.__init__ в коде:

def __init__(
        self,
        func: CommandCallback[CogT, ContextT, P, T],
        **kwargs: Any,
    ) -> None:

    ...

    self.callback = func


То есть callback на самом деле это обязательный позиционный параметр.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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