Не срабатывает проверка на отсутствие бота в голосовом канале Discord

Который час не получается понять, почему при отсутствии бота в голосовом канале не срабатывает событие else? При любых параметрах программа не доходит до кода под else.

@bot.command(pass_context=True)
async def join(ctx):
    channel = ctx.message.author.voice.channel
    await channel.connect()


@bot.command()
async def leave(ctx):
    voice_client = ctx.message.guild.voice_client
    if voice_client.is_connected():
        await voice_client.disconnect()
    else:
        await ctx.send("The bot is not connected to a voice channel.")

Ответы (1 шт):

Автор решения: mazzz3r

Это должно работать

def is_connected(ctx):
    voice_client = get(ctx.bot.voice_clients, guild=ctx.guild) # discord.utils.get
    return voice_client and voice_client.is_connected()

...

@bot.command()
async def leave(ctx):
    voice_client = ctx.message.guild.voice_client
    if is_connected(ctx):
        await voice_client.disconnect()
    else:
        await ctx.send("The bot is not connected to a voice channel.")

→ Ссылка