feat(commands/voice/queue): add --now

This commit is contained in:
Ryan 2024-12-31 00:11:33 -05:00
parent 081610150d
commit 286df89085
Signed by: ErrorNoInternet
GPG Key ID: 2486BFB7B1E6A4A3
2 changed files with 18 additions and 2 deletions

View File

@ -44,6 +44,12 @@ async def queue_or_play(message):
action="store_true", action="store_true",
help="remove all queued songs", help="remove all queued songs",
) )
parser.add_argument(
"-n",
"--now",
action="store_true",
help="play the specified song immediately",
)
parser.add_argument( parser.add_argument(
"-t", "-t",
"--remove-title", "--remove-title",
@ -103,6 +109,10 @@ async def queue_or_play(message):
return return
queued = youtubedl.QueuedSong(player, message.author.id) queued = youtubedl.QueuedSong(player, message.author.id)
if args.now:
players[message.guild.id].queue_add_front(queued)
else:
players[message.guild.id].queue_add(queued) players[message.guild.id].queue_add(queued)
if ( if (
@ -111,6 +121,9 @@ async def queue_or_play(message):
): ):
await utils.reply(message, f"**0.** {queued.format()}") await utils.reply(message, f"**0.** {queued.format()}")
play_next(message) play_next(message)
elif args.now:
message.guild.voice_client.stop()
await utils.reply(message, f"**0.** {queued.format()}")
else: else:
await utils.reply( await utils.reply(
message, message,

View File

@ -1,10 +1,10 @@
import asyncio import asyncio
from typing import Any, Optional from typing import Any, Optional
import constants
import disnake import disnake
import yt_dlp import yt_dlp
import constants
import utils import utils
ytdl = yt_dlp.YoutubeDL(constants.YTDL_OPTIONS) ytdl = yt_dlp.YoutubeDL(constants.YTDL_OPTIONS)
@ -58,6 +58,9 @@ class QueuedPlayer:
def queue_add(self, item): def queue_add(self, item):
self.queue.append(item) self.queue.append(item)
def queue_add_front(self, item):
self.queue.insert(0, item)
class QueuedSong: class QueuedSong:
def __init__(self, player, queuer): def __init__(self, player, queuer):