diff --git a/cogs/basic.py b/cogs/basic.py index b28199d..5c79b30 100644 --- a/cogs/basic.py +++ b/cogs/basic.py @@ -240,6 +240,39 @@ class Basic(commands.Cog): if not player.is_playing: await player.do_next() + @commands.hybrid_command(name="forceplay", aliases=get_aliases("forceplay")) + @app_commands.describe(query="Input a query or a searchable link.") + @commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild) + async def forceplay(self, ctx: commands.Context, query: str): + "Enforce playback using the given URL or query." + player: voicelink.Player = ctx.guild.voice_client + if not player: + player = await voicelink.connect_channel(ctx) + + if not player.is_privileged(ctx.author): + return await ctx.send(player.get_msg('missingPerms_function'), ephemeral=True) + + tracks = await player.get_tracks(query, requester=ctx.author) + if not tracks: + return await ctx.send(player.get_msg('noTrackFound')) + + try: + if isinstance(tracks, voicelink.Playlist): + index = await player.add_track(tracks.tracks, at_font=True) + await ctx.send(player.get_msg('playlistLoad').format(tracks.name, index)) + else: + await player.add_track(tracks[0], at_font=True) + await ctx.send((f"`{player.get_msg('live')}`" if tracks[0].is_stream else "") + player.get_msg('trackLoad').format(tracks[0].title, tracks[0].uri, tracks[0].author, tracks[0].formatLength), allowed_mentions=False) + + except voicelink.QueueFull as e: + await ctx.send(e) + + finally: + if player.queue._repeat.mode == voicelink.LoopType.track: + await player.set_repeat(voicelink.LoopType.off.name) + + await player.stop() if player.is_playing else await player.do_next() + @commands.hybrid_command(name="pause", aliases=get_aliases("pause")) @commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild) async def pause(self, ctx: commands.Context): diff --git a/update.py b/update.py index d9fb063..e667012 100644 --- a/update.py +++ b/update.py @@ -2,7 +2,7 @@ import requests, zipfile, os, sys, shutil, traceback from io import BytesIO root_dir = os.path.dirname(os.path.abspath(__file__)) -__version__ = "v2.6.6b1" +__version__ = "v2.6.6b2" GITHUB_API_URL = "https://api.github.com/repos/ChocoMeow/Vocard/releases/latest" VOCARD_URL = "https://github.com/ChocoMeow/Vocard/archive/"