Я разрабатываю бот Discord для сервера, на котором я работаю, включая музыкальные функции для него. Я могу заставить моего бота присоединиться к голосовому каналу через соответствующий вызов VoiceChannel.connect()
, однако после этого асинхронное выполнение вообще не возвращает к моему коду. Все по-прежнему работает, но кажется, что оно снова исчезает в цикле событий (другие задачи запускаются по мере их возникновения).
Я определил, что проблема с VoiceChannel.connect()
была в том, что я прошел через программу в PyCharm с того момента, когда я получил контроль над тем, где он ее вызывает. Я могу видеть все до того, как вызов выполняется просто отлично, однако после вызова он не возвращается (отладчик не вернулся после того, как я нажал Step Into My Code в точке вызова). Сам вызов даже выполнялся нормально, потому что он действительно подключился к речевому каналу, в котором я находился.
Я проверил, что условия для его подключения приемлемы, и я действительно не знаю, почемубеда. Вот стек в точке вызова (код в https://github.com/young-amateurs-rc/arbys/tree/master/modules/music):
await mgr.connect(message.author.voice.channel)
(tree_root, __init__.py:89)
await self.interface.connect()
(connect, manager.py:49)
self._client = await self.channel.connect(timeout=5)
(connect, interface.py:98) (именно это вызывает проблемы)
Я не знаю, почему VoiceChannel.connect()
не возвращается обратно в мой код после запуска, и я не знаюЯ не вижу причин, по которым этого не следует делать. Есть ли какое-то условие внутри discord.py, вызывающее это? Что произошло внутри библиотеки?
Python 3.7.2
discord.py 1.2.3
aiohttp 3.5.4