Не срабатывает проверка на отсутствие бота в голосовом канале 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.")