Дискорд бот не работает как надо

Создаю простого бота, который должен по команде !play заходить в голосовой канал и проигрывать случайный трек из директории "music". Но есть проблема в строке vc = await voice_channel.connect(), как мне кажется. Потому что на команду он реагирует и заходит в голосовой канал, но дальше программа не идет вообще никак. Т.е. принт не принтит, музыка не играет и так далее. Вот сам код:

import discord
from discord.ext import commands

intents = discord.Intents().all()
bot = commands.Bot(command_prefix='!', intents=intents)


# Проверка на готовность бота
@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name}')


# Команда для проигрывания музыки
@bot.command(name='play')
async def play(ctx):
    voice_channel = ctx.author.voice.channel
    vc = await voice_channel.connect()

    print('Connected')

    # Выбор случайного файла из директории
    music_files = os.listdir('music')
    random_song = os.path.join('music', random.choice(music_files))

    # Проигрывание аудиофайла
    vc.play(discord.FFmpegPCMAudio(random_song), after=lambda e: print('Error:', e) if e else None)
    await ctx.send(f'Now playing: {random_song}')

    # Ожидание окончания трека\n
    while vc.is_playing():
        await asyncio.sleep(1)

    # Отключение от голосового канала
    await vc.disconnect()
    await ctx.send(f'Finished playing: {random_song}')


bot.run('token')

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