Added forceplay command
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user