Игнорирование исключения в командной игре: discord.py

#discord.py

Вопрос:

Я получаю эту ошибку консоли, когда пытаюсь запустить команду play.

ошибка консоли

Код, который я использовал, это:

 @client.command(pass_context=True)
async def play(ctx, url): 
    guild = ctx.message.guild 
    voice_client = guild.voice_client 
    player = await voice_client.create_ytdl_player(url) 
    players[server.id] = player  
    player.start()
 

Я позаботился о том, чтобы discord.py, ffmpeg и youtube_dl все обновлены, и я получаю ту же ошибку.

Комментарии:

1. Похоже voice_client , так оно и есть None . Может быть , попробовать распечатать guild , посмотреть, есть ли там что-нибудь?

2. @fravolt, если guild бы была проблема, вернул бы ошибку, когда они попытались позвонить voice_client

3. @Alyx Я имел в виду , что если voice_client в конечном итоге будет none , это указывает на то, что guild у него нет voice_client (или он пустой). Хотя это может быть вызвано многими причинами, проверка guild наличия ожидаемых полей может помочь выявить проблему. Будет ли ошибка выдана при voice_client назначении или при попытке доступа к ней (строка, в которой она сейчас завершается сбоем), зависит в основном от того discord.py , добавляет ли поля со значением None или полностью их пропускает.

4. О, это хорошая мысль!

Ответ №1:

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

Возможно, вы установили неправильную версию discord.py вам нужна другая версия для голосовых клиентов! Попробуйте переустановить с помощью этой команды pip:

 # Linux/macOS
python3 -m pip install -U "discord.py[voice]"

# Windows
py -3 -m pip install -U discord.py[voice]