Заставить бота слушать собственные команды? - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь заставить своего бота послушать команду, которую он даст сам, если пройдет час. Команда сбросит все переменные для игры и позволит другим людям продолжать играть, если они захотят. Эта команда также доступна для выполнения любому пользователю с ролью «Администратор», которая есть и у бота, если кто-то может его использовать. Команда !reset

В настоящее время эта команда работает. Если я вручную наберу !reset, игра перезагрузится и позволит другим людям играть в нее. Кроме того, если я подожду час, настройка таймера истечет, и бот ответит в чате !reset, но игра НЕ будет сброшена.

После некоторого просмотра в файле discord.pyдокументы. Я обнаружил, что по умолчанию бот настроен не слушать команды, которые он использует. client = commands.Bot(command_prefix = '!', self_bot=False) Если установлено значение True, он делает прямо противоположное ... в том, что он будет слушать свои собственные команды, но НЕ будет слушать команды игрока.

Кажется, я не могу найтиспособ заставить это сделать оба, для использования команды !reset. Я понимаю, что простым решением было бы скопировать код, который сбрасывает все переменные для игры, в метод Timer, так что, когда проходит час, он просто запускает код напрямую ... но это только кажется грязным и неэффективным,У меня уже есть команда для сброса игры, я надеялся, что смогу просто использовать это. Я застрял при копировании и вставке кода? Или я могу заставить это работать?

...