Discord.py Подключение голосовых клиентов после повторного подключения

#discord.py

#discord.py

Вопрос:

У меня есть винтик, который выполняет некоторые звуковые действия. Он сохраняет состояние голоса self.voice всякий раз, когда состояние голоса обновляется (и ограничивает фактическое обновление до момента, когда member бот.

Но когда бот останавливается и запускается повторно (например, завершает процесс python), он остается подключенным к голосовому каналу в течение нескольких минут, прежде чем истечь время ожидания и отключиться. Я не могу отключить его вручную, потому self.voice что изначально просто нет.

Есть ли способ получить текущее состояние голоса при повторном запуске бота, чтобы я мог установить self.voice ? В качестве альтернативы, есть ли способ немедленно принудительно отключить бота от любых голосовых каналов, в которых он все еще находится после перезапуска?

Ответ №1:

Попробуйте создать прослушиватель событий в вашем cog для on_disconnect, в котором вы отключаете своего бота от всех голосовых каналов. Пока вы корректно останавливаете своего бота, он должен запустить этот прослушиватель событий.