需要帮助 Discord 机器人队列

编程入门 行业动态 更新时间:2024-10-11 11:14:56
本文介绍了需要帮助 Discord 机器人队列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我一直在尝试为不和谐机器人创建队列,而我的 >q 命令基本上可以作为 joinplay queue 同时进行.问题是它只能同时排队 2 首歌曲,所以我需要帮助让它排队多首歌曲

i've been tryin to make a queue for discord bot and my >q command basicaly work as join play queue at the same time. The problem is it only queues 2 songs at the same time so I need help making it queue multi songs

queues = {} #check queue def check_queue(ctx, id): if queues[id] !=[]: voice = ctx.guild.voice_client voice.play(queues[id].pop(0)) #command @clientmand(pass_context = True) async def q(ctx, url): if (ctx.author.voice): channel = ctx.message.author.voice.channel voice = get(client.voice_clients, guild=ctx.guild) if voice and voice.is_connected(): await voice.move_to(channel) else: voice = await channel.connect() else: await ctx.send('You are not in a voice channel') YDL_OPTIONS = {'format': 'bestaudio', 'noplaylist': 'True'} FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'} voice = get(client.voice_clients, guild=ctx.guild) with YoutubeDL(YDL_OPTIONS) as ydl: info = ydl.extract_info(url, download=False) URL = info['url'] source = (FFmpegPCMAudio(URL, **FFMPEG_OPTIONS)) if voice.is_playing(): guild_id = ctx.message.guild.id if guild_id in queues: queues[guild_id].append(source) else: queues[guild_id]=[source] await ctx.send('Deemo: Song added to queue') else: ctx.voice_client.stop() voice.play(FFmpegPCMAudio(URL, **FFMPEG_OPTIONS), after=lambda x=0: check_queue(ctx, ctx.message.guild.id)) voice.is_playing() await ctx.send('Playing: '+ info.get('title'))

推荐答案

经过一番研究和搜索,我想出了一个简单的方法来让队列循环 2+ 首歌曲,添加 after=lambda x=0:check_queue(ctx, ctx.message.guild.id) 在 check_queue 里面稍微改一下,就变成这样了

after I do some study and search I figure out an easy way to make the queue loop 2+ songs, add after=lambda x=0: check_queue(ctx, ctx.message.guild.id) inside check_queue and change a little and it will look like this

def check_queue(ctx, id): if queues[id] !=[]: voice = ctx.guild.voice_client source = queues[id].pop(0) voice.play(source, after=lambda x=0: check_queue(ctx, ctx.message.guild.id))

更多推荐

需要帮助 Discord 机器人队列

本文发布于:2023-11-23 13:08:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1621554.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:队列   机器人   Discord

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!