Я столкнулся с такой проблемой,я не знаю как зделать очередь проигрывания музыки но у меня есть комманда play,leave,pause,resume,skip и тд. Подскажите пожалуйста как это зделать?
Play:
#Комманда для проигрывания музыки
@Alice.command()
async def play(ctx, *, command = None):
await ctx.channel.purge( limit = 1 )
global server, server_id, name_channel
author = ctx.author
server = ctx.guild
if command == None:
server = ctx.guild
name_channel = author.voice.channel.name
voice_channel = discord.utils.get(server.voice_channels, name = name_channel)
params = command.split(' ')
if len(params) == 1:
server = ctx.guild
sourse = params[0]
name_channel = ctx.author.voice.channel.name
voice_channel = discord.utils.get(server.voice_channels, name = name_channel)
print('param 1')
elif len(params) == 3:
server = ctx.guild
server_id = params[0]
voice_id = params[1]
sourse = params[2]
try:
server_id = int(server_id)
voice_id = int(voice_id)
except:
await ctx.channel.send(f'{author.mention}, id сервера или голосового каннала должно быть численным ')
return
print('param 3')
server = Alice.get_guild(server_id)
voice_channel = discord.utils.get(server.voice_channels, id=voice_id)
else:
await ctx.channel.send(f'{author.mention}, я тебя не понимаю!')
return
voice = discord.utils.get(Alice.voice_clients, guild = server)
if voice is None:
await voice_channel.connect()
voice = discord.utils.get(Alice.voice_clients, guild=server)
if sourse == None:
pass
elif sourse.startswith('http'):
if not check_domains(sourse):
await ctx.channel.send(f'{author.mention}, Твоя ссылка не разрешена для использования напиши Wolfrik#8341!')
return
song_there = os.path.isfile('song.mp3')
try:
if song_there:
os.remove('song.mp3')
except PermissionError:
await ctx.channel.send('Недостаточно прав для удаления файла!')
return
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [
{
'key': 'FFmpegExtractAudio',
'preferredcodec': "mp3",
'preferredquality': '192',
}
],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([sourse])
for file in os.listdir('./'):
if file.endswith('.mp3'):
os.rename(file, 'song.mp3')
voice.play(discord.FFmpegPCMAudio('song.mp3'))
else:
voice.play(discord.FFmpegPCMAudio(f'music/{sourse}'))