Added forceplay command

This commit is contained in:
Choco
2023-08-03 10:48:46 +08:00
parent 57ac2bc6a8
commit e213cff638
2 changed files with 34 additions and 1 deletions

View File

@@ -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):