Пишу бота на python, опыта разработки на этом ЯП почти минимально. Так вот, пишу музыкального дискорд бота чисто под свои нужды. В общем, по замыслу при вводе play (url) должна запускаться звук с видео с ютуба, с первым play проблем нет, можно стопить, ставить на паузу и тд, но со 2 *play возникают проблемы, песню невозможно стопить и производить с ней какие-либо действия, интерпретатор ссылался на то, что подпрограммы play, stop, resume находятся в главной подпрограмме play и при втором и более вызовах этой подпрограммы 2 раз инициализироваться эти же подпрограммы(play, stop и тд) не могут. Основная проблема в областях видимости, т.к одни подпрограммы находятся в другой, а по-другому нельзя, что делать? На скрине стрелкой показана главная подпрограмма.
vc = await bot.join_voice_channel(voice_channel)
vc_clients[message.server.id] = [vc]
@bot.command(pass_context=True)
async def play(ctx, url):
try:
player = await vc.create_ytdl_player(url)
player.start()
@bot.command(pass_context=True)
async def pause():
player.pause()
await bot.say('Музыка на паузе')
@bot.command(pass_context=True)
async def stop():
player.stop()
await bot.say('Музыка остановлена')
@bot.command(pass_context=True)
async def resume():
player.resume()
except:
pass